IP分片产生的原因是网络层的MTU;TCP分段产生原因是MSS.
在TCP分段的原因:
采用TCP协议进行数据传输,是不会造成IP分片的。若数据过大,只会在传输层进行数据分段,到了IP层就不用分片。
如果没有MSS的话:
假设生成了很大的TCP报文,经过IP分段进行发送,而其中一个IP分段丢失了,因为没有mss,所以TCP协议执行只能重发整个TCP报文,由IP层在分片才能重组报文,造成了严重的网络性能浪费,而相对的由于UDP无保证的性质,即使丢失了IP分段也不会进行重发。所以说,MSS存在的核心作用,就是避免由于IP层对TCP报文进行分段而导致的性能下降。
参考:
http://blog.sina.com.cn/s/blog_648d306d0102v4z2.html
http://blog.kongfy.com/2015/07/tcp-maximum-segment-size-mss/