当前位置: 首页 > news >正文

TCP协议的特点和首部格式

文章目录

  • TCP协议是什么?
  • TCP协议的主要特点
    • 1. 面向连接
    • 2. 可靠传输
    • 3. 流量控制
    • 4. 拥塞控制
  • TCP首部格式
    • 源端口和目标端口(各16位)
    • 序列号(32位)
    • 确认号(32位)
    • 数据偏移(4位)
    • 保留字段(6位)
    • 控制位(6位)
    • 窗口大小(16位)
    • 校验和(16位)
    • 紧急指针(16位)
    • 选项字段(可变长度)
  • 总结

TCP协议是什么?

TCP(传输控制协议)是Internet协议族中的核心协议之一,工作在传输层。它为应用层提供面向连接的、可靠的字节流服务。

TCP协议的主要特点

1. 面向连接

TCP在传输数据之前,必须先建立连接。

2. 可靠传输

TCP通过多种机制保证数据传输的可靠性:

确认应答机制
每发送一段数据,接收方都要回复一个ACK确认。

超时重传
如果发送方在规定时间内没收到ACK,就重新发送数据。

序列号机制
每个字节都有一个序列号,确保数据按正确顺序组装。

校验和
检测数据在传输过程中是否出错。

3. 流量控制

TCP会根据接收方的处理能力来调整发送速度,避免接收方被"撑爆"。

4. 拥塞控制

当网络拥堵时,TCP会主动降低发送速度,避免让网络更加拥堵。

TCP首部格式

源端口和目标端口(各16位)

这两个字段标识了通信的两端。端口号的范围是0-65535,其中:

  • 0-1023:知名端口(如HTTP的80,HTTPS的443)
  • 1024-49151:注册端口
  • 49152-65535:动态/私有端口

序列号(32位)

序列号用来标识每个字节的位置。TCP把数据流看作一个巨大的字节数组,每个字节都有一个序列号。

确认号(32位)

确认号表示期望收到的下一个字节的序列号。比如我收到了序列号1000-1499的数据,那么我会发送ACK=1500,表示"1500之前的数据我都收到了,请发送1500开始的数据"。

数据偏移(4位)

也叫首部长度,表示TCP首部有多少个32位字(4字节)。由于这个字段只有4位,所以TCP首部最长是15×4=60字节。

保留字段(6位)

目前全部设为0,为将来扩展使用。

控制位(6位)

这6个标志位控制TCP的行为:

URG(紧急):标识紧急数据
ACK(确认):标识确认号字段有效
PSH(推送):要求立即推送数据给应用程序
RST(复位):重置连接
SYN(同步):用于建立连接
FIN(结束):用于关闭连接

窗口大小(16位)

表示接收方还能接收多少字节的数据,用于流量控制。

校验和(16位)

用于检测TCP首部和数据在传输过程中是否出错。计算校验和时,不仅包括TCP首部和数据,还包括IP首部中的源IP地址、目标IP地址等信息。

紧急指针(16位)

当URG标志位设置时,这个字段指向紧急数据的结束位置。

选项字段(可变长度)

最常见的选项包括:

  • 最大段大小(MSS):TCP能接收的最大数据段长度
  • 窗口扩大:扩大窗口大小的表示范围
  • 时间戳:用于计算往返时间

总结

TCP协议的核心思想就是"可靠"二字,通过序列号、确认应答、超时重传等机制,确保数据能够准确、完整、有序地到达目的地。

http://www.lryc.cn/news/607408.html

相关文章:

  • 同品牌的系列广告要如何保证宣传的连贯性?
  • 广东省省考备考(第六十三天8.1)——判断推理(强化训练)
  • 国产开源大模型崛起:使用Kimi K2/Qwen2/GLM-4.5搭建编程助手
  • Galaxea机器人由星海图人工智能科技有限公司研发的高性能仿人形机器人
  • 大模型结构比较
  • uniapp 开发微信小程序,获取经纬度(uni.getLocation)并且转化详细地址(‌高德地图逆地理编码API、‌腾讯地图逆地理编码)
  • SIP 呼叫中实现远端摄像头控制学习笔记
  • axios请求的取消
  • 什么是链游
  • Spring Boot Actuator 保姆级教程
  • JavaWeb--Student2025项目:增删改查
  • 七彩喜艾灸机器人:让传统艾灸变简单,健康养生触手可及
  • HarmonyOS 应用拉起系列(一):应用与元服务互通方式
  • 乐观锁是数据库和多线程编程中常用的一种控制并发的方法
  • 【数据可视化-77】中国历年GDP数据可视化分析:Python + Pyecharts 深度洞察(含完整数据、代码)
  • 伞状Meta分析重构癌症幸存者照护指南:从矛盾证据到精准决策
  • OSPF综合实验报告册
  • 从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门
  • 基于倍增的LCA + kruskal重构树 + 并查集
  • 第三章 网络安全基础(一)
  • 【Redis】key的设计格式
  • dolphinscheduler中一个脚本用于从列定义中提取列名列表
  • 香港正式启动稳定币牌照制度!推动中国的人民币国际化?
  • SQL中的LEFT JOIN
  • 微服务的编程测评系统9-竞赛新增-竞赛编辑
  • Flask一个用户同时只能在一处登录实现
  • Linux网络:多路转接 epoll
  • CentOS7下同步时间的几种方式(NTP 、Chrony和systemd-timesyncd)
  • iPhone 恢复出厂设置是否会删除所有内容?
  • iPhone查看App日志和系统崩溃日志的完整实用指南