大數(shù)據(jù)技術(shù)建設(shè)網(wǎng)站百度地圖人工電話
文章目錄
- 單工、全雙工、半雙工
- 1. 單工
- 2. 半雙工
- 3. 全雙工
- HTTP協(xié)議的工作模式
- TCP協(xié)議的工作模式
本文參考:
圖解網(wǎng)絡(luò)傳輸單工、半雙工、全雙工 - 知乎 (zhihu.com)
問(wèn):HTTP是單工的還是雙工的還是半雙工的 - 簡(jiǎn)書(shū) (jianshu.com)
關(guān)于TCP全雙工模式的解釋_忙碌了一天的白師傅的博客-CSDN博客_tcp全雙工
單工、全雙工、半雙工
1. 單工
定義:單工數(shù)據(jù)傳輸只支持?jǐn)?shù)據(jù)在一個(gè)方向上傳輸。
例如:燈塔發(fā)發(fā)出光信號(hào),航船只能接受信號(hào)
2. 半雙工
定義:半雙工數(shù)據(jù)傳輸允許數(shù)據(jù)在兩個(gè)方向上傳輸,但是在某一時(shí)刻,只允許數(shù)據(jù)在一個(gè)方向上傳輸,它實(shí)際上是一種切換方向的單工通信。
例如:對(duì)講機(jī),只能讓一個(gè)人說(shuō)一個(gè)人聽(tīng)
實(shí)現(xiàn)原理:半雙工傳輸模式采用載波偵聽(tīng)多路訪問(wèn) /沖突檢測(cè)。傳統(tǒng)的共享型LAN以半雙工模式運(yùn)行 ,線路上容易發(fā)生傳輸沖突。與集線器相連的節(jié)點(diǎn)(即多個(gè)節(jié)點(diǎn)連接到集線器,共享一條到交換機(jī)端口的連接)必須以半雙工模式運(yùn)行。因?yàn)檫@種節(jié)點(diǎn)必須能夠沖突檢測(cè),類(lèi)似于單車(chē)道橋梁。
3. 全雙工
定義:全雙工數(shù)據(jù)通信允許數(shù)據(jù)同時(shí)在兩個(gè)方向上傳輸,因此,全雙工通信是兩個(gè)單工通信方式的結(jié)合,它要求發(fā)送設(shè)備和接收設(shè)備都有獨(dú)立的接收和發(fā)送能力。
例如:websocket
、打電話,雙方都能說(shuō)對(duì)方也都能聽(tīng)到
實(shí)現(xiàn)原理:全雙工傳輸模式可以用于點(diǎn)到點(diǎn)以太網(wǎng)連接和快速以太網(wǎng)連接,同時(shí)不會(huì)發(fā)生沖突,因?yàn)樗麄兪褂秒p絞線中兩條不同線路,類(lèi)似于雙車(chē)道橋梁。
HTTP協(xié)議的工作模式
分版本,版本不同,工作模式不同
http1.0
:通常認(rèn)為http1.1以下是單工,但是我認(rèn)為是有歧義的,請(qǐng)求方和接收方可以相互交流。http連接為短連接, 每次請(qǐng)求交互都需要建立tcp連接。http1.1
:半雙工。請(qǐng)求應(yīng)答模型,雖然引入管道傳輸,在請(qǐng)求的響應(yīng)回來(lái)之前可先后發(fā)送多個(gè)http請(qǐng)求,不用等待回復(fù),但是是請(qǐng)求-應(yīng)答模型,對(duì)于一次請(qǐng)求-應(yīng)答的事務(wù)來(lái)說(shuō),服務(wù)端回復(fù)需要按客戶端發(fā)送的順序返回響應(yīng),客戶端在同一個(gè)事務(wù)等待的過(guò)程中是沒(méi)辦法做其他事情的。http2.0
:全雙工,引入stream,多個(gè) Stream 復(fù)用在一條 TCP 連接,客戶端和服務(wù)器雙方都可以建立 Stream,允許服務(wù)端主動(dòng)向客戶端發(fā)送數(shù)據(jù)。
TCP協(xié)議的工作模式
TCP是全雙工的。
可以從TCP選擇重傳中看出來(lái),在每一時(shí)刻是同時(shí)存在收發(fā)端發(fā)送的幀和ACK信號(hào)的。
但是從三次握手看起來(lái)又像是半雙工,但是TCP三次握手不能代表平時(shí)的數(shù)據(jù)傳輸,三次握手的目的是為了確立連接建立,而在實(shí)際TCP傳輸過(guò)程中大多情況是收發(fā)端同時(shí)發(fā)送數(shù)據(jù)的。
總結(jié):傳輸層TCP是全雙工的,但是其上層應(yīng)用層可能是半雙工的。每一個(gè)層次都有自己的雙工模式,傳輸層有傳輸層的雙工模式,應(yīng)用層有應(yīng)用層的雙工模式。下層的雙工模式是支持上層雙工模式的上限。比如下層支持半雙工,上層頂多支持半雙工,不可能支持全雙工。tcp是全雙工的,但它的上層可能支持半雙工,比如http1.1,也有可能支持全雙工,比如http2.0。