美文网首页
传输层Transport layer UDP, since 20

传输层Transport layer UDP, since 20

作者: Mc杰夫 | 来源:发表于2020-08-04 20:44 被阅读0次

    (2020.08.04)

    User Datagram Protocol (UDP)


    无连接协议connectionless protocol
    通信之前不建立发送方和接收方的连接,双方运输层实体之间没有握手。

    (2020.08.06)

    过程
    RFC768定义的UDP做了运输协议能够做的最少的工作。除了服用和少量的差错检测,没有对IP增加别的东西,差不多是和IP直接打交道。UDP从应用层得到数据,附加上用于多路复用/分解服务的源和目的端口号字段,以及两个其他的小字段,然后将形成的报文段交给网络层。网络层将该运输层报文段封装到一个IP数据报中,尽力将此报文交付给接收主机。例如,DNS。

    UDP的特性

    1. 运输层接收到来自应用层的数据即刻打包发送到网络层。而TCP则由于拥塞控制机制等原因会抑制运输层发送。一些实时应用要求最小的发送速率,不希望过分延迟发送。
    2. 无须建立连接,没有TCP连接初的三次握手,不会引入连接时延。
    3. 无连接状态。TCP需要在端系统中维护连接状态,此连接状态包括接收和发送缓存、拥塞控制参数以及序号和确认号的参数,对于可靠连接,这些是必要的。UDP不维护连接状态,也不需要维护这些参数。
      使用UDP的协议看重快速传输,而相对不需要特别可靠。

    UDP/TCP混用的应用
    多媒体应用、视频会议

    可加入可靠性机制
    Google Chrome浏览器中的QUIC协议,在UDP纸上的应用层协议中实现了可靠性。


    (2020.08.05)

    socket
    UDP socket套接字由两个元素做标识,即目的的IP地址和端口地址。相比之下,TCP的socket由四个元素做标识,即源IP,源端口号,目的IP,目的端口。
    Well-known port number周知端口号
    端口号是16bit二进制数范围是[0, 65535],其中的[0,1023]是周至端口号,为应用层协议保留,是受限制的。如HTTP应用port 80,FTP用port 21。UDP的端口号分配范围是[1024,65535]。

    UDP packet 结构
    head+data
    UDP head
    长度:四个字段,各两个字节,共8个字节bytes,64 bites.
    字段:源端口号,目的端口号,长度,检验和(checksum)。其中的长度指示了UDP报文段的字节数(head+data)。检验和用于判断数据从sndr到rcvr时,其中的比特是否发生了改变(但不负责纠正)。
    检验和checksum
    发送方的UDP对报文段所有16bit字的和进行反码运算,求和过程中遇到任何溢出都回卷(我理解是忽略的意思)。得到的反码作为checksum。根据了系统设计中的端到端原则(end-to-end principle),即,在既无法确保逐链路的可靠性,又无法确保内存中差错检测的情况下,如果端到端数据传输服务要提供差错检测,UDP就必须在端到端基础上在运输层提供差错检测。


    Reference

    1. 计算机网络(自顶向下方法)原书第7版,James F. Kruose and etc., 陈鸣 译, 机械工业出版社,2019年

    相关文章

      网友评论

          本文标题:传输层Transport layer UDP, since 20

          本文链接:https://www.haomeiwen.com/subject/imcgrktx.html