当前位置:首页 > 日记 > 正文

udp协议简介_动力节点Java学院整理

udp协议简介_动力节点Java学院整理

1.UDP简要介绍

UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。

2.UDP协议头

UDP端口号

由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来的目的端口号为3000的UDP包都会交给该程序。端口号理论上可以有2^16这么多。因为它的长度是16个bit

UDP检验和

这是一个可选的选项,并不是所有的系统都对UDP数据包加以检验和数据(相对TCP协议的必须来说),但是RFC中标准要求,发送端应该计算检验和。

UDP检验和覆盖UDP协议头和数据,这和IP的检验和是不同的,IP协议的检验和只是覆盖IP数据头,并不覆盖所有的数据。UDP和TCP都包含一个伪首部,这是为了计算检验和而摄制的。伪首部甚至还包含IP地址这样的IP协议里面都有的信息,目的是让UDP两次检查数据是否已经正确到达目的地。如果发送端没有打开检验和选项,而接收端计算检验和有差错,那么UDP数据将会被悄悄的丢掉(不保证送达),而不产生任何差错报文。

UDP长度

UDP可以很长很长,可以有65535字节那么长。但是一般网络在传送的时候,一次一般传送不了那么长的协议(涉及到MTU的问题),就只好对数据分片,当然,这些是对UDP等上级协议透明的,UDP不需要关心IP协议层对数据如何分片,下一个章节将会稍微讨论一些分片的策略。

IP分片

IP在从上层接到数据以后,要根据IP地址来判断从那个接口发送数据(通过选路),并进行MTU的查询,如果数据大小超过MTU就进行数据分片。数据的分片是对上层和下层透明,而数据也只是到达目的地还会被重新组装,不过不用担心,IP层提供了足够的信息进行数据的再组装。

在IP头里面,16bit识别号唯一记录了一个IP包的ID,具有同一个ID的IP片将会被重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表示中间的3bit标志则标示着该分片后面是否还有新的分片。这三个标示就组成了IP分片的所有信息,接受方就可以利用这些信息对IP数据进行重新组织(就算是后面的分片比前面的分片先到,这些信息也是足够了)。
因为分片技术在网络上被经常的使用,所以伪造IP分片包进行流氓攻击的软件和人也就层出不穷。

可以用Trancdroute程序来进行简单的MTU侦测。请参看教材。

UDP和ARP之间的交互式用

这是不常被人注意到的一个细节,这是针对一些系统地实现来说的。当ARP缓存还是空的时候。UDP在被发送之前一定要发送一个ARP请求来获得目的主机的MAC地址,如果这个UDP的数据包足够大,大到IP层一定要对其进行分片的时候,想象中,该UDP数据包的第一个分片会发出一个ARP查询请求,所有的分片都辉等到这个查询完成以后再发送。事实上是这样吗?
结果是,某些系统会让每一个分片都发送一个ARP查询,所有的分片都在等待,但是接受到第一个回应的时候,主机却只发送了最后一个数据片而抛弃了其他,这实在是让人匪夷所思。这样,因为分片的数据不能被及时组装,接受主机将会在一段时间内将永远无法组装的IP数据包抛弃,并且发送组装超时的ICMP报文(其实很多系统不产生这个差错),以保证接受主机自己的接收端缓存不被那些永远得不到组装的分片充满。

ICMP源站抑制差错

当目标主机的处理速度赶不上数据接收的速度,因为接受主机的IP层缓存会被占满,所以主机就会发出一个“我受不了”的一个ICMP报文。

UDP服务器设计

UDP协议的某些特性将会影响我们的服务器程序设计,大致总结如下:

1.关于客户IP和地址:服务器必须有根据客户IP地址和端口号判断数据包是否合法的能力(这似乎要求每一个服务器都要具备)
2.关于目的地址:服务器必须要有过滤广播地址的能力。
3.关于数据输入:通常服务器系统的每一个端口号都会和一块输入缓冲区对应,进来的输入根据先来后到的原则等待服务器的处理,所以难免会出现缓冲区溢出的问题,这种情况下,UDP数据包可能会被丢弃,而应用服务器程序本身并不知道这个问题。
4.服务器应该限制本地IP地址,就是说它应该可以把自己绑定到某一个网络接口的某一个端口上。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

ps怎么设置水平翻转和垂直反转的快

ps怎么设置水平翻转和垂直反转的快

设置,快捷键,反转,电脑软件,ps,很多人知道用photoshop可以设计图片,但是忽略了快捷键的快捷便利。小编在这里教你如何设置水平翻转和垂直反转的快捷键,如图所示,同一张图,快捷键快速切换就做到。软件名称:Adobe Photoshop 8.0 中文完整绿色破解…

JavaScript 详解预编译原理

JavaScript 详解预编译原理

预编译,详解,原理,电脑软件,JavaScript,JavaScript 预编译原理今天用了大量时间复习了作用域、预编译等等知识 看了很多博文,翻开了以前看过的书(好像好多书都不会讲预编译) 发现当初觉得自己学的很明白,其实还是存在一些思维误区 (很多博文具有…

asp.net+FCKeditor上传显示叉叉无

asp.net+FCKeditor上传显示叉叉无

无法显示,上传,显示,解决方法,叉叉,弄了半天也没有找到原因,然后又重新到网上下载几个,还是不行,郁闷坏了,最后结合其他编辑器的用法,才知道是配置文件夹中上传文件夹的路径写错了 比如要上传到项目的根目录下的UserFiles下面,web.config的配置如…

ps设计魔幻绚丽的兔子和鹿重合头像

ps设计魔幻绚丽的兔子和鹿重合头像

教程,绚丽,头像,兔子,电脑软件,使用Photoshop设计魔幻绚丽的兔子和鹿重合头像,本次教程内容主要来自Ilya Shapko的作品,我非常欣赏他的这幅作品配色的绚丽,以及兔子和鹿相结合的魔幻效果。那么如何设计出这样的效果呢?我们需要注意哪些细节?有哪…

ps怎么制作信号干扰效果的?

ps怎么制作信号干扰效果的?

信号,干扰,效果,电脑软件,ps,干扰信号的时候画面是什么样子的呢?今天我们就来看看详细的制作方法软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、导入原图,并复制3层出来(背景就先隐藏好了)2、右键图层打…

Excel中2010版进行创建下拉菜单的

Excel中2010版进行创建下拉菜单的

下拉菜单,操作技巧,操作步骤,电脑软件,Excel,  Excel功能多多,满足人们日常应用的表格,像小编这边羊毛衫市场,各种进出货都是用纸记录容易丢。今天,小编就教大家在Excel中2010版进行创建下拉菜单的操作技巧。Excel中2010版进行创建下拉菜单的…

excel 2013激活的方法excel 2013怎

excel 2013激活的方法excel 2013怎

激活,方法,电脑软件,excel,strong,  用Excel朋友都知道,在用Excel之前都需要把Excel给激活了才可以用。或许有的朋友并不知道Excel2013该如何激活,如果不懂的朋友欢迎一起来学习探讨。下面是小编带来的关于excel 2013激活的方法,希望阅读过…

js实现滑动到页面底部自动加载更多

js实现滑动到页面底部自动加载更多

加载更多,页面,功能,电脑软件,js,话不多说,请看代码://滚动条到页面底部加载更多案例 $(window).scroll(function(){ var scrollTop = $(this).scrollTop(); //滚动条距离顶部的高度 var scrollHeight = $(document).height(); //当前页…

AI巧用艺术画笔制作绚丽艺术字教程

AI巧用艺术画笔制作绚丽艺术字教程

教程,巧用,绚丽,艺术,艺术字,效果图:主要过程:教程结束,以上就是AI巧用艺术画笔制作绚丽艺术字教程的全部内容,希望大家喜欢!相关教程推荐:AI艺术画笔制作GRUNGE特效文字AI制作超漂亮的艺术字体Illustrator(AI)设计制作漂亮的蓝色艺术字实例教程…

JS SetInterval 代码实现页面轮询

JS SetInterval 代码实现页面轮询

代码实现,页面,电脑软件,JS,SetInterval,概念介绍setInterval 是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval方法会不停地调用函数,直到 clearInterval 被调用或窗口被关闭。由 setInterval 返回的…

ai画布怎么旋转? ai图形画布的三种

ai画布怎么旋转? ai图形画布的三种

方法,图形,三种,电脑软件,ai,ai中想要旋转图形或者选注画布,该怎么操作呢?下面我们就来介绍三种方法,请看下文详细介绍软件名称:Adobe Illustrator CS5(ai软件下载)精简绿色免费版软件大小:111.56MB更新时间:2013-08-09方法一:旋转图形1、想要内容…

基于JavaScript实现移动端无限加载

基于JavaScript实现移动端无限加载

加载,移动端,无限,分页,电脑软件,本文实例为大家分享了js实现移动端无限加载分页的具体代码,供大家参考,具体内容如下原理:当滚动条到达底部时,执行下一页内容。判断条件需要理解三个概念: 1.scrollHeight 真实内容的高度 2.clientHeight …