[Develope]/Network 33

FD_SETSIZE 의 지정

FD_SETSIZE 의 지정Solaris 의 경우에는 시스템의 기본 FD_SETSIZE (대개 1024) 보다 큰 fd_set 을 사용하는 경우, (본 글에서는, 예로서 32767 로 지정하는 것으로 하겠습니다) 컴파일 파라메터로 -DFD_SETSIZE=32767 를 지정하기만 하면 되었는데요, Linux 2.6 의 경우에는, FD_SETSIZE 를 지정하는 것이 모두 시스템 기본값인 1024 로 overwrite 되도록 시스템의 헤더가 구성되어 있어, 위와 같은 지정으로는 효과를 볼 수 없습니다. 아마도 Linux 2.4 등에서 가지고 있던 FD_SETSIZE 가 kernel compile 시에 고정되는 제약이 헤더 상에 남아 있는게 아닌가 싶습니다. (커널코드 확인결과 2.6에는 이러한 제약이 없습니..

[Develope]/Network 2011.11.24

홀 펀칭(Hole Punching)

홀 펀칭(Hole Punching)이란?? 공유기 라는 녀석이 라우터의 특성도 함께 가지고 있어 Routing Table을 작성하기 위해 P2P 통신을 목적으로, 사전에 상대방과 패킷을 주고받고 하여 각자의 공유기에 Routing Table을 작성하는 것을 [홀 펀칭]이라고 한다. Full Cone Port Restricted Cone Restricted Cone Symmetric Cone Full Cone NAT 내부에 있는 호스트들의 모든 요청은, 모두 같은 외부 ip, port로 맵된다. 더군다나 어떤 외부 호스트든 공인 IP가 맵된 패킷 보내기에 의해 내부 호스트로 패킷을 보낸다. Restricted Cone 목적지의 주소에 따라 NAT에 맵 되는 포트가 달라진다. 홀 펀칭을 위해서는 목적지의 I..

[Develope]/Network 2008.08.11