TCP是传输控制协议,需要建立链接,通过三次握手和四次挥手保证数据传输的可靠性

三次握手过程

三次握手的目的在于,确认双方的通信能力是否正常

  1. 第一次握手,客户端发送连接请求的报文给服务端
  2. 第二次握手,服务端接收请求后回复一个ACK报文,并为连接分配资源
  3. 第三次握手,客户端收到ACK报文后,也向服务端发送ACK报文,并分配资源,至此,链接建立完成

四次挥手过程

四次挥手的目的在于,终止数据传输并回收资源,必须等待双方都没有数据传输时才能断开连接

  1. 第一次挥手,客户端向服务端发送报文,请求关闭数据传送,并进入等待状态
  2. 第二次挥手,服务端收到报文后,发送ACK确认,此时客户端到服务端的链接断开
  3. 第三次挥手,服务端数据传输完毕后,向客户端发送报文,请求关闭数据,并进入等待状态
  4. 第四次挥手,客户端收到报文后,发送确认报文,链接完全断开

数据格式

TCP协议的数据分为报头和数据两部分,报头包括

  • 16位源端口号
  • 16位目标端口号
  • 32位序号
  • 32位确认序号
  • 4位首部长度
  • 16位窗口大小
  • 16位紧急指针

TCP协议三次握手/四次挥手相关推荐

  1. 计算机网络之UDP与TCP协议(三次握手, 四次挥手)

    ⭐️前面的话⭐️ 本文介绍计算机网络中有关传输层协议的知识--UDP与TCP协议,在TCP协议中,为了保证数据的可靠传输,引入了十大保证可靠性的机制,即确认应答,超时重传,连接管理(三次握手,四次挥手 ...

  2. 详解TCP协议三次握手四次挥手

    三次握手: 三次握手表示建立通信阶段,在TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠,由于这种面向连接的特性, TCP协议可以保证传输数据的安全,所以应用十分广泛 ...

  3. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义:       这里 ...

  4. python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...

  5. 在深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  6. 再深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    转载地址: https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html 如果对网络 ...

  7. TCP协议之三次握手四次挥手

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的. 基于IP的传输层协议. 来看下网络协议 在计算机网络中进行通讯,就必须遵守一些 ...

  8. tcp 二次握手时延_一篇搞懂TCP的三次握手 四次挥手

    TCP的三次握手四次挥手,估计大家都听过.但是真的能把每一步说明白的人比较少.我还记得在之前面试的时候被面试官一顿问,然后一脸懵B... 都是大学没好好上课 ,这篇文章就跟大家讲讲到底这三握四挥是在搞 ...

  9. TCP/IP协议 - 三次握手四次挥手(入门易懂版)

    握手通俗理解为两个人见面Say Hai,客户端和服务端建立连接 挥手就可以理解为两个人结束会面,要Say Goodbai,客户端和服务端断开连接 要了解什么是三握四挥,必须要了解一个重要的知识点:什么 ...

最新文章

  1. 在WebLogic 12c上运行RichFaces 4.1.0.Final
  2. HBase中的MemStore
  3. 微软为开源计算器加入全新的图形功能
  4. 转: maven进阶:一个多模块项目
  5. 本地html调试java接口_solr源码通过idea进行本地调试
  6. 使用JSON实现分页
  7. 【JAVA】java获取项目地址或tomcat绝对地址
  8. cba比赛比分预测_昨日预测CBA一红一黑,今日继续给大家带来CBA全部比赛4场
  9. Elasticsearch索引分片的数量及大小分配策略
  10. jsGannt Improved在vue中的使用
  11. 计算机知识竞赛 翻译,英文简历之常见学科竞赛中英文翻译
  12. 词向量与词向量拼接_nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
  13. 【五一创作】iSH修改hostname(主机名)【美化】【短篇技术类文章】
  14. Xilinx ZCU106开发详解(Xilinx Zynq UltraScale+ MPSoC)
  15. 企业微信 - 封装JS-SDK使用方法
  16. CTF中MISC常见工具总结
  17. java所定义的版本中不包括_java试题模拟出题
  18. java web项目VO,dao,pojo,dto,bo,
  19. 【解决方案】MQTT 强劲代理服务 EMQX 安装报Unable to load emulator DLL错误
  20. 修改Window Server2012远程桌面端口

热门文章

  1. day5 ---- 数据类型及常用方法(字符串、列表)
  2. 关于Keil4 转到 Keil5以后的一些错误解决
  3. Non-standard serial port baud rate setting
  4. The operation could not be performed because OLE DB provider SQLNCLI11 for linked server SDSSDFCC...
  5. UVa11988-破损的键盘 Broken Keyboard
  6. 用一条mysql语句插入多条数据
  7. 无刷新二级联动菜单的Request问题
  8. 大数据之-Hadoop_环境搭建_JDK安装---大数据之hadoop工作笔记0017
  9. k8s核心技术-Helm(chart模板的使用上)---K8S_Google工作笔记0048
  10. Sentinel服务熔断只配置fallback_客户自定义限流处理_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0050