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协议的区别

    有事评论区留言,也欢迎一起学习的伙伴
  • 相关阅读:
    归并排序
    1、钢条切割问题
    webdriver高级应用- 使用日志模块记录测试过程中的信息
    webdriver高级应用- 测试过程中发生异常或断言失败时进行屏幕截图
    webdriver高级应用- 浏览器中新开标签页(Tab)
    webdriver高级应用- 高亮显示正在操作的页面元素
    webdriver高级应用- 精确比较页面截图图片
    webdriver高级应用- 操作富文本框
    webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口
    webdriver高级应用- 操作日期控件
  • 原文地址:https://www.cnblogs.com/wt9866/p/13894260.html
Copyright © 2011-2022 走看看