TCP/IP三次握手与四次挥手

本文深入解析TCP协议,一种面向连接的可靠传输层协议。详细解释了TCP的三次握手过程用于建立连接,以及四次挥手用于关闭连接的原因。阐述了SYN、ACK、Seq和FIN等字段的作用,帮助理解TCP如何确保数据的正确传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP:面向连接的传输层协议,是一种可靠的传输层协议;IP协议号为6;

TCP的三次握手:(建立连接)

SYN:表示同步序号,用来建立连接的,SYN和ACK搭配使用,SYN=1,ACK=0,这是一个连接请求的报文段;若同意连接了,就变成SYN=1,ACK=1;因此,SYN表示这是一个连接请求,或是接受报文;

ACK:确认号是否有效,一般为1。占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号是期望接受到下一个自己的编号;因此当前报文段的最后一个字节号+1就是确认号;

Seq:序列号,占4个字节;用来标记数据段的顺序;序列号就是这个报文段的第一个字节的数据编号;

FIN:希望断开连接;FIN=1表示 此报文段的发送方的数据已经发送完毕,并要求释放连接;

TCP的四次握手:(关闭连接)

 

 

为什么连接是三次握手,关闭确是四次挥手?

答:建立连接的时候,因为当Server收到来自客户端的SYN时,可以直接发送ACK和SYN;ACK是用来应答的,确保序列号有效,SYN是用来同步的;因此是可以一起发送的;但是关闭连接的时候,Server接收到来自Client的FIN时,很可能不能立即断开socket,所以只能先发送一个ACK报文,告诉客户端我收到了,只有等到Server端所有的报文都发送完了,才会发送FIN报文,因此是不能一起发送的;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值