Tại sao kích thước tin nhắn tối đa BGP được chọn là 4096? Tại sao không 2 ^ 16?


7

Độ dài tin nhắn BGP trong 2 byte. Vậy tại sao kích thước tin nhắn bgp tối đa không thể là 65535? Tại sao lại là 4096?


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:


14

Độ dài tin nhắn BGP trong 2 byte. Vậy tại sao kích thước tin nhắn bgp tối đa không thể là 65535? Tại sao lại là 4096?

Trả lời chính thức

Trích dẫn Tony Li khi anh trả lời câu hỏi này trong Danh sách IDR :

1a) Có một kích thước cố định là tốt bởi vì nó làm cho việc thực hiện giao thức trở nên dễ dàng. Không có điểm nào để có sự phức tạp trong việc thực hiện nếu nó không mang lại lợi ích. Các thông điệp lớn không mang lại lợi ích tuyệt vời, vì chúng cần đủ lớn để mang các thuộc tính đường dẫn và các tiền tố liên quan. Đối với mục đích này, 4k có lẽ là đủ cho đến nay.

1b) Trong lịch sử, 4k được coi là hơi lãng phí. Tất nhiên, nó thật đơn giản so với EGP sử dụng các gói bị phân mảnh. Muốn phân tích một jumbo-gram 16k? Quan tâm để gỡ lỗi đó? Tin tôi đi, nó không vui đâu.

2) Kích thước tin nhắn 4k hoàn toàn độc lập với kích thước cửa sổ TCP. Việc triển khai là hoàn toàn miễn phí để soạn bất kỳ số lượng tin nhắn nào, mỗi tin nhắn nằm trong giới hạn 4k. Việc triển khai sau đó có thể nhồi nhét bất kỳ số lượng tin nhắn nào vào ổ cắm TCP của nó, cho đến giới hạn đệm của TCP đó.

2a) Do đó, kích thước thư KHÔNG giới hạn hiệu suất, ngoại trừ khi việc triển khai thực sự có thể lấp đầy thư. Mọi người duy trì việc triển khai hiện tại có thể kêu gọi ở đây xem họ có thấy điều này hay không.

Vì vậy, tóm lại, có, giới hạn kích thước thư 4k là một tình huống tốt cho BGP , cho cách ứng xử và công việc mà nó làm. Điều này KHÔNG nhất thiết phải khái quát hóa cho các giao thức khác, (ví dụ OSPF) trong đó 4k vượt quá các MTU phổ biến nhất. Trong những trường hợp đó, bạn sẽ bị phân mảnh và điều đó thật tệ.

Những suy nghĩ khác

65536/4096 = 16

Chúng ta có thực sự muốn các yêu cầu RAM tạm thời của BGP nhân với 16 không? Hãy nhớ rằng dưới vỏ bọc, nhiều triển khai BGP được viết bằng C, điều đó có nghĩa là BGP có thể cần mallockhoảng trống cho mỗi tin nhắn đến kích thước tin nhắn tối đa.

Câu hỏi tu từ bắt buộc ...

  • Tại sao chúng ta có bất kỳ giới hạn kích thước thay đổi trong phần mềm?
  • Tại sao không phải là số nguyên C a long long?

Giả sử chúng ta có 100.000 tiền tố BGP với 15.000 kết hợp thuộc tính duy nhất; hãy giả sử việc triển khai BGP của chúng tôi đóng gói các tiền tố vào BGP UPDATEcác thông điệp với hiệu quả 100%. Vì vậy, chúng tôi cần 15.000 BGP UPDATEtin nhắn.

15000 tin nhắn * 4096 byte / tin nhắn = 58MB bộ đệm tin nhắn BGP tổng hợp được sử dụng

15000 tin nhắn * 65536 byte / tin nhắn = 937 MB bộ đệm tin nhắn BGP tổng hợp được sử dụng


0

RFC4271 nói vậy? Giới hạn cũng có mặt trong BGP 3 . Với mạng internet nhỏ vào thời điểm BGP được tạo ra trên chiếc khăn ăn huyền thoại, tôi muốn nói rằng nó được chọn chính xác theo số lượng bit trong IPv4.

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.