计算机网络:传输层

目录

概述

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指数级增长 → 指数退避降低重传频率 → 缓解网络拥塞。

流量控制

发送窗口

接收窗口

例如:

拥塞控制

🦆🦆🦆...

相关推荐
G_H_S_3_6 小时前
【网络运维】容器、容器架构与docker部署
运维·网络·docker·架构
fantasy_arch6 小时前
SVT-AV1帧类型决策-场景切换检测
前端·网络·av1
开开心心_Every6 小时前
无广告干扰:简单好用文字LOGO设计工具
xml·java·网络·数据库·华为od·华为云·excel
不染尘.7 小时前
传输层协议头分析
服务器·网络·tcp/ip·计算机网络·udp·tcp
松涛和鸣7 小时前
37、UDP网络编程入门
linux·服务器·前端·网络·udp·php
数字护盾(和中)7 小时前
BAS模拟入侵攻击系统:前置防控核心,守护企业网络安全
网络·安全·web安全
德迅云安全—珍珍7 小时前
游戏掉线使用游戏盾SDK能优化网络吗
网络·游戏
zbtlink7 小时前
4G与4G+路由器:技术与实际体验的差异
网络·智能路由器
清@尘7 小时前
威联通NAS双网卡双倍速度聚合+SMB多通道设置的方法
网络·nas·威联通