计算机网络理论:5.传输层

第五章传输层

§5-1 传输层提供的服务

一. 传输层概述

1. 端口

(1).端口的作用
  1. 通过"端口号"标识本主机的一个特定进程。
  2. 注意: 每台主机的端口号是相互独立的。
  3. 注意: TCP、UDP 两种协议的端口号是相互独立的。
  4. Socket 套接字: TCP或UDP协议,通过 Socket 套接字 = {IP地址 : 端口号},唯一标识网络中的一台主机上的一个应用进程。
(2).端口号的分类
①. 服务器使用的端口号
  • 熟知端口号 (0~1023): 通常只能用于被熟知的重要应用程序。
  • 登记端口号 (1024~49151)
②. 客户端使用的端口号
  • 短暂端口号 (49152~65535)

2. 传输层功能

实现端到端(进程到进程)的通信。

(1).复用和分用
①. 复用 (从上到下)

发送数据的时候,同一台主机上的多个进程可以使用同一个传输层协议。

②. 分用 (从下到上)

接收数据的时候,传输层可以把数据正确交付到目的进程。

(2).差错检测
  1. TCP: 检测出差错后丢弃数据,并通知发送方重传

  2. UDP: 检测出错误后直接丢弃数据,且不通知发送方

(3).向应用层提供两种服务
  1. 面向连接的、可靠的端到端传输服务 (TCP)

    确保数据正确/完整,但开销大、实时性较差。

  2. 无连接的、不可靠的端到端传输服务 (UDP)

    数据可能出错/丢失,但速度快、开销小。

§5-2 UDP

一.UDP数据报


二.UDP检验

1. 发送方的传输层

2. 接收方的传输层

§5-3 TCP

一.TCP报文段

二.TCP协议的三大阶段

  • 建立连接 (三次握手)

  • 数据传输

  • 释放连接 (四次挥手)

每次建立TCP连接,可以传输多个报文(双向)TCP是面向字节流的(而UDP是面向报文的)。
无论传输多少个报文,在TCP协议看来都是一连串字节流

数据偏移是TCP首部的长度

三.TCP检验

原理与UDP雷同,计算检验和之前也需要添加12B伪首部(只需将UDP伪首部的协议字段的17改成6,UDP长度字段改成TCP长度)

  • 建立TCP连接时,在握手①、握手②选项中协商MSS(Maximum Segment Size,最大段长)
  • MSS的值表示在接下来的数据传输中,一个TCP报文段最多携带多少数据(首部不算在内)
  • 通常MSS不会设置太大,以免在IP层被分片

四.TCP连接管理

1. 建立连接(三次握手)

握手①②不能携带数据,握手③可以携带数据;
握手①②固定消耗1个序号;
握手③如果不携带数据就不消耗序号;

  • 建立连接阶段耗时分析

    从发出握手①,到客户端进程可以发送数据,至少需要多久?------1RTT(往返时延)
    从发出握手①,到服务器进程可以发送数据,至少需要多久?------1.5RTT(往返时延)

2. 释放连接(四次挥手)

挥手①、挥手③即使不携带数据,也要消耗一个序号
挥手①、②、③可以携带数据挥手④不可以携带数据

  • 释放连接阶段耗时分析

    补充1:客户进程收到挥手③后,立即进入TIME-WAIT状态,并启动"TIME-WAIT计时器",倒计时2MSL后才能进入CLOSE状态。(如果等待期间重复收到挥手③,就重置计时器)

    补充2:MSL(MaximumSegment Lifetime,最长报文段寿命),是由TCP协议规定的一个固定时间长度。

    补充3:如果服务器进程收到挥手①时,已经没有待传送数据,那么可以连续发出挥手②、挥手③

    从客户发出挥手①,到客户进程进入CLOSE状态,至少需要多久? ------1RTT+2MSL

    从客户发出挥手①,到服务器进程进程进入CLOSE状态,至少需要多久?一一1.5RTT


五.TCP可靠传输&流量控制

TCP传输的底层原理

捎带确认

(即使缓冲区没有满,只有有序,也可以交给应用层)

重点体会:超时重传机制

  • 发出的报文段丢失
  • 返回的ACK段丢失



快重传机制、立即确认机制

(右图有问题,第一个ACK不能算作冗余ACK,需要再来一个ACK才会立即重传)

六.TCP拥塞控制

cwnd: 拥塞窗口

TCP拥塞控制、TCP流量控制的区别与联系

拥塞控制考题特点:

  1. 常与"流量控制"综合考察,此时需要考虑接收窗口大小

  2. 通常只涉及单向传输(TCP连接双方只有一方发送数据)

  3. 通常默认每个TCP报文段都以最大段长MSS满载数据

  4. 拥塞窗口的大小常以"MSS的倍数"作为单位

  5. 接收方收到一个报文段,会"立即确认",而不是"推迟确认"

注:为了聚焦拥塞控制,接下来的讨论中,假设接收方的接收窗口足够大,这样发送窗口大小就只受拥塞窗口限制

1. 慢开始算法-不拥塞

2. 拥塞避免算法-严重拥塞

(横轴单位RTT(往返时延))

(图中网络拥塞点是超时重传,不是冗余ACK)

注:新ssthresh = cwnd/2 = 12;cwnd = 1;注意:ssthresh不能小于2

3. 快重传机制(冗余ACK)快恢复算法-有点拥塞

(0-12和上图一样)

(图中网络拥塞点是冗余ACK)

收到冗余ACK后,和新ssthresh拥塞窗口都等于拥塞窗口当前一半(注意:ssthresh不能小于2)

相关推荐
南梦浅7 小时前
三层网络搭建(思科模拟器)
网络·计算机网络
向往着的青绿色7 小时前
雷池(SafeLine)社区版免费部署教程|从环境检查到防护实操全流程
网络·计算机网络·nginx·网络安全·容器·网络攻击模型·信息与通信
@encryption10 小时前
计算机网络发展
网络·计算机网络
跃渊Yuey11 小时前
【计算机网络】IP网络层原理
tcp/ip·计算机网络
AEIC学术交流中心12 小时前
【快速EI检索 | IEEE出版】第五届智能系统、通信与计算机网络国际学术会议(ISCCN 2026)
计算机网络
北寻北爱13 小时前
面试题-计算机网络篇
计算机网络
左左右右左右摇晃1 天前
计算机网络笔记整理
笔记·计算机网络
旺仔.2911 天前
线程安全 详解
linux·计算机网络·安全
空空kkk1 天前
计算机网络相关知识
计算机网络