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连接——三次握手和四次断开相关推荐

  1. TCP连接三次握手和四次挥手

    摘要: 本文主要介绍TCP连接三次握手和四次挥手的机制. 1.三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Clie ...

  2. TCP的三次握手和四次断开

    三次握手与四次挥手分别对应TCP连接建立过程与断开过程,先上TCP报文格式: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源 ...

  3. TCP的三次握手与四次断开

    1.三次握手 物理层.数据链路层在物理层面上架设好了通信链路,网络层确定了通信双方的地址,那下一步就是传输层建立逻辑层面上的通信连接,将从应用层获得的报文数据从源端发送给接受端.TCP的三次握手就是在 ...

  4. TCP的三次握手,四次断开

    1.三次握手 1)服务器处于LISTEND,客户端发来请求syn=1.ack=0,  状态为:SYN_SEND 2)服务端收到请求,并返回syn=1.ack=1,  状态为SYN_RCVD 3)确立连 ...

  5. 【重难点】【计算机网络 02】TCP 和 UDP 的区别、TCP 的三次握手和四次挥手、HTTP 和 HTTPS、HTTP 各版本之间的区别、HTTP 如何实现长连接

    [重难点][计算机网络 02]TCP 和 UDP 的区别.TCP 的三次握手和四次挥手.HTTP 和 HTTPS.HTTP 各版本之间的区别.HTTP 如何实现长连接 文章目录 [重难点][计算机网络 ...

  6. 一文搞懂TCP的三次握手和四次挥手

    目录 1.三次握手 2.四次挥手 3.11种状态名词解析 TCP的三次握手和四次挥手实质就是TCP通信的连接和断开. 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所 ...

  7. 简析TCP的三次握手与四次分手【转】

    转自 简析TCP的三次握手与四次分手 | 果冻想 http://www.jellythink.com/archives/705 TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇 ...

  8. TCP三次握手与四次断开

    第一次握手:建立连接时,客户端发送Syn包(syn=j)到服务器,并进入syn_send状态,等待服务器确认 第二次握手:服务器收到Syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一 ...

  9. c++TCP的三次握手和四次挥手

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105043395 T ...

最新文章

  1. SQL多表连接查询(详细实例)
  2. mysql 启动参数_MySQL启动相关参数 MySQL DBA学习
  3. BZOJ5091摘苹果(概率、期望)
  4. chrome的全局搜索快捷键
  5. 【转】彻底理解cookie,session,token
  6. Apache Ranger——Hadoop ACL控制工具
  7. 其实程序员高工资,好多时候就是加班和自己硬撑出来的
  8. 移动边缘计算网络架构
  9. win10图片浏览改回原来win7的模式
  10. Field II 超声声场仿真(2): 接收灵敏度(原理代码)
  11. 关于BIOS的入口地址0xFFFF0
  12. Xilinx IOB输出寄存器约束笔记
  13. Python成语接龙人人对战
  14. 与日历有关的小程序推荐
  15. ADB安装电视应用市场
  16. 水稻CBL家族蛋白质查找
  17. 电子通信、嵌入式工程师的面试指南
  18. IEEE T PAMI投稿注意事项
  19. 申请澳洲八大,IB成绩多高才有胜算?
  20. 华三路由交换配置命令_h3c路由器配置命令都有哪些 h3c路由器配置命令大全【详解】...

热门文章

  1. Android 使用jtds远程访问数据库
  2. php内核分析(六)-opcode
  3. 一次微信小程序的快速开发体验
  4. IT人的自我导向型学习:学习的4个层次
  5. C#中字符“.NET研究”串的内存分配与驻留池
  6. conversion to dalvik format failed with error 1的解决办法
  7. C#为什么会这么慢之命运之终章-真理篇for firelong
  8. 真希望永远用不到这些代码
  9. POJ2676,HDU4069解决数独的两种实现:DFS、DLX
  10. iOS开发UI篇—直接使用UITableView Controller