每個udp包的最大大小是多少?
65507 約等於 64K
為什么最大是65507?
因為udp包頭有2個byte用於記錄包體長度. 2個byte可表示最大值為: 2^16-1=64K-1=65535
udp包頭占8字節, ip包頭占20字節, 65535-28 = 65507
如果要發送的udp報文大於65507怎么辦?
需要在應用層由開發者自己分片發送. 分片的粒度最大65507字節. 系統的sendto函數是不支持大於65507字節的單包發送的.
UDP包頭格式:
65507 約等於 64K
為什么最大是65507?
因為udp包頭有2個byte用於記錄包體長度. 2個byte可表示最大值為: 2^16-1=64K-1=65535
udp包頭占8字節, ip包頭占20字節, 65535-28 = 65507
如果要發送的udp報文大於65507怎么辦?
需要在應用層由開發者自己分片發送. 分片的粒度最大65507字節. 系統的sendto函數是不支持大於65507字節的單包發送的.
UDP包頭格式:

測試結果如下, 當大小為65508時報錯.