【网络基础】半双工和全双工

article/2025/10/14 17:06:40

讨论在网络中使用的两种不同的传输类型。
半双工(half duplex)和全双工(full duplex)。

引入基带传输、宽带传输两种传输频带,并讨论全双工的实现。

半双工

在半双工的网络中,两个设备使用网络电缆互连成一个点对点系统,这两个系统彼此之间可以进行双向通信。

但在半双工系统中,他们一次只能在一个方向上通信,不能同时双向通信,所以每次只能有一个方向的数据流。

当着两台计算机相互发送数据时,必须轮流进行。
半双工就像对讲机一样,如果某人向把语音传递给另一个人,它必须按下某个按钮,然后再说话。当按下按钮时,信息只向一个方法传递,所以他们在传输语音时听不到对方的声音,为了能接收到对方的声音,必须松开按钮。

全双工

现在,全双工是更好的传输类型。
在全双工系统中,两个设备彼此之间可以进行双向通信。但与半双工不同的是,两个设备之间可以同时双向通信,这就是全双工比半双工有优势的地方,设备可以同时收发数据。

因此,由于设备可以同时发送和接收数据,全双工系统的带宽是半双工系统的两倍。

网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。

全双工的一个很好的例子是电话通信。当你和某人在电话里交谈时,你可以同时向对方讲话并倾听对方的声音。所以你不必等待,可以边说边听。


CSMA/CD

拿交通公路做比较。

这里,半双工需要“交警”来控制道路的方向,否则如果两个方向的数据同时发送,就会出现下图的“碰撞”了。

这就是为什么在半双工系统中,需要交警来管理车道。
在网络中,交警被称为"CSMA/CD"
也就是"载波监听多点接入/冲突检查",这是一种用来辅助避免碰撞的访问方法。如果确实发生了碰撞,也要做出正确的反应。

参考:

集线器&交换机

对应的半双工、全双工实体是:HUB(集线器)和SWITCH(交换机)

但是现在集线器基本就没人用了。


基带传输、宽带传输

由计算机或终端产生的数字信号,频谱都是从零开始的,这种未经调制的信号所占用的频率范围叫基本频带(这个频带从直流起可高到数百千赫,甚至若干兆赫),简称基带(base band)。这种数字信号就称基带信号。

在有线信道中,直接用电传打字机进行通信时传输的信号就是基带信号。而传送数据时,以原封不动的形式,把基带信号送入线路,称为基带传输。

如果信号需要长距离传输,就需要通过调制解调器将信号转换为宽带信号进行宽带传输,然后在接收端又将它转换过来。

原理

  • 基带传输:信号源产生的原始电信号称为基带信号,将数字数据0、1直接用两种不同的电压表示,然后送到线路上去传输。

  • 宽带传输:将基带信号进行调制后形成模拟信号,然后采用频分复用技术实现宽带传输。即将数字信号变换为特定带宽的音频信号传输,然后在接收端又将它变换过来的传输方式,其中的变换仍由调制——解调器来完成。

传输距离
宽带传输的距离比基带远,因为基带传输直接传送数字信号,虽然数字信号的传输速率高,但是传输的速率越高,能够传输的距离越短;而一个宽带信道能被划分为许多个逻辑信道(只是在宽带信道中划分,可控制的划分。

划分之后也不是变成多条线了,实际还是一条数据线),从而可以将各种声音、图像和数据信息传输综合在同一物理信道中进行。在多个逻辑通道中用不同的信号(模拟信号和数字信号)传输数据。

用途

  • 基带传输:用于数字传输:局域网,500,通常传输距离185M(细缆)、500M(粗缆)
  • 宽带传输:有线电视网:带宽可达750MHz,由于以模拟信号传输,所以传输距离达100km;

宽带系统可分为多个信道,所以模拟和数字数据课混合硬用,但通常需解决双向传输的问题;

全双工的实现

对于同轴电缆,根据传输频带的不同,可分为基带同轴电缆和宽带同轴电缆两种类型。

  •   基带:数字信号,信号占整个信道,同一时间内能传送一种信号。
  •   宽带:可传送不同频率的信号。

全双工传输(Full Duplex Transmission)指同时发生在两个方向上的一种数据传输方式。

简单了解同轴电缆是怎么实现全双工的。

同轴电缆是由中心导体、绝缘材料层、网状织物构成的屏蔽层以及外部隔离材料层组成,所以其不具备在两个方向上同时运行通信流量的物理方式

同轴电缆有两种类型的宽带系统:

双缆系统
双缆系统有两条并排铺设的完全相同的电缆。
为了传输数据,计算机通过电缆1将数据传输到电缆数根部的设备,即顶端器(head-end),随后顶端器通过电缆2将信号沿电缆数往下传输。所有的计算机都通过电缆1发送,通过电缆2接收。

单缆系统
另一种方案是通过FSK(频分复用)技术,将上下行信道分zhidao在不同频率。
例如:专上行5MHz--42MHz,下行450MHz--750MHz。即使双方同时发送数据,由于发送使用的频率不同,由叠加后的信号仍可分属离出相应频率段(方向)的数据

另一种方案是在每根电缆上为内、外通信分配不同的频段。
低频段用于计算机到顶端器的通信,顶端器收到的信号移到高频段,向计算机广播。在子分段(subsplit)系统中,5MHz30MHz频段用于内向通信,40MHz300MHz频段用于外向通信。在中分(midsplit)系统中,内向频段是5MHz116MHz,而外向频段为168MHz300MHz。这一选择是由历史的原因造成的。

同轴电缆现在已经基本上被淘汰了,原因不是因为通信方式,而是因为以下三点:一是体积大,细缆的直径就有3/8英寸粗,要占用电缆管道的大量空间;二是不能承受缠结、压力和严重的弯曲,这些都会损坏电缆结构,阻止信号的传输;最后就是成本高,而所有这些缺点正是双绞线能克服的,因此在现在的局域网环境中,基本已被基于双绞线的以太网物理层规范所取代。
双绞线也可以,或者说对于某些类双绞线来说,主要使用半双工方式。


参考:

  • 视频 CSMA/CD和CSMA/CA_哔哩哔哩_bilibili
  • 半双工通信是不是用的传输介质是同轴电缆,那么双绞线就是用于全双工通信的吧~ 求高手回答 同轴电缆问题?

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

相关文章

【数据存储】分布式文件系统SeaweedFS

2021.05.25 初始seaweedFS 安装 1、先去GitHub下载所需版本 linux_amd64.tar.gz2、然后放到服务器的文档中 /opt/software3、解压安装 tar -zxvf ./linux_amd64.tar.gz -C /opt/install/seaweed4、在seaweed安装包下安装seaweedfs文件夹及其下属两个文件夹 mkdir -p ./se…

seata

Seata 1 seata概述 1.1 Seata简介 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 1.1.1 AT 模式 基于支持本地 ACID…

Selective sweep与Genomic island

最近在阅读文献时遇到了“genomic island”的概念,其概念并不难理解,但是其形成的机制之一“selective sweep”比较难理解。之前在一篇综述(Variation of the adaptive substitution rate between species and within genomes)中我…

Docker seaweedfs

2019独角兽企业重金招聘Python工程师标准>>> 关于seaweedfs的介绍我就不在此文赘述,本文的主要目的是讲述我在docker中运行seaweedfs遇到的一些问题。 这是我搜集的一些关于SeaWeedFS的资料 ps.不管是在物理机还是docker之中运行seaweedfs,建…

Seaweed-fs

windows–文件服务器weed集群操作: weed master -ip 127.0.0.1 weed volume -max10 -mserver“127.0.0.1:9333” -ip127.0.0.1 -port9331 -dir“C:\data1” weed volume -max10 -mserver“127.0.0.1:9333” -ip127.0.0.1 -port9332 -dir“C:\data2” Linux部署文件…

seaweedfs上传文件为什么要先申请文件号?(/dir/assign)(两种工作模式:Volume模式与Filer模式)(seaweed上传文件)

文章目录 SeaweedFS两种工作模式Volume模式Filer模式总结 SeaweedFS两种工作模式 SeaweedFS是一个分布式文件系统,它有两种模式:Volume模式和Filer模式。 Volume模式 在Volume模式下,需要先申请文件号,因为SeaweedFS会为每个文…

docker部署seaweedf

总的来说需要两个文件,如下: 1、compose.yml 需要注意:network_mode 模式、ip为宿主机ip version: 3.3services:master:network_mode: "host"image: chrislusf/seaweedfs # use a remote imagecommand: "master -ip172.0.1…

浅析 SeaweedFS 与 JuiceFS 架构异同

SeaweedFS 是一款高效的分布式文件存储系统,最早的设计原型参考了 Facebook 的 Haystack,具有快速读写小数据块的能力。本文将通过对比 SeaweedFS 与 JuiceFS 在设计与功能上的差异,以帮助读者进行更适合自己的选择。 SeaweedFS 系统结构 S…

seaweedfs 部署使用

seaweedfs是一个非常优秀的由 golang 开发的分布式存储开源项目。它是用来存储文件的系统 seaweedfs的特点: 1 可以成存储上亿的文件(根据你硬盘大小变化) 2 速度快 weed-fs自身可以在两种模式下运行,一种是Master,另…

SeaweedFs分布式文件存储实战

背景: 需求重点:大量小文件,读场景多,磁盘存储有限,要能支持fuse挂载,兼容s3接口 公司最近要进行分布式文件服务的选型,起因是因为公司目前有一些设备上报的文件或者日志性能管理文件需要定时…

SEA~~

抹平One-Stage与Two-Stage目标检测之间的差距 ,重新讨论了单阶段和两阶段的检测器蒸馏任务 在这讨论了单阶段和两阶段的检测器蒸馏任务,并提出了一个简单而有效的语义感知框架来填补它们之间的空白。作者通过设计类别Anchor来生成每个类别的代表性模式,…

SeaweedFS容器部署(seaweed部署、seaweedfs部署)(文件块chunks概念)(master节点与volume节点通信原理)(seaweed上传seaweed下载)

官网链接:https://github.com/seaweedfs 文章目录 seaweed简介seaweedfs文件块概念(chunks)分布式部署时master节点与volume节点通信原理seaweed容器部署方法单个节点部署部署方法(mastervolum)(mastervolu…

seaweedfs服务启动参数及翻译(seaweed参数、seaweed命令、weed参数、weed命令)(在单个容器同时启动master、volume、filer服务)

文章目录 weed命令翻译weed server命令翻译 weed filer命令 docker容器运行示例(docker run命令)以下是一个在单个容器启动master、volume、filer服务的示例 weed server 容器debug 版本:3.47从官方镜像docker容器里扒下来的,只扒…

Paramiko: Python使用paramiko连接主机报错“Authentication timeout”

问题描述: 在用Python Paramiko库去连接主机时 始终无法连接,exception输出错误仅有 Authentication timeout connection paramiko.SSHClient()connection.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:connection.connect(hostname192.1…

安装paramiko模块

使用Python实现自动化运维巡检网络设备,需要使用到paramiko模块 下载过程: 进入至CMD命令提示符 win r 跳转出 " 运行 " 窗口 打开内输入" cmd " 进入命令提示符 安装paramiko模块 cmd输入:pip install paramiko PS&…

python-paramiko安装

paramiko 安装坑比较多 测试环境: python3.7.9 win10 安装步骤: pip install pep517 pip install cryptography pip install paramiko

Python paramiko 模块详解与SSH主要功能模拟

我们知道,通过SSH服务可以远程连接到Linux服务器,查看上面的日志状态,批量配置远程服务器,文件上传,文件下载等,Python的paramiko模块同样实现了这一功能。 首先我们需要安装这一模块,pycharm环…

paramiko的安装

import paramiko 出错 直接通过下列代码即可,无需安装VS之类的 pip install paramiko 再上一步安装了paramiko之后,若您安装了pycharm ,博主安装的是pycharm 2018 community版则可通过File --> setting -->下列方式 步骤1&#xf…

Python模块之paramiko

Paramiko paramiko模块,基于SSH用于连接远程服务器并执行相关操作。 一、安装 1 pip3 install paramiko 二、使用 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 import paramiko2 3 # 创建SSH对象4 ssh paramiko.SSHCli…

python之paramiko模块

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 由于使用的是python这样的能够跨平台运行…