這個小結,很難寫啊~~~網絡的東西太多了~~主要是細節很多~~而且,協議也很多,感覺也沒有必要去了解這些細節~~似乎找不到重點~~~也沒好的辦法~~~copy了一大堆資料,整理了幾個問題~~~~希望可以勾勒出網絡的框架~~有的是概要性質的,也有些是細節方面的,選擇性的瞄一眼吧~~~貌似有的寫的挺詳細,有的就很簡略~~~最後一看,有點像大雜燴了,嘿嘿嘿,能看完算你狠
l 電路交換技術、報文交換、分組交換
l OSI的模型 與 TCP/IP(*)
l CSMA/CD
l 網橋
l 交換機
l RIP 與 OSPF(*)
l 集線器與交換器比較
l 虛擬局域網VLAN
l 什麼是三層交換
l 二層交換、三層交換、路由的比較
l 交換機與路由器比較(*)
l IP分片控制
l TCP爲什麼要三次握手?(*)
l TCP擁塞控制
l CS模型與SOCKET編程(*)
其他還有一些很小很小的問題,放到最後了,包括協議三個要素,協議分層優點,NAT,ICMP等等
我覺得網絡的重點仍然是對網絡的整體性概念,如果不是專門進行協議開發的話,一般不會深入到協議的細節。仍然有重點。協議的重點是TCP和IP,然後概要性需要了解的是UDP,ICMP,ARP,RIP,OSPF等等,其他像NAT、CIDR、DNS、HTTP、FTP、SNMP等有個簡單的瞭解可能更好。
電路交換技術、報文交換、分組交換
分組交換的優點
優 點 |
所採用的手段 |
高效 |
在分組傳輸的過程中動態分配傳輸帶寬,對通信鏈路是逐段佔用 |
靈活 |
每個結點均有智能,爲每一個分組獨立地選擇轉發路由 |
迅速 |
以分組作爲傳送單位,可以不先建立連接就能向其他主機發送分組;網絡使用高速鏈路 |
可靠 |
完善的網絡協議;分佈式多路由的分組交換網,使網絡有很好的生存性 |
OSI的模型 與 TCP/IP
OSI每層功能及特點
物理層 爲數據鏈路層提供物理連接,在其上串行傳送比特流,即所傳送數據的單位是比特。此外,該層中還具有確定連接設備的電氣特性和物理特性等功能。物理層的作用:儘可能地屏蔽掉各種媒體的差異。
數據鏈路層 負責在網絡節點間的線路上通過檢測、流量控制和重發等手段,無差錯地傳送以幀爲單位的數據。爲做到這一點,在每一幀中必須同時帶有同步、地址、差錯控制及流量控制等控制信息。
網絡層 爲了將數據分組從源(源端系統)送到目的地(目標端系統),網絡層的任務就是選擇合適的路由和交換節點,使源的傳輸層傳下來的分組信息能夠正確無誤地按照地址找到目的地,並交付給相應的傳輸層,即完成網絡的尋址功能。
傳輸層 傳輸層是高低層之間銜接的接口層。數據傳輸的單位是報文,當報文較長時將它分割成若干分組,然後交給網絡層進行傳輸。傳輸層是計算機網絡協議分層中的最關鍵一層,該層以上各層將不再管理信息傳輸問題。
會話層 該層對傳輸的報文提供同步管理服務。在兩個不同系統的互相通信的應用進程之間建立、組織和協調交互。例如,確定是雙工還是半雙工工作。
表示層
該層的主要任務是把所傳送的數據的抽象語法變換爲傳送語法,即把不同計算機內部的不同表示形式轉換成網絡通信中的標準表示形式。此外,對傳送的數據加密(或解密)、正文壓縮(或還原)也是表示層的任務。
應用層 該層直接面向用戶,是OSI中的最高層。它的主要任務是爲用戶提供應用的接口,即提供不同計算機間的文件傳送、訪問與管理,電子郵件的內容處理,不同計算機通過網絡交互訪問的虛擬終端功能等。
TCP/IP
網絡接口層 這是TCP/IP協議的最低一層,包括有多種邏輯鏈路控制和媒體訪問協議。網絡接口層的功能是接收IP數據報並通過特定的網絡進行傳輸,或從網絡上接收物理幀,抽取出IP數據報並轉交給網際層。
網際網層(IP層) 該層包括以下協議:IP(網際協議)、ICMP(Internet Control Message Protocol,因特網控制報文協議)、ARP(Address Resolution Protocol,地址解析協議)、RARP(Reverse Address Resolution Protocol,反向地址解析協議)。該層負責相同或不同網絡中計算機之間的通信,主要處理數據報和路由。在IP層中,ARP協議用於將IP地址轉換成物理地址,RARP協議用於將物理地址轉換成IP地址,ICMP協議用於報告差錯和傳送控制信息。IP協議在TCP/IP協議組中處於核心地位。
傳輸層 該層提供TCP(傳輸控制協議)和UDP(User Datagram Protocol,用戶數據報協議)兩個協議,它們都建立在IP協議的基礎上,其中TCP提供可靠的面向連接服務,UDP提供簡單的無連接服務。傳輸層提供端到端,即應用程序之間的通信,主要功能是數據格式化、數據確認和丟失重傳等。
應用層 TCP/IP協議的應用層相當於OSI模型的會話層、表示層和應用層,它向用戶提供一組常用的應用層協議,其中包括:Telnet、SMTP、DNS等。此外,在應用層中還包含有用戶應用程序,它們均是建立在TCP/IP協議組之上的專用程序。
CSMA/CD:
載波監聽多點接入/碰撞檢測CSMA/CD(Carrier Sense Multiple Access with Collision Detection )
主要思想:邊發送邊監聽。若監聽到衝突,則衝突雙方都立即停止發送。信道很快空閒,從而提高效率。
多點接入:總線型網絡
載波監聽:檢測數據信號
碰撞檢測:邊發送數據邊檢測信道上的信號電壓大小。發生衝突後進行退避。退避策略有多個。。。
網橋的優點:
1.過濾通信量,隔離衝突域、改善性能
2.擴大了物理範圍
3.提高可靠性,網絡出現故障,隻影響個別網段。
4.可互聯不同類型的局域網:不同物理層、速率。
工作原理:
1.網橋工作在混雜(promiscuous)方式,接收所有的幀;
2.網橋接收到一幀後,通過查詢地址/端口對應表來確定是丟棄還是轉發;
3.網橋剛啓動時,地址/端口對應表爲空,採用泛洪(flooding)方法轉發幀,既收到的幀向除進入端口外的所有端口轉發。在轉發過程中採用逆向學習(backward learning)算法收集MAC地址。網橋通過分析幀的源MAC地址得到MAC地址與端口的對應關係,並寫入地址/端口對應站表;網橋軟件對地址/端口對應表進行不斷的更新,並定時檢查,刪除在一段時間內沒有更新的地址/端口項;
幀的路由過程
目的LAN與源LAN相同,則丟棄幀;
目的LAN與源LAN不同,則轉發幀;
目的LAN未知,則洪泛幀,並逆向學習。
多個網橋(並行網橋)可能產生迴路:解決辦法:構造生成樹(細節請google,我也不曉得)
交換機
交換機與網橋的區別:
1.端口數:網橋少、交換機多
2.連接對象:網橋連接局域網;交換機連接主機。
交換機特點:需要通信時,相關端口連通,進行無碰撞的數據傳輸。
交換方式:
1.存儲轉發:等到MAC幀全部收到,並經CRC再傳輸該幀。
2.直通交換(快速分組):只查MAC幀的前幾位(目的地址),並快速分組轉發。
RIP 與 OSPF
RIP協議的三個要點:
1.僅和相鄰路由器交換信息
2.交換當前本路由器知道的所有信息
3.按固定時間間隔交換信息
路由表更新原則是找出到各個目的網絡的最短距離即距離相量算法。
RIP的問題
優點:實現簡單,開銷較小。
缺點:好消息傳得快,而壞消息傳得慢。
OSPF是一個鏈路狀態協議
在一個鏈路狀態協議中,路由器並不與其鄰站交換距離信息。它採用的是每個路由器主動地測試與其鄰站相連鏈路的狀態,將這些信息發送給它的其他鄰站,而鄰站將這些信息在自治系統中傳播出去。每個路由器接收這些鏈路狀態信息,並建立起完整的路由表。
OSPF還有着一些優於RIP的特點:
1) OSPF可以對每個I P服務類型計算各自的路由集。這意味着對於任何目的,可以有多個路由表表項,每個表項對應着一個IP服務類型。
2) 給每個接口指派一個無維數的費用。可以通過吞吐率、往返時間、可靠性或其他性能來進行指派。可以給每個IP服務類型指派一個單獨的費用。
3) 當對同一個目的地址存在着多個相同費用的路由時,OSPF在這些路由上平均分配流量。我們稱之爲流量平衡。
4)
OSPF支持子網:子網掩碼與每個通告路由相連。這樣就允許將一個任何類型的IP地址分割成多個不同大小的子網(變長度子網)。到一個主機的路由是通過全1子網掩碼進行通告的。默認路由是以IP地址爲
5) 路由器之間的點對點鏈路不需要每端都有一個IP地址,我們稱之爲無編號網絡。這樣可以節省I P地址—現在非常緊缺的一種資源。
6) 採用了一種簡單鑑別機制。可以採用類似於RIP-2機制的方法指定一個明文口令。
7) OSPF採用多播,而不是廣播形式,以減少不參與OSPF的系統負載。
集線器與交換器
從OSI體系結構來看,集線器屬於OSI的第一層物理層設備,而交換機屬於OSI的第二層數據鏈路層設備。這就意味着集線器只是對數據的傳輸起到同步、放大和整形的作用,對數據傳輸中的短幀、碎片等無法有效處理,不能保證數據傳輸的完整性和正確性;而交換機不但可以對數據的傳輸做到同步、放大和整形,而且可以過濾短幀、碎片等。
從工作方式來看,集線器是一種廣播模式,也就是說集線器的某個端口工作的時候其他所有端口都有名收聽到信息,容易產生廣播風暴。當網絡較大的時候網絡性能會受到很大的影響,那麼用什麼方法避免這種現象的發生呢?交換機就能夠起到這種作用,當交換相工作的時候只有發出請求的端口和目的端口之間相互響應而不影響其他端口,那麼交換機就能夠隔離衝突域和有效地抑制廣播風暴的產生。
從隔離的衝突域來看,集線器不管有多少個端口,所有端口都共享一條帶寬,在同一時刻只能有兩個端口傳送數據,其他端口只能等待;同時集線器只能工作在半雙工模式下。而對於交換機而言,每個端口都有一條獨佔的帶寬,當兩個端口工作時並不影響其他端口的工作,同時交換機不但可以工作在半雙工模式下也可以工作在全雙工模式下。
虛擬局域網VLAN
由一些局域網網段構成的與物理位置無關的邏輯組,而這些網段具有某些共同的需求。虛擬局域網特點:
1.同一橋接網絡上的不同主機及網絡設備邏輯地分割成不同的組,組與組間不能直接進行數據交互,這樣就避免了不同組間相互干擾,也保證同一組內數據的安全。
2.每個VLAN 幀都有一個明確的標識,指明發送這個幀的工作站是屬於那一個VLAN。
3.當任意結合的局域網絡構成VLAN時,本機信息包含了IEEE 802.10 VLAN 的標識ID,如果此ID不能被設備所接收則被過濾掉,只有本機的信息才能從本交換機發出。這種策略的用途爲可以實現與IEEE 802.10不兼容的設備/網絡的透明通訊。
爲什麼要VLAN?
安全管理的需要:VLAN提供了一種把物理LAN中的成員重新進行分組的辦法。這樣,可以根據管理或安全的需要約束物理LAN成員之間的通信關係,使物理上分佈在異地的物理LAN成員由於同一個管理目標走到一起。
節省佈線成本:VLAN的實施是通過軟件實現的,因此,無需爲改動計算機的邏輯關係而更改網絡的佈線和拓撲結構。
限制LAN中的廣播通信量:VLAN技術能保證只有同一VLAN中的成員之間的通信纔是直接進行的,而不同VLAN的成員之間的通信必須經過交換機的過濾。而且VLAN限制廣播的方法是基於橋接方式的,它比基於路由方式的限制廣播的方法效率要高。VLAN技術能夠在進行邏輯分組、限制廣播和保證效率等要求之間達到較佳的平衡。
VLAN與物理LAN的關係
1.位於不同物理LAN中的主機可以屬於同一個VLAN中,而位於同一個物理LAN的主機可以屬於不同的VLAN中。
2.同一VLAN中的不同物理LAN上的主機可以直接通信,而位於同一物理LAN的屬於不同VLAN的主機不能直接通信。
什麼是三層交換
三層交換(也稱多層交換技術,或IP交換技術)是相對於傳統交換概念而提出的 ,二層交換技術+三層轉發技術。第三層交換的實質含義是基於第三層協議地址來建立第二層的數據通路,交換看起來是在第三層進行的。而且第三層協議數據流被映射爲第二層數據流。具體過程
假設兩個使用IP協議的站點A、B通過第三層交換機進行通信,發送站點A,接收站B。
1.A把自己的IP地址與B站的IP地址比較,判斷B站是否與自己在同一子網內。
2.若B與A在同一子網內,則進行二層的轉發。
3.若B與A不在同一子網內,A向“缺省網關”發出ARP(地址解析)封包,而“缺省網關”的IP地址其實是三層交換機的三層交換模塊。
4.如果三層交換模塊在以前的通信過程中已經知道B站的MAC地址,則向發送站A回覆B的MAC地址。
5.否則三層交換模塊根據路由信息向B廣播一個ARP請求。B得到此ARP請求後向三層交換模塊回覆其MAC地址
6.三層交換模塊保存此地址並回復給發送站A,同時將B站的MAC地址發送到二層交換引擎的MAC地址表中。
7.此後,當A向B發送的數據包便全部交給二層交換處理,信息得以高速交換。由於僅僅在路由過程中才需要三層處理,絕大部分數據都通過二層交換轉發,因此三層交換機的速度很快,接近二層交換機的速度,同時比相同路由器的價格低很多。“一次選路,多次交換”
二層交換、三層交換、路由的比較
二層交換機
1.主要用在小型局域網中,這樣的網絡環境下,廣播包影響不大,二層交換機的快速交換功能、多個接入端口和低廉價格爲小型網絡用戶提供了很完善的解決方案。
2.在這種小型網絡中根本沒必要引入路由功能從而增加管理的難度和費用,所以沒有必要使用路由器,當然也沒有必要使用三層交換機。
三層交換機
1.爲IP設計的,接口類型簡單,擁有很強二層包處理能力,適用於大型局域網。
2.爲了減小廣播風暴的危害,把大型局域網劃分成一個個的小局域網(小網段),則導致不同網段這間存在大量的互訪,二層交換機沒辦法實現網間的互訪;路由器則由於端口數量有限,路由速度較慢,限制了網絡的規模和訪問速度。
路由器
1.端口類型多,支持的三層協議多,路由能力強,所以適合於在大型網絡之間的互連。
2.路由器的主要功能不在於在端口之間進行快速交換,而是要選擇最佳路徑,負載分擔,鏈路備份和路由信息交換。
3.是否使用三層交換機替換路由器則視具體情況而定(網絡流量、響應速度要求和投資預算)。
4.三層交換機的最重要目的是加快大型局域網內部的數據交換,揉合進去的路由功能也是爲這目的服務的,所以它的路由功能沒有同一檔次的專業路由器強。
5.在網絡流量很大的情況下,如果三層交換機既做網內的交換,又做網間的路由,必然會大大加重了它的負擔,影響響應速度。在網絡流量很大,但又要求響應速度很高的情況下由三層交換機做網內的交換,由路由器專門負責網間的路由工作,這樣可以充分發揮不同設備的優勢,是一個很好的配合。當然,如果受到投資預算的限制,由三層交換機兼做網間互連,也是個不錯的選擇。
交換機與路由器
交換機的作用可以簡單的理解爲將一些機器連接起來組成一個局域網。而路由器的作用在於連接不同的網段並且找到網絡中數據傳輸最合適的路徑 。
1.工作層次不同
最初的的交換機是工作在OSI/RM開放體系結構的數據鏈路層,也就是第二層,而路由器一開始就設計工作在OSI模型的網絡層。由於交換機工作在OSI的第二層(數據鏈路層),所以它的工作原理比較簡單,而路由器工作在OSI的第三層(網絡層),可以得到更多的協議信息,路由器可以做出更加智能的轉發決策。
2. 數據轉發所依據的對象不同
交換機是利用物理地址或者說MAC地址來確定轉發數據的目的地址。而路由器則是利用不同網絡的ID號(即IP地址)來確定數據轉發的地址。IP地址是在軟件中實現的,描述的是設備所在的網絡,有時這些第三層的地址也稱爲協議地址或者網絡地址。MAC地址通常是硬件自帶的,由網卡生產商來分配的,而且已經固化到了網卡中去,一般來說是不可更改的。而IP地址則通常由網絡管理員或系統自動分配。
3. 傳統的交換機只能分割衝突域,不能分割廣播域;而路由器可以分割廣播域
由交換機連接的網段仍屬於同一個廣播域,廣播數據包會在交換機連接的所有網段上傳播,在某些情況下會導致通信擁擠和安全漏洞。連接到路由器上的網段會被分配成不同的廣播域,廣播數據不會穿過路由器。雖然第三層以上交換機具有VLAN功能,也可以分割廣播域,但是各子廣播域之間是不能通信交流的,它們之間的交流仍然需要路由器。
4 路由器提供了防火牆的服務
路由器僅僅轉發特定地址的數據包,不傳送不支持路由協議的數據包傳送和未知目標網絡數據包的傳送,從而可以防止廣播風暴。
交換機一般用於LAN-WAN的連接,交換機歸於網橋,是數據鏈路層的設備,有些交換機也可實現第三層的交換。 路由器用於WAN-WAN之間的連接,可以解決異性網絡之間轉發分組,作用於網絡層。他們只是從一條線路上接受輸入分組,然後向另一條線路轉發。這兩條線路可能分屬於不同的網絡,並採用不同協議。相比較而言,路由器的功能較交換機要強大,但速度相對也慢,價格昂貴,第三層交換機既有交換機線速轉發報文能力,又有路由器良好的控制功能,因此得以廣泛應用。
IP分片控制
IP(IPV4)爲什麼要分片?如何控制分片?分片在何處?爲什麼?分片在何處重組?分片的數據包時越大越好還是越小越好?爲什麼?
分片原因:物理網絡都存在最大的傳輸單元限制,也就是MTU限制,IP報文較大時,無法將一個IP數據包封裝在一個物理幀中。因此需要將IP數據拆分成多個報文,多次發送出去。以太網的MTU一般爲1500個字節(去掉物理網絡的幀頭幀尾,實際傳輸數據無法達到1500)。IP數據最大可達64k(IP協議中長度字段爲16位,因此最大報文可達2^16=64k)
IP分片控制:IP首部中有三個字段參與分片控制。三個字段分別是標識(Identificatoin,16bits),標誌(Flags,3bits) 與
片偏移量(Fragment offset,13bits,以字節爲單位)。Identificatoin唯一的標識了數據報,Identificatoin在發送方全局唯一。通過這三個字段可以將屬於同一報文的不同分片重組成一個完成的報文,詳細不解釋了。
IP分片一般在路由器處進行:當經過一個大MTU的物理網絡到達一個小MTU的物理網絡的時候,路由器會將數據報拆分使其能夠通過小MTU的物理網絡傳輸。沒有在發送端分片的原因是因爲發送源無法知道路徑上最小的MTU到底是多大。
IP在目的站主機進行重組:因爲它允許每個分片能夠獨立選擇路由,不需要中間路由器存儲和重組分片。但它也有缺點:丟失一個數據片意味着丟失整個數據報;小的數據報文通過較大MTU的物理網絡時效率較低。
IP分片越大越好:分片越大,則分片數量越少,那麼選路負擔會減輕;分片數量少,那麼出錯的機率也低;另外,分片數量越少,額外的報文首部數據越少,信道利用率更高。
IPV6對分片有一定改變。IP分片不再在中間路由器進行。分片是端對端的,在發送源分片,目的站重組。負責分段的源站可以選擇1280字節的最小MTU,也可以執行路徑MTU發現(Path MTU Discovery)技術,獲取從源站到目的站最小的MTU。採用端到端分片的目的是爲減少路由器的負擔,這樣路由器能夠處理能夠的報文。端到端分片也造成一個後果,就是數據報文長度超過物理網絡的MTU後會被丟棄(因爲路由可能會被改變),然後向源站返回一個ICMP報文。
爲什麼要三次握手?
我們知道,3次握手完成兩個重要的功能,既要雙方做好發送數據的準備工作(雙方都知道彼此已準備好),也要允許雙方就初始序列號進行協商,這個序列號在握手過程中被髮送和確認。 現在把三次握手改成僅需要兩次握手,死鎖是可能發生的。作爲例子,考慮計算機A和B之間的通信,假定B給A發送一個連接請求分組,A收到了這個分組,併發送了確認應答分組。按照兩次握手的協定,A認爲連接已經成功地建立了,可以開始發送數據分組。可是,B在A的應答分組在傳輸中被丟失的情況下,將不知道A是否已準備好,不知道A建議什麼樣的序列號,B甚至懷疑A是否收到自己的連接請求分組。在這種情況下,B認爲連接還未建立成功,將忽略A發來的任何數據分組,只等待連接確認應答分組。而A在發出的分組超時後,重複發送同樣的分組。這樣就形成了死鎖。
tcp擁塞控制
congeston
collapse:當網絡發生擁塞後,數據報填滿路由器緩存,路由器滿負荷路由,對機器則表現爲網絡時延加大,網絡時延加大後,那麼造成數據報超時的機率增大,數據報超時後,主機通常的反應就是重傳,報文重傳不會減輕擁塞,只會加重擁塞。
發送源對擁塞響應:TCP標準推薦處理技術:慢啓動,加速遞減
加速遞減策略:一旦發生擁塞(路由器丟棄報文時會發送ICMP源站抑制報文),那麼立即將擁塞窗口減半 (擁塞窗口將影響滑動窗口協議的窗口大小);對於保留在發送窗口中的報文段,將重傳定時器的時限加倍(這樣能夠容忍更大的網絡時延,使得因報文超時而重傳的可能性降低)
慢啓動恢復:在啓動新連接的傳輸或者擁塞之後增加通訊量時,僅僅以一個報文段作爲擁塞窗口的初始值,而每當收到一個確認後,將擁塞窗口增加1。
慢啓動是爲了防止通訊量在0和擁塞間劇烈震盪。想象一下,如果窗口直接全部恢復,那麼將會瞬時發送大量報文,將很可能馬上導致擁塞,擁塞後通訊量馬上又會暴減;通訊量減少後馬上又恢復,馬上又將導致擁塞。
擁塞避免:當擁塞窗口到達擁塞時窗口大小的一半時,TCP將進入擁塞避免狀態,降低窗口增大的速度。此時窗口中所有的報文段都被確認之後,窗口大小也只能增加1。擁塞避免是爲了避免窗口增加過快以至於導致更多的擁塞。
路由器對擁塞響應:丟棄報文
丟棄策略有尾部丟棄與隨機早期丟棄RED。尾部丟棄是當路由器緩存滿了以後,後面來的報文直接全部丟棄。
隨機早期丟棄則是在路由器緩存快要滿時隨機性的丟棄報文,使部分發送主機提前進行擁塞控制狀態,從而避免全局同步。
RED的詳細策略:數據報到達時,若緩存已滿,則丟棄報文,若緩存未滿,但大小已經超過了上限閾值,則按概率p丟棄該報文。
CS模型與SOCKET編程
畫了兩個示意圖,根據印象畫的,圖裏面讀取數據與發送數據的順序可以任意按照自己的意願進行設置。如果有問題,歡迎拍磚。另外,實際進行socket開發的時候可能要比這個過程要複雜一些,還需要考慮一些其他問題,比如,字節順序,阻塞還是非阻塞,如果有多個socket,該如何進行控制?(IO複用,select, poll)
基於UDP的
基於TCP的
其他小topic
UDP:提供和IP報文一樣的服務: 無連接、 無流控、 無擁塞控制;Lan中效果很好;在Wan中效果較差
IGMP:組播協議
SNMP:網絡管理
ARP,RARP:提供IP地址與MAC地址映射
解決IP地址短缺的辦法:子網劃分,CIDR,NAT
一個網絡協議主要由以下三個要素組成:
1.語法,即數據與控制信息的結構或格式;
2.語義,即需要發出何種控制信息,完成何種動作以及做出何種響應;
3.同步,即事件實現順序的詳細說明。
協議分層
爲簡化問題、減少協議設計的複雜性,大多數網絡都採用類似於外交官的層次結構,按層或級的方式來組織,因此協議也是分層次的。分層可以帶來如下好處:
(1)各層之間是獨立的。
(2)靈活性好。
(3)結構上可分割開。
(4)易於實現和維護。
(5)能促進標準化工作。
全雙工通信
全雙工數據通信允許數據同時在兩個方向上傳輸,因此,全雙工通信是兩個單工通信方式的結合,它要求發送設備和接收設備都有獨立的接收和發送能力。
無線局域網標準:IEEE802.11:2Mbps
IEEE802.11b:
IEEE
IEEE
鏈路層協議:這幾個俺是搞不太清楚的。略去。
停止等待協議
連續ARQ
滑動窗口協議
HDLC
PPP
SLIP
同步與異步傳輸
數字信號傳輸到接收端時,接收端必須判斷所收到的碼元是1還是0,判斷的方法有同步和異步(asynchronous)兩種方式。
同步方式:收發雙方有相同的時鐘,因此接受方知道在何時接收每個數據位。同步方式中,發送端連續發送一串字符(或數據塊),一個字符緊接在另一個字符之後,字符間沒有間隙。每一個數據塊用一個同步字符SYN開始,用一個SYN 結束。
異步方式:發送端設備可以在任何時刻向信道發送信號,而不管接收方是否知道已開始發送操作。異步方式規定在傳送字符的首末分別設置1位起始 和1位或1.5位或2位停止位,它們分別表示字符的開始和結束。
信道複用技術
頻分複用:當信道帶寬大於各路信號的總帶寬時,可以將信道分割成若干個子信道,各個子信道間要留一個寬度(保護帶)每個子信道用來傳輸一路信號,這就是頻分多路複用。
時分複用:當信道能達到的數據傳輸率大於各路信號的數據傳輸率總和時,可以將使用信道的時間分成一個個的時間片,按一定規則將這些時間片分配給各路信號,每一路信號只能在自己的時間片內獨佔信道進行傳輸,這就是時分多路複用。
波分多路複用:FDM應用於光纖信道的一個變例。不同的信源使用不同波長的光波來傳輸數據,各路光波經過一個棱鏡或衍射光柵合成一個光束在光纖幹道上傳輸,在接收端利用相同的設備將各路光波分開。
碼分多址(Code Division Multiple Access,CDMA):,在CDMA中,每個比特時間又再分成m個碼片,每個站分配一個唯一的m比特碼序列,當某個站欲發送“1”時,它在信道中發送它的碼序列,當欲發送“0”時,它就發送它的碼序列的反碼。
IP地址與MAC地址
1.IP地址放在IP數據報的首部;硬件地址則放在MAC幀的首部
2.IP層抽象的互連網上,只看到IP數據報;
3.路由器只根據目的站的IP地址進行選擇;
4.在具體的物理網絡的鏈路層,只看到MAC幀;IP數據報被封裝在MAC幀裏面;
5.路由器都有各自的IP地址和兩個硬件地址;
問題:
1.主機或路由器怎樣知道應當在MAC幀的首部添入什麼樣的硬件地址?(ARP)
2.路由器中的路由表是怎樣得到的?(動態路由協議,如RIP,OSPF,BGP等)
無分類編址CIDR
CIDR消除了傳統的A類、B類和C類地址以及劃分子網的概念。使用網絡前綴來代替網絡號和子網號。使用斜線記法。例如,128.14.46.34/20。
在路由器中的路由表的項目也應作相應的調整。由“網絡前綴”和“下一跳地址”組成。解決多個匹配的原則是:應當從匹配結果中選擇具有最長網絡前綴的路由(最長前綴匹配)。
IP多播( Multicast)
IP多播是指一個IP報文向一個“主機組”的傳送,這個包含零個或多個主機的主機組由一個單獨的IP地址標識。除了目的地址部分,多播報文與普通報文沒有區別,網絡盡力傳送組播報文但是並不保證一定送達。多播使用D類地址。
IP路由算法框架
從IpPacket中提取目的IP地址D,計算網絡前綴N;
If N與路由器直接連接的 網絡地址匹配
Then 在該網絡上直接投遞
Else If RT中包含到D的路由
Then 將IpPacket發送到RT中指定的下一站
Else lf RT中包含到N的路由
Then 將IpPacket發送到RT中指定的下一站
Else If RT中包含默認路由
Then 將IpPacket發送到路由表中指定的默認路由器
Else 路由選擇錯誤;
ICMP
作用:報告差錯情況和提供有關異常情況的報告。
引入icmp原因:ip不提供出錯信息,網絡中存在差錯,ip不提供可靠性保證。常見ICMP報文有終點不可達、源站抑制、時間戳請求或回答、路由器詢問或通告等
在對 ICMP 差錯報文進行響應時,永遠不會生成另一份 ICMP 差錯報文,why?原因同上,避免死循環:如果沒有這個限制規則,可能會遇到一個差錯產生另一個差錯的情況,而差錯再產生差錯,這樣會無休止地循環下去。另外,在發生擁塞時,差錯報文本身會加劇網絡的擁塞情況。 PS:ICMP 報文使用 IP 發送數據,但並不把它看成是高層協議,它是 IP 的一個必要部分。用 IP 傳遞 ICMP報文的原因是可能需要經過幾個物理網路才能到達其最終目的地,因此不能僅用物理傳送來投遞它們
雙協議棧
網絡互聯的中間設備
中繼器(Repeater) 物理層
網橋(Bridge),交換機 數據鏈路層
路由器(Router) 網絡層
網關(Geteway) 網絡層以上
RIP必須處理的3類問題
1.路由環路問題:不能完全檢測出路由環路;假定其他路由器都是可信的
2.路由穩定問題:路由長度必須有上限,RIP採用16作爲上限。16表示不可達、3.或者路徑無限長。
慢收斂、無限計數問題:更新報文在網絡中的傳播速率慢,路由達到一致性的收斂速率慢
面向連接與無連接
面向連接服務
1.連接:兩個數據實體爲進行數據通信而進行的一種結合
2.面向連接服務過程:連接建立、數據傳輸、連接釋放。
3.虛電路服務:
4.面向連接的服務適應:一定時間內向同一個目的地發送許多報文。
無連接服務
1.兩實體間通信不需先建立好一個連接。
2.特點:靈活方便和比較迅速。不能防止報文丟失、重複或失序,屬不可靠連接。
3.適用:傳送少量零星報文
虛電路與數據報服務
對比的方面 |
虛電路服務 |
數據報服務 |
思路 |
可靠通信應當由網絡來保證 |
可靠通信應當由用戶主機來保證 |
連接的建立 |
必須有 |
不要 |
目的站地址 |
僅在連接建立階段使用,每個分組使用短的虛電路號 |
每個分組都有目的站的全地址 |
路由選擇 |
在虛電路建立時進行,所有分組均按同一路由 |
每個分組獨立選擇路由 |
當結點出故障時 |
所有通過出故障的結點的虛電路均不能工作 |
出故障的結點可能會丟失分組,一些路由可能會發生變化 |
分組的順序 |
總是按發送順序到達目的站 |
到達目的站時不一定按發送順序 |
端到端的差錯處理和流量控制 |
由分組交換網負責 |
由用戶主機負責 |
三次握手完成的兩個主要功能
1.確保雙方都已準備好數據資料傳送
2.確定了雙方的起始序號,窗口大小等資源信息
TCP用可變滑動窗口解決流量控制
流量控制必要性:由於發送速率可能大於接收速率、接收緩衝區不是足夠大不能緩存所有接收到的報文、接收端的應用進程未能及時從接收緩衝區讀取數據等原因,TCP接收端的接收緩衝區很快就會充滿;從而造成不能接收後續的數據,發送端此時發送數據也是不必要的,因此需要流控。
流控主要解決TCP發送端和接收端間的速率匹配;即如何根據接收端的當前接收能力來調整發送端的發送速率。
我覺得這個也比較重要。但是不想寫了。不好寫。網絡書一般都有。TCPIP詳解在第20章。
TCP的特殊服務
1、PUSH機制:爲那些需要及時傳輸請求、及時處理請求並回應的進程通信應用提供保障的一種機制;
2、緊急數據 爲在TCP數據流中及時插入和傳輸緊急數據提供支持的一種服務。緊急數據不是按序處理的一種數據。PUSH機制中,數據是按序處理的。
TTL字段的作用:防止死循環了。比如說,當路由器癱瘓或者兩個路由器之間的連接丟失時,路由協議有時會去檢測丟失的路由並一直進行下去。在這段時間內,數據報可能在循環迴路被終止。TTL字段就是在這些循環傳遞的數據報上加上一個生存上限。
TCP計時器:四個,重傳計時器,keep alive計時器,堅持計時器與時間等待計時器
重傳計時器 報文丟失 要設置超時時間,重傳報文
keep alive計時器:過一個時間段探測tcp連接是否有效
堅持計時器:流量控制中的0窗口大小通報
時間等待計時器:關閉連接
TCP提供可靠通信的機理
問題
底層協議不可靠、高層協議如何可靠
產生的問題:報文丟失、出錯、延遲、失序
解決辦法
1)報文出錯:差錯控制
2)報文丟失、出錯:確認、重傳
3)報文延遲:報文丟失假象:重傳 消除重複報文(報文編號)
4)報文失序:依序接受
5)收發同步、協調:流控機制,滑動窗口
最後再放幾個問題,有些是細節問題:
1.怎樣理解“Internet的互聯是基於網絡的互聯,而不是基於主機的互聯”
2.請談談你對IP地址、MAC地址的理解
3.IP報文的分片和重裝是有什麼設備完成的?原因何在
4.路由器是如何處理IP報文中的TTL字段的?IP報文中TTL的作用是什麼?
5.能否讓IP報文能夠按照某個預先設定的路徑到達目的地?若能,請告知怎麼做?若不能,請闡述理由。
6.請闡明IP報文的直接交付和間接交付過程。
7.IP報文在傳輸過程中會出現某種差錯,爲何ICMP只能向源站報告差錯?
8.請闡述距離向量和鏈路狀態路由協議的優劣。
9.UDP數據報協議只是在IP數據報服務的基礎上增加了很少的一點功能,且和IP一樣是不可靠的,那麼UDP是否可由IP替代呢?請說明理由。
10. IP不可靠的,而基於IP的TCP確是可靠的,試說明原因?
11. TCP確認報文丟失,是否會引起重傳?請舉例說明。
12. 什麼是TCP糊塗窗口綜合症?它是怎麼引起的?
13. TCP採用的擁塞控制策略是什麼?
14. 組播與單播的差異體現在哪些方面?
15. 請闡明基於TCP、UDP端口映射的NAT轉換原理
16. 爲何一臺主機從一個網絡移到另一個網絡需要改變其網絡地址?一臺正使用TCP進行通信的主機,改變其網絡地址對其TCP通信產生何種影響?
17. 多媒體實時通信,通常採用UDP協議,原因何在?
18. 試從TCP的報文格式來說明TCP支持雙工通信。
19. BGP協議爲使用路徑向量,而不是用距離向量和鏈路狀態,原因何在?
參考資料:
TCP詳解卷一協議
用TCPIP進行網際互聯
謝希仁版網絡原理
互聯網絡協議PPT
網絡原理PPT
局域網PPT
TCP連接建立與關閉
http://hi.baidu.com/layer7/blog/item/cb1243166bd6f11c962b430f.html
Internet控制報文協議ICMP
http://hi.baidu.com/layer7/blog/item/b140a79bdef70db1c8eaf422.html
IPv6鄰居發現機制
http://sj.media.edu.cn/xiayidai/index2.php?IDx=204
計算機筆試的一些問題
http://hi.baidu.com/xianfir/blog/item/644980353040e01490ef39aa.html
個人blog
TCP/IP協議 之一
http://blog.csdn.net/kofsky/archive/
TCP數據流傳輸遇到的問題
http://blog.csdn.net/kofsky/archive/
Select()系統調用及文件描述符集fd_set的應用
http://blog.csdn.net/kofsky/archive/
tcp/ip協議 之二
http://blog.csdn.net/kofsky/archive/
SNMP
http://blog.csdn.net/kofsky/archive/
TCPIP之三:
http://blog.csdn.net/kofsky/archive/
其他如果還有些重要的話,我覺得就是子網劃分了。就是給一個IP地址,然後有一些需求信息,然後讓你劃分成幾個子網。這個並不難~~我看能不能在網上找個這樣的例子~~~
完了