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

news2024/11/18 15:22:59

目录

一、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.coloradmin.cn/o/1338397.html

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

相关文章

Oracle查询重复数据取第二行,好用来删除重复数据

Oracle查询重复数据取第二行&#xff0c;好用来删除重复数据 SELECT * FROM ( SELECT e.* , ROW_NUMBER() over(PARTITION BY product_category_id,model_size_id ORDER BY product_category_id,model_size_id) rn FROM equ_check_rules e ) s WHERE rn 2;

OSPF单区域配置-新版(11)

目录 整体拓扑 操作步骤 1.基本配置 1.1 配置R1的IP 1.2 配置R2的IP 1.3 配置R3的IP 1.4 配置PC-1的IP地址 1.5 配置PC-2的IP地址 1.6 配置PC-3的IP地址 1.7 检测R1直连链路连通性 1.8 检测R3直连链路连通性 1.9 检测R2直连链路连通性 2. 部署单区域OSPF网络 2.1…

php 不加后缀访问

实现不带后缀访问php文件的方法&#xff1a;首先在htaccess文件中加入内容“RewriteRule ^(api/token) token.php [L]”&#xff1b;然后通过根目录下的“token.php”来接受“api/token”&#xff1b;最后修改配置文件。 考虑的做法有&#xff1a; HTTP重写技术&#xff0c;让…

初探大模型微调

目标&#xff1a;低成本微调大模型&#xff0c;拥有属于自己的AI助手。 一切的一切&#xff0c;都得益于LoRA、QLoRA微调方法&#xff0c;没有A100一样可以微调大模型&#xff08;用3090 24G显存微调70亿参数的baichuan绰绰有余&#xff0c;甚至参数量小一点的模型3060也能跑&a…

基于电商场景的高并发RocketMQ实战-Broker写入读取流程性能优化总结、Broker基于Pull模式的主从复制原理

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…

Windows实现MySQL5.7主从复制(详细版)

使用免安装版本&#xff08;官网下载地址&#xff09; 在Windows上安装两种MySQL服务并同时开启服务 1.下载配置 打开解压文件所在位置&#xff0c;就新建一个配置文件my.ini。 2.主库安装 主库的my.ini配置文件如下&#xff1a; [mysqld] #设置主库端口&#xff0c;注意须是…

UDP信号多个电脑的信息传输测试、配置指南

最近要做一个东西&#xff0c;关于一个软件上得到的信号&#xff0c;如何通过连接的局域网&#xff0c;将数据传输出去。我没做过相关的东西&#xff0c;但是我想应该和软件连接数据库的过程大致是差不多的&#xff0c;就一个ip和一个端口号啥的。 一.问题思路 多个设备同时连…

释放创造力的终极工具——Adobe Photoshop 2022 Mac/win

作为全球最受欢迎的图像处理软件&#xff0c;Adobe Photoshop一直是专业设计师和摄影师的首选工具。而最新推出的Adobe Photoshop 2022更是在功能和性能上迈出了重要的一步&#xff0c;为用户提供了更强大、更便捷的创作体验。 首先&#xff0c;Adobe Photoshop 2022引入了许多…

html table可编辑表格数据实现删除

这里教大家使用纯html和js脚本结合实现删除表格数据 <!DOCTYPE html> <html> <head><style>table {border-collapse: collapse;width: 100%;}th, td {border: 1px solid black;padding: 8px;text-align: left;}</style> </head> <body…

5G阅信应用场景有哪些?

5G阅信的应用场景非常广泛&#xff0c;以下是一些常见的应用场景&#xff1a; 1.工业自动化&#xff1a;5G阅信可以连接各种工业设备和传感器&#xff0c;实现设备之间的实时通信和控制&#xff0c;提高生产效率和自动化水平。 2.物联网和智能家居&#xff1a;5G阅信可以连接各…

【每日一题】LeetCode206.反转链表

个人主页&#xff1a;白日依山璟 专栏&#xff1a;Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1示例2示例3提示 2. 思路3.代码 1. 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例1 输入&#xff1a;head [1…

文件夹改名方法:文件夹随机重命名的实用技巧,轻松管理

在日常生活和工作中&#xff0c;会遇到大量的文件夹要处理和管理。方便查找或分类&#xff0c;要对文件夹进行重命名。如果手动一个个重命名不仅耗时&#xff0c;还容易出错。现在一起来看看云炫文件管理器如何批量随机重命名文件夹&#xff0c;掌握这些技巧能更加轻松地应对工…

idea自动注释

前言 保存一下自己的自动注释代码 idea自动注释 前言1 创建类时&#xff0c;自动生成注释2 在方法上使用快捷键生成注释3 使用方法4 效果图 1 创建类时&#xff0c;自动生成注释 如下&#xff1a; #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package …

SParC数据集介绍

导语 SParC是Text-to-SQL领域的一个多轮查询数据集。本篇博客将对该数据集论文和数据格式进行简要介绍。 SParC数据集概述 SParC是一个跨领域的多轮Text-to-SQL数据集。它包含有4298个问题轮次&#xff0c;大约有12k的自然语言问句到SQL标注的Question-SQL对。这些问题来自于…

【Python终端报错】“python.exe: can‘t open file”【及解决方法】

一、问题描述 如下图&#xff0c;在PyCharm中使用自带的Python终端运行源代码文件时&#xff0c;提示出错&#xff1a; D:\Program Files\Python3.10.0\python.exe: can’t open file ‘D:\Desktop\Python Security Chapter 4\Whois’: [Errno 2] No such file or directory 翻…

Winserver上如何配置和开启NTP客户端进行时间同步

场景 Winserver 2012 服务器&#xff0c;需要与其它服务器保持时间一致。 已知NTP服务器的ip,在winserver 服务器上如何进行配置和开启。 注&#xff1a; 博客&#xff1a;霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客 实现 1、运行-输入 gpedit.msc 打开组策略管理器…

个性化定制的知识付费小程序,为用户提供个性化的知识服务,知识付费saas租户平台

明理信息科技知识付费saas租户平台 在当今数字化时代&#xff0c;知识付费已经成为一种趋势&#xff0c;越来越多的人愿意为有价值的知识付费。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。同时&#xff0c;开发和…

c++学习笔记(13)-左值和右值

一、左值与右值 啥是左值和右值呢&#xff1f; 左值&#xff1a;在内存有确定存储地址、有变量名&#xff0c;表达式结束依然存在的值&#xff0c;简单来说左值就是非临时对象。 右值&#xff1a;就是在内存没有确定存储地址、没有变量名&#xff0c;表达式结束就会销毁的值&…

1764程控直流电源

1764程控直流电源 交流输入电压范围&#xff1a;100&#xff5e;242Vac 在自动测试环境中提供偏置和对部件或最终产品提供激励的理想设备 国产思仪电源 01 产品综述 1764程控直流电源是在自动测试环境中提供偏置和对部件或最终产品提供激励的理想设备。其广泛应用于民用测…

无线路由器DHCP导致网络故障一例

多个DHCP故障 这几天公司网络很难用&#xff0c;也不知道原因。通过路由器的检测功能&#xff0c;领导截图如下&#xff1a; 故障解决 其实解决办法也很简单&#xff0c;就是关闭设备排查。结果发现是一个无线路由器导致的。进入路由器管理界面&#xff0c;关闭DHCP即可。 反思…