zoukankan      html  css  js  c++  java
  • TCP三次握手和四次挥手&TCP、UDP的区别

    一、TCP三次握手

    1.第一次握手:发送端(客户端) 将标有 SYN 的数据包发给 接收端(服务端)
    2.第二次握手:接收端(服务端) 将标有 SYN/ACK 的数据包发给 发送端(客户端)
    3.第三次握手:
    发送端(客户端)
    将标有 ACK 的数据包发给 接收端(服务端)

    二、为什么要三次握手

    三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常。
    第一次握手:Client 什么都不能确定;Server确定了对方发送正常,自己接收正常
    第二次握手:Client 确定了自己发送、接收正常,对方发送、接收正常;Server确定了对方发送正常,自己接收正常
    第三次握手:Client 确定了自己发送、接收正常,对方发送、接收正常;Server确认对方发送、接收正常,自己发送、接收正常

    三、第2次握手传回了ACK,为什么还要传回SYN?

    接收端传回发送端所发送的ACK是为了告诉客户端,我接收到的信息确实就是你所发送的信号了,这表明从客户端到服务端的通信是正常的。而回传SYN则是为了建立并确认从服务端到客户端的通信。

    四、为什么要四次挥手

    • 客户端发送一个FIN,用来关闭客户端到服务器的数据传送
    • 服务器收到这个FIN,它发回一个ACK,确定序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号
    • 服务器关闭与客户端的连接,发送一个FIN给客户端
    • 客户端发回ACK报文确认,并将确认序号设置为收到序号加1
    任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。
    
    举个例子:A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B回答“我知道了”,但是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,于是 B 可能又巴拉巴拉说了一通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。
    

    五、TCP,UDP协议的区别

    有事评论区留言,也欢迎一起学习的伙伴
  • 相关阅读:
    bzoj 1856 组合
    bzoj 2809 左偏树平衡树启发式合并
    【HMOI】小C的填数游戏 DP+线段树维护
    【HNOI】 小A的树 tree-dp
    bzoj 1483 链表启发式合并
    bzoj 2733 平衡树启发式合并
    bzoj 2669 状压DP
    bzoj 2165 DP
    【HNOI】 lct tree-dp
    远程debug配置
  • 原文地址:https://www.cnblogs.com/wt9866/p/13894260.html
Copyright © 2011-2022 走看看