首页 > 编程知识 正文

tcp/ip协议的三次握手,TCP/IP协议的三次握手和四次挥手过程

时间:2023-05-06 10:06:28 阅读:227821 作者:4365

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

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

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

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

简单版TCP/IP 的三次握手

如果看完这篇文章你啥也没记住,我希望您能记住下面这张图:

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

为了帮助理解流程先上图:

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

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

四次挥手

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

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

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。