计算机网络第三章 -无连接运输:UDP -运输层
一、UDP小知识点
- 我们在前面好几篇文章中也说了挺多UDP的内容,在这里根据书中知识点再进行挖掘。
- UDP只能通过差错检测对产生差错的报文段进行丢弃,无法对这些报文段进行反馈。而发送方因为底层网络层丢失而无法收到响应的话,要么对下一个同名服务器的不同IP进行请求。要么提示调用的应用程序未响应。
- UDP在端与端之间没有进行握手通信。只有TCP会进行握手通信。
- 从第3点可以知道,UDP相比TCP的流程没有那么繁琐,所以UDP虽然不能提供保证,但他进行通讯的速度快。而且因为没有阻塞控制,也不用担心流量限制。
- 虽然UDP没有办法提供可靠性传输,但是我们可以在应用层上对可靠性传输进行实现。Chrome浏览器中的QUIC协议就是使用应用层进行可靠性传输。
- UDP的头部开销是8个字节,比TCP的20个字节的开销要少。
- UDP在可靠性要求不高而且需要不过分延迟的应用来说会比使用TCP要好。
二、UDP报文段结构
1.UDP报文段头部有4个人数据字段,每个占2个字节。分别是源端口号、目的端口号、长度、校验和。需要注意的是长度指的是头部加应用数据的,也就是说不是只有8个字节。
2. 这里有个小疑问。为什么报文段中没有目的主机的IP地址呢,是不是在网络层会带上这个地址?
三、UDP检验和
- 校验和的计算:①将原数据报中除了校验和字段的全部比特按每16个比特为一组的形式进行相加。如果出现第17位,也就是溢出了,就将溢出的这一位与后面16位相加得到结果。(这叫回卷)。②将最后的结果取反码作为校验码写入到校验和字段中。③验证阶段,将报文段中所有的比特按16比特一组的形式进行相加,如果得到1111111111111111(16位)的结果就表示没有出现差错。否则就出现差错并丢弃该报文段。
- 所有的校验工作都是在端上进行的,他没办法在运输途中进行校验,UDP对差错回复也无能为力。