TCP为什么是三次握手,不是两次握手?
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
https://www.cnblogs.com/bclshuai/p/11380657.html
1.三次握手的作用有两个
(1)让Client和Server双方都知道双方可以发送和接收到对方的消息;
(2)避免网络堵塞时,Client以为没有连接上,发送多次请求,而Server会为前面多次无效请求创建连接,造成资源浪费;
2.具体说明
2.1 三次握手确认双方都能接收和发送消息
(1)第一次握手,Client发送给Server:你好,能听到我的声音吗?; 》server如果收到,Server知道了能接收到client发送的消息
(2)第二次握手,Server发送给Client :你好,我能听到你的声音(确认ACK),你能听到我的声音吗? 》Client如果能收到,说明Client知道Server能发送和接收消息;现在还有一点没有确认就是Server不知道Client能否接收Server发送消息?Client的可能电话设置静音了,听不到Server的声音。这样沟通就无效了。所以需要第三次握手。
(3)第三次握手,Client发送给Server:我能听到你的声音,我告诉你一个重大的密码…… 》Server收到,Server知道client具体接收能力;
2.2避免Server 为无效的连接创建资源
Client发送给Server请求连接,如果因为网络堵塞,这个请求阻塞在传输过程中,Client以为没有发过去,又发了一个请求。第一个请求又发送到了服务器,Server又会创建两个连接,第一个连接是无效的,客户端不会通过这个连接去发送消息,这样就造成了服务器资源的浪费。所以需要三次握手,确定连接是否是有效连接。
相关文章
- 指定目标TCP端口的traceroute命令tcptraceroute mailserver 25等价traceroute -T mailserver -p 25
- TCP常用网络和木马使用端口对照表,常用和不常用端口一览表
- 简述TCP三次握手和四次挥手
- http和tcp的区别和联系_udp协议和tcp协议的区别
- TCP/IP、HTTP、Socket之间的区别和联系
- TCP聊天服务器套接字|PyQt5+socket(TCP端口映射+端口放行)+logging+Thread(含日志,html)+anaconda打包32位exe(3.4万字)|python高阶
- TCP聊天+传输文件服务器服务器套接字v2.5 - socket测速规范已经gzip的弃用
- Java 基于TCP协议的Socket编程 —— 服务器端程序
- 【Java 网络编程】TCP 连接 断开 机制 ( 三次握手 | 四次挥手 )
- LabVIEW实现Modbus-TCP通信
- 端口开放Linux 检测TCP端口开放情况的实现(linux判断tcp)
- 协议Linux内核探索:TCP协议的历程(linux内核tcp)
- linux下使用TCP命令掌握网络礼仪(linux命令tcp)
- 安全研究人员曝光TCP/IP堆栈的9个缺陷 超1亿IoT设备与服务器易受攻击
- TCP/IP 教程
- Linux下TCP窗口优化的技巧(linux tcp 窗口)
- 探究Linux TCP协议实现的发包机制(linux tcp发包)
- Linux如何关闭TCP连接(linux关闭tcp连接)
- Linux TCP 流量超时排查(linux tcp 超时)
- C语言实现TCP连接MySQL的方法(c tcp连接mysql)
- TCP与Redis两种不同技术的比较(tcp和redis区别)
- MySQL拒绝监听TCP请求的解决方案(mysql不监听tcp)
- 深入探讨Oracle中的TCP协议的特点(oracle tcp格式)
- 在C#中对TCP客户端的状态封装详解