您现在的位置是:首页 >学无止境 >【计网】【TCP】浅析TCP三次握手网站首页学无止境

【计网】【TCP】浅析TCP三次握手

lao-jiawei 2024-06-17 10:31:53
简介【计网】【TCP】浅析TCP三次握手

前言

  • 之前学习计网时不认真,TCP三次握手稀里糊涂就过去了,最近在重新查漏补缺计网这方面的知识,饭要一口一口吃,我就没有把其中涉及到的大量知识点写在此博客中,此文仅管中窥豹,之后再详细写吧。

  • 笔记中有些个人理解后整理的笔记,可能有所偏差,也恳请读者帮忙指出,谢谢。

免责声明

  • 为了方便,本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除,感谢其他博主提供的图床。
  • 此笔记用于记录本人对于该知识的汇总。以方便日后的工作与学习。
  • 如有侵权请告知,马上删除。

【是什么?】

  • TCP三次握手:指的是客户端与服务端建立TCP链接时的过程

【为什么?】

  • 确认自己和对方的发送和接收都是正常的,从而保证了双方能够进行可靠通信。

  • 客户端和服务端建立TCP链接时,通信双方必须从对方了解信息。才能确定双方是要互相建立链接的对象

    • 双方所需要了解的信息包括
      1. 对方报文发送的开始序号
      2. 对方发送数据的缓冲区大小
      3. 能被接收的最大报文段长度MSS
      4. 被支持的TCP选项

【怎么做?】

第一次

  • 客户端向服务器发送一个 SYN (seq=j)包,并进入SYN_SENT状态,等待服务器确认

    • SYN:同步序列编号(Synchronize Sequence Numbers)
      • seq:表示这个tcp包的序列号
    • SYN_SENT:表示请求连接
  • 【证明】客户端具备发送能力

第二次

  • 服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进SYN_RECV状态。

    • ACK:表示这个包的确认号, 证明发来的数据已确认接收无误
    • SYN_RECV : 表示服务器暂时无法提供正常的TCP服务。以此拒绝其他请求。
  • 【证明】服务端具备发送能力,客户端具备接收能力

第三次

  • 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    • ESTABLISHED:表示TCP连接成功
  • 【证明】服务端也具备接收能力

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。