最近在看计算机网络自顶向下,中间会陆陆续续发出来一些笔记,每一章完整的笔记以及思维导图会在以后在学习笔记计算机网络专栏发出来,第一次学,如果出现错误,还请各位大佬指正。/抱拳
写在前面:这里是小王成长日志,一名普通在校大学生,想成学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人,平时博客内容主要是一些系统的学习笔记,项目实战笔记,一些技术的探究和自己的一些思考。欢迎大家关注,你们的每一个评论点赞关注我都会仔仔细细去看的。有任何问题欢迎交流,我会尽我所能帮助大家的,共创CSDN美好环境。
文章目录UDP协议详解@[toc]1.UDP协议简介2.UDP传输报文的过程:3.UDP的特点1).关于何时、发送什么数据的应用层控制更为精细2).无需连接建立3).无连接状态4).分组首部开销小4.UDP的报文段结构5.UDP检验和的计算检验和的计算方式检验和出现的原因:6.参考7.同类文章推荐 1.UDP协议简介 UDP协议是一种简单的运输层协议,和它经常放在一起的还有TCP协议,两者都是运输层协议,但UDP是不可靠,无连接的,相较而言,TCP则可靠,面向连接。 不懂什么叫做运输层,点这进入百度百科。 我们需要知道UDP 协议只做了运输协议能够做的最少工作 。 除了复用/分解能及少量的差错检测外,它基本上没有对 IP 增加别的东西 。 2.UDP传输报文的过程:UDP 先从应用进程得到数据,附加上用于多路复用/分解服务的源和目的端口号字段,以及两个其他的小字段,然后将形成的报文段交给网络层 。
网络层将该运输层报文段封装到一个IP数据报中,然后尽力而为地尝试将此报文段交付给接收主机 。
如果该报文段到达接收主机, UDP 使用目的端口号将报文段中的数据交付给正确的应用进程 。
值得注意的是,使用 UDP 时,在发送报文段之前,发送方和接收方的运输层实体之间没有握手 。 正因为如此, UDP 被称为是无连接的。
3.UDP的特点 1).关于何时、发送什么数据的应用层控制更为精细 采用 UDP 时,只要应用进程将数据传递给 UDP , UDP 就会将此数据打包进 UDP 报文段井立即将其传递给网络层 。 此外UDP可以避免TCP的拥塞控制机制,UDP协议不会理会网络是否拥塞,只会竭尽所能一窝蜂地立马交付数据,因此其数据交付延迟低但也可能造成网络的堵塞。 2).无需连接建立 TCP 在开始数据传输之前要经过三次握手 。UDP 却不需要任何准备即可进行数据传输 (这也是DNS采用UDP的重要原因)。 HTTP 使用 TCP 而不是 UDP ,因为对于具有文本数据的 Web网页来说,可靠性是至关重要的 。 3).无连接状态 TCP 需要在端系统中维护连接状态 ,并追踪一些用于维护连接的参数 UDP 不维护连接状态,也不跟踪这些参数 。 4).分组首部开销小 每个 TCP 报文段都有 20 字节的首部开销,而 UDP 仅有 8 字节的开销 。 4.UDP的报文段结构下面我们一起来看看UDP的报文段结构下图是一个UDP报文段的结构示意图
总的方式就是将所有字段相加,若有超出则回卷(将超出部分相加到未超出部分),将最后的结果取反即是检验和
下面举个栗子来看看:
我们给定三个16比特字段,其值如下并将其相加
给定下列三个字 | |
---|---|
字段1 | 0110 0110 0110 0000 |
字段2 | 0101 0101 0101 0101 |
前两个字段之和 | 1011 1011 1011 0101 |
字段3 | 1000 1111 0000 1100 |
1 0100 1010 1100 0001 |
将最后一个和的超出部分进行回卷
回卷操作 |
---|
0100 1010 1100 0001 |
+ 1 |
0100 1010 1100 0010 |
最后将回卷完的和进行取反结果即为1011 0101 0011 1101
所以这三个字段的检验和就是最后的取反结果1011 0101 0011 1101
再来看一遍总的流程
流程 | 值 |
---|---|
字段1 | 0110 0110 0110 0000 |
字段2 | 0101 0101 0101 0101 |
字段3 | 1000 1111 0000 1100 |
三个字段之和 | 1 0100 1010 1100 0001 |
超出部分回卷 | 0100 1010 1100 0010 |
对最后的结果取反 | 1011 0101 0011 1101 |
是由于不能保证源和目的之间的所有链路都提供差错检测;
这就是说,也许这些链路中的一条可能使用没有差错检测的协议。
此外,即使报文段经链路正确地传输,当报文段存储在某台路由器的内存中时,也可能引入比特差错 。
在既无法确保连链路的可靠性,又无法确保内存巾的差错检测的情况下,如果端到端数据传输服务要提供差错检测,所以UDP 就必须在端到端基础上在运输层提供差错检测 。
6.参考 UDP-百度百科 7.同类文章推荐 一文带你看懂多路复用与多路分解都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。