linux 应用层用udp发送数据时有大小限制吗?

linux 应用层用udp发送数据时有大小限制吗?,第1张

从理论上来说,UDP数据的总长度为 65535(IP最大长度)-20(IP头)-8(UDP头) = 65507个字节,但大多数系统都达不到这个长度。这一般是受到两个方面的因素限制:

1) 应用程序编程接口限制。一般socket的缓冲区大小是8K,但都提供API来设置缓冲区的大小(SetSockOpt)。一般发送UDP最好不要超过512字节,这样基本可以保证不丢包(因为大部分网络和主机的MTU都大于512).

2) TCP/IP内核的限制。可能存在一些实现特性使得IP长度不能达到65535。

由于IP能够发送或接收特定长度的数据报并不意味着接收应用程序可以读取该长度的数据。因此,UDP编程接口允许应用程序指定每次返回的最大字节数。如果接收到的数据报长度大于应用程序所能处理的长度,那么会发生什么情况呢?典型的Berkeley版socket API对数据报进行截断,并丢弃任何多余的数据;SVR4下的socket API(包括Solaris 2.x) 并不截断数据报。超出部分数据在后面的读取中返回。它也不通知应用程序从单个UDP数据报中多次进行读取 *** 作;TLI API不丢弃数据。相反,它返回一个标志表明可以获得更多的数据,而应用程序后面的读 *** 作将返回数据报的其余部分。

UDP不会分片,分片是IP层做的事,而且分片重组也是IP层负责的。

如果用UDP发送数据,数据量最好不要太大,应该避免IP层和链路层分包,防止分片丢失,导致整个UDP数据包丢失。

iptables 加入:

iptables -A INPUT -i ! lo -m state --state NEW,INVALID -j DROP

也就是丢弃非法(不属于任何连接的新连接)丢弃

长篇大论无用地

管用才是硬道理

不行你扁我

你好,方法一 数据线连接电脑,在开始-----设置-----连接------usb连接pc上选择activesync与outlook同步这样可用用电脑的网络上网。前提,电脑上也要装上activesync软件,且电脑可上网。win7好像自带的,就不用装了,xp系统要装的。

方法二 wifi连接。 前提,附近能搜到wifi信号,而且是木有密码的,免费的。开始------设置----连接-----WLAN 打开wifi搜到信号连接后,就可用,范围一般几十米,几百米的,主要看信号强度,有显示的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7652984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存