UDP协议的_节点动态java精修学校简介
对1.udp简介UDP是一种传输层协议,而TCP协议是分层的。但与tcp协议不同,UDP协议不提供超时重传、错误重传等功能,即不可靠的协议。
2.udp协议报头
UDP端口号
由于很多软件需要使用UDP协议,UDP协议必须使用一个标志来区分不同程序所需的数据包。例如,UDP程序在系统中注册了3000个端口。然后,将来自外部的目的端口号为3000的UDP包传送给程序,端口号理论中可以有这么多的2 - 16,因为它的长度是16位。
UDP检验和
这是一个可选的选项。并不是所有的系统都在测试和数据(相对于TCP协议)的UDP数据包,但是标准的要求在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,IP将有相同的ID被重新装配;13件记录IP偏移相对于整个包的位置;而两说中间3bit标志标记后面的片有一个新的层。三标记形式的所有IP碎片信息,并可以利用这些信息来进行IP数据。
因为技术经常用于网络、软件和那些伪造的IP包的流氓攻击的人也出现了。
的trancdroute程序可用于简单的MTU检测。请看教材。
UDP与ARP的交互使用
这是一个很小的细节,往往不注意,这是针对一些系统的实现。当ARP缓存仍然是empty.udp必须发送一个ARP请求来获得目标主机的MAC地址在发送UDP数据包,如果要在想象中足够的时间片的IP层,的第一个补丁的UDP数据包将发送一个ARP请求,分块会直到这个查询和发送完成。事实上,是吗
因此,有些系统发送每个ARP查询,所有的片段都在等待。但是,当接收到第一个响应,主机发送数据的最后一块抛弃别人,这真是不可想象的,因为数据片不能组装,主机将在一段时间内不会被组装IP数据包和发送ICMP数据包丢弃,组装超时(事实上,许多没有错误),为了保证接收端缓存主机自己不被那些没有进入完全组装验收。
源站抑制错误
当目标主机的处理速度跟不上数据接收的速度时,主机的IP层缓存将被占用,主机就会发出一个我无法忍受的ICMP消息。
UDP服务器的设计
UDP协议的一些特性将影响我们的服务器程序设计,大致概括如下:
1、关于客户IP和地址:服务器必须有能力根据客户的IP地址和端口号来决定数据包是否合法(这似乎需要每个服务器都有)。
2。关于目标地址:服务器必须具有过滤广播地址的能力。
约3。数据输入:每个端口号的服务器系统,通常是一块输入缓冲区,处理传入的输入根据原则来等待服务器,所以难免会出现缓冲区溢出的问题,在这种情况下,UDP数据包可以丢弃,问题和应用服务器的应用程序本身是不知道的。
4。服务器应该限制本地IP地址,也就是说,它应该能够绑定到网络接口上的某个端口。
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。