to Timesboy(时代牛仔)
参考TCP/IP详解卷1:每个IP包里都有TCP头,超时重传时只传超时的IP包,也就是说超时重传与系统的发送缓冲区无关!
这样的话,我觉得问题好像应该归结于自己拆分数据包和由系统底层分片哪个效率高的问题!即使不考虑调用函数的开销,也应该完全由系统来进行分片处理,因为网络的情况很复杂,包括MTU之类的参数应用层很难得到或者用不着知道。所以我觉得send数据越大越好!
to alanwang_(alan)
哦,我不是说每次send的时候数据包的大小为MTU时最快,因为传给send的数据都是放在发送缓冲的吧,应用程序好像就不应该再管了,由应用层传数据给tcp层时,应该视发送缓冲中数据多少而言吧。
当ip层收到要发送的数据包时,它可以查询出口的mtu,如果需要则进行分片。
至于udp的路径mtu发现,我不是很清楚,还要请教一下.