三次握手 来源知乎用户Storm
2017-08-19 15:40
239 查看
一.概念
SYN(synchronous/同步)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
ACK(Acknowledgement/确认),即确认字符,在数据通信中,接受站发给发送站的一种传输类控制字符,表示发来的数据已接受无误。
SEQ(Sequence/序列)是发送数据包中的序列号。
Established(Established/已建立),含义TCP连接成功。
SYN_SENT表示请求连接,当你要访问其他的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。
SYN_RECV是指服务端被动打开后,接收到了客户端的SYN并且发送了ACK时的状态。再进一步接收到客户端的ACK就进入到ESTABLISHED状态。
二.流程
第一次握手:建立连接时,client发送syn(syn=j)包到server,并进入SYN_SENT状态,等待服务端确认。
第二次握手:server接收到syn包,必须确认client的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时server进入SYN_RECV状态;
第三次握手:client收到server的SYN+ACK包,向server发送确认包(ack = k+1),此包发送完毕
client和server进入ESTABLISHED(TCP连接成功,完成三次握手)
完成三次握手,client与server开始传送数据
这就是三次握手的基本原理, 在确保消息准备不丢失的情况下, 进行高效安全的通讯!
SYN(synchronous/同步)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
ACK(Acknowledgement/确认),即确认字符,在数据通信中,接受站发给发送站的一种传输类控制字符,表示发来的数据已接受无误。
SEQ(Sequence/序列)是发送数据包中的序列号。
Established(Established/已建立),含义TCP连接成功。
SYN_SENT表示请求连接,当你要访问其他的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。
SYN_RECV是指服务端被动打开后,接收到了客户端的SYN并且发送了ACK时的状态。再进一步接收到客户端的ACK就进入到ESTABLISHED状态。
二.流程
第一次握手:建立连接时,client发送syn(syn=j)包到server,并进入SYN_SENT状态,等待服务端确认。
第二次握手:server接收到syn包,必须确认client的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时server进入SYN_RECV状态;
第三次握手:client收到server的SYN+ACK包,向server发送确认包(ack = k+1),此包发送完毕
client和server进入ESTABLISHED(TCP连接成功,完成三次握手)
完成三次握手,client与server开始传送数据
三. 通俗来说
AB两军协同作战, A军想要与B军同时发起总攻, 于是A军派出通讯员前往B军通讯, B军收到消息, 但是A军并不知道B军已经收到消息, B军司令很担心这个问题, 于是, 派出通讯员前往A军, A军收到了通讯员的消息, 知道B军知道了要发起总共的消息, 但是A军司令担心B军不知道自己收到了消息, 如果到时候没有发起总共怎么办? 于是A军再次派出通讯员前往B军告诉B军, A军已经收到了B军已经收到了消息的消息.这就是三次握手的基本原理, 在确保消息准备不丢失的情况下, 进行高效安全的通讯!
相关文章推荐
- TCP三次握手和四次挥手及用户访问网页流程
- NetWork——关于TCP协议的三次握手和四次挥手
- TCP连接为什么要三次握手
- TCP协议中的三次握手和四次挥手(图解)
- 编写代码实现,模拟用户登录情景,并且只能登录三次。
- 三次握手和四次握手连接
- TCP/IP协议三次握手与四次握手流程解析
- TCP面试题(一)之TCP的三次握手和accept()的顺序
- 【计网】TCP的三次握手和四次挥手
- TCP协议中的三次握手和四次挥手(转载)
- TCP/IP连接为什么要三次握手,而不是两次
- 简析TCP的三次握手与四次分手
- TCP协议中的三次握手和四次挥手(图解)
- TCP/IP三次握手与四次挥手
- Http协议三次握手过程
- TCP的三次握手和四次挥手
- TCP协议三次握手过程分析【图解,简单清晰】
- wireshark分析包中关于三次握手和四次终止标识
- TCP连接建立过程中为什么需要“三次握手”
- TCP/IP 三次握手