Tại sao kích thước MTU cho khung ethernet được tính là 1500 byte?


38

Có bất kỳ tính toán cụ thể nào đã được thực hiện để đi đến con số này không, và các yếu tố đã được xem xét cho tính toán đó là gì.


2
Mọi người của IEEE đang chống lại việc thêm 9k vào tiêu chuẩn vì đảm bảo toán học FCS mang lại ngày hôm nay ở mức 1,5k sẽ không còn đúng nữa ở mức 9k.
ytti

5
@ytti, đó chỉ là một trong những đối số chống lại chứng thực> 1500 khung hình. Toàn bộ thư của Geoff Thomson (có chứa các phản đối của IEEE về việc chuẩn hóa các khung jumbo) nằm trong dự thảo-ietf-isis-ext-eth-01 Phụ lục 1 . Sự phản đối bắt đầu bằng từ "Cân nhắc"
Mike Pennington

Có câu trả lời nào giúp bạn không? nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

Câu trả lời:


27

Câu trả lời là trong bản nháp-ietf-isis-ext-eth-01 , Phần 3-5. Ethernet sử dụng cùng hai cách khác nhau trong các gói Ethernet II (DIX) và 802.3:

  • Ethernet II sử dụng hai byte đầu tiên sau địa chỉ mac nguồn Ethernet cho Loại
  • 802.3 sử dụng hai byte giống nhau cho trường Độ dài .

Tôi đang bao gồm một sơ đồ được chú thích bên dưới mỗi loại khung, hiển thị chính xác vị trí của các byte xung đột trong tiêu đề ethernet:

  • RFC 894 (thường được gọi là khung Ethernet II) sử dụng các byte này cho Loại

       +----+----+------+------+-----+
       | 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)
    
  • IEEE 802.3 với 802.2 LLC / SNAP (được sử dụng bởi Spanning-Tree, ISIS) sử dụng các byte này cho Độ dài

       +----+----+------+------+-----+
       | 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)
    

Cả hai đóng gói Ethernet II và 802.3 phải có thể tồn tại trên cùng một liên kết. Nếu IEEE cho phép tải trọng Ethernet vượt quá 1536 byte (0x600 hex), thì không thể phân biệt các khung 802.3 LLC hoặc SNAP lớn với các khung Ethernet II; Giá trị Loại của ethernet bắt đầu ở 0x600 hex.

CHỈNH SỬA:

Tôi đang bao gồm một liên kết đến các bản sao pdf của thông số Ethernet Phiên bản 1thông số Ethernet Phiên bản 2 , trong trường hợp có ai quan tâm ...



2
Chà, các khung Ethernet II có trường loại của chúng bắt đầu từ 0x0600 (từ thông số kỹ thuật của IEEE 802.3x-1997) vì độ dài tối đa tối đa của 802.3 chỉ ở dưới mức đó. Vì vậy, đó chỉ là một hiệu ứng, không phải là một nguyên nhân.
số

1
@nos, để tuyên bố rằng đây là một hiệu ứng thay vì nguyên nhân giả định rằng bạn có thể chứng minh nguyên nhân ... bạn có thể cung cấp bằng chứng xác thực cho nguyên nhân được đề xuất của mình không? Thông số kỹ thuật Ethernet phiên bản 1 ban đầu được xuất bản năm 1980 đã sử dụng trường Loại và năm 1984, giao thức IP được chỉ định bằng Ethertype 0x0800
Mike Pennington

2
Thật vậy, thông số ethernet I và II đã có trường loại (lúc đó không có hạn chế) và đã chỉ định độ dài dữ liệu tối đa là 1500 - tại thời điểm đó không có khung 802.3. Vì vậy, người ta không thể kết luận rằng giới hạn 1500 đã được thêm vào trong một thông số kỹ thuật sau vì trường loại.
số

2
@nos Tôi không đồng ý, Ethernet II phải cùng tồn tại với tiêu chuẩn đã có từ trước. Và nó cũng xác định việc sử dụng cùng một trường để hoạt động như cả trường loại trong tiêu chuẩn trước và trường độ dài trong tiêu chuẩn mới. Cho rằng PHẢI KHÔNG có khả năng nhầm lẫn giữa hai tiêu chuẩn, phải cùng tồn tại trong cùng một mạng, bất kỳ độ dài nào có thể trông giống như một loại hiện có sẽ không được phép. Vì danh sách loại hiện có bắt đầu ở 0x600một số ít hơn số đó phải được chọn. Để cho phép không mở rộng thêm cho tiêu chuẩn, cần phải có một số băng tần còn lại nếu cần.

14

Ở đầu kia của phạm vi - 1500 byte, có hai yếu tố dẫn đến việc đưa ra giới hạn này. Đầu tiên, nếu các gói quá dài, chúng sẽ gây ra sự chậm trễ thêm cho lưu lượng khác bằng cáp Ethernet. Yếu tố khác là một thiết bị an toàn được tích hợp trong các bộ thu phát cáp được chia sẻ sớm. Thiết bị an toàn này là một hệ thống chống lảm nhảm.Nếu thiết bị được kết nối với bộ thu phát bị lỗi và bắt đầu truyền liên tục, thì thiết bị đó sẽ chặn hiệu quả bất kỳ lưu lượng nào khác sử dụng phân đoạn cáp Ethernet đó. Để bảo vệ khỏi điều này xảy ra, các máy thu phát sớm được thiết kế để tự động tắt nếu truyền vượt quá khoảng 1,25 mili giây. Điều này tương đương với một nội dung dữ liệu chỉ hơn 1500 byte. Tuy nhiên, do bộ thu phát sử dụng bộ hẹn giờ tương tự đơn giản để tắt đường truyền nếu phát hiện bập bẹ, nên giới hạn 1500 được chọn là xấp xỉ an toàn với kích thước dữ liệu tối đa không kích hoạt thiết bị an toàn.

Nguồn: http://answers.yahoo.com/question/index?qid=20120729102755AAn89M1


5
Hi @ user1171: Kiểu ưa thích của StackExchange là bao gồm tài liệu trả lời ở đây và liên kết ra làm tài liệu tham khảo. Bằng cách đó, khi liên kết cuối cùng bị mục nát, câu trả lời vẫn hữu ích.
Craig Constantine

Chức năng jabber yêu cầu MAU phải tắt sau 20 đến 150 ms trong 10 Mbit / s (Điều khoản IEEE 802.11.3 8.2.1.5), 40 đến 75 kbit cho Fast Ethernet (Điều 27.3.2.1.4) và hai lần cho Gigabit Ethernet, vượt xa chiều dài khung hình. Bài đăng của Yahoo là sai.
Zac67

10

Khi Ethernet ban đầu được phát triển như một phương tiện chia sẻ hoặc xe buýt với 10Base5 và 10Base2, các va chạm của khung là thường xuyên và được dự kiến ​​là một phần của thiết kế. Tương phản điều này cho đến ngày nay khi hầu hết mọi thứ được chuyển đổi với các miền va chạm riêng biệt và chạy song công hoàn toàn, nơi không ai mong muốn nhìn thấy va chạm.

Cơ chế chia sẻ "ether" được sử dụng CMSA / CD (Phát hiện va chạm / phát hiện va chạm của Carrier Sense)

Carrier Sense có nghĩa là một trạm muốn truyền phát phải lắng nghe dây - cảm nhận tín hiệu sóng mang - để đảm bảo không có ai khác đang nói vì đó là Đa truy cập trên phương tiện đó. 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. Càng nhiều byte được truyền trong một khung, tất cả các trạm khác phải đợi cho đến khi quá trình truyền đó hoàn thành. Nói cách khác, các vụ nổ ngắn hơn hoặc MTU nhỏ hơn có nghĩa là các trạm khác có nhiều cơ hội hơn để truyền tải và chia sẻ công bằng hơn. Tốc độ của môi trường truyền (10Mb / giây) càng chậm, các trạm sẽ có độ trễ truyền lâu hơn khi MTU tăng (nếu được phép vượt quá 1500).

Một câu hỏi tất yếu thú vị là tại sao kích thước khung tối thiểu là 64 byte? Các khung được truyền trong các "khe" là 512 bit và mất 51,2us để truyền tín hiệu khứ hồi trong môi trường. Một trạm không chỉ lắng nghe khi nào bắt đầu nói chuyện bằng cách cảm nhận IFG (khoảng cách giữa các khung hình là 96 bit), mà còn phải lắng nghe các va chạm với các khung khác. Phát hiện va chạm giả định độ trễ lan truyền tối đa và tăng gấp đôi (để an toàn) để nó không bỏ lỡ việc truyền bắt đầu cùng lúc từ đầu kia của dây hoặc tín hiệu phản xạ truyền của chính nó khi ai đó quên điện trở kết thúc tại các đầu của cáp. Trạm không được hoàn thành việc gửi dữ liệu của mình trước khi cảm nhận được xung đột, do đó, chờ 512 bit hoặc 64 byte đảm bảo điều này.


2

Ban đầu, tối đa tải trọng được định nghĩa là 1500 byte trong 802.3. Ethernet v2 hỗ trợ độ dài khung> = 1536 và đây là những gì triển khai IP sử dụng. Hầu hết các nhà cung cấp cấp nhà cung cấp hỗ trợ khoảng 9000 byte ("khung jumbo") hiện nay. Vì 1500 byte là tiêu chuẩn mà tất cả các cài đặt Ethernet phải hỗ trợ, đây là thứ thường được đặt làm mặc định trên tất cả các giao diện.


Bạn nên google maxValidFrame, nó được định nghĩa bởi IEEE; do đó, việc triển khai khung jumbo 9KB phổ biến hiện nay không tương thích chính thức với Ethernet, nhưng chúng hoạt động khá tốt đối với tải trọng Ethernet II
Mike Pennington

Nói đúng ra, không tuân thủ theo chuẩn 802.3. IP sử dụng Ethernet v2, vì vậy tôi có xu hướng thậm chí không nghĩ đến 802.3 ...

5
Jumbos không tương thích với Ethernet II hoặc 802.3 sau khi 802.3x được phê chuẩn. Điều khoản 802.3x 4.2.7.1 định nghĩa maxValidFrame với tải trọng 1500B. Do đó, sau năm 1997, bất kỳ tải trọng nào vượt quá 1500 byte đều không tuân thủ. Xem thư mà chủ tịch của IEEE 802.3 gửi cho IETF về vấn đề này . Nói tóm lại, 802.3 không chỉ là một tiêu chuẩn khung ... nó xác định cả yêu cầu khung và phần cứng. Điều này có nghĩa là việc triển khai phần cứng phụ thuộc vào việc tuân thủ định dạng khung. Một nửa song công w / CSMA-CD cần tải trọng <= 1500B.
Mike Pennington

-1

Khung ethernet tối thiểu dựa trên Thời gian Khe Ethernet, có độ dài 512 bit (64 Byte) cho ethernet 10M. Sau khi trừ 18 byte cho tiêu đề ethernet và CRC, bạn nhận được 46 byte tải trọng.

Thời gian khe Ethernet được chỉ định để CSMA / CD hoạt động chính xác. Người ta phải chắc chắn rằng kích thước khung tối thiểu không vượt quá chiều dài dài nhất của cáp; nếu nó đã phát hiện va chạm xác định sẽ là không thể. Sau khi phát hiện va chạm ở độ dài tối đa của cáp, bạn cần tín hiệu phát hiện va chạm để quay lại người gửi.


3
Tôi đang gặp khó khăn trong việc hiểu cơ chế xác định kích thước khung ethernet tối thiểu có liên quan gì đến tiêu chuẩn defacto tối đa 1500 byte hiện tại. Xin hãy giải thích!
Stuggi

2
@Stuggi Không.
Ken Sharp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.