报文格式
以下是正常端口号的排版,上面排版是教科书中为了排版而这样规划的。(低序到高序)
解析
- 双全工:既能接收数据,也能发送数据。
- 16 位源端口号:范围在 0 - 15 个 bit 位,即 0 - 65535(0 - 2^16-1)。(平时的应用程序端口号小于65535);
- 16 位目的端口号:范围在16 - 31 个 bit 位 ,范围也是 0 - 65535。
关于端口号划分
0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定
的.
1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围
分配的
- 16位 UDP 长度: 范围在 32 - 47 个 bit 位,范围也是 0 - 65535,这个长度表示整个数据报(UDP 首部 + UDP 数据)的最大长度。
也就是说如果根据 UDP 协议传输数据,含 UDP 首部 一次性最多只能传输 65535 个 Byte,即 64 kb(1 KB = 1024 B)。在当今来看,这个传输量是非常小的。
实际上只能传输 65507 字节,65535 减去 IP 协议伪首部的 20 个 Byte 和 8 个 Byte 首部,
即 65535 - 20 - 8 = 65507,约等于 64 KB。
65507字节 也是理论上的最大传输数据,而在下层数据链路层最大传输单元是1500字节的情况下,要想IP层不分包,那么UDP数据包的最大大小应该是1500字节 – IP头(伪首部)(20字节) – UDP头(首部)(8字节) = 1472字节。不过鉴于Internet上的标准MTU值为576字节,所以建议在进行Internet的UDP编程时,最好将UDP的数据长度控制在 (576-8-20)548字节以内。
- 16 为 UDP 校验和:如果校验和出错, 就会直接丢弃。
UDP 优点
- 传输速度快;
- 支持 “广播”(TCP 不支持 “广播”,TCP 和 UDP 都支持 “单播”)。
广播:老师给同学们上课;
单播:悄悄话。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步