<JavaEE> 协议格式 -- 传输层协议 TCP

目录

一、TCP协议格式长啥样?

二、TCP协议属性解释

1)源端口号/目的端口号

2)序号/确认序号

3)TCP报头长度

4)保留位

5)标志位

6)窗口大小

7)校验和

8)紧急指针

9)选项

10)数据

三、TCP协议通讯的特点

四、TCP协议和UDP协议的应用场景对比

五、基于TCP的应用层协议


一、TCP协议格式长啥样?

二、TCP协议属性解释

1)源端口号/目的端口号

指数据发送端和数据接收端端口号,各占16个bit位。

2)序号/确认序号

序号用于标识数据包在传输过程中的位置,每一个数据包的序号都是唯一的。
接收端收到数据包后,会对序号进行确认并记录,以确保数据传输的完整性。同时,计算确认序号,将确认序号填入应答报文中。
确认序号用于接收端向发送端确认已接受的数据包的序号和指示下一个数据包序号。
序号和确认序号就是一系列具有大小关系的整数,描述了数据的先后顺序。
序号和确认序号各占32个bit位。

3)TCP报头长度

TCP报头长度这个属性占4个bit位,每个bit位指代4个字节。
TCP报头的长度是不固定的,最短20字节,根据选项内容,最长为60字节。

4)保留位

预留6个bit位,没有实际内容。

5)标志位

标志位名说明(6个标志位各占一个bit位,使用0和1表示)
URG紧急标志,表示紧急指针是否有效。
ACK确认标志,表示发来的数据已确认接收无误。
PSH提示接收端应用程序立刻从TCP缓冲区中把数据读取走。
RST复位报文段标志,用于请求重新建立连接。
SYN同步报文段标志,用于请求建立连接。
FIN结束报文段标志,用于通知对端,本端将结束通讯。

6)窗口大小

用于表示接收端可以接受的数据量,用于控制发送端和接收端之间的数据传输速度。
可以动态调整,用以平衡发送端和接收端的传输速度。
窗口大小占16个bit位。但并不是只能代表0~65535的数据。它会通过选项中的“窗口大小扩展因子”进行计算,以获取更大的表示范围。

7)校验和

占16个bit位。由发送端填充,接收端使用CRC校验,校验不通过则认为数据有误。
校验内容既包括首部,也报过数据(荷载)部分。

8)紧急指针

占16个bit位。用于标识紧急数据,通知接收端优先处理紧急数据。

9)选项

占40字节。选项主要包括多种可选的扩展选项。
这些选项可以增强TCP协议的可靠性和灵活性,但也增加了协议的复杂度和字节长度。
选项包括:4位首部长度属性的扩展因子、16位窗口大小属性的扩展因子等。

10)数据

应用层数据包,即荷载。是字节流数据。

三、TCP协议通讯的特点

<1> 有连接
通信时会先建立连接,存储对端信息。
<2> 可靠传输
有确认和重传机制,发送数据后会期待确认应答。
<3> 面向字节流
使用字节流传输数据,读写灵活,但要注意处理好数据边界问题。
<4> 全双工
使用一个连接,既可以发送又可以接收数据。

四、TCP协议和UDP协议的应用场景对比

TCP协议和UDP协议有各自的应用领域。
TCP协议适用于有可靠传输要求,传输数据包较大的情况。TCP适用于绝大部分场景,但不支持广播(增加应用层代码可以实现)。
UDP适用于要求高速传输和实时性要求较高的通信领域,且天然支持广播。

五、基于TCP的应用层协议

基于TCP的应用层协议包括:HTTP、HTTPS、SSH等。

阅读指针 -> 《 TCP 的通信机制 -- TCP如何确保可靠及高效传输?》

<JavaEE> TCP 的通信机制 -- 确认应答 和 超时重传-CSDN博客介绍 TCP 的通信机制,确认应答和超时重传。https://blog.csdn.net/zzy734437202/article/details/135228875

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

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

相关文章

过年过节通过html+css+js代码实现:超级好看的放烟花效果(含背景音乐)

文章目录&#xff1a; 一&#xff1a;放烟花 1. 运行效果 2.代码 二&#xff1a;新年快乐 1.运行效果 2.代码 一&#xff1a;放烟花 1. 运行效果 效果图◕‿◕✌✌✌ 过年过节通过htmlcssjs实现放烟花效果代码(含背景音乐) 2.代码 修改后缀为".html"的格式…

【UE5蓝图】读取本地json文件修改窗口大小

效果 插件 蓝图 1.判断文件存在 2.1文件不存在&#xff0c;生成文件 {"ResolutionX":540, "ResolutionY":960} 2.2文件存在&#xff0c;直接读取 3.设置窗口大小 遇到的坑 1.分辨率太大&#xff0c;导致效果不理想&#xff0c;建议先往小填写。 2.选对…

Centos 7.9 升级 OpenSSH 到 openssh-9.4p1及openssl-1.1.1k

Centos 7.9 升级 OpenSSH 到 openssh-9.4p1及openssl-1.1.1k 注&#xff1a;ssh升级到openssh-9.4p1需要openssl-1.1.1及以上&#xff01;&#xff01;&#xff01; openssh-9.4p1和openssl-1.1.1下载地址 一、升级openssl 到openssl-1.1.1k 1.基础环境 首先&#xff0c;安…

【ArcGIS微课1000例】0082:地震灾害图件制作之DEM晕渲图(山体阴影效果)

以甘肃积石山县6.2级地震为例,基于震中100km范围内的DEM数据,制作数字高程模型山体阴影晕渲图。 文章目录 一、效果展示二、实验数据三、晕渲图制作一、效果展示 基于数字高程模型制作的山体阴影晕渲图如下所示: 二、实验数据 本试验所需要的数据包括: 1. 震中位置矢量数…

[Angular] 笔记 23:Renderer2 - ElementRef 的生产版本

chatgpt: Renderer2 简介 在 Angular 中&#xff0c;Renderer2 是一个服务&#xff0c;用于处理 DOM 操作的抽象层。它提供了一种安全的方式来操作 DOM&#xff0c;同时与平台无关&#xff0c;有助于维护应用程序的跨浏览器兼容性和安全性。 Renderer2 的作用是在 Angular 组…

Github 2023-12-31 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-31统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量TypeScript项目3Swift项目1Java项目1HTML项目1Astro项目1Python项目1C项目1Dart项目1Jupyter Notebook项目1C项…

Vue(二):计算属性与 watch 监听器

03. Vue 指令拓展 3.1 指令修饰符 可以通过 . 来指明一些指令的后缀&#xff0c;不同的后缀中封装了不同的操作&#xff0c;可以帮助我们简化代码&#xff0c;比如之前使用过的监听 enter 键的弹起&#xff0c;我们需要操作事件对象&#xff0c;来检测用户使用了哪个键&#…

08.哲说建造者模式(Builder Pattern)

“The odds that we’re in ‘base reality’ is one in billions.” —— Elon Musk 这段话出自马斯克在2016年的一次演讲&#xff0c;“人类活在真实世界的几率&#xff0c;可能不到十亿分之一”。此言一出&#xff0c;可谓一石激起千层浪。有人嘲讽马斯克是“语不惊人死不休…

《现代操作系统》第十二章习题答案

计算机硬件的改进主要归功于更小的晶体管。一些限制因素包括&#xff1a;(a) 光的波动性可能限制传统光刻技术制造集成电路的能力&#xff0c;(b) 固体中个别原子的迁移性可能导致非常薄的半导体、绝缘体和导体层的性能退化&#xff0c;(c) 背景辐射活性可能破坏分子键或影响非…

【并发设计模式】聊聊等待唤醒机制的规范实现

在多线程编程中&#xff0c;其实就是分工、协作、互斥。在很多场景中&#xff0c;比如A执行的过程中需要同步等待另外一个线程处理的结果&#xff0c;这种方式下&#xff0c;就是一种等待唤醒的机制。本篇我们来讲述等待唤醒机制的三种实现&#xff0c;以及对应的应用场景。 G…

STM32CubeMX教程13 ADC - 单通道转换

目录 1、准备材料 2、实验目标 3、ADC概述 4、实验流程 4.0、前提知识 4.1、CubeMX相关配置 4.1.1、时钟树配置 4.1.2、外设参数配置 4.1.3、外设中断配置 4.2、生成代码 4.2.1、外设初始化调用流程 4.2.2、外设中断调用流程 4.2.3、添加其他必要代码 5、常用函数…

Cuk、Zeta和Sepic开关电源拓扑结构

Cuk、Zeta和Sepic变换器,三种拓扑结构大致类似。不同点在于电感和二极管&#xff0c;MOS管的位置关系的变化。 Cuk电源是一种非隔离的直流电源转换器&#xff0c;其基本结构包括输入滤波电容、开关管、输入电感、输出电感和输出电容等元件。Cuk电路可以看作是Boost和Buck电路的…