MTU 란 무엇입니까? MTU 값이 일반적으로 1500 인 이유는 무엇입니까?

원래 주소 :

https://yq.aliyun.com/articles/222535

저자 덕분에!

 

MTU 란?

최대 전송 단위 (약칭 MTU), 중국어 이름은 최대 전송 단위입니다.

이것은 어떤 종류의 네트워크 개념입니까?

다음 표에서 볼 수 있듯이 7 계층 네트워크 프로토콜에서 MTU는 데이터 링크 계층 의 개념 입니다 . MTU는 IP, ICMP 등과 같은 상위 계층 프로토콜 의 크기 인 데이터 링크 계층의 페이로드를 제한합니다 .

OSI의 레이어 풍모 TCP / IP 프로토콜 제품군
응용 계층 파일 전송, 이메일, 파일 서비스, 가상 터미널 TFTP, HTTP, SNMP, FTP, SMTP, DNS, 텔넷
프레젠테이션 레이어 데이터 형식화, 코드 변환, 데이터 암호화 동의하지 않음
세션 계층 다른 연락처와의 연결 해제 또는 연결 설정 동의하지 않음
전송 계층 종단 간 인터페이스 제공 TCP, UDP
네트워크 계층 데이터 패킷에 대한 라우팅 선택 IP , ICMP , RIP , OSPF , BGP , IGMP
데이터 링크 계층 주소 지정 프레임 전송 및 오류 감지 기능 슬립, CSLIP, PPP, ARP, RARP, MTU
물리적 계층 이진 데이터 형태로 물리적 미디어의 데이터 전송 ISO2110, IEEE802, IEEE802.2

MTU의 용도는 무엇입니까?

가장 간단한 시나리오를 제공하기 위해 가정의 랩톱에서 인터넷을 검색하고 라우터를 사용하여 통신 네트워크에 연결 한 다음을 방문 www.baidu.com합니다. 랩톱의 이더넷 데이터 프레임은 총 다음 경로를 통과합니다.

笔记本 -> 路由器 -> 电信机房 -> 服务器

그중 각 노드에는 다음과 같은 MTU 값이 있습니다.

 
  1. 1500 1500 1500

  2. 笔记本 -> 路由器 -> 电信机房 -> 服务器

이제 노트북의 최대 MTU를 1700으로 설정 한 다음 특 대형 IP 데이터 패킷 (2000)을 전송한다고 가정 해 보겠습니다. 이때 외부 네트워크에서 전송할 때 1700, 300, 2 개의 패킷으로 분할됩니다. 그런 다음 전송할 헤더 정보를 추가하십시오.

 
  1. 1700 1500 1500

  2. 笔记本 -> 路由器 -> 电信机房 -> 服务器

라우터는 1700 프레임을 수신하고 자체적으로 설정된 최대 값 인 1500보다 큰 것을 발견했습니다. IP 패킷의 DF 플래그 비트가 1 (서브 패키징이 허용되지 않음을 의미 함)이면 라우터가 직접 폐기합니다. 패킷이 통신에 전혀 도달하지 않을 것입니다 컴퓨터 실에서 서버에 도달 할 수 없으므로 여기서 MTU가 실제로 각 노드의 제어 값임을 알 수 있습니다. 데이터 프레임이이 값보다 크면 조각화하거나 직접 버릴 수 있습니다.

왜 1500입니까?

실제로 표준 이더넷 데이터 프레임의 크기는 다음과 같습니다. 1518헤더 정보는 14 바이트이고 테일 체크섬 FCS는 4 바이트를 차지하므로 상위 계층 프로토콜에 예약 된 실제 데이터 크기는 1518-14-4 = 1500입니다. 그렇다면 1518의 가치는 어디에서 왔습니까?

더 큰 가치를 가정

MTU 값이 IP 패킷 크기와 같다고 가정하면 IP 패킷의 크기는 65535이고 이더넷 프레임 헤더를 더한 다음 이더넷 프레임의 크기는 65535 + 14 + 4 = 65553다음과 같습니다. 완벽 해 보이지만 발신자는 그렇지 않습니다. 포장을 풀고 수신기를 재구성 할 필요가 없습니다.

그런 다음 현재 대역폭이 다음과 같다고 가정 100Mbps합니다. 이더넷 프레임은 전송에서 인식 할 수있는 가장 작은 단위이고 더 아래쪽은 0101에 해당하는 광 신호이므로 대역폭은 동시에 하나의 이더넷 프레임 만 전송할 수 있습니다. 동시에 둘 이상을 보내면 반대쪽 끝이 이더넷 프레임을 재 조립할 수 없습니다. 100Mbps대역폭에서 (중간에 손실이 없다고 가정)이 프레임을 보내는 데 필요한 시간을 계산해 보겠습니다.

( 65553 * 8 ) / ( 100 * 1024 * 1024 ) ≈ 0.005(s)

100M 네트워크에서 프레임을 전송하는 데 5ms가 걸립니다. 이는 다른 프로세스가이 5ms 동안 데이터를 보낼 수 없음을 의미합니다. 이전 전화 걸기이고 네트워크 속도가 2M에 불과한 경우 :

( 65553 * 8 ) / ( 2 * 1024 * 1024 ) ≈ 0.100(s)

100ms, 이것은 단순히 악몽입니다. 사실 이것은 마치 신호등과 같아서 시간을 합리적으로 설정하고 교대로지나 가야합니다. 그렇지 않으면 신호등이 항상 같은 방향으로 녹색이면 반대 방향은 차단됩니다.

너무 커서 설정을 더 작게 할 수 있습니까?

MTU 값이 100으로 설정되어 있다고 가정하면 단일 프레임의 전송 시간은 2Mbps 대역폭이어야합니다.

( 100 * 8 ) / ( 2 * 1024 * 1024 ) * 1000 ≈ 5(ms)

문제는 MTU가 아무리 설정되어 있어도 이더넷 헤더와 프레임 테일의 크기는 14 + 4로 고정되어 있다는 것입니다. 따라서 MTU가 100 일 때 이더넷 프레임의 전송 효율은 다음과 같습니다.

( 100 - 14 - 4 ) / 100 = 82%

공식은 다음과 같습니다. ( T - 14 - 4 ) / TT가 무한대에 가까울 때 효율성은 가깝습니다 100%. 즉, MTU 값이 클수록 전송 효율이 가장 높지만 전송 시간의 이전 시점을 기준으로 처음부터 절충안을 선택합시다. 그리고 끝은 18입니다. 그런 다음 총 1500을 합치면 총 크기는 1518, 전송 효율 :

1500 / 1518 =  98.8%

100Mbps 전송 시간 :

( 1518 * 8 ) / ( 100 * 1024 * 1024 ) * 1000 = 0.11(ms)

2Mbps 전송 시간 :

( 1518 * 8 ) / ( 2 * 1024 * 1024 ) * 1000 = 5.79(ms)

전체 시간이 허용됩니다

최소값은 64로 제한됩니다.

왜 64입니까?

이것은 실제로 반이중 이더넷 프레임 충돌과 관련이 있으며 관심있는 학생들은 스스로 검색 할 수 있습니다.

게임을 할 때 MTU를 1480으로 변경할 때 왜 멈추지 않나요?

라우터의 기본값은 대부분 1500이고 이론상 문제가 없는데 게임을 원활하게 할 때 왜 1480으로 변경할 수 있습니까? 그 이유는 당시 인터넷 서핑에 ADSL을 사용하고 있었고 ADSL에서 사용하는 PPPoE 프로토콜을 사용했기 때문입니다.

PPPoE

PPPoE 프로토콜은 이더넷과 IP 사이에 있습니다. 프로토콜은 PPP (Point to Point Protocol)와 oE (이더넷을 통한), 즉 이더넷의 PPP 프로토콜로 나뉘며 PPPoE 프로토콜 헤더 정보는 다음과 같습니다.

| VER(4bit) | TYPE(4bit) | CODE(8bit) | SESSION-ID(16bit) | LENGTH(16bit) |

여기에는 총 48 비트가 있는데, 이는 6 바이트입니다. 그러면 다른 2 바이트는 무엇입니까? 대답은 2 바이트를 차지하는 PPP 프로토콜의 ID 번호이므로 PPPoE 환경에서 최상의 MTU 값은 1500-6-2 = 1492입니다.

내 서핑 방식

내 인터넷 경로는 다음과 같습니다.

PC -> 路由器 -> 电信

라우터에서 전화를 걸면 PC가 라우터에 연결되어 인터넷에 액세스합니다.

근본 원인

문제는 라우터 전화 접속에 있습니다. PC 전화 접속 인 경우 PC는 PPPoE를 캡슐화하고 MTU : 1492에 따라 이더넷 프레임을 캡슐화합니다. 라우터를 통해서도 라우터는 현재 만 전달합니다. 그리고 그것을 풀지 않을 것입니다.

라우터로 전화를 걸 때 PC는 라우터의 통신 모드를 알지 못하며 네트워크 카드 설정 및 기본 MTU 1500으로 이더넷 프레임을 캡슐화합니다. 라우터에 도달하면 라우터는 라우터에 의해 캡슐화되어야합니다. PPPoE 프로토콜과 8이 경우 바이트의 헤더 정보를 압축 해제해야합니다. 라우터는이 프레임의 내용을 두 개의 프레임으로 분할하여 전송할 프레임 1 개는 1492 개, 다른 프레임은 8 개, 그리고 PPPoE 헤더를 전송합니다. 보내기에 추가됩니다.

일반적으로 라우터가 데이터 양을 처리 할 수 ​​있기 때문에 게임이 멈춰 있지 않지만 그룹 몬스터 AOE의 경우 단시간에 데이터 양이 너무 많아 라우터가 처리 할 수 ​​없어 패킷 손실이 발생합니다. . 연결이 끊어졌습니다.

게시물에 언급 된 1480은 두 번째 다이얼링으로 인한 또 다른 PPPoE 캡슐화를 피하기 위해 가능한 한 작게 설정 될 수 있으며, 시간이 오래 걸리기 때문에 그 시간에 패킷을 캡처하기 위해 현장으로 돌아갈 방법이 없습니다.

결론적으로

1518의 값은 전송 효율과 전송 시간을 고려하여 선택한 값으로 현재 네트워크 링크에 노드가 너무 많기 때문에 한 노드의 MTU 값이 다른 노드와 다를 경우 가져 오기가 쉽다. 포장을 풀고 재구성하면 발송 실패로 이어질 수도 있습니다.

추천

출처blog.csdn.net/hugo_lei/article/details/106531724