多路复用与多路分用

article/2025/10/19 10:09:48

从现在开始,我们开始传输层的学习,自顶向下第六版中改成了运输层,感觉怪怪的
书中打了邮政服务和代收发信件的兄弟姐妹之间的比方,非常贴切,这是传输层和网络层的作用区别,也就是说,传输层管的是主机内部的文件传输
在这里插入图片描述

多路复用与多路分解

1 定义

  • 多路复用:在源主机不同套接字收集数据块,每个都装上首部信息,生成报文段,然后将报文段传递到网络
  • 多路分解:将传输层报文段中的数据交付到正确(通过首部信息)的套接字
名词意义
数据块拆解下来的数据
报文段运输层给数据块封装上首部信息,包含源端口号和目的端口号
数据报网络层给报文段封装上首部信息,包含源IP地址和目的IP地址
套接字连通应用层和传输层的管道

2 存在于传输层

运输层的任务是为两台主机进程之间的通信提供通用的数据传输服务,所谓通用的,是指并不针对某个特定应用,而是多种应用可以使用同一个传输层。由于一台主机可以同时运行多个进程,因此传输层有多路复用和多路分解的功能。复用就是多个应用层进程可同时使用下面传输层的服务,多路分解和多路复用相反,是传输层把收到的信息分别交付给上面应用层的相关进程。

3 多路复用:

将一份带宽资源按某种方法分成多个进程(多个用户)可以同时使用的技术:

  • 频分多路复用:频分多路复用是将各路信号分别调制到不同的频段进行传输,多用于模拟通信。
  • 时分多路复用:时分多路复用将用于传输的时间划分为若干个时间间隔(时隙),每个进程(用户)分得一个时间间隔。通俗的说,时分多路复用通信是各路信号在同一信道上占有不同时间片进行通信。
类型频分多路复用时分多路复用
特点链路频谱由所有连接共享,每条连接专用一个频段将时间划分为特定的帧,帧又划分为固定数量的时隙
应用电视机频道因特网电话

在这里插入图片描述

时分多路复用

4 举例

这是报文段的内部结构:
在这里插入图片描述
在下图中,报文段用4个端口号简要代替:
在这里插入图片描述

SP:source port
DP:destination port
S-IP:source IP
D-IP:destination IP

复用要求:
在这里插入图片描述
为什么有这个要求?是因为最终是要分解出来的,因此,这个要求是匹配分解服务的规则的。

分解服务:

  • 套接字分配端口号
  • 运输层检查报文段中的端口号,并定向到套接字
  • 报文段中的数据通过套接字传到所连接的进程

以上,也是UDP的传输过程,但是TCP要复杂得多

UDP协议

在这里插入图片描述
下面是UDP协议的报文段,首部只有4个字段,每个字段由两个字节组成,也就是他的头部只有8字节(TCP头部比他多很多)
在这里插入图片描述
可以看到有一个checksum,这叫校验和,这是什么呢?下面你就知道了

1、校验和

  • 目的:检测UDP段在传输中是否发生错误(如位翻转)
    在这里插入图片描述
  • 说明:

一、发送方
(1)假设数据中有2个16比特的数
(2)求出前两个的和,如果溢出就回卷,即去掉最高位,然后末尾+1
(4)现在已经加完了所有16比特的数,取反码就变成了校验和,然后发送
二、接收方
(5)将3个16比特的数(包含校验和)加起来,一定等于1111 1111 1111 1111(相当于两个反码相加),这也是取反码做校验和的原因
(6)如果不等,校验和错误,传输出现问题
在这里插入图片描述
相信你能想到,这个还是太脆弱了,仅仅只能解决数据缺失问题,而且也只能知道发生了错误,但不知道哪里发生了错误,此外,对于互相交换位置这类错误根本无法检测。

2、既然UDP不可靠,为什么还要加上错误校验?

这个错误校验比起TCP的要简单得多,多加这个在某种程度上可以减少错误率而不至于影响到UDP的速度。

3、UDP也能增加可靠传输吗?

  • 是的,事实上,TCP协议就是在UDP协议基础上构建的,只不过是封装好直接用
  • 我们用UDP通过在应用层添加可靠机制可以完成TCP的功能

http://chatgpt.dhexx.cn/article/yS6DRK9i.shtml

相关文章

多路复用(

apue 多路复用 需求来自用户,用户的需求来自实际的使用场景。在实际运用中,一个系统或者程序需要处理的事件并不是只有一个或一类,而是存在各种各样的事件在一小段事件内一起发生,此时按照没学多线程的逻辑的处理方式就是这样&…

多路复用

讲多路复用先我觉得有必要讲一下什么是阻塞IO、非阻塞IO、同步IO、异步IO这几个东西;linux的五种IO模型: 1)阻塞I/O(blocking I/O) 2)非阻塞I/O(nonblocking I/O) 3) I/O复用(select和poll)(…

io多路复用的原理和实现_IO多路复用机制详解

select,poll,epoll机制区别总结: 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是…

【多路复用器介绍】

【多路复用器介绍】意义 作用 实现 意义逻辑电路原理结构与真值表逻辑电路 实现代码参考资料 意义 多路复用器将接收的复合数据流,依照信道分离数据,并将它们送到对应的输出线上,故称为解多路复用器。 实际生活中,使用多路复用器…

多路复用技术(频分多路复用、时分多路复用和波分多路复用)

基带信号就是将数字信号1或0直接用两种不同的电压来表示,然后送到线路上去传输。 宽带信号则是将基带信号进行调制后形成的频分复用模拟信号。 多路复用技术的基本原理是:各路信号在进入同一个有线的或无线的传输媒质之前,先采用调制技术把…

8、多路复用技术

这一节,我们介绍信道的多路复用,作为数据通信基础的收尾知识点,这个知识点并没有特别复杂的地方,主要是理解不同的复用技术的特点,在一些考试中也没有多少考点,或者说不做重点。 多路复用技术 先从字面上来…

TCP/IP多路复用

所有网络通信的本质目标就是进程间通信。 除了寻址(Addressing),IP 协议还有一个非常重要的能力就是路由。 寻址告诉我们去往下一个目的地该朝哪个方向走,路由则是根据下一个目的地选择路径。寻址更像在导航,路由更像…

多路复用,讲的很明白

作者:罗志宇 链接:https://www.zhihu.com/question/32163005/answer/55772739 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 假设你是一个机场的空管, 你需要管理到你机场的所有…

全网最详细的 I/O 多路复用解析

前言 IO多路复用目前在大厂的面试中,一般在两个地方可能会被问到,一个是在问到网络这一块的时候,另一个是在问到 Redis 这一块的时候,因为 Redis 底层也是使用了IO多路复用,所以整体来说 IO多路复用,也算是…

计算机网络基础之多路复用技术

温故: 1、单工传输:单工传输只支持数据在一个方向上传输,数据传送只能在一个方向上进行,任何时候都不能改变方向,就像公路上的单行道,例如无线电广播。 2、半双工传输:半双工传输允许数据在两个方向上传输&…

《JAVA核心知识》学习笔记(JVM)-1

JVM (1) 基本概念: JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。 JVM 是运行在操作系统之上的,它与硬件没有直接 的交互 Hotspot JVM 后台运行的系统线…

多路复用技术概述

概述频分复用(Frequency Division Multiplexing)时分复用(Time Division Multiplexing)波分复用(Wave Division Multiplexing)码分复用(Code Division Multiplexing) 概述 数据是在物理链路的信道中传输的,通常一条链路上会有多条信道。在默认情况下,一…

计算机网络-多路复用

什么是多路复用技术呢? 多路复用(multiplexing),简称复用,是通信技术中的基本概念 。 事实上,多路复用技术的原理就是,把通信资源或者说是链路、信道资源进行的划分,分成一系列的资源片。把这些资源片分配…

一、多路复用

1.什么是多路复用 数据通信系统或计算机网络系统中,传输媒体的带宽或容量往往会大于传输单一信号的需求,为了有效地利用通信线路,希望一个信道同时传输多路信号,这就是所谓的多路复用技术(Multiplexing)。采用多路复用技术能把多个信号组合起…

分类变量回归: R语言中哑变量编码本质

本篇描述分类变量如何进行回归(翻译自http://www.sthda.com/english/articles/40-regression-analysis/163-regression-with-categorical-variables-dummy-coding-essentials-in-r/) 分类变量(也称为因子或定性变量)是可以将观测数据分组的变量。它们有…

python哑变量转换为类别变量

就是get_dummies()功能的逆变化,把哑变量重新变为类别变量 原先的数据 转变后的数据 代码如下: df.columns[1,2,3,4,5,6]df df[df1].stack().reset_index() df.columns[A,B,C] print(df) del df[A] del df[C]

回归模型中的哑变量

在构建回归模型时,如果自变量X为连续性变量,回归系数β可以解释为:在其他自变量不变的条件下,X每改变一个单位,所引起的因变量Y的平均变化量;如果自变量X为二分类变量,例如是否饮酒(…

Python超实用小技巧:分类变量转化为哑变量(附哑变量详解)

代码示例 features ["Pclass", "Sex", "SibSp", "Parch"]# 筛选出分类变量用来建模X pd.get_dummies(train[features])# 把分类变量转化为哑变量 哑变量详解 定义:哑变量(DummyVariable)&#xf…

多元线性回归哑变量设置方法

多元线性回归是研究一个连续型变量和其他多个变量间线性关系的统计学分析方法,如果在自变量中存在分类变量,如果直接将分类变量和连续性变量统一纳入模型进行分析是有问题的,尤其是无序分类资料,即使进入了模型,也难以…

matlab虚拟变量,不要再稀里糊涂的做回归了:如何设置哑变量

原标题:不要再稀里糊涂的做回归了:如何设置哑变量 虚拟变量 ( Dummy Variables) 又称虚设变量、名义变量或哑变量,用以反映质的属性的一个人工变量,是量化了的自变量,通常取值为0或1。引入哑变量可使线形回归模型变得更…