① 計算機網路筆記——數據鏈路層(停等協議、GBN、SR)
流量控制:防止發送端發送和接收端接收速度不匹配造成傳輸錯誤
傳輸層和數據鏈路層均有流量控制,但是控制手法不一樣
傳輸層:端到端,接收端向發送端發送一個窗口公告。告訴發送端目前我能接收多少
數據鏈路層:點到點,接收端接收不下的就不回復確認(ack),讓發送端自己重傳
涉及協議較多分批寫
優點 :最簡單的控制協議
缺點 :但是性能較弱,信道利用率低
控制方法 :
發送方:發送一個幀
接收方:接收到幀後返回改幀的ack
發送方:接收到ack後發送下一個幀
差錯控制 :
注意 :
滑動窗口協議是基於停止等待協議的優化版本
停止等待協議性能是因為需要等待ack之後才能發送下一個幀,在傳送的很長時間內信道一直在等待狀態
滑動窗口則利用緩沖思想,允許連續發送(未收到ack之前)多個幀,以加強信道利用
窗口 :其實就是緩沖幀的一個容器,將處理好的幀發送到緩沖到窗口,可以發送時就可以直接發送,藉此優化性能。一個幀對應一個窗口。
GBN是滑動窗口中的一種,其中 發送窗口 > 1 , 接收窗口=1 因發送錯誤後需要退回到最後正確連續幀位置開始重發,故而得名。
控制方法 :
發送端:在將發送窗口內的數據連續發送
接收端:收到一個之後向接收端發送累計確認的ack
發送端:收到ack後窗口後移發送後面的數據
累計確認 :累計確認允許接收端一段時間內發送一次ack而不是每一個幀都需要發送ack。該確認方式確認代表其前面的幀都以正確接收到
eg:發送端發送了編號 0,1,2,3,4,5 的幀,等待一段時間後(超過3的超時計時器)累計收到的ack對應 0,2 幀,則證明已經成功 0,1,2 均已經成功接收, 3 傳輸錯誤。並且哪怕 4,5 兩個幀接收成功後也不會返回 4,5 的ack會一直等待從 3 開始重傳
差錯控制 :
發送幀丟失、ack丟失、ack遲到 等處理方法基本和停等協議相同,不同的是採用累計確認恢復的方式,當前面的幀出錯之後後面幀無論是否發送成功都要重傳
優點:信道利用率高(利用窗口有增加發送端佔用,並且減少ack回復次數)
缺點:累計確認使得該方法只接收正確順序的幀,而不接受亂序的幀,錯誤重傳浪費嚴重
發送窗口大小問題
窗口理論上是越多性能越好,但是窗口不能無限大,n比特編碼最大隻能2^(n-1)個窗口,否則會造成幀無法區分(本質就是留了一個比特區分兩組幀)
SR協議可以說是GBN的plus版本,在GBN的基礎上改回每一個幀都要確認的機制,解決了累計確認只接收順序幀的弊端只需要重發錯誤幀。
其中 發送窗口 > 1 , 接收窗口 > 1 , 接收窗口 > 發送窗口 (建議接 收窗口 = 發送窗口 接收窗口少了溢出多了浪費).
控制方法 :
發送端:將窗口內的數據連續發送
接收端:收到一個幀就將該幀緩存到窗口中並回復一個ack
接收端:接收到順序幀後將數據提交給上層並接收窗口後移(若接收到的幀不是連續的順序幀時接收窗口不移動)
發送端:接收到順序幀的ack後發送窗口後移(同理發送窗口接收到的ack不連續也不移動)
差錯控制 :
發送幀丟失、ack丟失、ack遲到 三類處理方式仍然和停等協議相同,不同的是SR向上層提交的是多個連續幀,停等只提交一個幀(不連續的幀要等接收或重傳完成後才會提交)
發送窗口大小問題
同GBN一樣,發送窗口和接收窗口都不能無限多,且不說緩存容量問題,當兩組幀同時發送時會造成無法區分,大小上限仍然是2^(n-1)個窗口(本質就是留了一個比特寫組號)
窗口大小這里留一張截圖,方便理解
假設窗口大小都為3(圖中編號到了3是借4窗口的圖,正常應編號到2,但是不妨礙理解)
左邊是錯誤重發,第一組的0幀ack丟失了
右邊是正常收發
三種協議對比:
停等協議:單線程的傻子,簡單不易出錯,但是效率極其低下
GBN:假的多線程(接收端太坑啦),接收端是情種,只等待自己哪一個幀,丟棄了後來的幀
SR:多線程,接收端有收藏癖,等待集齊一套召喚神龍(提交給上層這只神龍……)
② 差錯控制的基本工作方式有哪幾種各有什麼特點
號稱網路硬體三劍客的集線器(Hub)、交換機(Switch)與路由器(Router)一直都是網路界的活躍分子,但讓很多初入網路之門的菜鳥惱火的是,它們三者不僅外觀相似,而且經常呆在一起,要想分清誰是誰,感覺有點難!就讓我們一起來看看它們之間有什麼區別和聯系吧!
三劍客的工作原理
一、集線器
1.什麼是集線器
在認識集線器之前,必須先了解一下中繼器。在我們接觸到的網路中,最簡單的就是兩台電腦通過兩塊網卡構成「雙機互連」,兩塊網卡之間一般是由非屏蔽雙絞線來充當信號線的。由於雙絞線在傳輸信號時信號功率會逐漸衰減,當信號衰減到一定程度時將造成信號失真,因此在保證信號質量的前提下,雙絞線的最大傳輸距離為100米。當兩台電腦之間的距離超過100米時,為了實現雙機互連,人們便在這兩台電腦之間安裝一個「中繼器」,它的作用就是將已經衰減得不完整的信號經過整理,重新產生出完整的信號再繼續傳送。
中繼器就是普通集線器的前身,集線器實際就是一種多埠的中繼器。集線器一般有4、8、16、24、32等數量的RJ45介面,通過這些介面,集線器便能為相應數量的電腦完成「中繼」功能。由於它在網路中處於一種「中心」位置,因此集線器也叫做「Hub」。
2.集線器的工作原理
集線器的工作原理很簡單,以圖2為例,圖中是一個具備8個埠的集線器,共連接了8台電腦。集線器處於網路的「中心」,通過集線器對信號進行轉發,8台電腦之間可以互連互通。具體通信過程是這樣的:假如計算機1要將一條信息發送給計算機8,當計算機1的網卡將信息通過雙絞線送到集線器上時,集線器並不會直接將信息送給計算機8,它會將信息進行「廣播」--將信息同時發送給8個埠,當8個埠上的計算機接收到這條廣播信息時,會對信息進行檢查,如果發現該信息是發給自己的,則接收,否則不予理睬。由於該信息是計算機1發給計算機8的,因此最終計算機8會接收該信息,而其它7台電腦看完信息後,會因為信息不是自己的而不接收該信息。
3.集線器的特點
1)共享帶寬
集線器的帶寬是指它通信時能夠達到的最大速度。目前市面上用於中小型區域網的集線器主要有10Mbps、100Mbps和10/100Mbps自適應三種。
10Mb帶寬的集線器的傳輸速度最大為10Mbps,即使與它連接的計算機使用的是100Mbps網卡,在傳輸數據時速度仍然只有10Mbps。10/100Mbps自適應集線器能夠根據與埠相連的網卡速度自動調整帶寬,當與10Mbps的網卡相連時,其帶寬為10Mb;與100Mbps的網卡相連時,其帶寬為100Mb,因此這種集線器也叫做「雙速集線器」。
集線器是一種「共享」設備,集線器本身不能識別目的地址,當同一區域網內的A主機給B主機傳輸數據時,數據包在以集線器為架構的網路上是以廣播方式傳輸的,由每一台終端通過驗證數據包頭的地址信息來確定是否接收。
由於集線器在一個時鍾周期中只能傳輸一組信息,如果一台集線器連接的機器數目較多,並且多台機器經常需要同時通信時,將導致集線器的工作效率很差,如發生信息堵塞、碰撞等。
為什麼會這樣呢?打給比方,以圖2為例,當計算機1正在通過集線器發信息給計算機8時,如果此時計算機2也想通過集線器將信息發給計算機7,當它試圖與集線器聯系時,卻發現集線器正在忙計算機1的事情,於是計算機2便會「帶」著數據站在集線器的面前等待,並時時要求集線器停下計算機1的活來幫自己干。如果計算機2成功地將集線器「搶」過來了(由於集線器是「共享」的,因此很容易搶到手),此時正處於傳輸狀態的計算機1的數據便會停止,於是計算機1也會去「搶」集線器……
可見,集線器上每個埠的真實速度除了與集線器的帶寬有關外,與同時工作的設備數量也有關。比如說一個帶寬為10Mb的集線器上連接了8台計算機,當這8台計算機同時工作時,則每台計算機真正所擁有的帶寬是10/8=1.25Mb!
2半雙工
先說說全雙工:兩台設備在發送和接收數據時,通信雙方都能在同一時刻進行發送或接收操作,這樣的傳送方式就是全雙工。而處於半雙工傳送方式的設備,當其中一台設備在發送數據時,另一台只能接收,而不能同時將自己的數據發送出去。
由於集線器採取的是「廣播」傳輸信息的方式,因此集線器傳送數據時只能工作在半雙工狀態下,比如說計算機1與計算機8需要相互傳送一些數據,當計算機1在發送數據時,計算機8隻能接收計算機1發過來的數據,只有等計算機1停止發送並做好了接收准備,它才能將自己的信息發送給計算機1或其它計算機。
二、交換機
1.什麼是交換機
交換機也叫交換式集線器,它通過對信息進行重新生成,並經過內部處理後轉發至指定埠,具備自動定址能力和交換作用,由於交換機根據所傳遞信息包的目的地址,將每一信息包獨立地從源埠送至目的埠,避免了和其他埠發生碰撞。廣義的交換機就是一種在通信系統中完成信息交換功能的設備。
2.交換機的工作原理
在計算機網路系統中,交換機是針對共享工作模式的弱點而推出的。集線器是採用共享工作模式的代表,如果把集線器比作一個郵遞員,那麼這個郵遞員是個不認識字的「傻瓜」--要他去送信,他不知道直接根據信件上的地址將信件送給收信人,只會拿著信分發給所有的人,然後讓接收的人根據地址信息來判斷是不是自己的!而交換機則是一個「聰明」的郵遞員--交換機擁有一條高帶寬的背部匯流排和內部交換矩陣。交換機的所有的埠都掛接在這條背部匯流排上,當控制電路收到數據包以後,處理埠會查找內存中的地址對照表以確定目的MAC(網卡的硬體地址)的NIC(網卡)掛接在哪個埠上,通過內部交換矩陣迅速將數據包傳送到目的埠。目的MAC若不存在,交換機才廣播到所有的埠,接收埠回應後交換機會「學習」新的地址,並把它添加入內部地址表中。
可見,交換機在收到某個網卡發過來的「信件」時,會根據上面的地址信息,以及自己掌握的「常住居民戶口簿」快速將信件送到收信人的手中。萬一收信人的地址不在「戶口簿」上,交換機才會像集線器一樣將信分發給所有的人,然後從中找到收信人。而找到收信人之後,交換機會立刻將這個人的信息登記到「戶口簿」上,這樣以後再為該客戶服務時,就可以迅速將信件送達了。
3.交換機的性能特點
1)獨享帶寬
由於交換機能夠智能化地根據地址信息將數據快速送到目的地,因此它不會像集線器那樣在傳輸數據時「打擾」那些非收信人。這樣一來,交換機在同一時刻可進行多個埠組之間的數據傳輸。並且每個埠都可視為是獨立的網段,相互通信的雙方獨自享有全部的帶寬,無須同其他設備競爭使用。比如說,當A主機向D主機發送數據時,B主機可同時向C主機發送數據,而且這兩個傳輸都享有網路的全部帶寬--假設此時它們使用的是10Mb的交換機,那麼該交換機此時的總流通量就等於2×10Mb=20Mb。
2)全雙工
當交換機上的兩個埠在通信時,由於它們之間的通道是相對獨立的,因此它們可以實現全雙工通信。
三、集線器與交換機的區別
從兩者的工作原理來看,交換機和集線器是有很大差別的。首先,從OSI體系結構來看,集線器屬於OSI的第一層物理層設備,而交換機屬於OSI的第二層數據鏈路層設備。
其次,從工作方式來看,集線器採用一種「廣播」模式,因此很容易產生「廣播風暴」,當網路規模較大時性能會受到很大的影響。而當交換機工作的時候,只有發出請求的埠和目的埠之間相互響應而不影響其他埠,因此交換機能夠在一定程度上隔離沖突域和有效抑制「廣播風暴」的產生。
另外,從帶寬來看,集線器不管有多少個埠,所有埠都是共享一條帶寬,在同一時刻只能有兩個埠傳送數據,其他埠只能等待,同時集線器只能工作在半雙工模式下;而對於交換機而言,每個埠都有一條獨占的帶寬,當兩個埠工作時並不影響其他埠的工作,同時交換機不但可以工作在半雙工模式下而且可以工作在全雙工模式下。
如果用最簡單的語言敘述交換機與集線器的區別,那就應該是智能與非智能的區別。集線器說白了只是連接多個計算機的網路設備,它只能起到信號放大和傳輸的作用,不能對信號中的碎片進行處理,所以在傳輸過程中容易出錯。而交換機則可以看作為是一種智能型的集線器,它除了擁有集線器的所有特性外,還具有自動定址、交換、處理的功能。並且在數據傳遞過程中,發送端與接受端獨立工作,不與其它埠發生關系,從而達到防止數據丟失和提高吞吐量的目的。
③ osi鍙傝冩ā鍨嬬殑絎涓銆佷簩銆 涓夊眰鍒嗗埆鏄浠涔堬紵鍚勮嚜鐨勫姛鑳芥槸浠涔
osi鍙傝冩ā鍨嬬殑絎涓銆佷簩銆 涓夊眰鍙婂悇鑷鐨勫姛鑳斤細
絎涓灞傦細鐗╃悊灞傦紝涓昏佸姛鑳芥槸鍒╃敤鐗╃悊浼犺緭浠嬭川涓烘暟鎹閾捐礬灞傛彁渚涚墿鐞嗚繛鎺ワ紝浠ヤ究閫忔槑鐨勪紶閫佹瘮鐗規祦銆傚父鐢ㄨ懼囨湁錛堝悇縐嶇墿鐞嗚懼囷級鍚寮婁紞緗戝崱銆侀泦綰垮櫒銆佷腑緇у櫒銆佽皟鍒惰В璋冨櫒銆佺綉綰褲佽皥鎴栧弻緇炵嚎銆佸悓鍗滅函杞寸數緙嗐
絎浜屽眰錛氭暟鎹閾捐礬灞傦紝鍦ㄦゅ眰灝嗘暟鎹鍒嗗撫錛屽苟澶勭悊嫻佹帶鍒躲傚睆钄界墿鐞嗗眰錛屼負緗戠粶灞傛彁渚涗竴涓鏁版嵁閾捐礬鐨勮繛鎺ワ紝鍦ㄤ竴鏉℃湁鍙鑳藉嚭宸閿欑殑鐗╃悊榪炴帴涓婏紝榪涜屽嚑涔庢棤宸閿欑殑鏁版嵁浼犺緭錛堝樊閿欐帶鍒訛級銆傛湰灞傛寚瀹氭嫇鎵戠粨鏋勫苟鎻愪緵紜浠跺誨潃銆傚父鐢ㄨ懼囨湁緗戞ˉ銆佷氦鎹㈡満
絎涓夊眰錛氱綉緇滃眰錛屾湰灞傞氳繃瀵誨潃鏉ュ緩絝嬩袱涓鑺傜偣涔嬮棿鐨勮繛鎺ワ紝涓烘簮絝鐨勮繍杈撳眰閫佹潵鐨勫垎緇勶紝閫夋嫨鍚堥傜殑璺鐢卞拰浜ゆ崲鑺傜偣錛屾g『鏃犺鍦版寜鐓у湴鍧浼犻佺粰鐩鐨勭鐨勮繍杈撳眰銆
瀹冨寘鎷閫氳繃浜掕繛緗戠粶鏉ヨ礬鐢卞拰涓緇ф暟鎹 錛涢櫎浜嗛夋嫨璺鐢變箣澶栵紝緗戠粶灞傝繕璐熻矗寤虹珛鍜岀淮鎶よ繛鎺ワ紝鎺у埗緗戠粶涓婄殑鎷ュ炰互鍙婂湪蹇呰佺殑鏃跺欑敓鎴愯¤垂淇℃伅銆
鎵╁睍璧勬枡錛
鍥介檯鏍囧噯鍖栫粍緇嘔SO浜1984騫存彁鍑轟簡OSI RM錛圤penSystem Interconnection Reference Model錛屽紑鏀劇郴緇熶簰榪炲弬鑰冩ā鍨嬶級銆侽SI 鍙傝冩ā鍨嬪緢蹇鎴愪負璁$畻鏈虹綉緇滈氫俊鐨勫熀紜妯″瀷銆
鍦ㄨ捐OSI 鍙傝冩ā鍨嬫椂錛岄伒寰浜嗕互涓嬪師鍒欙細鍚勪釜灞備箣闂存湁娓呮櫚鐨勮竟鐣岋紝瀹炵幇鐗瑰畾鐨勫姛鑳斤紱灞傛$殑鍒掑垎鏈夊埄浜庡浗闄呮爣鍑嗗崗璁鐨勫埗瀹氾紱灞傜殑鏁扮洰搴旇ヨ凍澶熷氾紝浠ラ伩鍏嶅悇涓灞傚姛鑳介噸澶嶃
閫氬父OSI鍙傝冩ā鍨1-3灞傜О涓哄簳灞傦紙lower layer錛夛紝鍙堝彨浠嬭川灞傦紙media layer錛夛紝搴曞眰璐熻矗鏁版嵁鍦ㄧ綉緇滀腑鐨勪紶閫侊紝緗戠粶浜掕繛璁懼囧線寰浣嶄簬涓嬩笁灞傦紝浠ョ‖浠跺拰杞浠剁殑鏂瑰紡鏉ュ疄鐜般
OSI鍙傝冩ā鍨嬬殑絎浜斿眰鍒扮涓冨眰縐頒負楂樺眰錛坲pper layer錛夛紝鍙堝彨浣忓嚑灞傦紙host layer錛夛紝楂樺眰鐢ㄤ簬淇濋殰鏁版嵁鐨勬g『浼犺緭錛屼互杞浠舵柟寮忔潵瀹炵幇銆
鍙傝冭祫鏂欐潵婧愶細鐧懼害鐧劇-OSI鍙傝冩ā鍨