linux设置socket禁止IP包分片
背景UDP包在传输过程中,如果对端机器的MTU小于1500,结果你发出去的包其实加上乱七八糟的头,刚好1500,本来是能被对端机器收到的,结果好巧不巧,刚好这个机器发出去的包,默认不允许分包,结果包发出去全部被丢掉了。。。。。分包的标志位位于IP报头,有一个DF(Don’t Fragment)标志位,如果该标志为1,则禁止分包,就会导致MTU不是1500的机器,丢弃掉一些UDP包。如何设置允许分包直接设置IP_DONTFRAG可以实现int val = 0;setsockopt(sd, IPPR
原创
2020-07-19 17:41:41 ·
7054 阅读 ·
3 评论