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封包內容去計算它的路由表
每一個路由器會找出該路由器到所有節點的最短路徑