快捷搜索:  汽车  科技

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)TCP传递给IP层的信息单位称为报文段或段,下面都用段做单位。要想简单了解TCP三次握手,我们首先要了解TCP头部结构,如下:1. 准备TCP是属于网络分层中的传输层,因为OSI分为7层,感觉太麻烦了,所以分为四层就好了,简单。分层以及每层的协议,TCP是属于传输层,如下两张图:TCP三次握手会涉及到状态转换所以这里贴出TCP的状态转换图如下:

通过三次握手来建立连接。 连接建立之后,就会传送数据! 四次握手来释放TCP连接关于TCP协议中三次握手中的大写ACK和小写ack number的区别

其实ACK也好,ack也好,只不过是个代号而已,叫他张三也行,叫他李四也没事,没有任何影响,因为咱们不会改动那个东西。就算是把名字记反了,对咱们也没有任何影响,大家知道三次握手的数据包里有这么两个东西就行了。

一个是确认值(Acknowledgement),为1便是确认连接。

另一个是确认编号(Acknowledgement Number),即接收到的上一次远端主机传来的seq然后 1,再发送给远端主机。提示远端主机已经成功接收上一次的所有数据

详细教程资料关注 后台私信;资料;两个字可以免费视频领取 文档 各大厂面试题 资料内容包括:C/C ,Linux,golang Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,嵌入式 等。

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(1)

1. 准备

TCP是属于网络分层中的传输层,因为OSI分为7层,感觉太麻烦了,所以分为四层就好了,简单。
分层以及每层的协议,TCP是属于传输层,如下两张图:

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(2)

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(3)

TCP三次握手会涉及到状态转换所以这里贴出TCP的状态转换图如下:

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(4)

2.TCP三次握手简述

要想简单了解TCP三次握手,我们首先要了解TCP头部结构,如下:

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(5)

TCP传递给IP层的信息单位称为报文段或段,下面都用做单位。

答复:小写的ack是确认号,上一个序列号增加一个结果

至于为什么必须有三次握手:

2.1 第一次握手

客户端给服务器发送一个SYN端(在 TCP 标头中 SYN 位字段为 1 的 TCP/IP 数据包) 该段中也包含客户端的初始序列号(Sequence number = J)。

SYN是同步的缩写,SYN 段是发送到另一台计算机的 TCP 数据包,请求在它们之间建立连接

2.2 第二次握手

服务器返回客户端 SYN ACK 段(在 TCP 标头中SYN和ACK位字段都为 1 的 TCP/IP 数据包), 该段中包含服务器的初始序列号(Sequence number = K);同时使 Acknowledgment number = J 1来表示确认已收到客户端的 SYN段(Sequence number = J)。

ACK 是“确认”的缩写。 ACK 数据包是任何确认收到一条消息或一系列数据包的 TCP 数据包

2.3 第三次握手

客户端给服务器响应一个ACK段(在 TCP 标头中 ACK 位字段为 1 的 TCP/IP 数据包) 该段中使 Acknowledgment number = K 1来表示确认已收到服务器的 SYN段(Sequence number = K)。

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(6)

阐述tcp三次握手的详细过程(TCP为什么需要三次握手)(7)

总结

详细教程资料关注 后台私信;资料;两个字可以免费视频领取 文档 各大厂面试题 资料内容包括:C/C ,Linux,golang Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,嵌入式 等。

1.本来想写TCP连接的建立和终止的,没想到要讲清楚TCP连接的建立已经很大的篇幅了,就只讲TCP连接的建立而已。
2.以前看书的时候,没有解决一个问题的来的深刻或者说脉络清晰,这个就是主题阅读的好处吧。
3.以前没有养成一个遇到问题深入解析,解决问题的习惯,今后慢慢养成。

猜您喜欢: