2021-08-10

TCP/IP协议是计算机通信的基础,它包括三次握手建立连接和四次挥手断开连接的过程。三次握手确保双方同步,防止旧数据干扰新连接;四次挥手则确保双方都能正常关闭连接,避免资源浪费。此博客深入解析了这两个关键概念,并解释了客户端为何需要等待。
摘要由CSDN通过智能技术生成

知乎-NowYouSeeMe-理解TCP/IP协议

CSDN-猿人谷-面试官,不要再问我三次握手和四次挥手

什么是TCP/IP协议

计算机与计算机通过网络通信而达成的“约定”,双方通过该约定,就能互相通信。

传输方式的分类

  1. 面向有连接型
    在传输数据之前,要先建立通信线路,传输完成后,要断开通信线路。
  2. 面向无连接型
    无需确认对方是否存在,发送端随时可以发送数据。

三次握手,四次挥手

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据之前,必须和对方建立连接。

三次握手的目的是在发送数据之前,让双方的发送和接受同步。

  1. 第一次握手:客户端链接请求(建立链接)
  2. 第二次握手:服务器同意连接和要求同步
  3. 第三次握手:客户端确认同步
  4. 传输数据

为什么要三次握手

为了防止客户端两次发送链接请求,其中第二次链接请求得到了服务器的回复,建立了链接,传输完数据后已经释放。但第一次链接请求可能在某个网络节点堵车堵了一个小时才到达服务器,服务器以为客户端又要发送数据,于是又回复了请求,但客户端并不想发送数据,不理睬服务器的回复。如果没有第三次确认的话,服务器就会因为这堵车的链接请求傻乎乎地等客户端发送数据,直到超时才结束等待,白白浪费时间。
三次握手

四次挥手的目的传输完成,断开通信连接。

  1. 发送端发送释放链接请求
  2. 接收端回复释放链接确认
  3. 接收端发送接收端释放链接请求
  4. 发送端回复接收端释放链接确认
    四次挥手

客户端为什么会等待

两个理由

  1. 如果服务端的释放链接请求报文丢失,客户端没有收到就不会回复确认,在客户端等待的这段时间内,服务端因为没有收到客户端回复的确认报文会重发释放链接请求,这时客户端收到该请求,回复确认后,双方链接释放。
    等待的目的是确认ACK报文会被服务器端收到。
  2. 防止上一个链接的报文出现在下一个链接中。等待2MSL时间,本次链接所产生的所有报文都会到达它的生命尽头,从而从网络中消失,保证不会出现在使用同一IP地址和端口的下一次链接中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值