Độ 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?
Độ 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âu trả lời:
Độ 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í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ệ.
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 malloc
khoả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 ...
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 UPDATE
các thông điệp với hiệu quả 100%. Vì vậy, chúng tôi cần 15.000 BGP UPDATE
tin 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