TCP连接——三次握手和四次断开
1.面向连接
TCP是一个面向连接的协议,面向连接是指任何一方向对方发送数据前必须先建立通道,比如像打电话一样:必须要等到对方的手机响铃,并且对方接听电话时,才能与对方通信。而UDP则不是面向连接的协议,基于UDP协议的通信双方不需要事先与对方协商建立连接,也不管对方的IP地址与端口号是否存在,就发送数据,这个处理方式有点像手机发短信,不管对方手机是否欠费或关机,我们就只管发送信息。
2.三次握手
第一次握手:客户端发送SYN包(序列号seq=100),等待服务器的确认。
第二次握手:服务器收到SYN包之后,必须确认客户端,所以就要发送ACK包(ACK=101),同时,服务器必须还必须发送SYN包(序列号seq=300)等客户端的确认。
第三次握手:客户端接收到SYN+ACK包之后,向服务器发送确认包(ACK=301),次包发送完毕之后,两者就可以进行数据交换了。
简单的来说:
C(客户端) S(服务器)
C:发送SYN给S
S:如果成功,返回给C(SYN+ACK)
C:如果成功,返回给S(ACK)
还可用个形象的例子说下:TCP的 三次握手过程可以看成是某男生追某女生的过程。第一次握手就好比是:男生向女生告白,说我喜欢你,然后男生等待女生的回应,第二次握手就好比是:女生收到 男生的告白,而且该女生也喜欢次男生,她就可以给男生回应,说:我也喜欢你。第三次握手:男生收到该女生的回应,大喜,又发送消息过去,那我们正式交往 吧!
3.四次断开
1.客户端发送数据完毕之后,提出要断开连接
2.服务器收到FIN包后,对其作出反应,发送ACK包,确认这一方向的连接将关闭,
3.等服务器的应用程序做好关闭准备时,服务器反方向发送FIN包,请求关闭连接请求,
4.客户机对服务器发送的请求进行确认,并发送ACK包
也可简单的概述:
C(客户端) S(服务器)
C:发送FIN给S
S:如果成功,返回给C(ACK)
S:应用程序做好关闭程序准备,发送FIN给C
C:如果成功,返回给S(ACK)
同样也可以用个形象的例子说明:这个过程相当于男女双方分手的过程:1,女方向男方提出分手,等待男方的回应2,男方听到这个消息后,就给女方回应说:好吧!分就分3,过段时间,男方突然觉得很没面子,想:“我一个大老爷们,应该是我提出分手”,于是,男方跟女方说:我们分手吧!4,这时,女方就直接骂了句“神经病”。
转载于:https://blog.51cto.com/laoshuxmao/1309288
TCP连接——三次握手和四次断开相关推荐
- TCP连接三次握手和四次挥手
摘要: 本文主要介绍TCP连接三次握手和四次挥手的机制. 1.三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Clie ...
- TCP的三次握手和四次断开
三次握手与四次挥手分别对应TCP连接建立过程与断开过程,先上TCP报文格式: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源 ...
- TCP的三次握手与四次断开
1.三次握手 物理层.数据链路层在物理层面上架设好了通信链路,网络层确定了通信双方的地址,那下一步就是传输层建立逻辑层面上的通信连接,将从应用层获得的报文数据从源端发送给接受端.TCP的三次握手就是在 ...
- TCP的三次握手,四次断开
1.三次握手 1)服务器处于LISTEND,客户端发来请求syn=1.ack=0, 状态为:SYN_SEND 2)服务端收到请求,并返回syn=1.ack=1, 状态为SYN_RCVD 3)确立连 ...
- 【重难点】【计算机网络 02】TCP 和 UDP 的区别、TCP 的三次握手和四次挥手、HTTP 和 HTTPS、HTTP 各版本之间的区别、HTTP 如何实现长连接
[重难点][计算机网络 02]TCP 和 UDP 的区别.TCP 的三次握手和四次挥手.HTTP 和 HTTPS.HTTP 各版本之间的区别.HTTP 如何实现长连接 文章目录 [重难点][计算机网络 ...
- 一文搞懂TCP的三次握手和四次挥手
目录 1.三次握手 2.四次挥手 3.11种状态名词解析 TCP的三次握手和四次挥手实质就是TCP通信的连接和断开. 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所 ...
- 简析TCP的三次握手与四次分手【转】
转自 简析TCP的三次握手与四次分手 | 果冻想 http://www.jellythink.com/archives/705 TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇 ...
- TCP三次握手与四次断开
第一次握手:建立连接时,客户端发送Syn包(syn=j)到服务器,并进入syn_send状态,等待服务器确认 第二次握手:服务器收到Syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一 ...
- c++TCP的三次握手和四次挥手
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105043395 T ...
最新文章
- SQL多表连接查询(详细实例)
- mysql 启动参数_MySQL启动相关参数 MySQL DBA学习
- BZOJ5091摘苹果(概率、期望)
- chrome的全局搜索快捷键
- 【转】彻底理解cookie,session,token
- Apache Ranger——Hadoop ACL控制工具
- 其实程序员高工资,好多时候就是加班和自己硬撑出来的
- 移动边缘计算网络架构
- win10图片浏览改回原来win7的模式
- Field II 超声声场仿真(2): 接收灵敏度(原理代码)
- 关于BIOS的入口地址0xFFFF0
- Xilinx IOB输出寄存器约束笔记
- Python成语接龙人人对战
- 与日历有关的小程序推荐
- ADB安装电视应用市场
- 水稻CBL家族蛋白质查找
- 电子通信、嵌入式工程师的面试指南
- IEEE T PAMI投稿注意事项
- 申请澳洲八大,IB成绩多高才有胜算?
- 华三路由交换配置命令_h3c路由器配置命令都有哪些 h3c路由器配置命令大全【详解】...
热门文章
- Android 使用jtds远程访问数据库
- php内核分析(六)-opcode
- 一次微信小程序的快速开发体验
- IT人的自我导向型学习:学习的4个层次
- C#中字符“.NET研究”串的内存分配与驻留池
- conversion to dalvik format failed with error 1的解决办法
- C#为什么会这么慢之命运之终章-真理篇for firelong
- 真希望永远用不到这些代码
- POJ2676,HDU4069解决数独的两种实现:DFS、DLX
- iOS开发UI篇—直接使用UITableView Controller