以太网协议
作者:楊領(lǐng)well
來源:CSDN
原文:https://blog.csdn.net/yanglingwell/article/details/81266408
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
TCP/IP協(xié)議(2): 以太網(wǎng)(IEEE 802.3)協(xié)議 —— 構(gòu)成有線局域網(wǎng)的基本協(xié)議
關(guān)于以太網(wǎng)(IEEE 802.3) 協(xié)議
以太網(wǎng)(Ethernet) 是一套廣泛應(yīng)用于局域網(wǎng)(LAN), 城域網(wǎng)(MAN) 和廣域網(wǎng)(WAN) 的一套計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。
它在 1980 年第一次商業(yè)化引入, 并在 1983 年被標(biāo)準(zhǔn)化 IEEE 802.3,之后被改進(jìn)以支持更高比特率和更長的鏈路距離。
(Ethernet /?i?θ?rn?t/ is a family of computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 1983 as IEEE 802.3, and has since been refined to support higher bit rates and longer link distances.)
以太網(wǎng)幀格式
以太網(wǎng)傳輸?shù)?PDU(Protocol Data Unit) 是以太幀(Ethernet frame)。其必要內(nèi)容如下圖所示(圖片來自 Wikipedia)。
以太網(wǎng)幀格式
前導(dǎo)(Preamble): 7 字節(jié)(0x?AAAAAAAAAAAAAA?)。用于確定編碼位之間的時(shí)間間隔(時(shí)鐘恢復(fù)(Clock recovery))。
以太幀前導(dǎo)的功能就像是總統(tǒng)車隊(duì)前面開路的摩托車警衛(wèi)。它們提醒所有人注意: 重要的事情即將發(fā)生。
除此之外,以太幀前導(dǎo)同時(shí)也起到時(shí)鐘同步的功能。所有的位在物理層被表示高低電平,接收設(shè)備需要和接收數(shù)據(jù)的標(biāo)準(zhǔn)間隔保持一致。只有在調(diào)節(jié)好的時(shí)鐘下,才能分辨出一個(gè)字節(jié)到哪里結(jié)束,下一個(gè)字節(jié)從哪里開始。
接收方可以很容易的區(qū)分 10101010 信號的各個(gè)字節(jié),但是如果接受方的時(shí)鐘被設(shè)置的太慢, 11111111 就可能被解釋為 1111111。
以太幀前導(dǎo)演示了到達(dá)數(shù)據(jù)的步調(diào),并重復(fù)足夠長的 1010 串,以便接收方設(shè)置相同的時(shí)鐘頻率。
(The preamble functions like the outriders in a presidential motorcade. They tell everyone ahead to wake up and pay attention: something important is coming. Apart from being a “get ready” notification, the preamble also serves as a clock synchronization device. Bits are represented as an electrical voltage – high or low. The receiver needs to keep pace with the standard interval, because it is only with a regulated clock that it can tell where one bit ends and the next starts. A 10101010 signal is easy to detect, but a 11111111 signal might be interpreted as 1111111 if the receiver’s clock is set too slow. The preamble demonstrates the pace of arriving data and repeats the 1010 pattern long enough to enable the receiver to set its clock.)
幀起始定界符(SFD, Start Frame Delimiter): 1 字節(jié)(0xAB)。表示以太幀前導(dǎo)的結(jié)束,同時(shí)表示以太幀的開始。
目的地址(destination MAC Address): 6 字節(jié)。目的主機(jī)的 MAC 地址。
源地址(source MAC Address): 6 字節(jié)。源主機(jī)的 MAC 地址。
以太類型(EtherType): 2 字節(jié)。主要有兩個(gè)目的:
(1) 當(dāng)其值小于等于 1500 時(shí),它表示 有效載荷 的長度(單位: 八位字節(jié)(octet))。
(2) 當(dāng)其值大于等于 1536 時(shí),它表示以太類型, 指出有效載荷中封裝的協(xié)議。
當(dāng)(該字段)作為以太類型時(shí),幀的長度由數(shù)據(jù)包間隙的位置和**有效的幀檢查序列(FCS)**決定。
(When used as EtherType, the length of the frame is determined by the location of the interpacket gap and valid frame check sequence (FCS).)
有效載荷(Payload): 46?1500 字節(jié)。用于存放高層 PDU。
幀校驗(yàn)序列(FCS, Frame check sequence): 4 字節(jié)。用循環(huán)冗余校驗(yàn)(CRC, Cyclic Redundancy Check) 對幀完整性做簡單的檢查。
載波監(jiān)聽多點(diǎn)接入/碰撞檢測(CSMA/CD, Carrier-Sense Multiple Access With Collision Detection)
早期的以太網(wǎng)是將許多計(jì)算機(jī)連接到一根總線上。當(dāng)一臺計(jì)算機(jī)發(fā)送數(shù)據(jù)時(shí),總線上所有計(jì)算機(jī)都能檢測到這個(gè)數(shù)據(jù)。當(dāng)網(wǎng)絡(luò)適配器接收到數(shù)據(jù)幀,如果發(fā)現(xiàn)目的MAC地址地址不是自己,就丟棄它。
當(dāng)總線上只要有一臺計(jì)算機(jī)在發(fā)送數(shù)據(jù),總線的傳輸資源就被占用。在同一時(shí)間只能允許一臺計(jì)算機(jī)發(fā)送數(shù)據(jù)。因此早期以太網(wǎng)采用 CSMA/CD 作為媒體訪問控制(MAC, Media Access Control) 協(xié)議。
CSMA/CD 協(xié)議的主要內(nèi)容是:
多點(diǎn)接入: 許多計(jì)算機(jī)以多點(diǎn)接入的方式連接到一條總線上。
載波監(jiān)聽: 每個(gè)站首先檢測目前網(wǎng)絡(luò)正在發(fā)送的信號,并在網(wǎng)絡(luò)空閑時(shí)發(fā)送自己的幀。
碰撞檢測: 如果有幾個(gè)站在同時(shí)發(fā)送信號,則重疊的電信號被檢測為一次碰撞。這時(shí)每個(gè)站都停止發(fā)送信號,然后的等待一個(gè)隨機(jī)時(shí)間,然后再次嘗試發(fā)送。采用 CSMA/CD,在任何給定時(shí)間內(nèi), 網(wǎng)絡(luò)中只能有一個(gè)幀傳輸。
為了增加靈活性,以太網(wǎng)發(fā)展為使用集線器(Hub) 的星形網(wǎng)絡(luò),如下圖。
集線器
使用集線器的局域網(wǎng)在物理上是星形網(wǎng),但使用集線器的以太網(wǎng)在邏輯上仍是總線網(wǎng)絡(luò),各站共享邏輯上的總線。使用的還是 CSMA/CD 協(xié)議。
集線器 工作在物理層,它的每一個(gè)接口僅僅簡單地轉(zhuǎn)發(fā)比特,不進(jìn)行碰撞檢測。
集線器雖然在一定程度擴(kuò)展了以太網(wǎng)的覆蓋范圍。但隨著范圍的擴(kuò)大,碰撞域也變得更大,影響傳輸速率。因此,工作在數(shù)據(jù)鏈路層的網(wǎng)橋(Bridge)設(shè)備應(yīng)運(yùn)而生。
網(wǎng)橋依靠轉(zhuǎn)發(fā)表的內(nèi)容來轉(zhuǎn)發(fā)幀,如下圖。
在該局域網(wǎng)中, A,B, C 以及網(wǎng)橋的 1 號接口是一個(gè)碰撞域, D, E, F 以及網(wǎng)橋的 2 號接口是一個(gè)碰撞域。轉(zhuǎn)發(fā)表記錄了各個(gè)主機(jī)與該網(wǎng)橋連接的接口。
當(dāng) A 主機(jī)傳輸數(shù)據(jù)給相同碰撞域的 B 主機(jī)時(shí),網(wǎng)橋從 1 號接口接收到。發(fā)現(xiàn) B 主機(jī)也在 1 號接口的碰撞域,因此,直接丟棄這個(gè)幀。因?yàn)?A 主機(jī)傳輸?shù)臄?shù)據(jù)根據(jù) CSMA/CD 算法會(huì)在該碰撞域內(nèi)被 B 主機(jī)接收到。
當(dāng) A 主機(jī)傳輸數(shù)據(jù)給不同碰撞域的 E 主機(jī)時(shí),網(wǎng)橋從 1 號接口接收到。發(fā)現(xiàn) E 主機(jī)在 2 號接口的碰撞域,因此,將該數(shù)據(jù)轉(zhuǎn)發(fā)到 2 接口的碰撞域,并在該碰撞域內(nèi)通過 CSMA/CD 算法被 E 主機(jī)接收到。
網(wǎng)橋
以太網(wǎng)交換機(jī)進(jìn)一步地消除了碰撞域,它實(shí)質(zhì)上就是一個(gè)多接口的網(wǎng)橋, 因此也工作在數(shù)據(jù)鏈路層。但由于交換機(jī)的每個(gè)接口都直接與單個(gè)主機(jī)相連,并且一般都工作在全雙工方式。因此,當(dāng)主機(jī)需要通信時(shí),每一對相互通信的主機(jī)都能像獨(dú)占傳輸媒體那樣,無碰撞地傳輸數(shù)據(jù)。
交換機(jī)
總結(jié)
- 上一篇: 永劫无间手游怎么抱摔
- 下一篇: 前端的date类型后台接收_腾讯高级前端