--随笔--带你轻松理解TCP中的三次握手

TCP中三次握手那些事

写在前言,本篇文章借阅了csdn博主: 青柚_的博客:https://blog.csdn.net/qq_38950316/article/details/81087809,同时也借阅了bilibili的up主:LIUSE网络的视频:https://www.bilibili.com/video/av35645270?from=search&seid=1451912717130158360,我看完两位大佬的文章和视频后也对三次握手有了初步的理解,借此用来巩固和学习。

三次握手过程理解
(借用青柚_博主的图)
在这里插入图片描述
先不要理有那么多特殊名称,先了解有SYN,ACK这两个东西,SYN顾名思义为同步标志,表示要和服务器建立连接,随后,服务器接收到客户端的SYN后,也向客户端发送SYN,表示同意连接,并且发送ACK(确认是否有效)确认这个SYN为正确的SYN,最后客户端再向服务器发送ACK确认建立连接。

然后,可以用比较形象的故事来解读,就把客户端和服务器端比作在打战时期的两个同盟阵营A和B,A想告诉B今晚去攻打XXX,然后A就派了个干员SYN前往B阵营,告诉B今晚要去打XXX,然后B得知,并且同意后,让SYN传话回去,告诉A,表示B同意了,然后为了确保路上的安全,在派ACK来保护SYN回去,SYN回去告诉A后,ACK也该回到自己的B阵营了,便从A回到B,这就类似TCP中的三次握手,这样说不知道会不会好理解一些。

当然,我这么说只是白话的说,里边的内容其实有很多,这样只是方便理解和记忆,图上的就不一一讲解了,毕竟现在还处于学习阶段,大多数知识还是有盲区的,然后说一下状态的变化吧:
最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B收听状态LISTEN——A同步已发送状态SYN-SENT——B同步收到状态SYN-RCVD——A、B连接已建立状态ESTABLISHED)

说完上边那两个标志位(SYN,ACK),再来简单说一下其它标志位:

字段含义
SYN请求建立连接并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1。
ACK确认号是否有效,一般置为1。
PSH提示接收端应用程序立即从TCP缓冲区把数据读走。
RST对方要求重新建立连接,复位。
URG紧急指针是否有效。为1,表示某一位需要被优先处理
FIN希望断开连接。(四次挥手中)

总之,先简单理解三次挥手,做好面试被提问的准备,当然还有四次挥手也是很多面试官喜欢问的问题,这里是我写的关于四次挥手的博客,大家可以看一看哟,也许还对你有帮助哦,各位共勉,一起加油,Fighting!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值