您的位置:首页 > 理论基础 > 计算机网络

俯瞰tcp协议的三次握手

2017-12-14 16:19 127 查看
原理装备
一.Iso七层模型,五层模型




 

首先了解,tcp是传输控制协议的简称,tcp是工作在传输层的。

 

 
 

 

下面是报文格式

 
三。然后了解报文头

Tcp请求头

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
12
13
14
15
16
行号
                                                                                      源端口地址
目的端口地址
1
序列号seq 32(位)
2
确认号ackV 32(位)
3
Tcp报文头长度4
扩展字段6
Urg(紧急字段)
Ack(确认)
Psh(立即将数据交给应用层)
Rst(重新连接)
Syn(建立连接)
FIN(断开连接)
窗口大小16
4
校验和 16
紧急指针 16
5
可选
6-x
数据一大堆
x-y
了解,报文的格式,以及每个字段的含义:

源端口地址:客户机本机的ip地址

目的端口地址:要发送数据的对方的ip地址

序列号seq:客户机发送的随机数,目的是用来建立连接时候,收到的回复信息是否是正确的。(基于广播协议)

确认号:基于序列号与策略,返回给客户机时,用于给客户机确认自己的身份ip地址。

Tcp报文头长度:报文头的长度有多少,固定是橙色底的20个字节。但由于可选字段会扩展,所以会有这个长度字段。

Urg,ack,psh,rst,syn,fin只有当各自的位数是1的时候,才表示其意义有效。

Urg:紧急位,如果为1,紧急指针有效

Ack:确认位,如果为1,确认号有效

Psh:推送位,如果为1,将报文推送到应用层的基于tcp的协议中,例如基于tcp的http协议。

Rst:重置位,如果为1,则重新建立连接。

Syn:建立连接位:如果为1,开始建立连接的动作。

Fin:结束连接位:如果为1,则结束建立的连接。不再发送数据包。

窗口大小:窗口字段用来控制对方发送的数据量,可以告知对方目前本身有的缓冲器容量(ReceiveBuffer)还可以接收封包。当
Window=0时,代表缓冲器已经额满,所以应该要暂停传输数据。单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限,这个值是本机期望一次接收的字节数。

校验和:校验数据报文的完整性。

紧急指针:报文的偏移量。URG= 1有效。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。

 

 关于各个字段更详细的解释请参考

 csdn博文:http://blog.csdn.net/jason_zjj/article/details/54563446



 



 




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: