Linux怎么屏蔽长度特定字节长度的包

超过4096就会被截断已经设置发送緩冲了啊... 超过4096就会被截断,已经设置发送缓冲了啊

有没有问过接收端那边的设置呢从理论上来说,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数据包丢失

本回答由电脑网络分类达人 郭强推荐

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}


查找home目录下0KB的文件先查看,后刪除

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

ping指定数据包大小

linux下ping包的默认大小為64Byte次数不限。但有时我们需要尝试ping大数据包来测试网络的状况,这时就要指定ping包的大小了。

}

我要回帖

更多关于 字节长度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信