商用資料通訊Ch8筆記_TCP/IP Internetworking I_part1

ARP(Address Resolution Protocol)
對方的IP Address對方的Mac Address

若只知道 IP address 時,下層的資料連結層無法傳送封包,因此必須查出目的 IP
address 主機的實體位址 (MAC address)。

如果接收端與發送端在同一個子網路
主機或路由器傳送 ARP 詢問封包,此封包涵蓋傳送者的實體位址和 IP 位址,以及接收者的 IP 位址。由於傳送者不知道接收者的實體位址,詢問廣播到整個網路上的每一台主機和路由器接收並處理ARP 詢問封包,但只有預期的接收者認識它的 IP 位址,於是送回 ARP 回應封包。回應封包包括接收者的 IP 和實體位址,並且利用詢問封包中的實體位址直接以單播的方式回覆傳
送者。

如果接收端與發送端屬於不同的子網路
將會由路由器代替遠處的接收端,回答路由器的MAC 位址,以便將來傳送封包時,由路由器代為轉送。




ARP cache
為了將廣播數量最小化,ARP 會維護 IP 位址到媒體存取控制位址 (MAC Address) 對應的快取,以供未來使用。ARP 快取可以包含動態及靜態資料項目。每隔一段時間將自動新增及移除動態資料項目。靜態資料項目一直保留在快取中,直到重新啟動電腦。每個動態 ARP 快取項目有10 分鐘的潛在存留時間。新增到快取中的新項目會加上時間戳記。如果項目在新增後的2 分鐘之內未重新使用,那麼將過期,並從 ARP 快取中移除。如果項目已使用,那麼存留時間將
再加上兩分鐘。如果持續使用某項目,那麼會得到額外的2 分鐘存留時間,存留時間最長可達10 分鐘。



What are the three parts of an IP address? How long is each part?
分別是網路部分、子網路部分和主機部分。每個部分的長度取決於IP地址的類型。
IPv4地址,網路部分通常是8位元、16位元或24位元長度,子網路部分和主機部分的長度則取決於網路的需求。IPv6地址則由128位元組成,其中前64位元是網路前綴,後64位元是主機識別符。

What is the total length of an IP address?   -> IPv4 : 32bits , IPv6:128bits

In the IP address, 10.11.13.13, what is the network part?
在IP地址10.11.13.13中,網路部分是前三個數字,即10.11.13,取決你給定的遮罩。
/8 - 10 will be the network portion
/16 - 10.11 will be the network portion
/24 - 10.11.13 will be the network portion

How many bits are there in a mask? 有32位

What do the 1s in a network mask correspond to in IP addresses?
在網路遮罩中,前面的1對應於IP地址的網路部分。這意味著網路遮罩中前面的1的數量表示IP地址中用於網路部分的位數。例如,如果一個網路遮罩是255.255.0.0,在點分十進制表示法中,它寫作255.255.0.0。

What do the 1s in a subnet mask correspond to in IP addresses?
子網路遮罩中前面的1的數量表示IP地址中用於網路和子網路部分的位數。
如果一個子網路遮罩有24個前導1(表示為/24),代表前24位用於網路和子網路部分,而剩餘的位用於主機地址。

When a network mask is applied to any IP address on the network, what is the result?
當網路遮罩應用於網路上的任何IP地址時,結果是將IP地址分成網路部分和主機部分。網路部分由遮罩中的前面的1表示,而主機部分由遮罩中的後面的0表示。
如果一個IP地址是192.168.1.10,而它所屬的網路遮罩是255.255.0.0,那麼它所屬的網路部分是192.168,而它所屬的主機部分是1.10。因此,應用網路遮罩後,可以確定該IP地址所屬的網路。

A mask has eight 1s, followed by 0s. Express this mask in dotted decimal notation.
遮罩有8位1和24位0,因此在二進位制中,前8位都是1,後24位都是0,將這個二進位數字轉換為十六進位表示法,每4位一組,得到「FF00」。因此,這個遮罩的二進位表示法是1111111100000000,共16位1和16位0。將這個二進位數字轉換為十進制表示法,每8位一組,得到255.255.0.0,點分十進制表示法是255.255.0.0。

Express this mask in prefix notation.
這個遮罩有8位1和24位0,因此它的前綴表示法是「/8」

In prefix notation, a mask is /16. Express this mask in dotted decimal notation.
這個遮罩有16個連續的1,在前綴表示法中表示為「/16」,其二進位為11111111111111110000000000000000,將這個二進位數字轉換為十六進位表示法,每4位一組,得到「FFFF0000」,將每組十六進位數字轉換為十進位數字,得到「255.255.0.0」。因此,這個遮罩的點分十進制表示法是255.255.0.0。

Express the mask /18 in dotted decimal notation.
在前綴表示法中,遮罩的值等於遮罩中連續1的位數。因此,這個遮罩有18個連續的1,在前綴表示法中表示為「/18」。接著,將這個二進位數字轉換為十六進位表示法,每4位一組。首先,前16位(即16個1)轉換為十六進位數字「FFFF」。接著,第17和18位(即2個1)轉換為十六進位數字「C0」。最後,將後面14個0轉換為十六進位數字「0000」。因此,這個遮罩的點分十進制表示法是255.255.192.0。

Private Address Space(0 換255,16 換成31。)
(1)10.0.0.0-10.255.255.255
(2)172.16.0.0-172.31.255.255
(3)192.168.0.0-192.168.255.255
用於企業內網路 (Intranet),不對外連線。
內部網路使用 Virtual IP,透過NAT(Network Address Translation)或Proxy Server對外連接Internet。

網路遮罩(Network Masks)
網路遮罩是一個32位元的二進制數字,用於區分IP地址中的網路部分和主機部分。
與IP地址結合使用,以確定特定IP地址所屬的網路。
簡單來說,網路遮罩是一個掩蓋,用於將IP地址劃分為網路和主機兩個部分
Class A(/8)  - 255.0.0.0
Class B(/16) - 255.255.0.0
Class C(/24) - 255.255.255.0

子網路遮罩(Subnet Masks):用於將一個大型的IP網絡劃分成多個子網
可用來判定 IP 是否位於相同子網路。如果設定錯誤,則無法與相同子網路的IP通訊。

Masking When Masks Do Not Break at 8-Bit Boundaries
當子網掩碼的位元數不是8的倍數時,意味著子網掩碼不能將IP地址分成整個字節(8位)的部分,而是需要使用原始32位IP地址和目標字段值進行比較。在這種情況下,需要使用二進制表示法來比較IP地址和子網掩碼,以確定它們是否匹配。

If a subnet mask contains 24 ones (/24), how many hosts can each subnet support?
如果子網掩碼包含24個1(/24),則每個子網可以支持多少主機取決於IP地址的類型。對於IPv4地址,一個子網掩碼包含24個1表示有8位被用於指定子網,而剩下的8位被用於指定主機。因此,一個子網可以支持2^8-2 = 254台主機。
由於有24個1,因此有8位被用於指定子網。 每個字節(即8位)可以表示256種可能性(從0到255)。 因此,一個子網可以表示256個IP地址。 但是,其中兩個IP地址是保留的:全0和全1的IP地址不能分配給主機或路由器。

某位址為140.120.84.24/20,請求出其所屬區塊的終止位址為何?
位址為 (140.120.84.24/20)10 = (10001100 01111000 01010100 00011000)2
前置位元長度為20 位元,所以保留前面20 的位元,將後面12個位元改為0。
起始位址為 (140.120.80.0)10 = (10001100 01111000 01010000 00000000)2
遮罩補數為 (00000000 00000000 00001111 11111111)10 = (0.0.15.255)2
將起始位址與遮罩補數相加來得到終止位址為 (140.120.95.255)10。

An arriving packet has the destination IP address 128.171.180.13. Row 86 has the destination
value 128.171.160.0. The mask is 255.255.224.0. Does this row match the destination IP address? Show your work.
需要將目的地IP地址和目的地值進行比較,以確定它們是否匹配。
首先,將目的地IP地址和子網掩碼進行AND運算,以得到網路地址。
在本例中,子網掩碼是255.255.224.0,其二進位表示法為11111111 11111111 11100000 00000000。將其與目的地IP地址128.171.180.13進行AND運算,得到網路地址128.171.160.0。

接下來,將目的地值128.171.160.0和網路地址128.171.160.0進行比較。由於它們相等,因此可以得出結論:此行與目的地IP地址匹配。

路由決策的步驟(Steps in a Routing Decision)
1. 找到所有匹配目標IP地址的行。(Finding All Row Matches)
2. 確定最佳匹配行。(Find the Best-Match Row)
3. 決定發送數據包的接口。(Send the Packet Back Out)
4. 發送數據包。

Distinguish between Step 1 and Step 2 in the routing process.
在第一步中,路由器會比對數據包的目標IP地址與路由表中的每一行,找到所有與目標IP地址匹配的行。在第二步中,路由器會從所有匹配行中選擇最佳匹配行,以便決定發送數據包的接口。

If any row other than the default row matches an IP address, 
why will the router never choose the default row?
因為路由器會優先選擇最佳匹配行,而不是默認行。默認行只有在沒有其他匹配行時才會被使用,以確保每個到達的數據包都能夠被處理。

Tie-Breaker Rule
當有多個行與目標IP地址匹配時,路由器會使用Tie-Breaker Rule來選擇最佳匹配行。例如,如果有兩個或多個行具有相同的最長匹配長度,則Tie-Breaker Rule將使用指定的度量值(如成本或速度)來選擇最佳匹配行。

In a routing table, what does a row represent?
在路由表中,每一行代表一個IP地址範圍的路由。
Do Ethernet switches have a row for each individual Ethernet address?
乙太網交換機沒有為每個單獨的乙太網地址設置一行。
Do routers have a row for each individual IP address?
路由器沒有為每個單獨的IP地址設置一行。它只需要為每個IP地址範圍設置一行。
What is the advantage of the answer to the previous subparts of this question?
路由器只需要為每個IP地址範圍設置一行,相比之下,乙太網交換機需要為每個單獨的乙太網地址設置一行。這意味著路由器需要比交換機更少的行來處理相同數量的地址。

How can routers be classified based on networking? Name the classes. 
What functions do they perform?
路由器可以根據其網路類型進行分類,主要有三種類型
核心路由器(Core Router):用於連接大型網絡的主幹部分
邊界路由器(Border Router):用於連接不同的網絡
區域路由器(Local Router):用於連接子網絡

How does the topology of routers and switches affect routing and switching processes? Which is more reliable?
路由器和交換機的拓撲結構會影響路由和交換過程,網絡拓撲可以是線性的、星形的、網格狀的或其他形式,線性拓撲可能會導致單點故障,而網格狀拓撲則可以提高可靠性。

What should a router do if it receives several packets going to the same destination IP address?
如果路由器收到多個發往相同目的地IP地址的數據包,它應該對每個數據包都進行完整的三步驟處理。
1. 匹配目的地IP地址:路由器將數據包的目的地IP地址與其路由表中的目的地地址進行比較,以找到最佳匹配(Match Destination IP Address)。
2. 選擇下一跳:一旦找到最佳匹配,路由器就會選擇下一個網絡設備(下一跳),將數據包發送到該設備(Choose Next Hop)。
3. 轉發數據包:最後,路由器將數據包轉發到選定的下一跳設備(Forward Packet)。

換句話說,路由器必須對每個數據包進行獨立處理,不能合併處理。

How would decision caching speed the routing decision for packets after the first one?
決策緩存可以加速路由器對於後續數據包的路由決策。當路由器第一次處理發往某個目的地IP地址的數據包時,它會進行完整的三步驟處理(匹配目的地IP地址、選擇下一跳、轉發數據包)。但是,如果後續有更多的數據包發往同一個目的地IP地址,路由器就可以使用先前緩存(cache)下來的決策,直接跳過第一步驟(匹配目的地IP地址),從而節省時間和資源。

Why is decision caching dangerous?
決策緩存的危險在於可能會導致路由錯誤和故障,當路由器緩存了一個決策後,它可能會長時間使用這個決策,而不再重新計算。然而,網路拓撲和流量情況是會變化的,如果路由器長時間使用過時的決策,就可能導致非最優路由或者甚至無法到達目的地的情況發生。

A router wishes to send an IP packet to a host on its subnet. It knows the host’s IP address.
What else must it know?
還必須知道目的地主機的MAC地址。
Why must it know it?
這是因為在以太網(Ethernet)中,數據包需要使用MAC地址進行封裝和轉發。因此,路由器需要使用ARP協議(Address Resolution Protocol)來查詢目的地主機的MAC地址。

What message will it broadcast?
向子網內廣播一個ARP請求消息,詢問與目的地IP地址相對應的MAC地址。

Which device will respond to this broadcast message?
只有目的地主機會回復一個ARP響應消息,其中包含其自己的MAC地址。當路由器收到這個響應消息後,就可以使用目的地主機的MAC地址來封裝和轉發數據包了。

Does a router have to go through the ARP process each time it needs to send a packet to a destination host or to a next-hop router? Explain.
當路由器需要向目的地主機或下一跳路由器發送數據包時,它必須知道目的地主機或下一跳路由器的MAC地址。為了獲取這個MAC地址,路由器需要使用ARP協議進行地址解析。但是,如果路由器已經知道了目的地主機或下一跳路由器的MAC地址,那麼它就不需要再次進行ARP查詢了。因此,如果在一段時間內沒有發生拓撲變化或者目的地主機沒有更換網卡等情況,路由器可以使用先前緩存的MAC地址來封裝和轉發數據包,而不必再次進行ARP查詢。但是,如果拓撲變化或者目的地主機更換了網卡等情況發生了,那麼路由器就需要重新進行ARP查詢來獲取新的MAC地址。

Is ARP used to find the destination DLL destination addresses of destination hosts, routers, or both?
ARP協議用於尋找目的地主機和下一跳路由器的數據鏈路層(DLL)目標地址。

At what layer does the ARP protocol operate?
ARP協議工作在網路層和數據鏈路層之間,用於解析目的地主機的IP地址到其對應的MAC地址。因此,ARP協議是一個跨越兩個不同層次的協議。

Why must client PCs use ARP to transmit packets?
因為在傳輸數據包之前,客戶端需要知道目的地主機的MAC地址。由於IP地址和MAC地址是不同的,因此客戶端需要使用ARP協議來解析目的地主機的IP地址到其對應的MAC地址。只有知道了目的地主機的MAC地址,客戶端才能夠將數據包發送到正確的位置。

Although decision caching is dangerous for routing of IP packets, ARP—also an Internet
layer protocol—maintains ARP cache. What is the difference between the two?
決策緩存和ARP緩存都是用於提高路由器性能的技術,但它們的作用不同。

決策緩存是一種路由器使用先前的路由決策來加速後續數據包轉發的技術。但是,如果路由表發生變化,這些緩存的決策可能會變得不正確,導致數據包被發送到錯誤的位置。
ARP緩存則是用於在傳輸數據包之前,解析目的地主機或下一跳路由器的MAC地址。當一個主機或路由器收到一個IP數據包時,它會查找其ARP緩存以查找目的地主機或下一跳路由器的MAC地址。如果找到了相應的MAC地址,則可以直接將數據包發送到目的地位置,而無需進行額外的ARP查找。





留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題