socket에서 한번에 전송 가능한 패킷의 최대 크기.

Dev/Network 2012. 8. 20. 09:35


IP 구조체의 전체 패킷크기를 지정하는 필드가 16비트로 되어 있어 약 TCP헤더 (20바이트), IP헤더 (20바이트)를 제외한 65495 바이트 까지 가능하다.

그러나 실제로는 다음과 같은 이유로 메시지의 크기를 수백~1460으로 제한하여 전송한다.
TCP가 한번에 전송하는 메시지의 크기를 MSS(Maximum Segment Size)라고 하며 초기에 상대뱡 TCP에게 알려주는데, TCP는 전송할 데이터가 이보다 클경우 데이터를 MSS사이즈로 세분화하며 전송한다


관련 링크 : http://kldp.org/node/33816

MTU 위키  : https://ko.wikipedia.org/wiki/%EC%B5%9C%EB%8C%80_%EC%A0%84%EC%86%A1_%EB%8B%A8%EC%9C%84


MTU (Maximum Transmission Unit)

 - 최대 전송 단위, 미디어에 따라 최대 전송 단위는 다르다. 보통 Ethernet v2 frame 형식(1500 byte)
 - IP 헤더 (20 byte), TCP헤더 (20 byte), TCP 데이터(페이로드)를 포함한 길이

MSS (Maximum Segment Size)

 - TCP 데이터(페이로드)길이 (헤더정보 제외)
 - Ethernet v2 frame 예 : 1500 - 20(IP 헤더) - 20(TCP 헤더) = 1460 byte



그러므로, 프로토콜 설계시 되도록 1 킬로 바이트를 넘지 않도록 주의하자. !!



: