区块链技术博客
www.b2bchain.cn

Linux C/C++面试之《网络编程系列》(9) MSS、MTU、IP分片、TCP分段求职学习资料

本文介绍了Linux C/C++面试之《网络编程系列》(9) MSS、MTU、IP分片、TCP分段求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

这些术语作为技术开发人员的基本常识,要掌握,冷不防的面试官问你什么是MTU,结果栽在这么简单的问题上。

    • 一、MSS的含义
    • 二、通信双方如何协商MSS
    • 三、MTU

一、MSS的含义

MSS是Maximum Segment Size的缩写,指TCP报文段所允许传送的数据部分最大长度
如果上层交付下来的数据太大,tcp会对其进行分块。这个分块过程是在传输层完成的,在接收端的传输层对分块的TCP报文段的数据部分进行重组。MSS字段位于TCP首部中的选项字段。

注意:这个MSS指的是TCP报文段中数据部分的最大长度,并不是整个TCP报文段长度。整个TCP报文段长度 = TCP首部长度 + TCP数据部分长度。

二、通信双方如何协商MSS

MSS的值是在TCP三次握手建立连接的过程中,经通信双方协商确定的

链路层使用以太网的话,IP层的MTU是1500 byte,这样去掉IP数据报首部(20 byte),在去掉TCP首部(20 byte)后为1460 byte,此时在默认情况下TCP“选项”字段的MSS值为1460 byte = 1500 – 20 – 20。

在 Internet 标准中,IP层的MTU是576 byte,那么此时TCP“选项”字段的MSS值为536 byte = 576 – 20 – 20。

以上是默认情况下一个TCP报文段中的MSS值,下面我们详细说明MSS值的确定过程。

MSS值只会出现在SYN报文中,即SYN=1时,才会有MSS字段值。当客户端想要以TCP方式从服务器端下载数据时,

(1)首先客户端会发送一个SYN请求报文,这个SYN报文的“选项”字段中会有MSS值(MSS = MUT – IP首部长度 – TCP首部长度)。该MSS值是为了告知对方最大的发送数据大小。

(2)当服务器端收到SYN报文后,会向请求端返回SYN+ACK(同步确认报文)报文,其中的“选项”字段也会有MSS值。

(3)通信双方选择SYN和SYN+ACK报文中最小的MSS最为此次TCP连接的MSS,从而达到通信双发协商MSS的效果。

综上,在第二次握手后就可以确定TCP中最大传输报文(MSS)大小。

三、MTU

MTU是是 Maximum Transmission Unit 的缩写,即最大传输单元,是数据链路层的概念,它规定了数据链路层所能传送的最大数据长度(不包含数据链路层的首部)。这个根据由具体的网络决定的,如以太网的MTU=1500,Internet的MTU=576。

如果IP层所要传输的报文(包含IP首部) > MTU的话,要对这个数据进行分片处理,每个片长度都小于MTU,每个片构成一个IP数据报进行传输。

在服务端的IP层使用IP数据报的首部信息对这些分片的IP数据报进行重组。这样使得IP层的分片对传输层看起来是透明的(传输层不知道IP层进行了分片操作)。

MTU=MSS + TCP Header + IP Header。

这些术语作为技术开发人员的基本常识,要掌握,冷不防的面试官问你什么是MTU,结果栽在这么简单的问题上。

    • 一、MSS的含义
    • 二、通信双方如何协商MSS
    • 三、MTU

一、MSS的含义

MSS是Maximum Segment Size的缩写,指TCP报文段所允许传送的数据部分最大长度
如果上层交付下来的数据太大,tcp会对其进行分块。这个分块过程是在传输层完成的,在接收端的传输层对分块的TCP报文段的数据部分进行重组。MSS字段位于TCP首部中的选项字段。

注意:这个MSS指的是TCP报文段中数据部分的最大长度,并不是整个TCP报文段长度。整个TCP报文段长度 = TCP首部长度 + TCP数据部分长度。

二、通信双方如何协商MSS

MSS的值是在TCP三次握手建立连接的过程中,经通信双方协商确定的

链路层使用以太网的话,IP层的MTU是1500 byte,这样去掉IP数据报首部(20 byte),在去掉TCP首部(20 byte)后为1460 byte,此时在默认情况下TCP“选项”字段的MSS值为1460 byte = 1500 – 20 – 20。

在 Internet 标准中,IP层的MTU是576 byte,那么此时TCP“选项”字段的MSS值为536 byte = 576 – 20 – 20。

以上是默认情况下一个TCP报文段中的MSS值,下面我们详细说明MSS值的确定过程。

MSS值只会出现在SYN报文中,即SYN=1时,才会有MSS字段值。当客户端想要以TCP方式从服务器端下载数据时,

(1)首先客户端会发送一个SYN请求报文,这个SYN报文的“选项”字段中会有MSS值(MSS = MUT – IP首部长度 – TCP首部长度)。该MSS值是为了告知对方最大的发送数据大小。

(2)当服务器端收到SYN报文后,会向请求端返回SYN+ACK(同步确认报文)报文,其中的“选项”字段也会有MSS值。

(3)通信双方选择SYN和SYN+ACK报文中最小的MSS最为此次TCP连接的MSS,从而达到通信双发协商MSS的效果。

综上,在第二次握手后就可以确定TCP中最大传输报文(MSS)大小。

三、MTU

MTU是是 Maximum Transmission Unit 的缩写,即最大传输单元,是数据链路层的概念,它规定了数据链路层所能传送的最大数据长度(不包含数据链路层的首部)。这个根据由具体的网络决定的,如以太网的MTU=1500,Internet的MTU=576。

如果IP层所要传输的报文(包含IP首部) > MTU的话,要对这个数据进行分片处理,每个片长度都小于MTU,每个片构成一个IP数据报进行传输。

在服务端的IP层使用IP数据报的首部信息对这些分片的IP数据报进行重组。这样使得IP层的分片对传输层看起来是透明的(传输层不知道IP层进行了分片操作)。

MTU=MSS + TCP Header + IP Header。

这些术语作为技术开发人员的基本常识,要掌握,冷不防的面试官问你什么是MTU,结果栽在这么简单的问题上。

    • 一、MSS的含义
    • 二、通信双方如何协商MSS
    • 三、MTU

一、MSS的含义

MSS是Maximum Segment Size的缩写,指TCP报文段所允许传送的数据部分最大长度
如果上层交付下来的数据太大,tcp会对其进行分块。这个分块过程是在传输层完成的,在接收端的传输层对分块的TCP报文段的数据部分进行重组。MSS字段位于TCP首部中的选项字段。

注意:这个MSS指的是TCP报文段中数据部分的最大长度,并不是整个TCP报文段长度。整个TCP报文段长度 = TCP首部长度 + TCP数据部分长度。

二、通信双方如何协商MSS

MSS的值是在TCP三次握手建立连接的过程中,经通信双方协商确定的

链路层使用以太网的话,IP层的MTU是1500 byte,这样去掉IP数据报首部(20 byte),在去掉TCP首部(20 byte)后为1460 byte,此时在默认情况下TCP“选项”字段的MSS值为1460 byte = 1500 – 20 – 20。

在 Internet 标准中,IP层的MTU是576 byte,那么此时TCP“选项”字段的MSS值为536 byte = 576 – 20 – 20。

以上是默认情况下一个TCP报文段中的MSS值,下面我们详细说明MSS值的确定过程。

MSS值只会出现在SYN报文中,即SYN=1时,才会有MSS字段值。当客户端想要以TCP方式从服务器端下载数据时,

(1)首先客户端会发送一个SYN请求报文,这个SYN报文的“选项”字段中会有MSS值(MSS = MUT – IP首部长度 – TCP首部长度)。该MSS值是为了告知对方最大的发送数据大小。

(2)当服务器端收到SYN报文后,会向请求端返回SYN+ACK(同步确认报文)报文,其中的“选项”字段也会有MSS值。

(3)通信双方选择SYN和SYN+ACK报文中最小的MSS最为此次TCP连接的MSS,从而达到通信双发协商MSS的效果。

综上,在第二次握手后就可以确定TCP中最大传输报文(MSS)大小。

三、MTU

MTU是是 Maximum Transmission Unit 的缩写,即最大传输单元,是数据链路层的概念,它规定了数据链路层所能传送的最大数据长度(不包含数据链路层的首部)。这个根据由具体的网络决定的,如以太网的MTU=1500,Internet的MTU=576。

如果IP层所要传输的报文(包含IP首部) > MTU的话,要对这个数据进行分片处理,每个片长度都小于MTU,每个片构成一个IP数据报进行传输。

在服务端的IP层使用IP数据报的首部信息对这些分片的IP数据报进行重组。这样使得IP层的分片对传输层看起来是透明的(传输层不知道IP层进行了分片操作)。

MTU=MSS + TCP Header + IP Header。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Linux C/C++面试之《网络编程系列》(9) MSS、MTU、IP分片、TCP分段求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们