TCP/IP 用户数据报协议

用户数据报协议

  • 传输层的协议
  • 区分统一主机的应用
  • 对于通讯而言(最终目标):区分任务

UDP 用户报文协议

无连接的服务,不可靠的传输,由应用解决差错

报文格式

UDP报文格式

  • 结构 : 首部 + 数据

  • 首部:
    源端口号,目标端口 (16bit)
    UDP报文长度:长度包括了头部的长度
    UDP报文校验和 (整个报文+伪头部) (针对IP的扩展,校验自身报文确保数据的完整性)
    Checksum:实现的时候如果值为零,双方则在通信的时候默认不校验。

  • UDP伪首部:加入通讯双方的IP地址,将通讯双方明确的区分
    IPv4伪首部格式:
    IPv4伪首部格式

    源IP
    目标IP
    报文的协议号(同于 IP协议的协议编号字段protocol)(UDP对应值为17)
    报文长度:指收到的实际的报文长度
    

    (分组发送的时候不包含伪首部,仅仅用在校验的计算)

    IPv6伪首部格式:
    IPv6伪首部格式

        NEXT HEADER 字段填写的与UDP的协议号一致 (17)
    

UDP 协议的封装关系

1
2
3
4
5
6
UDP:message,user datagram protocol
UDP报文封装在IP数据区

层与层之间提供服务接口
UDP -> 确定主机内的一个进程
IP -> 确定一个主机

UDP 多路复用 与 解多路复用

  • 依据:端口号
  • 发送方:收到报文后交付IP层再交付到链路层
  • 接收方:根据分组的首部协议号交给UDP模块处理,UDP根据端口号交给对应的应用进程
    接收队列(关联应用进程,队列长度有限

端口号的获取

1
2
3
4
5
1 中心管理机构统一分配(全球分配方法,well-known)
2 动态分配(进程服务器动态分配)
客户端先与进程服务器联系
进程服务器收到客户端请求后,会动态的将进程服务启动
再将动态分配的端口号反馈给客户端

参考资料:

  • INTERNETWORKING WITH TCP/IP PRINCIPLES, PROTOCOLS, AND ARCHITECTURE Vol1 (6th Edition). DOUGLASE E. COMER