mtu
MTU
TCP/IP 네트워크 등과 같은 패킷 또는 프레임 기반의 네트워크에서 전송될 수 있는 최대크기의 패킷 또는 프레임
한번에 전송할 수 있는 최대 전송량(Byte)인 MTU값은 매체에 따라 달라진다.
예를 들어 Ethernet환경이라면 MTU 기본값은 1500, FDDI인 경우 4000, X.25는 576, Gigabit MTU는 9000정도 등 매체 특성에 따라 한번에 전송량이 결정된다.
상위 계층(IP)등의 데이터(헤더 포함된 전체 싸이즈)를 수용할(담을) 수 있는 크기
MTU값 계산
MTU는 Ethernet프레임을 제외한 IP datagram의 최대 크기를 의미한다. 즉, MTU가 1500이라고 할 때 IP Header의 크기 20byte와 TCP Header의 크기 20byte를
제외하면 실제 사용자 data는 최대 1460까지 하나의 패킷으로 전송될 수 있다.
windows 계열에서는 PC의 기본 MTU가 1500으로 설정되어 있으며 레지스트리에 특정 값을 적어주지 않으면 자신의 MTU값은 1500으로 설정된다.
그러나 win2000부터 Media의 특성을 인식하여 dynamic하게 MTU를 설정하게 된다.
패킷 단편화
TCP세그먼트는 IP데이터그램으로 묶인다. 데이터그램에는 크기 한계가 있으며 하위 네트워크의 최대 송신 단위(MTU) 이상은 송신 할 수 없다.
만약 TCP세그먼트가 너무 크다면 단편화를 하지 않고는 데이터그램으로 송신할 수 없을 것이다. 단편화를 사용하면 효율이 떨어질 뿐 아니라 TCP 세그먼트를
잃어버릴 확률이 높아져 결국 모든 세그먼트를 다시 재전송해야할지도 모른다.
MSS(Maximum Segment Size)
TCP상에서의 전송할 수 있는 사용자 데이터의 최대크기이다.
MSS값은 기본적으로 설정된 MTU값에 의해 결정된다. 예를 들어 Ethernet일 경우 MTU 1500에 IP 헤더크기 20byte TCP 헤더 크기 20byte를 제외한 1460이 MSS 값이다.
MSS = MTU - ip header의 크기(최소 20byte) - TCP header의 크기(최소 20byte)
MSS의 선택
TCP header는 20byte 이상을 사용한다. IP header 역시 20byte 이상이다. 따라서 Header로 최소 40byte를 써야 하는데 모두 데이터와 관련 없는 과부하이다.
만약 MSS를 너무 작게 하면 대역폭을 비효율적으로 쓰게 된다. 예를 들어 MSS를 40byte로 한다면 데이터의 비율이 최대 50%밖에 안된다.
나머지는 그냥 Header일뿐이다. 많은 세그먼트 데이터 그램은 더 비효율적으로 송신될 것이다.
Data Packet이란?
Data packet이란 네트워크를 통해서 출발지 - 목적지로 경로사이의 단일단위를 Packet이라고 한다.
각각의 Packet은 목적지 정보와 실제 정보(Payload)를 가지고 있다.
참고자료 :
https://gmldbd94.tistory.com/165
http://ktword.co.kr/test/view/view.php?nav=2&opt=&m_temp1=638&id=484
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=roser111&logNo=221179205016