您现在的位置是:首页 >学无止境 >【计网】【TCP】浅析TCP三次握手网站首页学无止境
【计网】【TCP】浅析TCP三次握手
简介【计网】【TCP】浅析TCP三次握手
前言
-
之前学习计网时不认真,TCP三次握手稀里糊涂就过去了,最近在重新查漏补缺计网这方面的知识,饭要一口一口吃,我就没有把其中涉及到的大量知识点写在此博客中,此文仅管中窥豹,之后再详细写吧。
-
笔记中有些个人理解后整理的笔记,可能有所偏差,也恳请读者帮忙指出,谢谢。
免责声明
- 为了方便,本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除,感谢其他博主提供的图床。
- 此笔记用于记录本人对于该知识的汇总。以方便日后的工作与学习。
- 如有侵权请告知,马上删除。
【是什么?】
- TCP三次握手:指的是客户端与服务端建立TCP链接时的过程
【为什么?】
-
确认自己和对方的发送和接收都是正常的,从而保证了双方能够进行可靠通信。
-
客户端和服务端建立TCP链接时,通信双方必须从对方了解信息。才能确定双方是要互相建立链接的对象。
- 双方所需要了解的信息包括
- 对方报文发送的开始序号。
- 对方发送数据的缓冲区大小。
- 能被接收的最大报文段长度MSS。
- 被支持的TCP选项
- 双方所需要了解的信息包括
【怎么做?】
第一次
-
客户端向服务器发送一个 SYN (seq=j)包,并进入SYN_SENT状态,等待服务器确认
- SYN:同步序列编号(Synchronize Sequence Numbers)
- seq:表示这个tcp包的序列号
- SYN_SENT:表示请求连接
- SYN:同步序列编号(Synchronize Sequence Numbers)
-
【证明】客户端具备发送能力
第二次
-
服务器收到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连接成功
-
【证明】服务端也具备接收能力
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。