计算机网络:传输层

目录

概述

UDP

数据报

校验

TCP

报文段

连接管理

可靠传输

流量控制

拥塞控制


概述

传输层为运行在不同主机上的应用进程提供端到端的逻辑通信服务 :通过端口号实现多路复用与分解。提供可靠(TCP)及不可靠但高效(UDP)的数据传输。实现流量控制避免接收方过载、拥塞控制缓解网络拥堵、以及连接管理。同时处理数据分段与重组(适配链路 MTU 限制)并辅以差错检测机制。最终屏蔽底层网络的不可靠性,为应用层提供高效可控的端到端数据传输能力。

多路复用与多路分解

**进程要提供网络服务,必须先通过系统调用(如bind())将自身绑定到一个特定的端口上,这样传输层收到目标端口的数据后,才能准确转发给该进程。**反之进程如果不绑定端口,就无法接收外部主动发起的连接(客户端进程通常是系统随机分配动态端口无需手动绑定)。

一个进程可以绑定多个端口,一个端口(同一协议)默认只能被一个进程绑定。

不同协议(TCP/UDP)可同时占用同一端口号。 TCP 和 UDP 是两个独立的协议命名空间,系统会通过协议类型区分。同一协议内默认不能同时占用同一端口号。 同一协议下同一个 IP 地址的同一个端口号默认只能被一个进程绑定

UDP

数据报

校验

TCP

TCP 被称为面向连接的协议 ,核心在于其通信过程需要经历连接建立→数据传输→连接释放 的完整生命周期。TCP 通信前必须通过三次报文交互,在客户端和服务器之间协商并确认连接参数,确保双方具备通信能力(三次握手 )。通信结束后,需通过四次报文交互主动释放连接资源,确保双方无数据残留(四次挥手 )。TCP 的面向连接本质是状态化通信,连接是一种状态实体,通信依赖连接状态的一致性,错误的处理基于连接的上下文。

**TCP连接提供的是全双工服务,在一个 TCP 连接中,通信双方(客户端和服务器)可以同时进行数据的发送和接收,发送方和接收方的角色是动态的、非独占的。**TCP 连接包含两条独立的逻辑通道,两条通道的数据流互不干扰,各自维护独立的序列号、确认号、滑动窗口等状态信息。

TCP被设计为点对点(Point-to-Point)协议 ,而非一对多(如组播或广播),这是由其协议特性、设计目标和底层网络架构共同决定的。**TCP 的核心定位是在两个端点之间建立一条逻辑连接,通过序列号、确认机制、控制位、滑动窗口等复杂机制实现端到端的可靠数据传输。**这些机制依赖于唯一的双向通信链路,要求发送方和接收方之间有明确的一一对应关系。若支持一对多(如同时向多个接收方发送数据),每个接收方的网络状态、接收能力、数据确认逻辑均不同,需为每个接收方单独维护一套状态(如序号、窗口、超时定时器等),这会导致协议复杂度呈指数级上升,甚至无法高效管理。

**TCP 将数据视为无边界的字节流,保证数据按发送顺序到达接收方。**在点对点场景中,通过单一序列号空间即可实现顺序控制。但在一对多场景中,每个接收方的字节流顺序独立,发送方需为每个接收方维护独立的序列号和确认逻辑,这与 TCP 的字节流抽象模型冲突。且一对多属于网络层或应用层的职责,而TCP 专注于传输层的端到端可靠性。

应用进程将数据写入套接字后,会先存于 TCP 发送缓存,等待合适时机发送(数据暂存)。 发送缓存配合滑动窗口机制,根据接收方通告的窗口大小,控制发送数据量。若接收方接收缓存快满,通告小窗口值,发送方就减少从发送缓存提取数据发送的量,避免数据丢失(流量控制 )。发送缓存中未被确认的数据,在超时未收到确认时会重传(可靠传输保证)。

TCP接收方将网络中传来的 TCP 报文段,经解析后数据存于接收缓存,供应用进程读取(数据接收缓存)。当收到乱序的报文段,只要序号在接收窗口内,就暂存于接收缓存,等待正确顺序时交付应用进程(乱序处理)。接收缓存剩余空间大小,决定接收方通告给发送方的窗口大小,以此反馈控制发送方发送速率(流量反馈依据)。

TCP可从缓存中取出并且放入报文段的数据数量受限于最大报文段长度(MSS)。

报文段

连接管理

建立连接

注:seq起始序号由客户端/服务端进程自行决定。握手①②不能携带数据(只有TCP首部),但是仍然需要消耗一个序号。

释放连接

注:挥手①③即使不携带数据,也要消耗一个序号。挥手②可以携带数据。挥手④不可以携带数据。也可以是服务器先发出挥手。

MSL(Maximum Segment Lifetime,最长报文段寿命),是由TCP协议规定的一个固定时间长度。 客户进程收到挥手③后,立即进入TIME-WAIT状态,并启动TIME-WAIT计时器,倒计时2MSL后才能进入CLOSE状态。如果等待期间重复收到挥手③,就重置计时器。

SYN泛洪攻击

可靠传输

TCP的可靠性机制是以GBN的累积确认为骨架,融合SR的选择重传思想的折中方案:

GBN机制 :采用累积确认 ,接收方仅回复期望收到的下一个字节序号,简化确认机制。 发送方为未确认的数据设置定时器,超时后重传最早未确认的分组及之后的数据(典型的GBN行为

SR机制 :TCP接收方会缓存乱序到达的报文段 。通过选择性确认(SACK) 选项,可明确告知发送方已接收的数据。结合快速重传 机制发送方能仅重传真正丢失的个别报文段,而非回退重传整个窗口。

TCP超时重传时间

超时重传 → RTO指数级增长 → 指数退避降低重传频率 → 缓解网络拥塞。

流量控制

发送窗口

接收窗口

例如:

拥塞控制

🦆🦆🦆...

相关推荐
猫头虎12 小时前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
古城小栈14 小时前
Rust 网络请求库:reqwest
开发语言·网络·rust
qq_3168377517 小时前
IP网段冲突 配置指定ip使用指定的网络接口发送,而不经过默认网关
服务器·网络·tcp/ip
布史17 小时前
Tailscale虚拟私有网络指南
linux·网络
枷锁—sha18 小时前
彻底解决 Google Gemini 报错:异常流量与 IP 地址冲突排查指南
网络·网络协议·tcp/ip
Xの哲學18 小时前
深入剖析Linux文件系统数据结构实现机制
linux·运维·网络·数据结构·算法
-To be number.wan19 小时前
经典真题精讲|2010年408统考第34题:文件传输最少需要多久?
网络·计算机网络
知乎的哥廷根数学学派20 小时前
基于多尺度注意力机制融合连续小波变换与原型网络的滚动轴承小样本故障诊断方法(Pytorch)
网络·人工智能·pytorch·python·深度学习·算法·机器学习
好多渔鱼好多20 小时前
【流媒体协议】RTSP / RTP / RTCP 协议全景介绍
网络·网络协议·rtp·rtsp·rtcp·ipc摄像头
映秀小子21 小时前
Wireshark加减显示列
网络·测试工具·wireshark