전체 글 216

CLOSE_WAIT/TIME_WAIT

CLOSE_WAIT 클라이언트가 데이타를 전송함과 동시에 close할 경우 FIN이 붙어서 동시에 전송되는 경우가 있다. 이때 서버는 CLOSE_WAIT 상태로 계속남아있어서 이 패턴이 반복되면 통신자체가 되지 않게된다. 1. send 이후 약간의 시간을 두고 close하거나 2. send/recv/close 패턴의 경우는 문제가 없어보인다. 3. SO_LINGER 옵션을 이용하면 된다. TIME_WAIT TCP의 서버 프로그램을 종료한 바로뒤 다시 서버를 기동하면 bind에서 에러(Address aleady in use)로 끝날 때가 있다. 서버에서 active close를 한 경우(클라이언트가 active close하면 상관없음). 이때는 2 * MST를 기다려야한다. 이 문제는 TCP 자체 사양에 ..

Public/tip & tech 2007.11.12

컴파일 옵션

-D 는 소스 상에 ifdef _MMAP 를 활성화 하기 위한 옵션입니다. -mt 와 -D_REENTRANT 는 쓰레드 보호모드로 컴파일 하기 위한 옵션이고 -lsocket -lnsl 은 소켓을 사용하기 위하여 libsocket.so 와 libnsl.so 를 링크하라는 말이고 -lpthread 는 pthread 를 사용하기 위하여 libpthread.so 를 링크하라는 말이고 -lrt 는 세마포어를 사용하기 위하여 librt.so 를 링크 하라는 말입니다.

Public/tip & tech 2007.11.05

FIN_WAIT_2 에 대한 대책

개요 TCP socket connection 상태의 종류 FIN_WAIT_2 에 대한 대책 개요 TCP는 UDP와는 달리 connection-oriented protocol인 관계로, 연결을 맺거나 특히 끊을 때, 많은 확인 절차를 거치게 됩니다. 이로 인하여, server와 client 간에 약간의 overhead가 있을 수 있습니다. 특히, web server로 사용되는 system의 경우, 대부분의 client들이 그리 안정적이지 않은 PC client이므로, connection을 맺던 client application이 crash되는 경우 web server에는 다소간의 문제가 발생할 여지가 있습니다. 가장 대표적인 문제가 FIN_WAIT_2 상태입니다. 여기서는 이 상태가 무엇을 뜻하는지, 이로..

Public/tip & tech 2007.11.05

개발자 : 이책 읽으면 고생 덜한다.

나는 평생 개발하고 싶은 개발자이다. 천성이 개발자이며 나이 40 넘어서도 계속 개발하기를 진심으로 바라고 또 바란다. (사진은 C++ 만들어 나를 괴롭힌 장본인. Bjarne Stroustrup 아자씨...) 나이가 먹더라도 상사 혹은 회사의 눈치나 보는 관리자로 넘어가기 보다는 자신의 스킬을 믿으며 정확한 눈으로 시스템을 꿰뚫어 보고 필요한 작업이 무엇인지 판단이 서는 개발자가 되고싶고 이 글을 보는 사람 또한 그런사람이길 바란다. TCP/IP TCP/IP소켓프로그래밍 / 윤성우 NETWORK PROGRAMMING FOR WINDOWS SE / Anthony Jones Effective TCP/IP Programming / Jon Snader IT COOKBOOK 윈도우 네트워크 프로그래밍 : TCP..

성능테스트

차례 1절. 소개 2절. IPC 테스트 2.1절. 테스트할 IPC 설비의 종류 2.2절. 테스트할 내용 2.3절. 테스트 방법 2.4절. 테스트 시스템 환경 2.5절. IPC 별 테스트 2.5.1절. Unix Domain Socket 2.5.2절. FIFO 2.5.3절. Message Queue 2.6절. 테스트 결과 2.6.1절. 테스트 결과 1 (71 바이트) 2.6.2절. 테스트 결과 2 (512 바이트) 2.7절. IPC 성능 테스트결과에 대한 분석 2.8절. 무엇을 선택하는게 좋을까? 1절. 소개 IPC 는 매우 다양한 종류가 존재하며, 각 IPC 설비 종류마다 장/단점을 가지고 있다. 그러므로 어떤 일을 하는 프로그램들이냐에 따라서 거기에 적당한 장점을 가지고 적당한 성능을 보여주는 IPC 설..

Public/tip & tech 2007.09.28

사수-부사수관계는 이제 싫다. (내가 선임의 위치라서 그런가...)

먼저 사수 - 부사수 관계에 대해서 알아볼 필요가 있을거 같다. 사수.부사수 도제형식의 가르침이 필요한영역에서 유래했다. 원래는 장인.도제로 불리우던 것이, 군대에서사수.부사수로 불리워지게 되고, 이게 사회에까지 연장이 되어서, 산업현장에서도 사수.부사수가 일반명사처럼 사용되고 있다. 아뭏든 대한민국에서 사회는 군대의 연장이란 말이 괜한말이 아닌건 분명해 보인다. 하긴 남자의 80% 정도가 군대를 갔다오고, 거기에 여전히 남자가 더 많이, 더 높은 위치에서 사회생활을 하다보니 그럴 수 밖에 없긴 하겠지만 말이다. 사수.부사수는 사수.조수 사수.부사수.조수의 형식으로 부르기도 한다. 어쨋든지 간에 수평적관계가 아닌 수직적관계에 적합한 전승방식임을 알 수 있다. 우선 나는 이러한 도제방식을 싫어한다. 특히 ..

Public/DevGraphy 2007.09.18

현재 하고있는 프로젝트-풀브라우징

휴대폰 풀브라우징, 무선 인터넷에 혁명을 가져올 것인가? 풀브라우징 서비스란? 최근 이동통신사들의 “풀브라우징” 기능 도입과 관련된 기사들이 언론에 언급되면서 많은 네티즌들이 풀브라우징 기능과 향후 휴대폰에서 어떤 모습으로 무선인터넷 서비스가 전개될지 관심이 높아지고 있다. 풀브라우징 기능에 대해서 간단하게 설명을 하면, 기존 무선 인터넷 서비스가 WAP이라는 표준 규격을 통해서 서비스가 되었는데 이는 기존 웹에서 사용되는 HTML을 이용하는 방식이 아니라 WML 등 WAP을 위한 별도의 언어를 통해서 개발된다. 또한 휴대폰에서 사용되는 게임이나 멀티미디어용 서비스들을 가상머신이라고 불리는 VM을 통해서 서비스되고 있다. 하지만 풀브라우징은 기존 웹에서 사용되던 HTML 언어까지 동시에 지원되기 때문에 ..

찾기 귀찮은 Network 기본

차례 [+] Network의 기본 클라이언트와 서버구조 TCP/IP IP 도메인 주소 Port 루프백(loopback) MTU Path MTU TTL TCP 연결 (Three-way Handshake) TCP 연결 종료 소켓 API 소켓 API란? 소켓 주소 구조 바이트 순서(Byte Ordering) 소켓기술자란? TCP 소켓 소켓옵션 에코 프로그램 에코 서버 에코 클라이언트 I/O 모델 Blocking I/O Non-Blocking I/O I/O Multiplexing Signal Driven I/O Asynchronaus I/O I/O Multiplexing 예제 POSIX Thread Thread vs Process Basic Thread Functions TCP Echo Server를 위한 클라..

Public/tip & tech 2007.08.28

fcntl 함수 사용하기

유닉스 시스템플밍에서 가장 비중있게 다루는 것은 역시 파일관련 작업이다. fcntl 은 이러한 파일의 특성을 조정하는 일을 하는 함수로 이것을 이용하면 파일과 관련된 다양하고 세밀한 여러가지 작업을 좀더 쉽게 할수 있다. 1절. 소개 2절. fcntl 을 이용한 파일제어 2.1절. fcntl 로 할수 있는 일들 2.2절. close-on-exec 에 대해서 2.3절. 파일특성조작 하기 2.3.1절. F_DUPFD 2.3.2절. F_SETFD/F_GETFD 2.3.3절. F_GETFL/F_SETFL 2.3.4절. F_GETOWN/F_SETOWN -------------------------------------------------------------------------------- 1절. 소개 유닉스..

Public/tip & tech 2007.08.17