如何计算MSS

时间:2014-03-28 05:59:45

标签: tcp mtu mss

默认情况下,我们说的是关于TCP以太网数据包1460的MSS,MTU是1500。

  

MSS = MTU - 20(IP标头) - 20(TCP标头)= 1460

从上面开始计算TCP头,而在TCP头中没有任何options。 如果任何数据包在TCP标头中包含option值,它是否会降低MSS大小?

那么TCP标头中的option的MSS大小是什么

2 个答案:

答案 0 :(得分:0)

您正确地认为,添加IP / TCP选项后,MSS会缩小。

    Intent intent = new Intent(this, OpenNotificationReceiver.class);
    intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_TYPE, mType);
    intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_ID, mId);
    intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_DIALOG_ID, mDialogId);
    intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_MESSAGE_ID, mMessageId);
    Notification notification = null;

    PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), requestID,
            intent, PendingIntent.FLAG_UPDATE_CURRENT);

降低数据包的另一个主要原因是如果以某种方式(IPsec / GTP)封装了数据包,因为这会增加数据包的开销。

答案 1 :(得分:-1)

MSS根本没有减少,但是如果IP,TCP选项存在,那么MSS值仅为以太网的1460。选项将是发送方数据部分的一部分,因此发送方需要在标头上添加IP或TCP选项时减少数据部分。 请参阅以下页面

http://tools.ietf.org/html/rfc6691