TCP 传输控制协议

TCP是面向连接的,可靠的,基于流的传输层协议。

TCP报文格式

 

TCP连接的三次握手

客户端随机生成序列号,发送SYN给服务器端; ​

c6 05 1f 48 e6 a8 6c 68 00 00 00 00 80 02 fa f0
b6 ce 00 00 02 04 05 b4 01 03 03 08 01 01 04 02

源端口: c6 05     50693  
目的端口: 1f 48   8008  
序列号: e6 a8 6c 68  
确认号:  00 00 00 00   
数据偏移,保留,NS: 80  1000 0000  
02  0000 0010  

服务器端随机生成序列号,将客户端的序列号加1作为确认号, 发送SYN/ACK给客户端;

1f 48 c6 04 c4 a7 ff 74 e6 a8 6c 69 80 12 72 10
41 b3 00 00 02 04 05 78 01 01 04 02 01 03 03 07

源端口: 1f 48   8008  
目的端口: c6 05     50693  
序列号: c4 a7 ff 74  
确认号:  e6 a8 6c 69   
数据偏移,保留,NS: 80  1000 0000  
12  0001 0010    

客户端将服务器端的序列号加1作为确认号,发送ACK给服务器端。

TCP建立连接为什么要三次握手,两次可不可以?

TCP是可靠的传输层协议,其可靠性是通过数据报文中的序列号来保障的。所以在建立TCP连接的过程当中主要就是为了同步序列号,而数据传输是双向的,对于双向传输的序列号都需要一个确认同步的过程,至少得经过三次数据的交互,所以需要三次握手,两次不可以 

TCP断开连接的过程 (4次挥手)

断开TCP连接可以是由客户端发起,也可以是由服务器端发起   
假设断开连接是由客户端发起的:  

1. 客户端向服务器端发送FIN
2. 服务器向客户端发送ACK
3. 服务器向客户端发送FIN
4. 客户端向服务器端发送ACK

TCP断开连接的过程为什么要4次

TCP协议是双工的,断开连接的时候发送的FIN只是表示单向的数据已经传输完毕了,不需要再发送数据,但是可以接收对方发过来的数据。所以要将双向通信完全关闭,需要分别发送一次FIN和返回一次ACK  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渊途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值