TCP: 传输控制协议

TCP: 传输控制协议

  • TCP的服务
  • TCP 的首部
  • 小结

本系列文章旨在巩固网络编程理论知识,后续将结合实际开展深入理解的文章。

TCP的服务

T C P和U D P都使用相同的网络层(I P),T C P却向应用层提供与U D P完全不同的服务。
T C P提供一种面向连接的、可靠的字节流服务

  • 面向连接意味着两个使用T C P的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个T C P连接。
  • T C P通过一系列方式来提供可靠性
    • 超时及重传策略
    • 保序
    • 流量控制
  • T C P不在字节流中插入记录标识符,将这称为字节流服务(byte stream service)。

TCP 的首部

T C P数据被封装在一个I P数据报中:
在这里插入图片描述

下图为T C P首部的数据格式。如果不计任选字段,它通常是2 0个字节。
在这里插入图片描述

  1. 每个T C P段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一确定一个T C P连接。即,四元组(s:ip+port, t:ip+port)唯一确定一个TCP连接。有时,一个I P地址和一个端口号也称为一个插口( s o c k e t)。

  2. 序号用来标识TCP报文段中的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则 T C P用序号对每个字节进行计数。序号是32 bit的无符号数,序号到达2^32-1后又从0开始。

  3. 同步SYN:同步SYN=1表示这是一个连接请求或连接接受报文

  4. 既然每个传输的字节都被计数,确认序号:占4字节,表示接收方期望收到的下一个字节的序列号。因此,确认序号应当是上次已成功收到数据字节序号加 1。只有ACK=1时,确认序号字段才有效。

  5. 发送A C K无需任何代价,因为32 bit的确认序号字段和A C K标志一样,总是T C P首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, A C K标志也总是被设置为1

  6. 推送PSH:接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程

  7. 复位RST:当RST=1时,表明TCP连接中出现严重差错

  8. T C P的流量控制由连接的每一端通过声明的窗口大小来提供

  9. 终止FIN:用来释放一个连接

  10. 检验和:占2字节,检验和覆盖了整个的T C P报文段:T C P首部和T C P数据。这是一个强制性的字段,由发端计算和存储,并由收端进行验证。

  11. 紧急指针:占16位,指出在本报文段中紧急数据共有多少个字节

  12. 选项:长度可变,包括最大报文段长度MSS等

注意:确认序号ack和标志位中的ACK不是一个东西哦!

小结

T C P将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据进行确认,对失序的数据重新排序,丢弃重复数据; T C P提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/361087.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机STC89C52RC——8.2 8*8 LED点阵模块(动态图像)

目的/效果 在《51单片机STC89C52RC——8.1 8*8 LED点阵模块(点亮一个LED)》我们点亮一个LED,接下来我们将在8*8的矩阵中展示动态的图像。 1:单列展示: 2:单行展示 3:笑脸 4:右移…

JavaScript的学习之文档的加载

目录 一、onload的运用 浏览器在加载一个页面时,是按照自上而下的顺序加载的,读取到一行就执行一行, 如果script标签写到页面的上方,在代码执行时,页面还没有加载,所以要将JS代码写道页面下面 一、onload的…

Python使用attr库打造数据类,你还在手写构造函数吗?

1、attr库基础介绍 🛠️ 1.1 attr安装与导入 在Python中,attr库是一个简化创建数据类的工具 ,它通过简洁的语法自动添加属性和方法 ,如getter、setter等。要开始使用attr,首先需要通过pip安装这个库。打开终端或命令提示符,运行以下命令进行安装: pip install attrs…

2024软件设计师笔记之考点版(一考就过):11-25

软件设计师之一考就过:成绩版 考点11:防火墙、入侵检测 真题1:(专家系统、模型检测、简单匹配)属于入侵检测;而漏洞扫描不属于。 真题2:防火墙特性包括(控制进出网络的数据包和数据流向、提供流量信息的日志和审计、隐藏内部IP以及网络结构细节),但不包括提供漏洞扫…

「6.25更新日志」JVS·智能BI、逻辑引擎(服务编排)功能更新说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了 低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&am…

AttributeError: module ‘numpy‘ has no attribute ‘long‘

我使用的numpy版本是1.26.4。numpy.long在numpy 1.20就不维护了,numpy 1.24就移除掉了,因此解决方案之一就是重新安装numpy 或者,ctrl鼠标左键定位到报错的地方,将numpy.long改为numpy.longlong。 https://numpy.org/devdocs/rele…

NetSuite Account Merge 科目合并功能分析

最近项目中,客户有提到过能否将不用的Account与新建的Account进行合并,即我们所说的Merge功能~可以,但是该功能有使用的限制,比如最直接的一点需要注意,不同类型的Account是不可以使用Merge功能的&#xff…

mysql数据库中使用存储过程带来的好处和示例(存储过程的概念、定义、作用等详解)

目录 一、概述 二、存储过程的作用 1、代码重用 2、简化复杂操作 3、提高性能 4、安全性和数据完整性 三、相对于sql操纵语句(select、insert等)存储过程的好处 1、代码重用和封装 (1)概述 (2)举…

红酒舞动,运动风采,品味力与美

当夜幕降临,城市的灯火渐次亮起,忙碌了一天的人们开始寻找那份属于自己的宁静与愉悦。在这个时刻,红酒与运动,这两个看似截然不同的元素,却能以它们不同的魅力,为我们带来一场视觉与感官的盛宴。 红酒&…

多供应商食品零售商城系统的会员营销设计和实现

在多供应商食品零售商城系统中,会员营销是提升用户粘性和增加销售的重要手段。一个有效的会员营销系统能够帮助平台更好地了解用户需求,提供个性化服务,进而提高用户满意度和忠诚度。本文将详细探讨多供应商食品零售商城系统的会员营销设计与…

四川赤橙宏海商务信息咨询有限公司一站式抖音电商服务

在数字化浪潮汹涌的当下,电商行业正以前所未有的速度发展,而抖音电商作为其中的佼佼者,更是吸引了无数商家和消费者的目光。在这个充满机遇与挑战的市场中,四川赤橙宏海商务信息咨询有限公司凭借其专业的服务和丰富的经验&#xf…

免费资源推荐丨维普OA期刊服务:OA传播 可在线阅读,可下载PDF

《OA传播(Communication based on Open Access,CBOA)》数据库 产品介绍 OA传播(Communication based on Open Access,CBOA)由重庆非晓数据科技有限公司(重庆维普资讯有限公司子公司)出品,是以服务全球科学研究与技术创新为宗旨的OA学术文献一站式免费检索、下载、传…

背包模型——AcWing 423. 采药

背包模型 定义 背包模型是一种常见的算法问题模型,它主要涉及将一些物品放入一个容量有限的背包中,以达到某种最优目标,如最大化价值或最小化重量等。 运用情况 常用于资源分配、项目选择、货物装载等实际问题中。例如,在选择…

深圳比创达EMC|EMC与EMI滤波器:在电子设备中的平衡之道

随着科技的快速发展,电子设备已经深入到我们生活的方方面面,从家用电器到工业设备,从通信设备到医疗仪器,都离不开电子技术的支持。然而,电子设备在带来便利的同时,也面临着电磁兼容(EMC&#x…

照片变漫画怎么弄?这5个照片变漫画方法超简单

在艺术和社交融合的现在,将照片转换为漫画风格已经成为一种流行趋势。 无论是为了创造个性化的头像,还是制作有趣的社交媒体帖子,拥有一款能够将照片转换为漫画的软件将极大地丰富你的创意表达。 下面,本文将介绍几款能够实现这…

【浦语开源】深入探索:大模型全链路开源组件 InternLM Lagent,打造灵笔Demo实战指南

一、准备工作: 1、环境配置: pip、conda换源: pip临时换源: pip install -i https://mirrors.cernet.edu.cn/pypi/web/simple some-package# 这里的“https://mirrors.cernet.edu.cn/pypi/web/simple”是所换的源,…

TDengine 推出新连接器,与 Wonderware Historian 无缝连接

在最新发布的TDengine 3.2.3.0 版本中,我们进一步更新了 TDengine 的数据接入功能,推出了一款新的连接器,旨在实现 Wonderware Historian(现称为 AVEVA Historian)与 TDengine 的集成。这一更新提供了更加便捷和高效的…

什么是钢直尺“光学影像式”仪器校准方法?

计量和我们生活密不可分,但是对于计量的了解大多数人并不深入,因此也会存在一些认知上的误差。比如一个体温计买来才几十块,但是做一次校准费用就是一两百。又或者是一把钢直尺才十几块成本,校准的费用却是成本的三到四倍。 不了…

选择诊所管理系统的原则是什么?

如今,诊所管理系统已成为医疗机构提升管理效率、优化患者服务的重要工具。然而,市场上的诊所管理系统琳琅满目,功能各异,因此,如何选择一款适合自己诊所的管理系统,是许多诊所管理者需要思考的问题。下面&a…

SpringBoot-在配置文件中使用Profile

Profile,译为“配置文件” 在这里的Spring Boot也是一样,我们可以配置很多个Profile,每个Profile都对应一整个完整的全局配置,激活哪个,那个对应的全局配置就生效,具体的配置: 1、properties格…