首页 > 编程知识 正文

简述tcp协议的三次握手协议,tcp连接三次握手

时间:2023-05-04 21:11:17 阅读:174395 作者:2616

TCP握手三次

)1)初次的握手(Client将标志位SYN设定为1,随机生成值seq=J,将其包发送到Server,Client处于SYN_SENT状态,等待服务器的确认。

)第2次握手: Server收到数据包后,根据标志位SYN=1得知客户端要求建立连接,Server将标志位SYN和ACK都设定为1,ack=J 1,随机取值

)第三次握手: Client收到确认后,检查ack是否为J 1,如果将标志位ack正确设置为1,则ack=K 1,Server将其数据包发送到Server,ack为k

TCP作为可靠的协议,其可靠性依赖于ACK确认。 当a向b发送TCP消息时,b返回确认。 a发送到b的分组丢失时,或者b发送到a的ACK丢失时,发送端在超时时间内没有收到来自对方的ACK,发送端在收到ACK之前,或者达到重发上限,重新建立TCP链路。

连接、数据传输、链接解除需要ACK确认。

RST消息、裸体ACK消息无需确认ACK

RST消息不需要ACK,在确认主机a发送了RST消息之后,操作系统释放所有与该TCP链路相关联的存储器。 当b接收到RST消息时,也会释放相关的内存。 如果b没有收到RST消息,则继续向接收方发送发送Reset消息的消息,直到最后,对方也有可能同样接收重置消息,最终释放存储器。

不需要ACK消息ACK确认如果收到没有任何数据的ACK消息,则不需要返回确认。 否则,会发生死循环。

的数据包的组装由操作系统进行,组装完成后传递到消息中的目标端口,监听该端口的进程并提取数据。

TCP挥了四次手

(1) PC1将切断了链接的分组发送给PC2

)2) PC2以PC1的一个确认比特=1的分组进行应答

)3) PC2将切断了链接的分组发送到PC1

)4) PC1向PC2应答确认比特=1的分组

从这四个步骤可以看出,四次挥手和三次握手大同小异。 4次挥手就是将3次握手中的第2次握手分解为2步,进行4次挥手。

挥手4次为什么要将PC2的动作分为两步?

因为在4次挥手中存在半关机的概念,所以TCP方面(通常是客户端方面)可以中止数据的发送,但是tydxte可以接收数据,被称为半关机

客户端将FIN消息发送到服务器,一半关闭此链接。服务器响应ACK确认并接受半关闭

服务器继续发送数据,客户端只响应ACK确认,未发送任何数据

在服务器发送所有数据后,发送FIN消息段,然后客户端响应ACK确认并完全关闭此链接。

为什么连接的时候3次握手,闭着的时候4次握手呢?

a )因为服务器端在收到客户端的SYN连接请求消息后,可以直接发送SYN ACK消息。 其中,ACK消息用于响应,SYN消息用于同步。 但是,关闭连接时,服务器收到FIN消息时,很可能不会马上关闭套接字,所以首先向客户端回复ACK消息,告知“你发送的FIN消息收到了” 在我的服务器端的所有消息都被发送之前,我不能发送FIN消息,所以不能一起发送。 所以四步握手是必要的。

存在半断开的概念,服务器申请断开,发出消息后,等待对方接收并确定断开。

tcp协议的建立和断开过程

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。