以太网UDP
今天给各位分享以太网UDP报文路由的知识,其中也会对以太网UDP进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、局域网内主机产生大量UDP报文对路由器产生超负载而掉线,解决办法!
2、TCP/IP和UDP报文结构和报头包含的内容!
3、UDP报文收不到问题排查
4、路由器端口怎么设置udp
5、以太网(UDP)和以太网(TCP)有什么区别?都在什么情况下使用?
局域网内主机产生大量UDP报文对路由器产生超负载而掉线,解决办法!
在路由器上限制入口流量。做好带宽分配、
连接数限制。
会用wireshark 的话。抓包看看。
确定端口等。
找到对应主机和相应的恶意程式序。通常都是下载软件或在线电影这类的程序。
他们在后台用udp向别人提供服务。
根据你提供的图。每秒流量不大呀。
TCP/IP和UDP报文结构和报头包含的内容!
UDP包
UDP报头由4个域组成,其中每个域各占用2个字节,具体如下:
源端口号
目标端口号
数据报长度
校验值
UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。
TCP包
每个tcp都包含源端口号和目标端口号,加上ip头中的源ip和目的ip,唯一确定一个tcp连接。序号用来标识从tcp发端向tcp收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。序号字段包含由这个主机选择的该连接的初始序号isn(Initial Sequence Number)。该主机要发送数据的第一个字节,序号为isn+1,因为syn占用了一个序号。
IP包
IPV4报头有12个必需的字段和可选IP选项字段,位于要发送的数据之前。如果使用IP层已有的库或其他组件,一般不必考虑报头中的大多数字段,但程序代码需要提供源端和目的端地址。
1、版本(4比特)
IP协议版本已经经过多次修订,1981年的RFC0791描述了IPV4,RCF2460中介绍了IPV6。
2、报头长度(4比特)
报头长度是报头数据的长度,以4字节表示,也就是以32字节为单位。报头长度是可变的。必需的字段使用20字节(报头长度为5,IP选项字段最多有40个附加字节(报头长度为15)。
3、服务类型(8比特)
该字段给出发送进程建议路由器如何处理报片的方法。可选择最大可靠性、最小延迟、最大吞吐量和最小开销。路由器可以忽略这部分。
4、数据报长度(16比特)
该字段是报头长度和数据字节的总和,以字节为单位。最大长度为65535字节。
5、标识符(16比特)
原是数据的主机为数据报分配一个唯一的数据报标识符。在数据报传向目的地址时,如果路由器将数据报分为报片,那么每个报片都有相同的数据标识符。
6、标志(3比特)
标志字段中有2为与报片有关。
位0:未用。
位1:不是报片。如果这位是1,则路由器就不会把数据报分片。路由器会尽可能把数据报传给可一次接收整个数据报的网络;否则,路由器会放弃数据报,并返回 差错报文,表示目的地址不可达。IP标准要求主机可以接收576字节以内的数据报,因此,如果想把数据报传给未知的主机,并想确认数据报没有因为大小的原 因而被放弃,那么就使用少于或等于576字节的数据。
位2:更多的报片。如果该位为1,则数据报是一个报片,但不是该分片数据报的最后一个报片;如果该位为0,则数据报没有分片,或者是最后一个报片。
7、报片偏移(13比特)
该字段标识报片在分片数据报中的位置。其值以8字节为单位,最大为8191字节,对应65528字节的偏移。
例如,将要发送的1024字节分为576和424字节两个报片。首片的偏移是0,第二片的偏移是72(因为72×8=576)。
8、生存时间(8比特)
如果数据报在合理时间内没有到达目的地,则网络就会放弃它。生存时间字段确定放弃数据报的时间。
生存时间表示数据报剩余的时间,每个路由器都会将其值减一,或递减需要数理和传递数据报的时间。实际上,路由器处理和传递数据报的时间一般都小于1S,因此该值没有测量时间,而是测量路由器之间跳跃次数或网段的个数。发送数据报的计算机设置初始生存时间。
9、协议(8比特)
该字段指定数据报的数据部分所使用的协议,因此IP层知道将接收到的数据报传向何处。TCP协议为6,UDP协议为17。
10、报头检验和(16比特)
该字端使数据报的接收方只需要检验IP报头中的错误,而不校验数据区的内容或报文。校验和由报头中的数值计算而得,报头校验和假设为0,以太网帧和TCP报文段以及UDP数据报中的可选项都需要进行报文检错。
11、源IP地址(32比特)
表示数据报的发送方。
12、目的IP地址(32比特)
表示数据报的目的地。
UDP报文收不到问题排查
同事说告警报文没办法接收了, 程序同时向本机发送UDP告警和另外一台机器发送UDP报文,结果显示,本机UDP是正常收到的,远程的机器收不到UDP报文的.
程序同时发送到本地应用和远程应用的,虽然是不同的IP和端口,但是是同一个逻辑,所以程序的本身的问题可能性比较小,先测试下是否为网络问题:
首先,我们来看下这个1472是怎么来的,在以太网环境中,以太网的帧的body大小为46字节到1500字节之间,本次是处于IPV4的环境,IP包头大小为20个字节,所以还剩下1480字节;UDP的协议的报文头长度为8个字节,所以剩下的udp的包体长度为1480-8 = 1472个字节,具体展示如下图:
格式如下:
上述告警意思是因为我们环境下网卡的MTU设置为1500个字节,如下:
因为发送的UDP报文长度大于可以传输的安全长度1472个字节,这不代表不能发送,只是因为大于了帧的最大传输长度,所以在IP层需要进行分包,一旦网络环境不好,分包产生了丢失问题,会造成IP的组包失败,从而导致UDP的报文丢失.
还可以通过 netstat -su 进行监控:
既然MTU太小了,那么尝试修改下两端的MTU最大值,MTU是取整个路由的MTU最小值,我们尝试把两端的MTU增大下:
两端MTU增加后,仍然会报错,那么可能的原因是中间路由设备设置的MTU比较小,查看下,由于主机上没有traceroute命令来跟踪,尝试使用另外一个命令:
类似于traceroute,可以追踪路由,结束后打印MTU值.
还可以带个端口,测试这个UDP端口.
在实际环境中,由于中间很多路由都看不到,而且让中间的所有路由都改MTU值不是太现实.
在MTU为1500字节的情况下,如果发送的UDP报文大于MTU,比如发送8000个字节,如果包缓存足够,且分包按照正确的顺序到来,通过recvfrom(9000) 还是可以收到一个完整的UDP包的. 如果IP分片丢失,校验失败,包就会丢弃.recvfrom(9000)将阻塞.
为防止socket缓冲区溢出造成的问题,特意增加了socket的缓冲区.
cat /proc/sys/net/core/rmem_default 和 cat /proc/sys/net/core/rmem_max 可以查看socket缓冲区的缺省值和最大值。
可以通过 echo xxx /proc/sys/net/core/rmem_default 的方法来临时修改,也通过更改/etc/sysctl.conf文件添加以下配置来修改:
修改完成后记得运行以下命令来生效:
但是在本次仍然没起到效果.
最终解决方法是绕过了这个问题,直接改了接口,不采用UDP发送了,而是采用文件采集形式.
这是一次不成功的经验,有这方面经验的朋友,可以留言交流下还有什么原因造成这种问题.
路由器端口怎么设置udp
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,下面一起看看路由器端口怎么设置udp吧!
UDP协议传输的打开方法:
1、本地链接-属性-TCP/IP协议-高级-选项-TCP/IP筛选。
2、UDP的介绍:
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
用户数据报协议(UDP)是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分别运行在同一台设备上的多个应用程序。
如何在路由器中设置端口映射:
工具/原料
Ubuntu 15.10。
无线路由器。
方法/步骤
打开浏览器,登录无线路由器的管理界面。
方法:在浏览器的地址栏输入路由器的地址,回车。此地址一般是 192.168 私有网段中的一个地址,具体参考路由器说明书。
1.在路由器管理页面,在右侧的菜单中,导航到“转发规则”——“虚拟服务器”一节。
2.2界面右侧则显示“虚拟服务器”的相关设置。
3.在路由器管理页面,点击“添加新条目”按钮,页面转入输入界面。包括 5 个输入项:服务端口号,对应软件端口;内部端口号,可以留空;IP地址,电脑在路由器内部网络上的地址;协议,分 TCP、UDP和“全部”三项;状态,分“生效”和“失效”两种。
4.新打开浏览器的一个标签页,进入 mldonkey 的管理界面(在地址栏输入 ),点击主菜单上的“Help+”,再点击二级菜单上的“Sysinfo”,进入系统信息界面。
5.在上述打开 mldonkey 的设置页面,中间有一个端口列表,共分三列,从左到右依次是:网络类型、端口号、协议类型。
6.转回路由器设置界面(第 3 步骤所示),将第 5 步骤所示“网络类型”是“Donkey”的那三行中的'端口号和协议类型,分别填到步骤 3 图所示“服务端口号”和“协议”中;该界面中的“IP地址”,则填写 mldonkey 所在电脑被路由器分配的地址。
7.由于设置了端口映射,因此 mldonkey 所在的电脑,其由路由器分配的地址必须是固定的。为路由器内网设置固定地址的方法,请参见经验:《防蹭网:无线路由分配静态地址控制客户端数量》。
8.防蹭网:无线路由分配静态地址控制客户端数量
将所需端口全部映射完成后,保存、重启路由器,回到 mldonkey 设置界面,点击“Server”主菜单,会看到所连接的服务器,它们的“ID”全部为“High”,这样才能确保 mldonkey 连接到最大数量的 p2p 源。
没有实施端口映射时,这里的 ID 则显示”low“,只能连接到极少数的 p2p 源。
拓展:UDP主要特点和协议对比
1、UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包而言UDP的额外开销很小。
吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。例如,在屏幕上报告股票市场、显示航空信息等等。UDP也用在路由信息协议RIP(Routing Information Protocol)中修改路由表。在这些应用场合下,如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。UDP广泛用在多媒体应用中。
2、UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据包的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。
TCP 是面向连接的传输控制协议,而UDP 提供了无连接的数据报服务;TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;UDP 具有较好的实时性,工作效率较 TCP 协议高;UDP 段结构比 TCP 的段结构简单,因此网络开销也小。TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。
以太网(UDP)和以太网(TCP)有什么区别?都在什么情况下使用?
udp用户数据包协议,提供的无连接的尽力而为的交互
tcp传输控制协议,通过三次握手先建立可靠的TCP连接,然后再传输数据
2个协议均为传输层协议
比如视频会议等就是UDP协议 对于数据准确到达没那么高的要求 流量大
TCP适合比如说网页浏览之类的需要准确接收到每个字节的场合 流量小些 因为它中间进行了收到确认
关于以太网UDP报文路由和以太网UDP的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。