学习记录_TCP的三次握手

这篇博客详细解析了TCP协议的三次握手过程,从客户端A和服务器B的角度阐述了每次握手的动作、设备状态变化以及TCP首部字段的内容。讨论了在每次握手后双方能证明的信息,并对相关字段如序列号、确认号和窗口大小的协调进行了说明。
摘要由CSDN通过智能技术生成

 初次学习网络协议记录,如有错误请见谅,欢迎大家补充修改哈。 


目录

具体的三次握手: 

 第一次握手 :A->B

 第二次握手:A<-B

 第三次握手:A->B


具体的三次握手: 

假设A是客户端,B是服务器

 第一次握手 A->B

 (动作1)A向B主动发起建立连接请求(建立连接-TCP请求),A发送完成后。

 (首部字段内容)其A_TCP段中的首部 

(设备状态)A的状态-CLOSED-关闭态-转变成同步已发送态-SYN-SEND

(结论)从A的角度:只能证明A向B的方向发送了数据,但是不能证明A发送成功(B有没有接收到)。

(结论)从B的角度:没啥能证明。

A_SYN

A_ACK

A_seq_No

A_ack_No

A_Window

A_option_MSS

1

0

0

0

Xx1

Xx2

A主动发起建立

B在之前并没有发起所以不用回应

B的ack_No=0

 

B的seq_No=0且Len=0

默认

默认

申请建立连接

数据段开头位(相对值)

协调双方计算窗口大小

步骤数据量字段绝对值相对值解释
第一次lens=0A-seq_Nos10A第一次连接,还没有任何数据收发,所以seq=0;
A-ack_No00A第一次连接,没有任何数据收发,所以ack=0;

 

 第二次握手:A<-B

(动作1)B接收到来自A的请求。

(设备状态)B也会从监听态-LISTENED转变成同步已接收态-SYN-RCVD

=============================================

(动作2)B向A返回响应(建立连接-TCP请求),B发送完成后。

(首部字段内容)其B_TCP段中的首部

(设备状态)B的状态仍为同步已接收态-SYN-RCVD

=============================================

(结论)从A的角度:没啥能证明。

(结论)从B的角度:能证明B能接收到A的数据,能证明B向A的方向发送了数据,但是不能证明B发送成功(A有没有接收到)。

B_SYN

B_ACK

B_seq_No

B_ack_No

B_Window

B_option_MSS

1

1

0

1

XxB1

XxB2

B主动发起建立

A在之前发起过

对A进行回应

A的ack_No=0

A的seq_No=0且Len=0

默认

默认

回应并申请建立连接

数据段开头位(相对值)

协调双方计算窗口大小

步骤数据量字段绝对值相对值解释
第二次lens=0B-seq_Nos20并不是因为上一次A=>B的ack=0导致的(因为当时的ACK=0,所以ack=0无效);而是因为B第一次连接,还没有任何数据收发,所以seq=0;
B-ack_Nos1+11因为上一次的A=>B中,A发送了第0位置的数据(虽然数据为空,且长度为0),所以B希望下次A能够发送从"第0+1位置开始的数据";

 

 第三次握手:A->B

(动作1)A接收到来自B的请求。

(设备状态)A的状态由同步已发送态-SYN-SEND转变成建立连接态-ESTABLISHED

=============================================

(动作2)A向B返回响应(响应-TCP请求),B发送完成后。

(首部字段内容)其B_TCP段中的首部:

(设备状态)B的状态仍为同步已接收态-SYN-RCVD

=============================================

(动作3)B接收到来自A的请求。

(设备状态)B的状态由同步已接收态-SYN-RCVD转变成建立连接态-ESTABLISHED

=============================================

(结论)从A的角度:证明A能成功向B发送数据,也能成功接收到B的数据

(结论)从B的角度:“假如说B一直能成功接收A的数据”,那么意味着不需要下一次4号B的主动发送,就能证明A确实发送了数据给B(3号执行了),也能证明B确实能发送数据给A。

 

A_SYN

A_ACK

A_seq_No

A_ack_No

0

1

1

1

不再建立

B在之前发起过对B进行回应

B的ack_No=1

B的seq_No=0且Len=0

回应响应

数据段开头位

步骤数据量字段绝对值相对值解释
第三次lens=0A-seq_Nos1+11因为上次B=>A的ack=1,所以A开始从第一个位的数据发送给B;
A-ack_Nos2+11因为上一次的B=>A中,B发送了第0位置的数据(虽然数据为空,且长度为0),所以A希望下次B能够发送从"第0+1位置开始的数据";

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值