比较全面的HTTP和TCP网络传输的单工、全双工和半双工

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

文章目录

    • 单工、全双工、半双工
      • 1. 单工
      • 2. 半双工
      • 3. 全双工
    • HTTP协议的工作模式
    • TCP协议的工作模式

本文参考:

图解网络传输单工、半双工、全双工 - 知乎 (zhihu.com)

问:HTTP是单工的还是双工的还是半双工的 - 简书 (jianshu.com)

关于TCP全双工模式的解释_忙碌了一天的白师傅的博客-CSDN博客_tcp全双工

单工、全双工、半双工

在这里插入图片描述

1. 单工

定义:只支持数据在一个方向上传输。

例如:灯塔发出光信号,航船只能接受信号

2. 半双工

定义:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信。

例如:http1.1,对讲机,只能让一个人说一个人听

实现原理:半双工传输模式采用载波侦听多路访问 /冲突检测。传统的共享型LAN以半双工模式运行 ,线路上容易发生传输冲突。与集线器相连的节点(即多个节点连接到集线器,共享一条到交换机端口的连接)必须以半双工模式运行。因为这种节点必须能够冲突检测,类似于单车道桥梁。

3. 全双工

定义:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

例如:http2.0websocket,打电话,双方都能说对方也都能听到

实现原理:全双工传输模式可以用于点到点以太网连接和快速以太网连接,同时不会发生冲突,因为他们使用双绞线中两条不同线路,类似于双车道桥梁。

HTTP协议的工作模式

分版本,版本不同,工作模式不同

  1. http1.0:通常认为http1.1以下是单工,但是我认为是有歧义的,请求方和接收方在http1.0应该就可以相互交流。这时http连接为短连接, 每次请求交互都需要建立tcp连接。
  2. http1.1:半双工。请求应答模型,虽然引入管道传输,在请求的响应回来之前,可发送多个http请求,不用等待回复,但是也由于是请求-应答模型,对于一次请求-应答的事务来说,服务端回复需要按客户端发送的顺序返回响应,客户端在等待同一个事务回复的过程中是没办法做其他事情的。
  3. http2.0:全双工,引入stream,多个 Stream 复用一条 TCP 连接,客户端和服务器双方都可以建立 Stream,允许服务端主动向客户端推送数据。

TCP协议的工作模式

TCP是全双工的。

可以从TCP选择重传中看出来,在每一时刻是同时存在收发端发送的帧和ACK信号的。

但是从三次握手看起来又像是半双工,但是TCP三次握手不能代表平时的数据传输,三次握手的目的是为了确立连接建立,而在实际TCP传输过程中大多情况是收发端同时发送数据的。

总结:
传输层TCP是全双工的,但是其上层应用层可能是半双工的。

每一个层次都有自己的双工模式,传输层有传输层的双工模式,应用层有应用层的双工模式。下层的双工模式是支持上层双工模式的上限。比如下层支持半双工,上层顶多支持半双工,不可能支持全双工。

tcp是全双工的,但它的上层可能支持半双工,比如http1.1,也有可能支持全双工,比如http2.0。


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

相关文章

简析全双工与半双工的区别

全双工传输英文写法是:Full-Duplex Transmissions 是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的交换机都支持全双工。 全双工的好处在于迟延小&…

全双工与半双工的区别

全双工传输英文写法是:Full-Duplex Transmissions 是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的交换机都支持全双工。 全双工的好处在于迟延小&…

全双工、半双工和单工

一,单工、半双工和全双工的区别: 在串行通信中,数据通常是在两个终端(如电脑和外设)之间进行传送,根据数据流的传输方向可分为3种基本传送方式:单工、半双工和全双工。这3种传输方式的示意图和区…

单工,半双工和和全双工通讯的概念

单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并…

单工、半双工和全双工的区别

--------------------------------------------- -- 时间:2018-11-06 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware163.com --------------------------------------------- 一、单工 1、数据只在一个方向上传输,不能实现双方通信。…

单工、双工、半双工、全双工通信常识

根据通信双方的分工和信号传输方向可将通信分为三种方式:单工、半双工与全双工。 单工通信,指通信双方设备中发送器与接收器分工明确,只能在由发送器向接收器的单一固定方向上传送数据,并且不能实现双向通信,例如&…

网络传输单工、半双工、全双工的解读

来源 在网络传输中,数据在线路上的传送方式可以分为单工通信、半双工通信和全双工通信三种。以下我们将通过简单的叙述方式,配图了解这三种方式的定义和区别。 一、单工 定义:单工数据传输只支持数据在一个方向上传输。 举例:意思…

单工通信、半双工通信和全双工通信的区别

对于点对点之间的通信,按照消息传送的方向与时间关系,通信方式可分为单工通信、半双工通信及全双工通信三种。 一、单工通信 单工通信(Simplex Communication)是指消息只能单方向传输的工作方式。 在单工通信中,通信…

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

讨论在网络中使用的两种不同的传输类型。 半双工(half duplex)和全双工(full duplex)。 引入基带传输、宽带传输两种传输频带,并讨论全双工的实现。 半双工 在半双工的网络中,两个设备使用网络电缆互连成一…

【数据存储】分布式文件系统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来生成每个类别的代表性模式,…