이더넷 프레임의 MTU 크기가 1500 바이트로 계산 된 이유는 무엇입니까?


38

이 수에 도달하기 위해 수행 된 특정 계산과 해당 계산에 고려 된 요소는 무엇입니까?


2
IEEE 사람들은 FCS가 오늘 1.5k에서 제공하는 수학 보장이 더 이상 9k에서 모두 사실이 아니기 때문에 9k를 표준에 추가하는 것을 거부하고 있습니다.
ytti

5
@ytti, 그것은> 1500 프레임 승인에 대한 논쟁 중 하나 일뿐입니다. Geoff Thomson의 편지 (점보 프레임 표준화에 대한 IEEE 반대 의견 포함)의 전문은 초안 -ietf-isis-ext-eth-01 부록 1에 있습니다. 반대는 "고려"라는 단어로 시작합니다
Mike Pennington

어떤 대답이 도움이 되었습니까? 그렇다면 질문에 대한 답변이 계속 나오지 않도록 답변을 수락해야합니다. 또는 자신의 답변을 제공하고 수락 할 수 있습니다.
Ron Maupin

답변:


27

답은 초안 -ietf-isis-ext-eth-01 , 섹션 3-5에 있습니다. 이더넷은 이더넷 II (DIX) 및 802.3 캡슐화에서 동일한 2 바이트의 다른 방식을 사용합니다.

  • 이더넷 II는 대한 이더넷 소스 MAC 주소 후 처음 2 바이트를 사용하는 유형
  • 802.3은 길이 필드에 동일한 2 바이트를 사용 합니다.

이더넷 프레임에서 충돌하는 바이트가 어디에 있는지 정확하게 보여주는 주석이 달린 각 프레임 유형 아래에 다이어그램이 포함되어 있습니다.

  • RFC 894 (일반적으로 이더넷 II 프레임이라고 함)는 이러한 바이트를 유형에 사용합니다.

       +----+----+------+------+-----+
       | DA | SA | Type | Data | FCS |
       +----+----+------+------+-----+
                 ^^^^^^^^
    
       DA      Destination MAC Address (6 bytes)
       SA      Source MAC Address      (6 bytes)
       Type    Protocol Type           (2 bytes: >= 0x0600 or 1536 decimal)  <---
       Data    Protocol Data           (46 - 1500 bytes)
       FCS     Frame Checksum          (4 bytes)
    
  • 802.2 LLC / SNAP가있는 IEEE 802.3 (ISIS Spanning-Tree에서 사용)은 길이 에이 바이트를 사용합니다.

       +----+----+------+------+-----+
       | DA | SA | Len  | Data | FCS |
       +----+----+------+------+-----+
                 ^^^^^^^^
    
       DA      Destination MAC Address (6 bytes)
       SA      Source MAC Address      (6 bytes)
       Len     Length of Data field    (2 bytes: <= 0x05DC or 1500 decimal)  <---
       Data    Protocol Data           (46 - 1500 bytes)
       FCS     Frame Checksum          (4 bytes)
    

이더넷 II와 802.3 캡슐화는 모두 동일한 링크에 존재할 수 있어야합니다. IEEE가 이더넷 페이로드가 1536 바이트 (0x600 16 진수)를 초과하도록 허용 한 경우 큰 802.3 LLC 또는 SNAP 프레임을 이더넷 II 프레임과 구별하는 것은 불가능합니다. 이더넷의 유형 값은 0x600 16 진수로 시작합니다.

편집하다:

누구나 관심이있는 경우 이더넷 버전 1 사양이더넷 버전 2 사양 의 PDF 사본에 대한 링크를 포함하고 있습니다 ...



2
글쎄, 이더넷 II 프레임의 유형 필드는 최대 802.3의 최대 길이가 바로 아래에 있었기 때문에 IEEE 802.3x-1997 사양에서 0x0600으로 시작합니다. 그것은 원인이 아니라 단지 효과 일뿐입니다.
nos

1
@nos, 이것이 원인이 아니라 효과라고 주장하기 위해서는 원인을 증명할 수 있다고 가정합니다. 제안 된 원인에 대해 신뢰할만한 증거를 제공 할 수 있습니까? 1980 년에 출판 된 최초의 이더넷 버전 1 사양은 이미 Type 필드를 사용하고 있으며 1984 년에 IP 프로토콜은 Ethertype 0x0800
Mike Pennington

2
실제로 이더넷 I 및 II 사양에는 이미 유형 필드가 있었으며 (그 당시에는 제한이 없었습니다) 최대 데이터 길이는 1500으로 지정되었습니다. 당시에는 802.3 프레임이 없었습니다. 따라서 유형 필드로 인해 나중에 1500에 한계가 추가되었다고 결론 내릴 수 없습니다.
nos

2
@nos 동의하지 않는다. Ethernet II는 기존 표준과 공존해야했다. 또한 동일한 표준을 사용하여 이전 표준의 유형 필드와 새 표준의 길이 필드로 작동하도록 정의했습니다. 동일한 네트워크에서 공존해야하는 두 표준간에 혼동의 가능성이 없어야한다는 점을 감안하면 기존 유형처럼 보일 수있는 길이는 허용되지 않습니다. 기존 유형 목록 0x600을 선택해야하는 것보다 적은 수로 시작했습니다 . 표준으로의 추가 확장을 허용하지 않으려면 필요한 경우 사용 가능한 밴드가 남아 있어야합니다.

14

1500 바이트 범위의 다른 쪽 끝에서이 한계를 도입하는 두 가지 요인이있었습니다. 첫째, 패킷이 너무 길면 이더넷 케이블을 사용하여 다른 트래픽에 추가 지연이 발생합니다. 다른 요소는 초기 공유 케이블 트랜시버에 내장 된 안전 장치였습니다. 이 안전 장치는 도청 방지 시스템이었습니다.트랜시버에 연결된 장치에서 오류가 발생하여 지속적으로 전송을 시작하면 다른 트래픽이 해당 이더넷 케이블 세그먼트를 사용하지 못하게 효과적으로 차단합니다. 이러한 상황을 방지하기 위해 초기 트랜시버는 전송이 약 1.25 밀리 초를 초과하면 자동으로 꺼 지도록 설계되었습니다. 이는 1500 바이트 이상의 데이터 내용과 같습니다. 그러나 송수신기가 babbling이 감지되는 경우 전송을 차단하기 위해 간단한 아날로그 타이머를 사용했기 때문에 안전 장치를 트리거하지 않는 최대 데이터 크기에 대한 안전한 근사값으로 1500 한계가 선택되었습니다.

출처 : http://answers.yahoo.com/question/index?qid=20120729102755AAn89M1


5
안녕하세요 @ user1171 : StackExchange 기본 스타일은 여기에 답변 자료를 포함시키고 참조로 연결하는 것입니다. 이렇게하면 링크가 결국 썩을 때도 그 대답이 여전히 유용합니다.
Craig Constantine

재버 기능을 사용하려면 10Mbit / s (IEEE 802.3 조항 8.2.1.5)의 경우 20 ~ 150ms 후 , 고속 이더넷 (Clause 27.3.2.1.4)의 경우 40 ~ 75kbit , 기가비트 이더넷의 경우 두 배인 MAU를 종료해야합니다 . 프레임 길이를 훨씬 초과합니다. Yahoo 게시물이 잘못되었습니다.
Zac67

10

이더넷이 원래 10Base5와 10Base2를 가진 공유 매체 또는 버스로 개발되었을 때, 프레임의 충돌이 빈번했고 설계의 일부로 예상되었습니다. 대부분의 모든 것이 별도의 충돌 도메인으로 전환되고 아무도 충돌을 예상하지 않는 전이중으로 실행되는 오늘날과는 대조적입니다.

"에테르"를 공유하는 메커니즘은 CMSA / CD (Carrier Sense Multiple Access / Collision Detection)를 사용했습니다.

Carrier Sense는 전송하려는 스테이션이 해당 매체의 다중 액세스이므로 다른 사람이 말하고 있지 않은지 확인하기 위해 캐리어 신호를 감지하여 유선을 청취해야 함을 의미했습니다. Allowing 1500 bytes (though an arbitrary number as far as I can tell) was a compromise that meant a station could not capitalize the wire too long by talking too much at one time. 프레임에서 전송되는 바이트 수가 많을수록 다른 모든 스테이션은 해당 전송이 완료 될 때까지 더 오래 기다려야합니다. 다시 말하면 버스트가 짧거나 MTU가 작을수록 다른 스테이션이 더 많은 기회를 전송하고 공유 비율이 높아졌다는 의미입니다. 전송 매체 (10Mb / s)의 속도가 느릴수록 스테이션은 MTU가 증가함에 따라 전송 지연 시간이 길어집니다 (1500을 초과하는 경우).

흥미로운 합리적 질문은 왜 최소 프레임 크기가 64 바이트입니까? 프레임은 512 비트 인 "슬롯 (slot)"으로 전송되었으며 매체에서 왕복 신호 전파를 위해 51.2us를 사용했습니다. 스테이션은 IFG (인터 프레임 간격 96 비트)를 감지하여 통화 시작 시점을 청취해야 할뿐만 아니라 다른 프레임과의 충돌을 청취해야합니다. Collision Detection은 전파 지연을 최대로 가정하고이를 두 배로 (안전하게) 두 배로 증가시켜 전선의 다른 쪽 끝에서 거의 같은 시간에 시작하는 전송 또는 누군가가 케이블의 끝. 스테이션은 충돌을 감지하기 전에 데이터 전송을 완료해서는 안되므로 512 비트 또는 64 바이트를 기다리는 것이이를 보장합니다.


2

원래 최대 페이로드는 802.3에서 1500 바이트로 정의되었습니다. Ethernet v2는> = 1536의 프레임 길이를 지원하며 이것이 IP 구현이 사용하는 것입니다. 대부분의 통신 사업자 급 공급 업체는 요즘 약 9000 바이트 ( "점보 프레임")를 지원합니다. 1500 바이트는 모든 이더넷 구현이 지원해야하는 표준이므로 일반적으로 모든 인터페이스에서 기본값으로 설정됩니다.


maxValidFrame을 Google에 지정해야합니다. IEEE에 의해 정의되었습니다. 결과적으로 오늘날 일반적인 9KB 점보 프레임 구현은 공식적으로 이더넷을 준수하지 않지만 이더넷 II 페이로드에 대해서는 잘 작동합니다.
Mike Pennington

엄밀히 말하면 802.3을 준수하지 않습니다. IP는 이더넷 v2를 사용하므로 802.3도 생각하지 않는 경향이 있습니다.

5
점보는 802.3x가 비준 된 후 Ethernet II 또는 802.3을 준수하지 않습니다. 802.3x 조항 4.2.7.1은 1500B 페이로드에서 maxValidFrame을 정의합니다. 따라서 1997 년 이후 1500 바이트를 초과하는 페이로드는 호환되지 않습니다. 이 문제와 관련하여 IEEE 802.3 의장이 IETF에 보낸 서한을 참조하십시오 . 요컨대, 802.3은 프레임 표준 이상의 것입니다 ... 프레임 및 하드웨어 요구 사항을 모두 정의합니다. 이것은 하드웨어 구현이 프레임 형식의 준수에 의존한다는 것을 의미합니다. CSMA-CD가있는 반이중에는 1500B 미만의 페이로드가 필요합니다.
Mike Pennington

-1

최소 이더넷 프레임은 10M 이더넷의 경우 512 비트 길이 (64 바이트) 인 이더넷 슬롯 시간을 기반으로합니다. 이더넷 헤더와 CRC에 대해 18 바이트를 빼면 46 바이트의 페이로드가 발생합니다.

CSMA / CD가 올바르게 작동하도록 이더넷 슬롯 시간이 지정되었습니다. 최소 프레임 크기가 가장 긴 케이블 길이를 초과하지 않아야합니다. 결정 론적 충돌 감지가 불가능하다면 불가능합니다. 케이블의 최대 길이에서 충돌 감지 후 발신자에게 반환 할 충돌 감지 신호가 필요합니다.


3
최소 이더넷 프레임 크기를 결정하는 메커니즘이 현재 1500 바이트 최대 사실상 표준과 어떤 관련이 있는지 이해하는 데 어려움을 겪고 있습니다. 자세히 설명 해주세요!
Stuggi

2
@Stuggi 그렇지 않습니다.
Ken Sharp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.