5.运输层

5. 运输层

1. 概述

  • 第2~4章依次介绍了计算机网络体系结构中的物理层数据链路层网络层,它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信
  • 然而在计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程
  • 如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务,运输层协议又称为端到端协议

2. 端口号,复用和分用

1. 运输层端口号
  • 运行在计算机上的进程是使用进程标识符(Process ldentification,PID)来标识的。
    • 然而,因特网上的计算机并不是使用统一的操作系统,而不同操作系统(Windows、Linux、.MacOS)
      使用不同格式的进程标识符
    • 为了使运行不同操作系统的计算机的应用进程之间能够基于网络进行通信,就必须使用统一的方法
      对TCPP体系的应用进程进行标识
  • TCP/IP体系结构的运输层使用端口号来标识和区分应用层的不同应用进程。端口号的长度为6比特,取
    值范围是0~65535

端口号只具有本地意义,即端口号只是为了标识本计算机网络协议栈应用层中的各应用进程。在因特网中,不同计算机中的相同端口号是没有关系的,即相互独立。另外,TCPUDP端口号之间也是没有关系的

2. 发送方的复用和接收方的分用
  1. 复用(Multiplexing):
    • 定义: 复用是指将多个应用程序的数据流合并到一个共享的通信通道上
    • TCP中的复用: 在TCP中,复用通过源端口号来实现。TCP连接的两端使用IP地址和端口号来唯一标识。源端口号表示发送端的应用程序,目的端口号表示接收端的应用程序。这样,在单个TCP连接中,多个应用程序的数据可以共享同一个物理通信通道
    • UDP中的复用: 在UDP中,复用同样通过源端口号来实现。UDP报文的源端口号用于标识发送端的应用程序,目的端口号用于标识接收端的应用程序
  2. 分用(Demultiplexing):
    • 定义: 分用是指根据数据流中的标识信息将合并的数据流分发给正确的应用程序
    • TCP中的分用: 在TCP中,分用通过目的端口号来实现。接收端根据目的端口号将接收到的数据分发给相应的应用程序。这样,TCP层能够将数据正确地传递给目标应用程序
    • UDP中的分用: 在UDP中,同样通过目的端口号来实现分用。接收端通过目的端口号确定应该将数据交付给哪个应用程序

常见协议的分类

运输层端口号应用举例

3. TCPUDP的对比

注意

  • TCP面向连接是逻辑连接,并非真实物理连接
  • TCP面向字节流,UDP面向应用报文(只是给数据报添加一个UDP首部)
  • TCP只支持单播,UDP支持单播、多播和广播
  • TCP提供可靠服务,UDP提供不可靠服务

4. TCP的流量控制

1. 概述

TCP为应用程序提供了流量控制Flow Control)机制,以解决因发送方发送数据太快而导致接收方来不及接收,造成接收方的接收缓存溢出的问题

流量控制的基本方法:接收方根据自己的接收能力(接收缓存的可用空间大小)控制发送方的发送速率

2. 流量控制方法
  1. 流程

  1. 例题

5. TCP的拥塞(se)控制

1. 基本概念
2. 4种拥塞控制方法

1. 慢开始、拥塞避免

2. 快重传、快恢复

快重传算法和快恢复算法(改进TCP性能,1990年Reno版本)

  1. 问题:只是个别报文丢失,没有出现拥塞,这种情况下还是会将拥塞窗口设置为1,降低了网络利用率

  1. 快重传

    • 采用快重传算法可以让发送方尽早知道发生了个别TCP报文段的丢失
    • “快重传”是指使发送方尽快(尽早)进行重传,而不是等重传计时器超时再重传
      • 这就要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认
      • 发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的重传计时器超时再重传

  2. 快恢复

与快重传算法配合使用的是快恢复算法发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段,于是不启动慢开始算法,而是执行快恢复算法

  • 快恢复算法:发送方将慢开始门限ssthresh的值和拥塞窗口cwnd的值都调整为当前cwnd值的一半,并开始执行拥塞避免算法
  • 也有的快恢复实现是把快恢复开始时的cwnd值再增大一些,即cwnd=新ssthresh+3

6. TCP超时重传时间的选择

TCP超时重传时间RTO的选择是TCP最复杂的问题之一

问题:

  • 超时重传时间设置过小,在确认报文段发送给接收方的过程中,发送方重传数据报文,增大了网络负荷
  • 超时重传时间设置过大,需要重传数据报文时,推迟时间太长,网络空闲时间大,降低了传输效率
  • 超时重传时间RTO应略大于往返时间RTT
RTO的选择
1. RTTs的计算

2. RRTd和RTO的计算

发生超时重传时无法测准RTT

通过上述两个例子可以看出:当发送方出现超时重传后,收到确认报文段时是无法判断出该确认到底是对原数据报文段的确认还是对重传数据报文段的确认,也就是无法准确测量出RTT,进而无法正确计算RTO

Karn算法及修正

总结

7. TCP可靠传输的实现

  • TCP的窗口以字节为单位

  • 发送方
    • 发送窗口内的已发送数据如果迟迟未收到确认,会发生超时重传
    • 只有处于发送窗口内的数据才能发送

  • 接收方
    • 接收方只能对按序收到的数据中的最高序号给出累计确认,3次重复确认会导致发送方快重传
    • 序号落入接收窗口内的数据是允许接收的数据

  • 总结

8. TCP的运输连接管理

1. TCP连接的建立

TCP双方连接的建立要解决的三个问题

2. 三报文握手

思考:第三次确认是否多余,能不能两报文握手?

答案:不能,如下图所示

3. 四报文挥手

思考:为什么客户端发送完最后一个确认报文段后不立刻关闭而是等待2个MSL时间后才关闭?

答案:如图所示

image-20241104141359755

TCP保活计时器的作用

9. TCP、UDP报文段首部格式对比

参阅思维导图1

img

10. UDP的校验

[!IMPORTANT]

伪首部只是计算校验和的时候添加的,计算完后会拆除,不参与运输!

UDP校验

11. 思维导图和习题

第5章 运输层(思维导图)-1 (kdocs.cn)

第5章 运输层(思维导图)-2 (kdocs.cn)

第5章 运输层 习题 (kdocs.cn)

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

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

相关文章

告别手动时代!物联网软件开发让万物自动互联

清晨,智能窗帘随着阳光自动拉开;运动时,手表精准记录着健康数据;回到家,室温早已调节至最舒适状态...这些场景的实现,都离不开物联网软件开发的技术支撑。在智能家居软件开发、智能穿戴软件开发、医疗器械软…

Fiori学习专题十二:Shell Control as Container

为了让我们的app更加适应不同的设备&#xff0c;这节课我们引入shell控件作为根元素 1.修改App.view.xml&#xff0c;加入Shell控件 <mvc:ViewcontrollerName"ui5.walkthrough.controller.App"xmlns"sap.m"xmlns:mvc"sap.ui.core.mvc"displa…

AI 与高性能计算的深度融合:开启科技新纪元

在当今科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;与高性能计算&#xff08;HPC&#xff09;正以前所未有的态势深度融合&#xff0c;这种融合宛如一场强大的风暴&#xff0c;席卷并重塑着众多领域的格局。从科学研究的突破到商业应用的革新&#xff0c…

「Unity3D」TextMeshPro使用TMP_InputField实现,输入框高度自动扩展与收缩

先看实现效果&#xff1a; 要实现这个效果&#xff0c;有三个方面的问题需要解决&#xff1a; 第一&#xff0c;输入框的高度扩展&#xff0c;内部子元素会随着锚点&#xff0c;拉伸变形——要解决这个问题&#xff0c;需要将内部元素改变父类&#xff0c;然后增加父类高度&am…

多模态大语言模型arxiv论文略读(四十七)

AdaShield: Safeguarding Multimodal Large Language Models from Structure-based Attack via Adaptive Shield Prompting ➡️ 论文标题&#xff1a;AdaShield: Safeguarding Multimodal Large Language Models from Structure-based Attack via Adaptive Shield Prompting …

美的人形机器人即将投入实际应用

国内家电巨头美的集团近日公布了其自主研发的人形机器人的具体落地计划。根据公司披露的信息&#xff0c;这款机器人将于5月在湖北荆州的洗衣机工厂率先投入使用&#xff0c;承担设备运维、质量检测和物料搬运等工作任务。预计今年下半年&#xff0c;该机器人还将进入美的线下门…

从零开始搭建你的个人博客:使用 GitHub Pages 免费部署静态网站

&#x1f310; 从零开始搭建你的个人博客&#xff1a;使用 GitHub Pages 免费部署静态网站 在互联网时代&#xff0c;拥有一个属于自己的网站不仅是一种展示方式&#xff0c;更是一种技术能力的体现。今天我们将一步步学习如何通过 GitHub Pages 搭建一个免费的个人博客或简历…

canvas动画:点随机运动 距离内自动连接成线 鼠标移动自动吸附附近的点

思路/实现步骤 创建canvas元素 获取canvas的上下文ctx 初始化点的信息&#xff08;数量、初始坐标、移动方向、移动速度、大小、颜色&#xff09; 绘制点 绘制点之间的连线 点有规律的动起来 动画循环 鼠标移动相关逻辑 点鼠标之间连线 鼠标吸附逻辑 添加配置项 重绘…

2025年4月AI科技领域周报(4.21-4.27):大模型生态加速演进 通用AI开启产业融合新范式

2025年4月AI科技领域周报&#xff08;4.21-4.27&#xff09;&#xff1a;大模型生态加速演进 通用AI开启产业融合新范式 一、本周热点回顾1. OpenAI发布全球首款通用AI芯片「GPT-NPU」 重塑AI算力架构2. 谷歌DeepMind发布医疗AI系统「Med-Pathfinder」 实现全科室智能诊断3. 微…

【Bash】可以请您解释性地说明一下“2>1”这个语法吗?

Qwen3-235B 当然可以&#xff01;我们一步步拆解 2>&1 的含义&#xff0c;用生活化的例子来理解它&#xff1a; &#x1f9e0; 前提知识&#xff1a;三个“水流通道” 在 Linux/Unix 系统中&#xff0c;程序运行时有三种默认的“水流通道”&#xff1a; 标准输入&…

MAC如何安装多版本jdk(以8,11,17为例)

MAC如何安装多版本jdk(以8,11,17为例&#xff09;_mac安装jdk17-CSDN博客

Nginx核心

一、概述 Nginx一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】&#xff0c;同时也是一个电子邮件代理服务器。正向代理服务的是客户端&#xff08;比如VPN&#xff09;&#xff0c;反向代理服务的是服务端。Nginx是多进程的&#xff0c;有一个Master进程控制多个Worke…

综合开发-手机APP远程控制PLC1500柱灯的亮灭

要通过 ​​Unity3D​​ 开发的手机 App 控制 ​​电气柜上面的柱灯&#xff0c;需要WIFI模块作为桥梁&#xff0c;按照以下步骤实现&#xff1a; ​​1. 硬件准备&#xff08;硬件部分&#xff09;​​ ​​所需材料​​ ​​ESP32开发板​​&#xff08;如ESP32-WROOM-32&a…

五款提效工具

1. 亿可达 核心功能&#xff1a;通过“触发器动作”模式&#xff0c;实现任务自动执行&#xff08;如邮件转发、评论回复、数据同步&#xff09;。 适用场景&#xff1a;自动同步Notion项目到滴答清单生成待办事项 优势&#xff1a;节省重复操作时间&#xff0c;减少人为错误&a…

Docker化HBase排错实录:从Master hflush启动失败到Snappy算法未支持解决

前言 在容器化时代&#xff0c;使用 Docker 部署像 HBase 这样复杂的分布式系统也比较方便。社区也提供了许多方便的 HBase Docker 镜像&#xff0c;没有找到官方的 apache的&#xff0c;但有包含许多大数据工具的 harisekhon/hbase 或用于学习目的的 bigdatauniversity/hbase…

windows远程服务器数据库的搭建和远程访问(Mysql忘记密码通过Navicat连接记录解密密码)

服务器数据库的搭建和远程访问 mysql数据库安装&#xff08;详细&#xff09; window安装mysql详细流程 路程&#xff1a;重设MySQL5密码&#xff0c;发现远程服务器原本有一个MySQL5&#xff0c;尝试在服务器本地建立连接被拒绝&#xff0c;因为不知道密码。 &#xff08;1…

每日c/c++题 备战蓝桥杯(P1093 [NOIP 2007 普及组] 奖学金)

洛谷P1093 [NOIP 2007 普及组] 奖学金 详解题解 题目背景与要求 题目链接&#xff1a;P1093 奖学金 核心任务&#xff1a;根据学生三科总分评选前5名奖学金获得者&#xff0c;需按特定规则排序输出。 排序规则&#xff08;按优先级从高到低&#xff09;&#xff1a; 总分降…

openEuler 22.03 安装 Nginx,支持离线安装

目录 一、环境检查1.1 必要环境检查1.2 在线安装&#xff08;有网络&#xff09;1.3 离线安装&#xff08;无网络&#xff09; 二、下载Nginx2.1 在线下载2.2 离线下载 三、安装Nginx四、开机自启服务五、开放防火墙端口六、常用命令 一、环境检查 1.1 必要环境检查 # 查看 g…

基于深度学习的图像压缩技术(二)

接上篇&#xff1a;基于深度学习的图像压缩技术&#xff08;一&#xff09;-CSDN博客 3 基于生成对抗神经网络的图像压缩技术 生成对抗网络是一种先进的无监督学习算法&#xff0c;由Goodfellow等人在2014 年首次提出&#xff0c;其核心思想源于博弈论。 生成对抗网络在图像压…

TCP和UDP的数据传输+区别

目录 一、数据传输过程 1.1 TCP字节流服务图 1.2 UDP数据报服务图 二、tcp与udp的区别 1.连接方式 2.可靠性 3.传输效率 4.有序性 5.流量控制和拥塞控制 6.应用场景 7.首部长度 三、tcp与udp能不能使用同一个端口号&#xff1f; 四、同一个协议&#xf…