tcp三次握手协议
一:什么是三次握手协议 (tcp/ip建立连接的过程)
三次握手协议指的是在发送数据的准备阶段,服务器与客户端之间需要进行三次交互。
具体过程如下:
第一次握手:建立连接时,客户端向服务器发送一个SYN包(握手信号),并计入SYN_SENT状态,等待服务器确认。
第二层握手:服务器收到SYN包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK包(接收到消息并响应),此 时服务器进入SYN_SENT状态。
第三次握手:客户端收到服务器的SYN+ACK包,并向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入 Established(已建立的,确认的)状态。即TCP连接成功,完成三次握手。
此后,服务器和客户端就可以开始传送数据。在上述三次握手协议中,服务器还在维护一个未连接队列,等待其他客户端的连接请求,若能顺利完成三次握手协议,则服务器也可以与该客户端进行数据的传输。
二:三次握手的核心思想
1:TCP作为一种可靠传输控制协议,其核心思想是:既要保证数据可靠传输,又要提高传输效率,而用三次恰恰可以满足以上两个方面的要求。
2:三次是保证双方互相明确对方能收,能发的最低值。理论上讲不论握手多少次都不能确认一条消息是“可靠”的,但通过三次握手后,至少可以确认tcp/ip协议是“可用”的。在此基础上,继续提高握手次数,不过是提高“它是可用的”这个结论的可信程度。
3:可以将三次握手过程形象的归纳如下:
1:A发,B收,B知道A能发;
2:B发,A收,A知道B能发能收;
3:A发,B收,B知道A能收。
4:“三次握手”的本质是:信道是不可靠的,但是通信双方需要就某个协议达成一致,而要解决这个问题,无论你在消息中包含什么信息,三次通信是理论上的最小值。因为三次握手不是TCP本身的要求,而是为了满足“在不可靠的信道上可靠的传输信息”这一需要导致的。
上一篇: TCP三次握手
推荐阅读
-
Android编程使用HTTP协议与TCP协议实现上传文件的方法
-
Android编程使用HTTP协议与TCP协议实现上传文件的方法
-
TCP/IP协议中三次握手四次挥手的原理及流程分析
-
.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
-
Python实现TCP/IP协议下的端口转发及重定向示例
-
Python实现TCP协议下的端口映射功能的脚本程序示例
-
Java编程实现基于TCP协议的Socket聊天室示例
-
python网络编程 使用UDP、TCP协议收发信息详解
-
.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
-
Python实现TCP/IP协议下的端口转发及重定向示例