# Ethernet 乙太網路 ###### tags: `Technology` `Communication` ## 分類 * 區域網(LAN) * 有線區域網 * **==乙太網 (Ethernet)==** * 令牌環 (Token-ring) * FDDI * 無線區域網 (WLAN) * WIFI * 虛擬區域網 (VLAN) * 藍芽 * 網際網路 * ## 簡介 **IEEE 802.3**標準為乙太網路的技術標準,為目前應用最普遍的區域網路技術。:smiley: ## 歷史 發明於1976年,起源於Xerox公司的Bob Metcalfe,當年他發表了一篇名為〈乙太網路:區域電腦網路的分散式封包交換技術〉的文章。 1979年,Metcalfe離開了Xerox成立了3Com公司,並成功遊說Intel、Xerox等公司。 1980年,提出乙太網路的通用標準,取代當時其他的非公用網路標準Token-Ring和ARCNET,**成為區域網路的主流** :+1::+1::+1: ## 1990年代以前的技術 ### 同軸電纜 Coaxial Cable / 附加單元介面 AUI 最初的乙太網路採用[**同軸電纜**](https://hackmd.io/s/BJO4tSidQ)(Coaxial Cable)連結各個節點,電腦再透過**Attachment Unit Interface**(AUI)的收發器連結到纜線上。 ### MAC address 每個節點都會被分配一個48-bits(6-bytes)的MAC address,可以指示每個data packet的來源及目的 > **MAC位址**: 像是身分證字號,轉接卡不管到哪裡MAC都不會變 > **IP位址**: 像是郵政地址,移動就會變 ### 共用媒介 Shared Media 多個終端系統直接連接到纜線上,其中所有的終端系統都可以收到其他終端系統所傳送的任何資料,Coaxial cable扮演廣播(Broadcast)的媒介。而乙太網路採用**CSMA/CD**(carrier sense multiple access with collision detection)規定共享通道的方法。 ### 中繼器 Repeater/ 集線器 Hub 因為訊號的衰減與延遲,乙太網路有距離限制,Repeater可以增加訊號強度再傳送到下一段,增加傳輸的最大距離。 後來(1990年代晚期)發現星狀拓樸(star topology)最有效,因此開始研製多埠的集線器(Multiway Repeater),此即為**集線器 (hub)**。使用hub的乙太網路也是一種廣播LAN:集線器收到的位元,會送到其他所有的介面。 ## 現代乙太網路 ### UTP / RJ45 後來有不同的實體介面,如:光纖(Optical fiber)、[雙絞線](https://hackmd.io/s/BJO4tSidQ)(Twisted pair)等。其中**無遮蔽雙絞線**(Unshielded twisted-pair cables, **UTP**)取代同軸電纜成為主流。UTP由四對不同顏色的傳輸線互相纏繞所組成,被廣泛用於電腦網路,但由於使用過長的UTP電纜傳輸資料會引致訊號衰減問題,但其價格較光纖和同軸電纜低,因此UTP主要用作短途傳輸,一般不多於100米。 ![UTP_cable](https://i.imgur.com/EZtrLTK.jpg) **RJ45**也取代AUI成為電腦跟雙絞線之間的連接器插頭,也被稱為**8P8C**(8 position 8 contact)意思是8個位置(Position,指8個凹槽)、8個觸點(Contact,指8個金屬接點):heart_eyes_cat: ![RJ45](https://i.imgur.com/S7syEol.png) ### [交換器 Switch](https://hackmd.io/s/ByzISnSNQ) 2000早期,乙太網路仍使用star topology但hub被更換成交換器switch,10BASE-T和以後的標準皆為全雙工乙太網路。交換器在記錄了每個埠的MAC位址以後,他就只把非廣播資料傳送給特定的目的埠,從此CSMA/CD不再扮演關鍵角色。 ## 雙絞線類型 (Twisted pair) 由兩條相互絕緣的導線按照一定的規格互相纏繞(一般以順時針纏繞)在一起,兩條線搭載著相同但相反的訊號,受到相同的noise干擾,在receiver端對這兩條做相減,noise就會被cancel掉。有許多類型: | Name | Bandwidth | Application | Notes | | :------: | :-----: | --------- | ------| | **Cat5** | 100MHz |100BASE-TX & 1000BASE-T | 最常用的乙太網電纜 | | **Cat5e** | 100MHz |100BASE-TX & 1000BASE-T & 2.5GBASE-T | Cat5的增強版本 | | **Cat6** | 250MHz |10GBASE-T & 5GBASE-T| 仍為四對雙絞線、RJ45 | | **Cat6A** | 500MHz | 10GBASE-T | Augmented Category 6 | ## 乙太網路類型 事實上,乙太網路有很多不同的技術可以選擇,從早期的1BASE5到現在的10GBASE-T,傳送速率越來越大,而各個技術都會有不同的傳送速率、傳輸介質、最大傳送距離。如:10BASE-T、1000BASE-LX、10GBASE-T等等。:heart_eyes: #### 命名規則 * **開頭數字**:傳送速率,10:10Mbits/s; 10G:10Gbits/s * **BASE**:基頻Baseband,幾乎所有802.3標準都是基頻乙太網路 * **T**:Twisted pair; **X**:有X通常代表光纖,如:1000BASE-SX、-LX、-BX10 ; **5**:若為數字則代表傳輸距離,再乘100公尺 ### 常見類型 ![cable](https://i.imgur.com/Mdtwtfl.png) * 10BASE-T:1991 * 100BASE-T:1995, IEEE802.3u * 1000BASE-T:1999, IEEE802.3ab 這三個都使用相同的接頭RJ45,並都在長達100公尺以上的距離以上正常運作 ### 10 Gigabit Ethernet (10GbE/10GE) 其實IEEE802.3 task group發布了各種10G的標準,包括光纖、同軸電纜、雙絞電纜等等,其中: * **10GBASE-T**:又被稱為IEEE802.3an標準,在2006年發布。**CAT6**的傳輸距離可達55米,而 **CAT6A**可達到100米 然而隨著IEEE802.11ac快速WiFi的發展,1000BASE-T提供的傳送速率不足,而10GBASE-T又不支援在建物中CAT5e電纜,因此而衍伸出在GbE跟10GbE之間的中間速度。:v::v::v: * **2.5GBASE-T** * **5GBASE-T** 2016/9/23,訂定了IEEE802.3bz,包含了2.5GBASE-T和5GBASE-T的標準。PHY層的傳輸技術是以 10GBASE-T為基準,但工作在一個比較低的發送信號速率。傳輸速率分別下降到2.5或5Gbit/s。訊號的頻寬也相對減少,降低了布線的要求,以便可以部署在分別為Cat5e和Cat6長度為100米的UTP上。 ## Ethernet Frame 乙太網路訊框結構 ### 類型 Ethernet frame有很多種類型 1. **Ethernet II framing** (a.k.a DIX Ethernet): 最常見的Ethernet Frame 2. Novell raw IEEE 802.3 non-standard variation frame 3. IEEE 802.2 Logical Link Control (LLC) frame 4. IEEE 802.2 Subnetwork Access Protocol (SNAP) frame ### Structure 下圖為一個Ethernet packet(**Physical layer**),內部包含由IEEE 802.32定義的Ethernet frame(**data link layer**) ![Ethernet_packet](https://i.imgur.com/wuJjGjj.png) * **Preamble and start frame delimiter** Preamble是由一連串的1和0交錯而成,所以7個bytes的preamble是7組10101010,此為用來"喚醒"接收端的轉接卡,並且將接收端與傳送端的時脈同步化。而start frame delimiter為10101011。 * **Header** 包括MAC destination, MAC source, 802.1Q tag和乙太類型欄位。 **乙太類型欄位**可以讓乙太網路多工處理**網路層**協定,畢竟,除了IP之外還有其他種網路協定,而IP與其他網路層協定都各自擁有自己的編號。 例如: **0x0800**代表此Frame為IPv4資料報;**0x0806**代表一個ARP Frame;**0x8100**說明這是一個IEEE 802.1Q Frame;**0x86DD**說明這是一個IPv6 Frame。 * **Payload** 最大傳輸單位(Maximum Transmission Unit,MTU)為1500 bytes,所以如果資料量超過1500 bytes,就必須將此資料報分段,最小資料大小為46 bytes,所以當資料報小於46 bytes,Payload欄位就必須被填塞(pad)到46 bytes。 * **Frame Check Sequence(FSC)** 這邊我們使用32 bits的Cyclic Redundancy Check(CRC)去偵測Frame中的位元錯誤。 * **Interpacket Gap** - Physical layer Packets之間的idle time。 ### Jumbo Frame 巨型影格 Payload超過IEEE 802.3標準所限制的1500位元組的Ethernet frame,很多1GbE或10GbE支援Jumbo Frame,通常其MTU為9000 bytes,但是Jumbo Frame尚未成為官方的IEEE 802.3乙太網標準的一部分。 ## Reference 1. Computer Networking: A Top-Down Approach 6/E 2. https://zh.wikipedia.org/wiki/%E4%BB%A5%E5%A4%AA%E7%BD%91 3. https://zh.wikipedia.org/wiki/%E9%9D%9E%E5%B1%8F%E8%94%BD%E9%9B%99%E7%B5%9E%E7%B7%9A 4. https://zh.wikipedia.org/wiki/8P8C 5. https://zh.wikipedia.org/wiki/%E5%90%89%E6%AF%94%E7%89%B9%E4%BB%A5%E5%A4%AA%E7%BD%91#1000BASE-SX 6. https://zh.wikipedia.org/wiki/%E5%8F%8C%E7%BB%9E%E7%BA%BF%E4%BB%A5%E5%A4%AA%E7%BD%91 7. https://en.wikipedia.org/wiki/10_Gigabit_Ethernet 8. https://zh.wikipedia.org/wiki/2.5GBASE-T_%E8%88%87_5GBASE-T 9. http://opencourse.ncyu.edu.tw/ncyu/file.php/15/week03/%E4%B9%99%E5%A4%AA%E7%B6%B2%E8%B7%AF.pdf 10. https://zh.wikipedia.org/wiki/%E5%8F%8C%E7%BB%9E%E7%BA%BF 11. https://en.wikipedia.org/wiki/Ethernet_frame 12. https://zh.wikipedia.org/wiki/%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B8%A7%E6%A0%BC%E5%BC%8F 13. https://hackmd.io/s/ByzISnSNQ