TCP/IP 4계층 #2. MTU와 MSS와 PMTUD
MTU(Maximum Transmission Unit)란 네트워크에 연결된 장치가 받아들일 수 있는 최대 데이터 패킷의 크기
이 크기를 기준으로 데이터는 쪼개져서 패킷화 됨. 네트워크 경로 상에 있는 아무 장치나 MTU보다 패킷이 크면 그 패킷은 분할될 수도 있음
Router C의 MTU가 1400바이트이기 때문에 패킷이 분할되는 모습
패킷이 분할되지 않는 경우
패킷을 분할할 수 없어 네트워크 경로 상에 있는 어떠한 라우터나장치의MTU를초과할때 분할해서 전달하는 것이 아니라 전달을 아예 하지 않을 수도 있음
IPv6
IPv6은 분할을 허용하지않음
IPv4
IPv4 헤더에는 flags라는 필드가 있는데 여기서 bit 이 1이되면 "Don't Fragment" 플래그가 활성화된다라는 의미
이 때 분할은 불가능
MTU와 MSS
MTU와 MSS의 차이를 보면 다음과 같이 MTU는 IP헤더와 TCP헤더의 크기까지 합치만 MSS(Maximum Segment Size)는 데이터의 크기(payload의 크기)만을 가리 킴
일반적으로 MTU는 1500바이트이며 MSS는 1460바이트
따라서 네트워크를 통해 데이터를 보낼 때 MTU가 1500이라도 데이터는 보통 1460바이트 이하의 크기로 보내야 전달됨
다만, TCP를 쓰지 않는다는 등의 이유로 달라질 수도 있음
실습 : ping을 통한 MTU 확인
ping www.google.com -f -l 1500
앞의 코드는 1500바이트씩 패킷을 보낸다는 의미이며 DF는 패킷분할이 안되는 "Don't Fragment”를 의미
손실률 100%임
ping www.google.com -f -l 1472
여기서 ping의 경우 IP 헤더(20바이트) + ICMP 헤더(8바이트)로 요청을 보내는 것이기 때문에 MSS는 1472(1500 - 28)까지 됩니다. 따라서 1472바이트씩 데이터를 보내면 올바르게 송수신되는 것 확인
실습 : netsh를 통한 MTU 확인
netsh interface ipv4 show interfaces
MTU가 1500인 것 확인
PMTUD
PMTUD(Path MTU Discovery)는 수신자와 송신자의 경로 상에서 장치가 패킷을 누락한 경우 테스트 패킷의 크기를 낮추면서 MTU에 맞게끔 반복해서 보내는 과정
* 참고
'CS > 네트워크' 카테고리의 다른 글
[CS] TCP/IP 4계층 #4. 전송 계층(transport) (2) | 2023.10.16 |
---|---|
[CS] TCP/IP 4계층 #3. 애플리케이션 계층(application) (0) | 2023.10.15 |
[CS] TCP/IP 4계층 #1. 개념, 캡슐화, 비캡슐화, PDU, OSI 7계층 (1) | 2023.10.13 |
[CS] 네트워크의 분류 : LAN, MAN, WAN (0) | 2023.10.12 |
[CS] 네트워크의 기초 #5 유니캐스트, 멀티캐스트, 브로드캐스트 (0) | 2023.10.11 |
댓글