TCP/IP 传输层详解

传输层(Transport Layer)是 TCP/IP 模型的第四层(对应 OSI 模型的传输层),核心功能是实现 端到端(进程到进程)的可靠通信。主要协议包括:

  • TCP(传输控制协议):面向连接、可靠传输
  • UDP(用户数据报协议):无连接、高效传输

核心功能
功能TCPUDP
连接管理三次握手建立连接,四次挥手断开无连接
可靠性确认应答、重传、排序无可靠性保证
流量控制滑动窗口机制
拥塞控制慢启动、拥塞避免等算法
数据单元段(Segment)数据报(Datagram)
头部开销20~60 字节8 字节

TCP 协议深度解析

1. TCP 段结构
 0                   1                   2                   3  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|          Source Port          |       Destination Port        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                        Sequence Number                        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                     Acknowledgment Number                     |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|  Data |           |U|A|P|R|S|F|                               |  
| Offset| Reserved  |R|C|S|S|Y|I|            Window             |  
|       |           |G|K|H|T|N|N|                               |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|           Checksum            |         Urgent Pointer        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                    Options (if any)           |    Padding    |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                             Data                              |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
  • 关键字段
    • 序列号(Seq):数据字节流的编号
    • 确认号(Ack):期望接收的下一个字节编号
    • 标志位:SYN(建立连接)、ACK(确认)、FIN(断开连接)、RST(重置连接)
    • 窗口大小(Window):流量控制参数

2. TCP 连接管理(三次握手与四次挥手)
ClientServerCLOSED → SYN_SENTSYN=1, Seq=xLISTEN → SYN_RCVDSYN=1, ACK=1, Seq=y, Ack=x+1ESTABLISHEDACK=1, Seq=x+1, Ack=y+1ESTABLISHEDFIN_WAIT_1FIN=1, Seq=uCLOSE_WAITACK=1, Seq=v, Ack=u+1LAST_ACKFIN=1, ACK=1, Seq=w, Ack=u+1TIME_WAIT (2MSL)ACK=1, Seq=u+1, Ack=w+1CLOSEDClientServer

为什么需要三次握手?
防止失效的连接请求突然传到服务器(网络延迟导致的历史连接问题)


3. TCP 可靠性机制
接收端
发送端
正确
错误
超时未收到ACK
ACK到达
校验和检查
接收数据
发送ACK
丢弃数据
按序列号重组
添加TCP头部
数据分段
启动定时器
重发数据
滑动窗口前移
  • 关键机制
    • 序列号/确认号:确保数据有序到达
    • 超时重传:RTT动态计算超时时间
    • 滑动窗口:动态调整发送速率(流量控制)
    • 选择性确认(SACK):高效重传丢失片段

4. TCP 拥塞控制

在这里插入图片描述

  • 阶段说明
    1. 慢启动:窗口从1 MSS开始指数增长
    2. 拥塞避免:窗口线性增长(加法增大)
    3. 快速重传:收到3个重复ACK立即重传
    4. 快速恢复:窗口减半后直接进入拥塞避免

UDP 协议解析

1. UDP 数据报结构
 0                   1                   2                   3  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|          Source Port          |       Destination Port        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|            Length             |           Checksum            |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                             Data                              |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
  • 特点
    • 无连接:直接发送数据
    • 无可靠性机制:不保证顺序和到达
    • 低延迟:头部仅8字节
    • 支持广播/多播

2. UDP 通信流程
应用进程AUDP模块AUDP模块B应用进程B发送数据(带端口)封装UDP数据报解封装,按端口交付无确认/重传机制应用进程AUDP模块AUDP模块B应用进程B

端口(Port)机制

核心作用:区分同一主机上的不同应用程序
在这里插入图片描述

  • 常见端口
    • HTTP: 80, HTTPS: 443
    • FTP: 21, SSH: 22
    • DNS: 53, DHCP: 67/68

TCP/UDP 应用场景对比

场景推荐协议原因
网页浏览TCP需要可靠传输HTML/CSS/JS
视频直播UDP容忍丢包,追求低延迟
文件传输TCP数据完整性要求高
DNS查询UDP短报文,快速响应
在线游戏UDP实时性优先于可靠性
电子邮件TCP保证邮件内容完整到达

Mermaid 综合原理图

TCP 端到端通信全流程
接收主机
网络路径
发送主机
正确
错误
ACK
IP层解封装
TCP重组数据
校验序列号
发送ACK
丢弃等待重传
交付应用
路由器1
路由器2
路由器N
TCP分段
应用数据
添加TCP头部
传递给IP层

💡 传输层核心价值

  1. 为应用层屏蔽网络复杂性(丢包、乱序、拥塞)
  2. 通过端口机制实现多路复用
  3. TCP/UDP 互补满足不同场景需求
    “TCP提供可靠传输的管道,UDP提供高效的传输通道”

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

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

相关文章

深度学习笔记:Overview

本文根据吴恩达老师的深度学习课程整理而来,在此表示感知。 文章目录1.课程笔记2.编程作业1.课程笔记 1)深度学习笔记(1):神经网络基础 2)深度学习笔记(2):浅层神经网络…

LLM之RAG理论(十八)| ChatGPT DeepResearch 深度研究功能全面技术分析报告

一、背景与行业环境1.1 DeepResearch 的诞生与战略意义ChatGPT DeepResearch(深度研究)是 OpenAI 于 2025 年 2 月 3 日正式发布的全新 AI 智能体产品,是继 o3-mini 模型发布后,OpenAI 在 AI 研究领域的又一重大突破。这一功能的推…

数据库学习--------数据库日志类型及其与事务特性的关系

在数据库系统中,日志是保证数据可靠性和一致性的重要组成部分,尤其与事务的特性紧密相连。无论是事务的原子性、一致性,还是持久性,都离不开日志的支持。数据库日志(Database Log)是数据库系统记录自身操作…

如何在 Ubuntu 24.04 或 22.04 LTS 上安装 OpenShot 视频编辑器

OpenShot 视频编辑器是一款轻量级工具,不需要高性能硬件即可编辑视频。它最初是一个爱好项目,后来成为一款拥有简单干净用户界面的流行免费编辑工具。这款直观的视频编辑器可以剪辑影片,并添加额外的视频和音频素材。最终,您可以将作品导出为您选择的格式。本教程将向您展示…

SpringMVC核心原理与实战指南

什么是MVC? MVC英文是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范。 MVC是用一种业务逻辑、数据、界面显示分离的方法,将业务逻辑聚集到一个部件里面&am…

【JavaEE】(7) 网络原理 TCP/IP 协议

一、应用层 应用层是程序员最关心的一层,需要自定义数据传输的格式,即前(客户端)后(服务器)端交互的接口,然后调用传输层的 socket api 来实现网络通信。 自定义数据传输的协议,主要…

深入理解 Slab / Buddy 分配器与 MMU 映射机制

📖 推荐阅读:《Yocto项目实战教程:高效定制嵌入式Linux系统》 🎥 更多学习视频请关注 B 站:嵌入式Jerry 深入理解 Slab / Buddy 分配器与 MMU 映射机制 在现代 Linux 内核中,物理内存的管理和虚拟地址的映射是系统性能…

Layui核心语法快速入门指南

Layui 基本语法学习指南 Layui 是一个经典的模块化前端框架,以其轻量易用、组件丰富著称。以下是 Layui 的核心语法结构和使用方法: 一、模块加载机制(核心基础) // 标准模块加载语法 layui.use([module1, module2], function()…

基于百度 iframe 框架与语音解析服务的数字人交互系统实现

在智能化交互场景中,数字人作为人机交互的重要载体,其语音交互能力与指令响应效率直接影响用户体验。本文将详细介绍如何基于百度提供的 iframe 框架与语音解析服务,实现数字人语音播报、文字展示及指令响应的完整业务流程,涵盖从插件初始化到实时语音交互的全链路实现逻辑…

高防服务器租用的优势有哪些?

高防服务器具有着强大的防护能力,可以帮助企业抵御各种网络攻击,其中包括大规模的DDOS攻击,高防服务器中还有着防火墙、流量清洗和负载均衡等多种安全技术,能够保证业务持续稳定的运行,降低了企业整体的损失和安全风险…

7.28 进制交换|迭代器模式|map|子集按位或|带参递归

lc701.二叉搜索树插入void dfs不行TreeNode* dfs,带接受参数处理的dfs当为空的时候,就可以添加插入if (!root){return new TreeNode(val);}插入位置root->left insertIntoBST(root->left, val);class Solution {public:TreeNode* insertIntoBST(T…

方法学习(二)

.一、变量作为实参使用:1.定义一个方法,比较两个整数的大小,如果第一个整数比第二个整数大,返回true否则返回false。public static void main(String[] args) {int i 3;int j 5;//传递的是i和j,但是真正传递的是i和j…

计算机视觉CS231n学习(1)

面向视觉识别的卷积神经网络 CS231n Introduction计算机视觉的历史 the history of computer vision 重要节点:1959 Hubel & Wiesel 利用和人比较相像的猫的视觉神经做实验:简单细胞反应灯的位置;复杂细胞反应灯的位置和移动;…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博内容IP地图可视化分析实现

大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解微博内容IP地图可视化分析实现 视频在线地…

Z20K118库中寄存器及其库函数封装-SYSCTRL库

1. 系统设备识别寄存器(SCM)7个位域。 记录设备信息。Z20K11x[FAM_ID:Z20K/Z20M,SUBF_ID:1/3,SER_ID:1/4]特征ID版本号FLASH存储器大小封装类型。1-1 SYSCTRL_DeviceId_t SYSCTRL_GetDeviceId(void)读取设备信息。2.独一ID号寄存器(SCM)4个该寄存器存储完…

007TG洞察:波场TRON上市观察,Web3流量工具的技术解析与应用

引言:波场TRON(TRX)登陆资本市场及近期加密市场热点(如MEME币),凸显了实时流量捕获与转化在Web3领域的战略地位。对于技术团队而言,构建支撑全球业务的Web3平台,核心挑战在于&#x…

STM32——HAL 库MDK工程创建

总:STM32——学习总纲 参考工程: 实验0-3,新建工程实验-HAL库版本 前置知识: STM32——HAL库 一、HAL 库 MDK工程新建步骤简介 例: 各个文件夹内容: 1.1 Drivers 1.2 Middlewares 1.3 Output 1.4 Pro…

【图像处理】霍夫变换:霍夫变换原理、霍夫空间、霍夫直线、霍夫圆详解与代码示例

霍夫变换详解与代码示例 霍夫变换(Hough Transform)是一种用于检测图像中几何形状(如直线、圆)的特征提取技术。其核心思想是将图像空间中的点映射到参数空间(霍夫空间),通过累积投票机制识别形…

Java WEB技术-序列化和反序列化认识(SpringBoot的Jackson序列化行为?如何打破序列化过程的驼峰规则?如何解决学序列化循环引用问题?)

一、什么是序列化和反序列化 在java项目中,对象序列化和反序列化通常用于对象的存储或网络传输等。如:服务端创建一个JSON对象,对象如何在网络中进行传输呢?我们知道网络传输的数据通常都是字节流的形式,对象想要在网络…

【生活系列】MBTI探索 16 种性格类型

博客目录一、MBTI 的四个核心维度1. 精力来源:外向(E)vs 内向(I)2. 信息获取方式:感觉(S)vs 直觉(N)3. 决策方式:思考(T)v…