三.數(shù)據(jù)鏈路層
1.數(shù)據(jù)鏈路層使用的信道
1.點對點信道:使用一對一的點對點通信方式(用戶家庭連接到ISP的這一段信道就是點對點信道)
2.廣播信道:使用一對多的廣播通信方式(局域網)揭保。例如在一條廣播信道上可以同時連接許多個主機ABCD肩民,A發(fā)送出的數(shù)據(jù)怎么樣才能保證只有B能接收到猾浦,而C無法接收到尝丐,這就是怎么樣在廣播信道上實現(xiàn)點對點通信。
具體方法就是在發(fā)送幀的首部存放一個目的地MAC地址(唯一),然后再各個站點接收的時候將接收到的地址與自己的MAC地址進行匹配,如果相同就說明這是發(fā)給自己的幀就接收候醒,如果不同就丟棄。
另外由于連接在廣播信道上的主機很多杂瘸,有可能在當A主機給B發(fā)送數(shù)據(jù)時另外的兩個主機同時也在發(fā)送數(shù)據(jù)倒淫,就有可能導致數(shù)據(jù)的相撞疊加失真,此時就需要專用的共享信道協(xié)議來協(xié)調這些主機的數(shù)據(jù)發(fā)送败玉。
點對點通信和廣播通信的區(qū)別可以理解為我要去高三(13)班找小徐敌土,有兩種方式。第一種就是直接發(fā)微信告訴她我找你有事运翼,這種情況下消息只有小徐收到消息其他人并不知道返干;另外一種方式就是可以跑到她們班去當著全班面直接喊她的名字,而在這種情況下血淌,全班人都能接收到消息矩欠。前者就是點對點通信,后者就是廣播通信悠夯。另外癌淮,當全班人都聽到名字時都會將自己的名字和被喊的名字進行對比,來看被叫的人是不是我沦补,這就模擬了MAC地址匹配的過程乳蓄,以確保我能正確找到人。
主機H1向主機H2發(fā)送數(shù)據(jù)夕膀,途中經過的網絡可以是多種的虚倒,發(fā)送時數(shù)據(jù)在主機H1是逐層下交的,經過路由器R1時是逐層上交的产舞,然后選擇一個合適的端口再逐層下交離開路由器R1魂奥,類似地經過幾個路由器之后到達H2的時候數(shù)據(jù)是逐層上交的。對于主機H1,H2它們有五層結構而對于路由器R1,R2,R3只有三層結構(物理層庞瘸,鏈路層捧弃,網絡層)赠叼。
物理層或者數(shù)據(jù)鏈路層不同的網絡叫做異構網擦囊,利用路由器可以連接異構網违霞。物理層或者數(shù)據(jù)鏈路層相同的網絡叫做同構網。
3.鏈路和幀
鏈路(物理鏈路):是一條無源的點到點的物理線路段瞬场,中間沒有任何其他的交換結點买鸽。
一條鏈路只是一條通路的一個組成部分。
數(shù)據(jù)鏈路(邏輯鏈路):除了物理線路外贯被,還必須要有通信協(xié)議來控制這些數(shù)據(jù)的傳輸眼五。把這些實現(xiàn)協(xié)議的硬件和軟件加到鏈路上,就構成了數(shù)據(jù)鏈路⊥睿現(xiàn)在最常用的方法就是使用適配器(網卡NIC)來實現(xiàn)這些協(xié)議的硬件和軟件看幼。一般的適配器都包括了數(shù)據(jù)鏈路層和物理層這兩層的功能。
網絡層的數(shù)據(jù)傳送下來到數(shù)據(jù)鏈路層之后幌陕,數(shù)據(jù)鏈路層給他添加一個幀首部和幀尾部然后下送到物理層诵姜,物理層再將數(shù)據(jù)以比特流的形式在傳輸媒體上進行傳輸。如果只考慮數(shù)據(jù)鏈路層搏熄,可以認為幀直接在兩者的數(shù)據(jù)鏈路層之間平行傳輸棚唆。
4.三個基本問題
數(shù)據(jù)鏈路層的協(xié)議有多種,其中有三個基本問題是相同的心例。
1.封裝成幀
2.透明傳輸
3.差錯檢測
封裝成幀:給一段數(shù)據(jù)前后分別添加首部尾部構成一個幀宵凌,確定幀的界限
一個幀所能攜帶的數(shù)據(jù)量是有限的(不超過MTU),且一定小于數(shù)據(jù)鏈路層的幀長止后。
具體實現(xiàn)方法:添加控制字符(幀開始符SOH,幀結束符EOT)瞎惫,這些控制字符不會出現(xiàn)在數(shù)據(jù)文本中否則會導致傳輸異常。
透明傳輸:當數(shù)據(jù)中有幀結束EOT標志時译株,會被當作結束符而導致數(shù)據(jù)不完整
用字節(jié)填充(字符填充)的方法解決透明傳輸?shù)膯栴}微饥,在每一個控制字符或者轉義字符前插入轉義字符ESC(其十六進制編碼是1B),告訴接收方這并不是開始或者結束的標志古戴,這只是數(shù)據(jù)內容欠橘。接收端的數(shù)據(jù)鏈路層在將數(shù)據(jù)送往網絡層之間之前應該刪除插入的轉義字符。
其實透明傳輸?shù)囊馑季褪菙?shù)據(jù)發(fā)送端想要發(fā)送什么數(shù)據(jù)接收端就能接收到數(shù)據(jù)而不會出現(xiàn)差錯(即使數(shù)據(jù)中有幀開始符现恼,幀結束符等)肃续。
差錯檢測
在數(shù)據(jù)傳輸?shù)倪^程中會出現(xiàn)比特差錯(0變成1,1變成0),錯誤的比特數(shù)占全部的比特數(shù)的值叫做誤碼率(和信噪比成反比)
常用的差錯檢測方法是CRC循環(huán)冗余檢驗:
1.在發(fā)送端先把數(shù)據(jù)劃分為組叉袍。假定每組K個比特
2.假定待傳送的一組數(shù)據(jù)M=101001(現(xiàn)在K=6)始锚。我們在M后面再添加供差錯檢測用的n為冗余碼一起發(fā)送。傳輸效率即為K/(K+n)
下面來看一例子:
模2除法與算術除法類似喳逛,但每一位除的結果不影響其它位瞧捌,即不向上一位借位,所以實際上就是異或,被減數(shù)與減數(shù)只要滿足異或結果就是1姐呐。
在數(shù)據(jù)后面添加上的冗余碼稱為幀檢驗序列(FCS)
下面要注意CRC和FCS的區(qū)別:CRC是一種常用的檢錯方法(僅僅是檢測錯誤不是糾正錯誤)殿怜,而FCS是添加在數(shù)據(jù)末尾的冗余碼。FCS可以用CRC這種方法得出曙砂,但CRC并不是用來獲得FCS的唯一方法头谜。
接收方對收到的每一幀進行CRC檢測
如果將數(shù)據(jù)添加冗余碼后得到的數(shù)與除數(shù)進行運算得出的余數(shù)R=0說明幀沒有差錯接收,反之說明有差錯就丟棄鸠澈。但是這種檢測方法不能具體確定哪一個比特出錯
僅用CRC差錯檢測技術只能做到無差錯接受(凡是接受到的幀柱告,都能認為是正確的。就是說只要我認為你是對的我就把你接受笑陈,即使你本身是有錯誤的)际度。不能做到“可靠傳輸”,那所謂的可靠傳輸就是發(fā)送端發(fā)送什么涵妥,接受端就接收什么甲脏。這必須再加上確認和重傳機制∶冒剩可靠傳輸在運輸層實現(xiàn)块请。
2.點對點協(xié)議PPP
1.PPP協(xié)議的特點
對于點對點鏈路使用的最廣泛的數(shù)據(jù)鏈路層協(xié)議就是點對點協(xié)議PPP
PPP協(xié)議應該要滿足的要求有以下六點:
1.簡單——這是首要的要求
2.封裝成幀——必須規(guī)定特殊字符
3.透明性——必須保證數(shù)據(jù)傳輸?shù)耐该餍?br>
4.多種網絡層協(xié)議——能夠在同一條物理鏈路上同時支持多種網絡層協(xié)議
5.多種類型鏈路——能夠在多種類型的鏈路上運行
6.差錯檢測——能夠對接收端收到的幀進行檢測,并丟棄有差錯的幀拳缠。
PPP協(xié)議的組成
1.一個將IP數(shù)據(jù)報封裝到串行鏈路的方法墩新。
2.鏈路控制協(xié)議LCP(協(xié)商數(shù)據(jù)鏈路層的一些參數(shù))
3.網絡控制協(xié)議NCP(協(xié)商網絡層的一些參數(shù))
2.PPP協(xié)議的幀格式
首部+幀+尾部
首部和尾部分別為4個字段和2個字段
其中F7E是開始結束的標志,F(xiàn)CS是冗余碼窟坐,AFF是地址字段海渊,C03是控制字段,協(xié)議部分用來確定幀的信息部分是什么類型的數(shù)據(jù)
在幀的信息部分實現(xiàn)透明傳輸?shù)姆椒ǎ?br>
字節(jié)填充(字符填充):在幀的數(shù)據(jù)部分如果出現(xiàn)開始或結束的標志那么就添加一個轉義字符哲鸳。(參考上面)而在PPP協(xié)議中實現(xiàn)透明傳輸?shù)姆椒ㄊ?strong>零比特填充:
在PPP協(xié)議中的開始結束標志是7E臣疑,將7E轉換成二進制數(shù)后是01111110凿试,中間有6個連續(xù)1向拆,所有在數(shù)據(jù)部分當發(fā)現(xiàn)有5個連續(xù)1就插入一個0,避免出現(xiàn)開始結束標志祝迂,從而實現(xiàn)了透明傳輸(在上述字符填充中的7E->7D跟這個原理其實是一樣的)婿奔。
在發(fā)送端只要發(fā)現(xiàn)5個連續(xù)的1缺狠,就填入一個0。在接收端接收時需要刪除0以確保數(shù)據(jù)的正確性萍摊。
PPP協(xié)議不提供使用序號和確認的可靠傳輸
主要原因是:
1.在數(shù)據(jù)鏈路層出現(xiàn)差錯的概率不大挤茄,使用比較簡單的PPP協(xié)議即可。
2.在因特網環(huán)境下冰木,PPP的信息字段放入的數(shù)據(jù)是IP數(shù)據(jù)報穷劈,數(shù)據(jù)鏈路層的可靠傳輸并不能保證網絡層的傳輸正確笼恰。
3.PPP協(xié)議的工作狀態(tài)
注意通信結束時釋放的順序(網絡層—數(shù)據(jù)鏈路層—物理層,這和建立鏈接的順序剛好相反)以及PPP協(xié)議不單單只是純粹的數(shù)據(jù)鏈路層協(xié)議歇终,還包含著物理層和網絡層的內容社证。
PPP協(xié)議的狀態(tài)圖
3.使用廣播信道的數(shù)據(jù)鏈路層
1.局域網的數(shù)據(jù)鏈路層
1.局域網的主要特點:
- 網絡為一個單位所有
- 地理范圍和站點數(shù)目均有限
2.局域網的主要優(yōu)點:
- 具有廣播功能,能從一個站點很方便地訪問全網练湿。
- 便于系統(tǒng)的擴展和逐漸演變,各種設備的位置可以靈活調整和改變审轮。
- 提高了系統(tǒng)的可靠性肥哎,可用性和殘存性。
3.局域網的拓撲結構:
4.媒體共享技術
靜態(tài)劃分信道:
頻分復用疾渣;時分復用篡诽;波分復用,碼分復用
動態(tài)媒體接入控制:
- 隨機接入
- 受控接入榴捡,如多點線路詢問或輪詢(令牌在環(huán)形網中的各點進行詢問是否有數(shù)據(jù)要發(fā)送)
5.以太網的兩個標準
- DIX Ethernet V2是世界上第一個局域網產品(以太網的規(guī)約)
- IEEE 802.3是第一個IEEE的以太網標準
這兩個標準只有很小的差別杈女,因此可以將802.3局域網簡稱為以太網(符合DIX Ethernet V2的標準網)
6.數(shù)據(jù)鏈路層的兩個子層
為了使數(shù)據(jù)鏈路層更好地適應多種局域網標準,就將局域網的數(shù)據(jù)鏈路層劃分為兩個子層:
- 邏輯鏈路控制LLC子層
- 媒體接入控制MAC子層
與接入到傳輸媒體有關的內容都放在MAC子層吊圾,而LLC子層則與傳輸媒體無關达椰。不管采用何種協(xié)議的局域網,對LLC子層來說都是透明的项乒。在實際應用中一般不考慮LLC協(xié)議啰劲。
7.適配器(網卡)
適配器的重要功能:
- 進行串行/并行轉換
- 對數(shù)據(jù)進行緩存(移位寄存器)
- 在計算機的操作系統(tǒng)安裝設備驅動程序
- 實現(xiàn)以太網協(xié)議
2.CSMA/CD協(xié)議(主要解決了三個問題)
1.解決如何在廣播信道上實現(xiàn)點對點通信(第一個問題):
給每臺主機分配一個MAC地址,幀首部有目的MAC地址的信息檀何,每臺機器對此進行比較蝇裤,相同就接收不同就舍棄。
2.為了通信的方便频鉴,采取了兩種重要的措施:
- 采用比較靈活的無連接的工作方式
- 以太網發(fā)送的數(shù)據(jù)都是用曼徹斯特編碼
3.CSMA/CD協(xié)議的含義
含義:載波監(jiān)聽多點接入/碰撞檢測栓辜。
多點接入表示許多計算機以多點接入的方式連接在一根總線上
例如在一根廣播信道上分別有ABCDE五個主機,其中A要給E發(fā)送數(shù)據(jù)垛孔,D要給B發(fā)送數(shù)據(jù)藕甩。這時兩者發(fā)送的數(shù)據(jù)就會迎面碰撞,產生沖突周荐,信號就會失真辛萍,這就是碰撞檢測。解決方法(解決的第二個問題:怎樣避免在信道上發(fā)生碰撞)就是當某個主機想要發(fā)送數(shù)據(jù)時羡藐,先監(jiān)聽信道總線看是否有其它主機在發(fā)送數(shù)據(jù)贩毕,如果有就暫緩發(fā)送。如果信道是空閑的那就發(fā)送仆嗦。(這就保證了信道在任何時刻不會同時又兩個主機在發(fā)送數(shù)據(jù)辉阶,這就是載波監(jiān)聽(先聽后發(fā)))
但是載波監(jiān)聽并不能完全保證不會出錯,因為信號在信道上傳播是有傳播時延的。每個主機在檢測信道是否空閑時會發(fā)送信號到信道的特定位置并不會往信道的左右兩側發(fā)送谆甜,所以仍然有可能產生碰撞垃僚。
4.碰撞檢測
就是計算機邊發(fā)送數(shù)據(jù)邊檢測信道上的信號電壓大小(邊發(fā)邊聽)。因為當幾個站同時在總線上發(fā)送數(shù)據(jù)時规辱,總線上的信號電壓擺動值將會增大(互相疊加)谆棺,這時就能被檢測出來。
那么當檢測到信號碰撞之后罕袋,每一個正在發(fā)送數(shù)據(jù)的站就會立刻停止發(fā)送(沖突停發(fā))改淑,免得繼續(xù)浪費網絡資源。然后等待一段隨機時間之后再次發(fā)送(隨機重發(fā))浴讯。
綜上所述朵夏,CSMA/CD協(xié)議就是16個字:先聽后發(fā),邊發(fā)邊聽榆纽,沖突停發(fā)仰猖,隨機重發(fā)
5.傳播時延對載波監(jiān)聽的影響
爭用期:最先發(fā)送數(shù)據(jù)的站,在經過最多2T之后就能檢測到是否發(fā)生碰撞奈籽,T為單程傳播時延饥侵,因此2T被稱為爭用期,碰撞窗口衣屏。如果經過爭用期這段時間還沒有發(fā)生碰撞爆捞,那么就能肯定這次發(fā)送不會發(fā)生碰撞。
因此勾拉,以太網規(guī)定了最短有效幀長為64字節(jié)煮甥,凡是長度小于64字節(jié)的幀都是無效幀。
6.CSMA/CD的重要特性
1.使用CSMA/CD協(xié)議的以太網不能進行全雙工通信而只能進行雙向交替通信(半雙工通信)藕赞。
2.每個站在發(fā)送數(shù)據(jù)之后的一小段時間內成肘,存在著遭遇碰撞的可能性。
3.這種發(fā)送的不確定性使得整個以太網的平均通信量遠小于以太網的最高數(shù)據(jù)率斧蜕。
7.二進制指數(shù)類型退避算法
發(fā)生碰撞的站在停止發(fā)送數(shù)據(jù)之后双霍,要推遲(退避)一個隨機時間才能再次發(fā)送數(shù)據(jù)。基本退避時間是爭用期2T批销。如下圖:注意各個數(shù)值的來源以及取值范圍
8.強化碰撞
當發(fā)送數(shù)據(jù)的站一旦發(fā)現(xiàn)發(fā)生了碰撞之后洒闸,就會立即:
- 立刻停止發(fā)送數(shù)據(jù)。
- 再繼續(xù)發(fā)送若干比特的人為干擾信號均芽,目的是為了讓所有用戶知道現(xiàn)在信道上發(fā)生了碰撞(強化碰撞)丘逸。
人為干擾信號
注意,其中TB是A站開始發(fā)送數(shù)據(jù)到檢測到碰撞所經過的時間掀宋,Tj是A站發(fā)送人為干擾信號的時間(發(fā)送時延)深纲,T是干擾信號在信道上傳播的時間(傳播時延)仲锄。
9.CSMA/CD協(xié)議的要點
概括來說就是16個字:先聽后發(fā),邊發(fā)邊聽湃鹊,沖突停發(fā)儒喊,隨機重發(fā)
(1).準備發(fā)送。在發(fā)送數(shù)據(jù)之前必須先檢測信道——先聽后發(fā)
(2).檢測信道币呵。如果檢測到信道正忙怀愧,就不停地檢測并等待空閑。如果檢測到空閑余赢,并且在96比特時間內保持空閑(保證了幀間的最小間隔)芯义,就發(fā)送這個幀。
(3).檢查碰撞没佑。在發(fā)送過程中要不停地檢測信道——邊發(fā)邊聽毕贼,即網絡適配器要邊發(fā)送邊監(jiān)聽温赔,這時候就可能出現(xiàn)兩種情況:
- 發(fā)送成功:在爭用期內一直未檢測到碰撞蛤奢,則肯定發(fā)送成功。
- 發(fā)送失斕赵簟:在爭用期內檢測到碰撞啤贩,這時候就會停止發(fā)送數(shù)據(jù)——沖突停發(fā),并發(fā)送人為干擾信號拜秧,等待一定的時間(執(zhí)行指數(shù)退避算法得到的等待時間)后回到步驟(2)——隨機重發(fā)痹屹。最后,如果16次仍然不能成功枉氮,則停止重傳而向上報錯志衍。
3.使用集線器的星型拓撲
傳統(tǒng)以太網最初用的是粗同軸電纜,后來演化為比較便宜的細同軸電纜聊替,最后發(fā)展為更便宜和更靈活的雙絞線(相比于同軸電纜楼肪,傳播距離短,性能不如它惹悄,但是最主要的就是便宜)春叫。
采用雙絞線的以太網采用星型拓撲(采用同軸電纜的都用的是總線結構),在星型拓撲中有一種可靠性非常高的設備泣港,叫做集線器(hub)暂殖。但是現(xiàn)在也不采用集線器而是交換機。
每一個站點與集線器之間都有兩對雙絞線当纱,分別用來發(fā)送數(shù)據(jù)和接收數(shù)據(jù)呛每。雙絞線兩側的插線頭叫做RJ-45插頭,也叫水晶頭坡氯。每個站點到集線器的距離不能超過100米莉给,因此兩個站點之間的最大距離為200米毙石。
1.星形以太網10BASE-T
各個數(shù)字的含義:
- 10:表示的是網絡的帶寬,速率為10Mbit/s
- BASE:基帶
- T:表示的是傳輸媒體颓遏,雙絞線
星形以太網10BASE-T的特點:
- 使用無屏蔽雙絞線徐矩,采用星形拓撲
- 每個站都需要兩對雙絞線,分別用于發(fā)送和接收
- 雙絞線的兩端使用RJ-45插頭
- 集線器使用了大規(guī)模集成電路芯片叁幢,因此集線器的可靠性提高
- 10BASE-T的通信距離稍短滤灯,每個站到集線器的距離不超過100米
10BASE-T以太網在局域網中的統(tǒng)治地位:
- 這種10Mbit/s的速率既降低了成本,又提高了可靠性曼玩,具有很高的性價比鳞骤。
- 10BASE-T雙絞線以太網的出現(xiàn),它為以太網在局域網中的統(tǒng)治地位奠定了牢固的基礎
- 從此以太網的拓撲結構就從總線結構變成了星形網絡黍判,以太網也在局域網中占據(jù)了統(tǒng)治地位
2.集線器的一些特點
(1).集線器是使用電子器件來模擬實際電纜線的工作豫尽,整個系統(tǒng)仍然像一個傳統(tǒng)的以太網那樣運行
(2).使用集線器的以太網在邏輯上仍然是一個總線網,各站點使用的還是CSMA/CD協(xié)議顷帖,并且共享邏輯上的總線(當然如果用的是交換機那就不是共享帶寬美旧,而是獨占帶寬)
(3).集線器就像一個多接口的轉發(fā)器(中繼器),工作在物理層
(4).集線器采用專門的芯片贬墩,進行自適應串音回波抵消榴嗅,減少了近端串音。
4.以太網的信道利用率
- 當多個站同時在以太網上工作時就可能發(fā)生碰撞
- 當發(fā)生碰撞時陶舞,信道資源實際上是被浪費了嗽测,所以利用率不能達到100%
- 假設T是單程傳播時延,則爭用期的長度為2T肿孵,檢測到碰撞后不發(fā)送干擾信號唠粥。設幀長為L(bit),數(shù)據(jù)發(fā)送速率為C(bits)停做,則幀的發(fā)送時間為T=L/C(s)
以太網信道被占用的情況
如上圖所示晤愧,一共花費的時間為K2T+T0+T=(2K+1)T+T0,其中K是整數(shù)雅宾。在這段時間里面养涮,只有T0這段時間是有數(shù)據(jù)發(fā)送的,因此以太網信道的利用率是T0/(2K+1)×T+T0可以簡寫為T0/(nT+T0)
參數(shù)a與利用率
如上圖眉抬,利用率的公式可以變?yōu)椋?/(1+na)贯吓。因此a->0,表示一發(fā)生碰撞就可以檢測出來蜀变,并立即停止發(fā)送悄谐,信道利用率很高。反之库北,a越大爬舰,說明爭用期所占比例越大们陆,信道利用率越低。
為了提高利用率情屹,a的值應該盡量小一些坪仇。對以太網參數(shù)a的要求是:(1).當數(shù)據(jù)率一定時,以太網的連線的長度受到限制垃你,否則T的數(shù)值會太大椅文;(2).以太網的幀長不能太短,否則T0(實際發(fā)送數(shù)據(jù)的時間)會太小惜颇。
信道利用率的最大值
2.以太網的MAC層
1.MAC層的硬件地址
在局域網中皆刺,硬件地址又被稱為物理地址或MAC地址,它是唯一的凌摄,嚴格來講羡蛾,它就是每個站的“名字”或者標識符
組織唯一標識符就是一個地址塊,對應的一個地址塊可以生成2的24次方個不同的地址锨亏,這種48位地址稱為MAC-48痴怨,它的通用名稱是EUI-48。
組地址和廣播地址只能作為目的地址腿箩,而單站地址既能作為原地址又能作為目的地址豪直。單站地址就是A站點發(fā)送的數(shù)據(jù)只有B站點接收到劣摇,也就是一對一的通信。而多播其實就是A站點發(fā)送的數(shù)據(jù)弓乙,BCD站點都能接收到末融,也就是一對多的通信。而廣播的意思就是所有連接在總線上的站點都能接收到數(shù)據(jù)暇韧,也就是一對全的通信勾习。所以,發(fā)送的幀當中的地址的類別懈玻,就決定了我要發(fā)送的類型(單站地址的幀巧婶,那就是發(fā)送給特定某個站點的...)
適配器從網絡上接收到每一個MAC幀首先就要檢查MAC地址。如果是發(fā)往本站的幀就收下涂乌,然后再進行其他處理艺栈,否則就將它直接丟棄。其中發(fā)往本站的幀包括:單播幀(一對一)湾盒,廣播幀(一對全)湿右,多播幀(一對多)。
所有的適配器至少都能識別單播地址和廣播地址罚勾,有的還可以用編程方法識別多播地址毅人。只有目的地址才能使用廣播地址和多播地址吭狡,以混雜方式工作的以太網適配器只要“聽到”有幀在以太網上傳輸就接收下來。
2.MAC幀的格式
常用的以太網MAC幀格式有兩種標準:
- DIX Ethernet V2標準
- IEEE 的 802.3 標準
最常用的MAC幀格式就是以太網V2的格式:
如上圖丈莺,目的地址(6個字節(jié))里存放的是目的地(接收數(shù)據(jù)方)的MAC地址划煮,源地址(6個字節(jié))里存放的是源(發(fā)送數(shù)據(jù))的MAC地址,類型字段共2個字節(jié)用來指出數(shù)據(jù)字段是哪種協(xié)議的數(shù)據(jù)(用來標志上一層使用的是什么協(xié)議)缔俄,數(shù)據(jù)字段的長度必須在46-1500字節(jié)之間(46=最短有效幀長64-14幀首部-4幀尾部般此;以太網的最大傳輸單元MTU就是1500字節(jié))。
如果有某個幀的數(shù)據(jù)字段長度為40牵现,即它的幀總長為14+40+4=58<最短有效幀長64铐懊,那么接收方會把它當做是已經發(fā)生碰撞過的幀,會直接丟棄瞎疼。解決辦法:在數(shù)據(jù)字段的后面加入整數(shù)字節(jié)的填充字段科乎,以保證以太網的MAC幀長不小于64字節(jié)。但是贼急,在你加入填充字段之后茅茂,雖然解決了幀發(fā)送的問題,但是在接收方該怎么去掉你加入的填充字段(無效)呢太抓?這個時候就需要用到IP數(shù)據(jù)報空闲,在IP數(shù)據(jù)報的首部,有一個總長度字段走敌,它記錄了幀在填充之前的長度碴倾,因此當接收方接收幀時,就可以將接收到的幀和總長度字段進行對比掉丽,如果兩者不一致就說明該幀進行了填充跌榔。
因為以太網的幀不存在幀定界的標識符,所以不需要考慮透明傳輸的問題捶障。以太網在實際發(fā)送MAC幀的時候僧须,為了達到比特同步,會在MAC幀的前面再加8個字節(jié)项炼。前7個字節(jié)是前同步碼担平,用來實現(xiàn)比特同步;后一個字節(jié)是幀開始定界符锭部,表示后面的就是MAC幀暂论。
無效的MAC幀:
- 數(shù)據(jù)字段的長度與長度字段的值不一致的
- 幀的長度不是整數(shù)個字節(jié)的
- 用收到的幀檢測序列FCS查出有錯誤的
- 數(shù)據(jù)字段的長度不在46-1500字節(jié)之間的
- 有效的MAC幀長度為64-1518字節(jié)之間。
對于檢查出的無效的MAC幀就簡單地丟棄空免,以太網不負責重傳丟棄的幀空另。
幀間最小間隔:
幀間最小間隔為9.6us,相當于96bit的發(fā)送時間蹋砚。也就是一個站在檢測到總線開始空閑后扼菠,還要等待9.6us才能再次發(fā)送數(shù)據(jù)摄杂。這樣做是為了使剛剛收到數(shù)據(jù)幀的站的接收緩存來得及清理,做好接收下一幀的準備循榆。
4.拓展的以太網
1.在物理層擴展以太網
1.使用光纖擴展
如上圖析恢,當使用光纖進行擴展的時候,因為主機和以太網集線器都采用的是電信號秧饮,而光纖傳播的是光信號映挂,因此就需要花費額外的開銷用來將電信號轉換為光信號(光纖調制解調器),還需要把光信號轉換為電信號(光纖調制解調器)盗尸。
2.使用集線器擴展
如上圖柑船,采用集線器擴展有兩種方法:級聯(lián)(最常用)和堆疊(性能,成本相對較高)泼各。堆疊的話需要特定的堆疊線纜鞍时,要進行堆疊的交換機物理距離要相近,而且并不是所有廠家生產的都能進行堆疊扣蜻。所謂級聯(lián)就是圖中的第一點逆巍。
集線器擴展的優(yōu)缺點:
優(yōu)點:
- 使原來屬于不同碰撞域的以太網上的計算機能夠進行跨碰撞域的通信
- 擴大了以太網覆蓋的地理范圍
缺點: - 碰撞域增大了,但總的吞吐量并沒有提高
- 如果不同的碰撞域使用不同的數(shù)據(jù)率莽使,那么就不能用集線器將它們互連起來锐极。
2.在數(shù)據(jù)鏈路層層擴展以太網
- 擴展以太網更常用的方法是在數(shù)據(jù)鏈路層進行
- 早期使用網橋,現(xiàn)在使用以太網交換機
網橋和以太網交換機
1.以太網交換機的特點 - 以太網交換機實質上就是一個多接口的網橋(最常用24口)芳肌,通常都有十幾個或更多的接口
- 每個接口都直接與一個單臺主機或另一個以太網交換機相連灵再,并且一般都工作在全雙工方式
- 以太網交換機具有并行性,能同時連通多對接口庇勃,使多對主機能同時通信
- 相互通信的主機都會獨占傳輸媒體檬嘀,無碰撞的傳輸數(shù)據(jù)
- 以太網交換機的接口有存儲器槽驶,能在輸出端口繁忙時把到來的幀進行緩存
- 以太網交換機是一種即插即用的設備责嚷,其內部的幀交換表(地址表)是通過自學習算法自動逐漸建立起來的
- 以太網交換機使用了專用的交換結構芯片,用硬件轉發(fā)掂铐,其轉發(fā)速率比使用軟件轉發(fā)的網橋快很多
2.以太網交換機的優(yōu)點
- 用戶獨享帶寬罕拂,增加了總容量,并不是傳統(tǒng)的共享式以太網
- 從共享總線以太網轉到交換式以太網時全陨,所有接入設備的軟件和硬件爆班,適配器等都不需要做任何改動
- 以太網交換機一般都具有多種速率的接口,方便各種不同情況的用戶
3.以太網交換機的交換方式
- 存儲轉發(fā)方式:把整個數(shù)據(jù)幀先緩存后再進行處理(缺點是轉發(fā)的速度慢)辱姨,優(yōu)點就是會對幀進行差錯檢測避免將無效幀轉發(fā)出去
- 直通方式:在接收數(shù)據(jù)幀的同時就立刻根據(jù)數(shù)據(jù)幀的目的MAC地址決定該幀的轉發(fā)接口柿菩,因此轉發(fā)速度會快一點;缺點是它不檢查錯誤就直接將幀發(fā)送出去雨涛,有可能會發(fā)送無效幀給其它的站
4.以太網交換機的自學習功能(算法)
- 以太網交換機運行自學習算法自動維護交換表
-
開始時枢舶,以太網交換機里面的交換表是空的
交換表
自學習和轉發(fā)幀的步驟
如上圖懦胞,大致分為自學習和轉發(fā)幀兩個步驟:
- 交換機收到幀后先進行自學習。查找交換表中是否有與收到幀的源地址相匹配的項目凉泄。
- 轉發(fā)幀躏尉。查找交換表中是否有與收到幀的目的地址相匹配的項目
根據(jù)上圖交換表,一開始交換表為空后众,然后當A要發(fā)送一個數(shù)據(jù)幀給B時胀糜,數(shù)據(jù)幀通過接口1發(fā)送到交換機里,經過查找發(fā)現(xiàn)沒有與源地址A相匹配的項目蒂誉,那么就自動在交換表中添加一行(自學習):A 1 ...(有效時間)教藻,然后再查找交換表中有沒有與目的地址B相匹配的項目,沒有的話就向接口2,3,4同時發(fā)送數(shù)據(jù)幀(這里相當于就是采用廣播或者窮舉的方法右锨,既然我交換表里面沒有存儲目的地址相匹配的信息那么我就把可能的路徑全部走一遍總能找到目的地址)怖竭。當通過接口2發(fā)送到站C時,C會檢測收到的幀的目的地址發(fā)現(xiàn)與自己不匹配那么就會丟棄陡蝇,只有當數(shù)據(jù)幀通過接口3發(fā)送到站B時才會被接收痊臭。當下一次D要發(fā)送數(shù)據(jù)幀給A時,在查找目的地址時有匹配的項目登夫,那么數(shù)據(jù)幀就會直接通過接口1發(fā)送給站A广匙。當下一次A又要發(fā)送數(shù)據(jù)幀給C時,會對交換表中的A進行更新恼策,當然站點不會更新鸦致,接口可能更新也可能不更新,有效時間一定會更新涣楷。
增加有效時間是因為:網絡的拓撲結構是會變化的分唾,有時主機A經過一段時間后接口發(fā)生變化,如果不更新就會導致轉發(fā)出錯狮斗。另外當主機A的網卡壞掉而重新更換時绽乔,如果不更新交換表也會導致出錯。當超過有效時間后碳褒,該項目就會被刪除折砸。
5.冗余鏈路
在多臺交換機之間使用鏈路連接時,可靠性很低沙峻,一旦當鏈路斷開睦授,交換機和網絡就會癱瘓(單點故障),因此在一條鏈路的基礎上在增加一條冗余鏈路來提高可靠性(交換機之間變成兩條鏈路)摔寨,但是這種方法也會帶來更大的問題1:廣播分報去枷。所謂廣播分報就是自學習的過程可能導致以太網幀在某個環(huán)路中無限制的兜圈子。另外帶來的問題2—MAC地址抖動:就是在一個交換機內不停的出現(xiàn)同一個地址的不同接口,不停的更新A 1删顶,A 2疗隶,A 3...
帶來的問題3—幀重復:某個主機不停地接收同一個幀
解決方法:生成樹協(xié)議
在邏輯上切斷某些鏈路其實就是:關閉某個端口從而消除回路結構(破環(huán)),形成一個無環(huán)路的樹狀結構翼闹,關閉的端口具體是哪個是根據(jù)選舉得到的斑鼻。如果需要再重新開啟端口的話,可能出現(xiàn)最壞的情況就是耗費50s來再次開啟猎荠,因此就有了快速生成樹RSTP坚弱,多生成樹MSTP,它們再次開啟端口耗時短只需要1s左右关摇。
3.虛擬局域網
- 利用以太網交換機可以很方便地實現(xiàn)虛擬局域網VLAN荒叶。
- 虛擬局域網VLAN是由一些局域網網段構成的與物理位置無關的邏輯組,而這些網段具有某些共同的需求输虱。每一個VLAN的幀都有一個明確的標識符(用來指出特定的VLAN組)些楣,指明發(fā)送這個幀的計算機是屬于哪一個VLAN。(其實就例如某個學校的教務管理系統(tǒng)宪睹,學生愁茁,教師,和工作人員對這個系統(tǒng)的使用各不相同亭病,學生只能查看成績鹅很,教師能夠查詢和更改成績,而工作人員可以配置維護這個系統(tǒng)罪帖,他們每個組的權限各不相同促煮,就相當于是不同的VLAN,VLAN的劃分是在交換機內部進行的)
- 虛擬局域網其實只是局域網給用戶提供的一種服務整袁,而并不是一種新型局域網菠齿。
- 由于虛擬局域網是用戶和網絡資源的邏輯組合,因此可按照需要將有關設備和資源非常方便地重新組合坐昙,使用戶從不同的服務器或數(shù)據(jù)庫中存取所需的資源绳匀。
-
同一個VLAN組下的成員是可以直接通信的袭祟,不同VLAN組下的成員在沒有經過特殊處理(使用路由器或者三層交換機,但是因為路由器的接口有限玛瘸,一般都采用三層交換機)時是不可以直接通信的蹄溉。如下圖:
VLAN分組
不同字母就屬于不同的VLAN組。例如當B1向VLAN2工作組發(fā)送數(shù)據(jù)時孩革,工作站B2,B3將會接收到廣播的信息(位于廣播域內就能接收到信息,實際上每一個VLAN就是一個廣播域)蝶溶。A與C就不能收到信息。
虛擬局域網限制了接收廣播信息的工作站數(shù),使得網絡不會因傳播過多的廣播信息(即“廣播風暴”)而引把性能惡化抖所。
1.虛擬局域網使用的以太網的幀格式 - IEEE批準了802.3ac標準梨州,該標準定義了以太網的幀格式的擴展,以支持虛擬局域網田轧。
- 虛擬局域網協(xié)議允許在以太網的幀格式中插入個4字節(jié)的標識符暴匠,稱為VLAN標記(tag),用來指明發(fā)送該幀的計算機屬于哪一個虛擬局域網傻粘。
- 插入VLAN標記得出的幀稱為8021.Q幀(dot1Q幀)或帶標記的以太網幀每窖。
802.1Q幀
如上圖,VLAN標識符中有一個特殊的VLAN1弦悉,它在交換機一生產就存在于交換機里面窒典,用戶既不能創(chuàng)建也不能刪除VLAN1,只能改變其中的成員稽莉。