3.3 无连接运输:UDP

3.3 无连接运输:UDP

简介:

       UDP提供不可靠的服务,它只做了运输层能做的最少工作,除了分解/复用以及少量的差错检测之外,几乎对IP没增加什么东西。

       为什么应用开发人员宁愿再UDP之上构建应用,而不是选择再TCP上构建应用?

    1.应用层可以更为精细对数据的控制:

应用进程只需要将数据传递给UDP,UDP就会为其加上首部信息,然后交给网络层。TCP有更多的功能,比如拥塞控制机制会抑制发送端的传输速率

    2.不需要建立连接:

TCP需要三次握手建立连接,四次挥手断开连接,这样就增加了时延,而UDP不需要连接,如果DNS是运行在TCP协议上,DNS就会慢很多)。

    3.分组开销小:

TCP首部20字节,UDP首部8个字节。

   4.无连接状态:

TCP传输的时候必须在端系统中维护连接的状态,而UDP不用。

3.3.1UDP报文结构

源端口号

目的端口号

长度

检验和

应用数据(报文)

源端口号:发送方的端口号。

目的端口号:接收方端口号。

长度:包括首部在内的报文长度。

检验和:用来差错检验。只发现错误不纠正,错了就扔。然后重发

检验和的计算:

       就是源端口号(16位,两个字节),目的端口号(16位),长度(16位),  相加取反,相加的时候需要回卷,就是溢出的再加到后边,例如:

       1001 + 0111 = 10001,出现了5位,第一位的1,再加到后边,等于,0001 + 1 = 0010.

       得到检验和,这样做的好处,在接收端收到数据的时候,将首部四个字段加起来很明显应该16个1,就说明没错,否则就说明有错。

posted @ 2018-04-03 20:52  勿忘初心0924  阅读(273)  评论(0编辑  收藏  举报