报文格式
以下是正常端口号的排版,上面排版是教科书中为了排版而这样规划的。(低序到高序)
解析
- 双全工:既能接收数据,也能发送数据。
- 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 IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!