TCP/IP协议三次握手流程解析

TCP/IP 的三次握手有什么用?

三次握手是TCP/IP网络中用于在client和server之间创建连接的方法。这是一个三步法,要求客户端和服务器在实际数据通信开始之前交换SYN和ACK数据包。
如果理解着比较抽象我来举个例子:
比如说你要给某人打电话,你不可能电话接通了就直接说事情。正常逻辑是:

我:请问,是✖️✖️吗?(SYN)
对方:是我,请问你是谁?(SYN+ACK)
我:您好,我是 ✖️✖️。(ACK)
。。。。。。

这就是我们人在沟通之前建立连接的三次握手。如果没有经过确认就直接说事情,假如电话号码拨错了或者接电活的不是本人,岂不是要闹大笑话。
还是言归正传,讲讲什么是TCP/IP 的三次握手。

简单版TCP/IP 的三次握手

如果看完这篇文章你啥也没记住,我希望您能记住下面这张图:
在这里插入图片描述

  1. client 通过IP网络将SYN数据包发送到 server
  2. 当 server 从 client 接收到 SYN 数据包时,它会响应并返回 SYN / ACK数据包
  3. client 从服务器接收 SYN / ACK 并用ACK数据包进行响应。
详细版TCP/IP 的三次握手

为了帮助理解流程先上图:
在这里插入图片描述

  1. client 发送具有 SYN = 1,ACK = 0,ISN(Initial Sequence Number)= 1000的TCP段。
    ISN(Initial Sequence Number):是一个随机的序列号,用来标记 client 将传输的数据的序列号的开始。
  2. server 接收 client 的TCP段并返回一个TCP段,其中SYN = 1,ACK = 1,ISN = 2000(server 的ISN),ACK NUM(Acknowledgment Number ) = 1001(1000 + 1)。
  3. client 向 server 发送TCP段,确认收到 server 的ISN,标志设置为SYN = 0,ACK = 1,SEQ NUM (Sequence Number)= 1001,ACK NUM= 2001(2000 + 1)

看似很复杂,其实很简单,关键是对流程的理解。涉及的数学运算只是加法。

四次挥手

理解了三次握手,再来看四次挥手就一目了然了,照惯例先上图:

在这里插入图片描述

  1. 要关闭连接的client发送TCP段,其FIN(Finished)标志设置为1。
  2. sever 接收TCP段,并用 ACK 确认 client 的FIN。
  3. sever 将FIN标志设置为1的自己的TCP段发送到客户端,以终止连接。
  4. client 通过 ACK 确认 server 的FIN,并关闭连接。
三次握手和四次挥手整体认识

理解了上面讲的三次握手和四次挥手的底层逻辑,那么我们再从高处俯视TCP/IP数据传输的整体逻辑就显得很清晰了。
注:下面图片来自博客:https://www.cnblogs.com/thrillerz/p/6464203.html

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值