week 7 - zxc22273146/TCP-IP GitHub Wiki

路由器運作原理以及網路互連技術(Internetworking)

  • IP Service Model

    Connectionless model for data delivery

    Best-effort delivery(unreliable service)

    IP provides global addressing scheme to identify all hosts in the Internet

  • 當封包經由IP服務在互聯網上被傳遞時,可能會有下列狀況。

    封包可能被路由器丟棄

    封包傳遞順序可能紊亂

    封包可能被延遲很長一段時間

  • Layer 3 router uses store and forward scheme

    A router only passes frames destinated to the router to IP layer

  • IP address 總共有32位元(IPv4),40億個address

    寫法:network+host

    class A type(大型網路):0+7 bits network+31 bits host

    class B type(中型網路):10+14 bits network+16 bits host

    class C type(小型網路):110+21 bits network+8 bits host

  • Intra LAN:封包的MAC位址直接寫目的地位址

    Inter-LAN:封包的MAC位址先寫經過的router的位址,再由router去轉送。

  • 直接相連就送,間接相連就送給router。

  • Each host has a default router

  • 當路由器收到封包,且此封包的大小超過將被轉送網路的MTU,路由器會將此封包切割。

    重組不會在下一站的路由器完成,而是在目的主機。

    屬於原相同封包之片段攜帶相同的辨識碼

    每個片段都是一個完整的封包

  • router的特性

    過濾廣播及群播封包

    Easy to support mixed media

    Packet fragmentation and reassembly

    過濾特定的IP(類似防火牆的功用)

    Accounting

  • 網路遮罩

    假設有一子網路128.96.34.0其遮罩為255.255.255.128,則128.96.34.0~128.96.34.127都屬於它。

    假設有一子網路128.96.34.128其遮罩為255.255.255.128,則128.96.34.128~128.96.34.255都屬於它。

    假設有一子網路128.96.33.0其遮罩為255.255.255.0,則128.96.33.0~128.96.33.255都屬於它。

  • Classless Inter-Domain Routing(CIDR)

    CIDR uses aggregate routes(使用累積路由,在路由表中的單一項目即可告訴路由器許多不同之網段)

    是一個處理骨幹網路路由器路由表大小問題的技術

    習慣上會在前綴後加上"/X",而X的值表示此前綴的長度(位元數)

    192.4.16到192.4.31的網路的前綴是192.4.16/20(16=00010000、31=00011111,加上前面16位元共有20位元相同,如192.4.16.0001)

    一個單一class C網路編號192.4.16可以表示成192.4.16/24

  • Address Resolution Protocol(ARP)

    它被用來依據IP位址尋找其對應的實體MAC位址

    每個主機有一個IP/MAC對照表以綁定IP位址與MAC位址

    當目的地主機收到ARP請求,它會回覆自己的實體MAC位址

  • Dynamic Host Configuration Protocol(DHCP)

    每一個管理網域裡至少有一台DHCP伺服器

    DHCP伺服器負責提供設置資訊給主機

    DHCP伺服器維護並管理一組可用的位址

    新啟動的主機發送DHCP DISCOVER訊息到一個IP=255.255.255.255的位址

  • Internet Control Message Protocol(ICMP)

    當路由器或主機無法成功處裡一個IP封包時,會將錯誤訊息送回給來源主機

    ICMP協議會回報的錯誤有:封包無法到達目的地主機、封包重組失敗、封包的標頭TTL值變為0、IP標頭檢查碼檢查出錯誤、因網路阻塞造成路由器丟棄封包

  • Distance Vector

    Every T seconds each router sends its routing table to its neighbors

    每個節點建立一個一維陣列(向量),其包含"距離"(成本)到所有其他節點,並散布給緊鄰的鄰居。

    Fast response to "good news" and slow response to "bad news".(快速反應好的消息,緩慢反應壞的消息)

  • Count-to-infinity problem:router彼此在交換routing table時陷入迴圈,導致路徑變成無限大。

  • Split horizon(水平切割):當一個節點發送一個路由更新訊息給它的鄰居,它不將由某個鄰居學到的路徑再回送給該鄰居。

  • Split horizon with poison reverse(水平切割毒藥反向):當一個節點發送一個更新訊息給它的鄰居,會將由某個鄰居學到的路徑再回送給該鄰居,且該訊息包含負面訊息(譬如無限大)。

  • Link state routing:每個節點建立一個一維陣列(向量),其包含"距離"(成本)到緊鄰的的鄰居,並散布給所有其他節點

    Link state packet(LSP):鏈結狀態封包(LSP)是藉由可靠洪水廣播演算法(reliable flooding algorithm)送給其他所有節點

  • Open Shortest Path First(OSPF 開放式最短路徑優先)

    它是基於鏈結狀態的路由協議

    每個路由器藉由Dijkstra演算法(Dijkstra's algorithm),根據目前為止收到的LSP封包內容去計算它的路由表

    每一個路由器會找出該路由器到所有節點的最短路徑