<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位。用于表示接收端可以接受的数据量,用于控制发送端和接收端之间的数据传输速度。
可以动态调整,用以平衡发送端和接收端的传输速度。

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.mzph.cn/news/579702.shtml

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

相关文章

GrayLog日志平台的基本使用-ssh接入Dashboards展示

这里使用的版本为graylog4.2.10 1、一键安装graylog4.2.10&#xff0c;解压zip包&#xff0c;执行脚本就行 链接&#xff1a;https://pan.baidu.com/s/11U7GpBZ1B7PXR8pyWVcHNw?pwdudln 提取码&#xff1a;udln 2、通过rsyslog采集系统日志&#xff0c;具体操作参考前面文…

搭建maven私服

maven maven简介 什么是maven&#xff1f; Maven这个单词来自于意第绪语&#xff08;犹太语&#xff09;&#xff0c;意为知识的积累。 Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 Maven 除了以…

vue3实现pinia仓库状态持久化

使用 pinia-plugin-persistedstate 实现pinia仓库状态持久化 安装 pnpm i pinia-plugin-persistedstate # or npm i pinia-plugin-persistedstate # or yarn add pinia-plugin-persistedstatemain.ts引入 import persist from pinia-plugin-persistedstate const app creat…

后端业务架构文档模板

文章目录 1 业务理解1.1 项目目标1.2 业务术语1.3 系统边界1.4 关键领域模型 2 系统架构图2.1 分层架构图2.2 系统链路图2.3 系统部署图 3 关键流程3.1 关键流程13.1.2 流程简述3.1.2 业务流程图3.1.3 安全性3.1.3.1 资金安全3.1.3.2 内容安全 3.1.4 稳定性3.1.4.1 接口依赖3.1…

主流级显卡的新选择,Sparkle(撼与科技)Intel Arc A750兽人体验分享

▼前言 对于玩家而言&#xff0c;英特尔独显的出现不仅打破了NVIDIA与AMD双雄天下的局面&#xff0c;而且旗下的Arc A系列显卡还拥有不俗的做工性能以及颇具优势的价格&#xff0c;无论是升级或者是装新机都非常合适。如果要在Arc A系列当中选一个性能不俗&#xff0c;能够满足…

汽车项目管理

项目节点&#xff1a; MR (Management Review)——管理层评审 KO (Kick Off)——项目正式启动 SI (Strategy Intent)——战略意图 SC (Strategy Confirmation)——战略确认 PA (Program Approval)——项目批准 PR (Product Readiness)——产品就绪 VP (Verification Prototype)…

城市自贸区/经开区/产业园基于EasyCVR视频技术的可视化、移动化、智能化视频监管方案

一、背景需求 移动互联网的发展激发了用户对轻应用的使用习惯。4G、5G使得无线带宽快速提升&#xff0c;令大流量视频数据流逐渐从PC往手持终端转移。借助智能手持终端也可以实时查看、远程控制、存储录像、抓拍图像&#xff0c;能方便快捷地掌握所关注区域的视频动态。 随着…

Advanced IP Scanner - 网络扫描器

Advanced IP Scanner - 网络扫描器 1. Advanced IP ScannerReferences https://www.advanced-ip-scanner.com/cn/ ​ 可靠且免费的网络扫描器可以分析 LAN。该程序可扫描所有网络设备&#xff0c;使您能够访问共享文件夹和 FTP 服务器&#xff0c;(通过 RDP 和 Radmin) 远程控制…

redis,memcached,nginx网络组件,网络编程——reactor的应用

目录 目标网络编程关注的问题连接的建立连接的断开消息的到达消息发送完毕 网络 IO 职责检测 IO检测 io剖析 操作 IO 阻塞IO 和 非阻塞IOIO 多路复用epoll结构以及接口 reactor编程连接建立连接断开数据到达数据发送完毕 reactor 应用&#xff1a;后续补充源码解析单 reacrtor多…

Y9000P + ubuntu22.04 配置Anaconda+pycharm +pytorch

Anaconda3 的安装及使用方法安装 Anaconda3 Anaconda3 是 Anaconda 的具体版本 Anaconda3 中的 Python 解释器默认使用的是 Python3.x 版本&#xff0c;而不是 Python2.x 版本 Python2.x 版本中&#xff0c;字符串是以 ASCII 编码处理的&#xff0c;而在 Python3.x 版本中&am…

Oraclelinux部署Oracle服务

采用图形化界面 user用户 oracle用户 #清屏 clear #设置主机名 hostnamectl set-hostname ceshidb sed -i 1,2 s/^/#/ /etc/hosts echo "127.0.0.1 ceshidb" >> /etc/hosts echo "::1 ceshidb" >> /etc/hosts ping -c 5…

接口测试及常用接口测试工具(postman/jmeter)附教程

首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给…

sheng的学习笔记-【中】【吴恩达课后测验】Course 4 -卷积神经网络 - 第三周测验

课程4_第3周_测验题 目录 第一题 1.现在你要构建一个能够识别三个对象并定位位置的算法&#xff0c;这些对象分别是&#xff1a;行人&#xff08;c1&#xff09;&#xff0c;汽车&#xff08;c2&#xff09;&#xff0c;摩托车&#xff08;c3&#xff09;。下图中的标签哪个…

在Centos7中利用Shell脚本:实现MySQL的数据备份

目录 自动化备份MySQL 一.备份数据库脚本 1.创建备份目录 2.创建脚本文件 3.新建配置文件&#xff08;连接数据库的配置文件&#xff09; 4.给文件权限(mysql_backup.sh) ​编辑 5.执行命令 (mysql_backup.sh) ​编辑 二.数据库通过备份恢复 1.创建脚…

【QML-输入类】

Qt编程指南-VX&#xff1a;hao541022348 ■ 输入类■ Slider■ TextArea■ Dial■ ComboBox■ RangeSlider■ TextField■ Tumbler ■ 输入类 提供了基于 数字 和 文本 输入的各种输入控件 ■ Slider 示例一&#xff1a; ColumnLayout{anchors.fill: parent;RowLayout{Labe…

K8S异常处理

一、概述 1、k8s有时候会报错The connection to the server ip:6443 was refused - did you specify the right host or port &#xff0c;本文档提供几种可能产生该报错的原因和排障思路。 二、发现问题 使用任意Kubectl 命令会报错&#xff1a;The connection to the serv…

鸿蒙操作系统:从手机到物联网,打造全场景智能体验

随着科技的不断发展&#xff0c;人们对于操作系统的需求也在不断升级。鸿蒙操作系统&#xff0c;作为华为推出的新一代智能终端操作系统&#xff0c;凭借其强大的分布式能力、流畅的用户体验以及丰富的应用生态&#xff0c;正逐渐成为人们关注的焦点。 一、鸿蒙操作系统概述 …

Nacos2.1.2改造适配达梦数据库7.0

出于业务需求&#xff0c;现将Nacos改造适配达梦数据库7.0&#xff0c;记录本次改造过程。 文章目录 一、前期准备二、适配流程1、项目初始化2、引入驱动3、源码修改 三、启动测试四、打包测试 一、前期准备 Nacos源码&#xff0c;版本&#xff1a;2.1.2&#xff1a;源码下载…

python3遇到Can‘t connect to HTTPS URL because the SSL module is not available.

远程服务器centos7系统上有minicoda3&#xff0c;觉得太占空间&#xff0c;就把整个文件夹删了&#xff0c;原先的Python3也没了&#xff0c;都要重装。 我自己的步骤&#xff1a;进入管理员模式 1.下载Python3的源码&#xff1a; wget https://www.python.org/ftp/python/3.1…

电脑显卡驱动停止响应该怎么办?为什么会出现这种情况

显卡驱动停止响应的原因 当你电脑突然弹框说显卡驱动停止响应&#xff0c;你知道是出现什么问题了吗&#xff0c;下面我们为大家总结了有可能造成显卡驱动停止响应的原因。1. 过热&#xff1a;显卡在长时间高负载下可能会过热&#xff0c;导致驱动停止响应。过高的温度可能…