zoukankan      html  css  js  c++  java
  • TCP中的MSS解读(转)

      本文摘录自TCP中的MSS解读

      

      MSS 是TCP选项中最经常出现,也是最早出现的选项。MSS选项占4byte。MSS是每一个TCP报文段中数据字段的最大长度,注意:只是数据部分的字段,不包括TCP的头部。TCP在三次握手中,每一方都会通告其期望收到的MSS(MSS只出现在SYN数据包中)。如果一方不接受另一方的MSS值则定为默认值536byte。
      MSS值太小或太大都是不合适。太小,例如MSS值只有1byte,那么为了传输这1byte数据,至少要消耗20字节IP头部+20字节TCP头部=40byte,这还不包括其二层头部所需要的开销,显然这种数据传输效率是很低的。MSS过大,导致数据包可以封装很大,那么在IP传输中分片的可能性就会增大,接受方在处理分片包所消耗的资源和处理时间都会增大,如果分片在传输中还发生了重传,那么其网络开销也会增大。因此合理的MSS是至关重要的。MSS的合理值应为保证数据包不分片的最大值。对于以太网MSS可以达到1460byte.
      与MSS相似的在IP层也有一个类似的概念---MTU(Maximum Transfer Unit)下图可以清晰反映MSS与MTU 的关系:

      tcp-analysis-section-6-2

      MTU=MSS+TCP Header+IP Header.

      事实是发送方和接收方存在很多中间设备,那MSS是如何协商的呢?

      请看下图:

      
     
     
  • 相关阅读:
    oracle数据库sql中文乱码问题,字符编码环境变量
    oracle数据库序列自增id
    上线注意事项
    impdp 导出导入注意事项
    linux 上不同用户权限问题
    plsql 工具命令窗口执行sql脚本问题
    oracle创建用户
    Redis会遇到的15个坑
    JavaScript的标准库
    JavaScript的运算符
  • 原文地址:https://www.cnblogs.com/xiehongfeng100/p/4629341.html
Copyright © 2011-2022 走看看