网络技术之TCP三次握手

Posted 山上有风景

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络技术之TCP三次握手相关的知识,希望对你有一定的参考价值。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手方式建立一个连接

第一次握手:c->s

建立连接时,客户端发送SYN包(syn=j){注:syn:Synchronize Sequence Numbers同步序列编号}到服务器端,此时客户端进入SYN_SEND状态,等待服务器确认。

第二次握手:s->c

服务端接收到SYN包以后,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k){注:两个SYN并没有任何关系,都是随机序列},即SYN+ACK包,此时服务器进入SYN_RECV状态

第三次握手:c->s

客户端收到服务器端的SYN+ACK包后,确认无误后,向服务端发送确认包ACK(ack=k+1),当此包发送完毕后,服务器和客户端都进入ESTABLISHED就绪状态

以下是使用sniffer捕获的数据包,包含TCP三次握手

其中第一次握手:

客户端发送SYN包③处数据为SEQ=3176842225是第二次握手服务器发送的确认包减一

第二次握手服务器发送的SYN包中包含了SEQ和ACK两种数据到客户端

第三次握手客户端发送的SYN包中只包含一个ACK确认数据④,是第二次握手中的序列号加一,即ACK=3674909728

其中SEQ是SYN(Synchronize Sequence Numbers),也是他的(Sequence 简写,不要搞混)

以上是关于网络技术之TCP三次握手的主要内容,如果未能解决你的问题,请参考以下文章

网络 之 三次握手&四次挥手 介绍

Java网络原理之连接管理:TCP三次握手和TCP四次挥手

网络 之 三次握手&四次挥手 介绍

TCP三次握手原理

TCP源码分析 - 三次握手之 connect 过程

Linux TCP/IP协议之三次握手