IP是怎麼執行的如何查到IP找出IP具體位置資訊!

孟的ITPUB發表於2023-05-03

網路核心概念

傳輸方式

網路根據傳輸方式可以進行分類,一般分為 面向連線型和麵向無連線型

  • 面向連線型中,在傳送資料之前,需要在主機之間建立一條通訊線路。
  • 面向無連線型則不要求建立和斷開連線,傳送方可用於任何時候傳送資料。接收端也不知道自己何時從哪裡接收到資料。

分組交換

為了從源目的地向端系統傳送報文,需要把長報文切分為一個個小的資料塊,這種資料塊稱為分組(Packets),也就是說,報文是由一個個小塊的分組組成。在端系統和目的地之間,每個分組都要經過通訊鏈路和分組交換機,分組要在端系統之間互動需要經過一定的時間,如果兩個端系統之間需要互動的分組為 L 位元,鏈路的傳輸速率問 R 位元/秒,那麼傳輸時間就是 L / R秒。

一個端系統需要經過交換機給其他端系統傳送分組,當分組到達交換機時,交換機就能夠直接進行轉發嗎?不是的,交換機可沒有這麼無私,你想讓我幫你轉發分組?好,首先你需要先把整個分組資料都給我,我再考慮給你傳送的問題,這就是 儲存轉發傳輸

儲存轉發傳輸

下面是一個儲存轉發傳輸的示意圖。

微信圖片_20220417165541.jpg

圖 1-9

由圖 1-9 可以看出,分組 1、2、3 向交換器進行分組傳輸,並且交換機已經收到了分組 1 傳送的位元,此時交換機會直接進行轉發嗎?答案是不會的,交換機會把你的分組先快取在本地。這就和考試一樣,一個學霸要經過學渣 A 給學渣 B 傳答案,學渣 A 在收到答案後,它可能直接把卷子傳過去嗎?學渣 A 說,等我先把答案抄完(儲存功能)後再把卷子給你,當然一個及其有素質的學渣就另說了。

排隊時延和分組丟失

什麼?你認為交換機只能和一條通訊鏈路進行相連?那你就大錯特錯了,這可是交換機啊,怎麼可能只有一條通訊鏈路呢?

所以我相信你一定能想到這個問題,當多個端系統同時給交換器傳送分組,一定存在順序到達和排隊問題。事實上,對於每條相連的鏈路,該分組交換機都會有一個 輸出快取(output buffer)輸出佇列(output queue) 與之對應,它用於儲存路由器準備發往每條鏈路的分組。如果到達的分組發現路由器正在接收其他分組,那麼新到達的分組就會在輸出佇列中進行排隊,這種等待分組轉發所耗費的時間也被稱為 排隊時延,上面提到分組交換器在轉發分組時會進行等待,這種等待被稱為 儲存轉發時延,所以我們現在瞭解到的有兩種時延,但是其實是有四種時延。這些時延不是一成不變的,其變化程式取決於網路的擁塞程度。

因為佇列是有容量限制的,當多條鏈路同時傳送分組導致輸出快取無法接受超額的分組後,這些分組會丟失,這種情況被稱為丟包(packet loss),到達的分組或者已排隊的分組將會被丟棄。

下圖說明了一個簡單的分組交換網路。

微信圖片_20220417165551.jpg

圖 1-10

下面來一個情景模擬:假定主機 A 和 主機 B 要向主機 E 傳送分組,主機 A 和 B 首先透過 100 Mbps 乙太網鏈路將其資料包傳送到第一臺路由器,然後路由器將這些資料包定向到 15 Mbps 的鏈路。如果在較短的時間間隔內,資料包到達路由器的速率(轉換為每秒位元數)超過 15 Mbps,則在資料包在鏈路輸出緩衝區中排隊之前,路由器上會發生擁塞,然後再傳輸到鏈路上。例如,如果主機 A 和主機 B 背靠背同時發了 5 包資料,那麼這些資料包中的大多數將花費一些時間在佇列中等待。實際上,這種情況與許多普通情況完全相似,例如,當我們排隊等候銀行出納員或在收費站前等候時。

轉發表和路由器選擇協議

我們剛剛講過,路由器和多個通訊線路進行相連,如果每條通訊鏈路同時傳送分組的話,可能會造成排隊和丟包的情況,然後分組在佇列中等待傳送,現在我就有一個問題問你,佇列中的分組發向哪裡?這是由什麼機制決定的?

換個角度想問題,路由的作用是什麼? 把不同端系統中的資料包進行儲存和轉發 。在因特網中,每個端系統都會有一個 IP 地址,當主機傳送分組時,會在分組的首部加上主機的 IP 地址。每臺路由器都會有一個轉發表(forwarding table),當一個分組到達路由器後,路由器會檢查分組中目的地址的一部分,並用目的地址搜尋轉發表,以找出適當的傳輸鏈路,然後對映成為輸出鏈路進行轉發。

那麼問題來了,路由器內部是怎樣設定轉發表的呢?詳細的我們後面會講到,這裡只是說個大概,路由器內部也是具有路由選擇協議的,用於自動設定轉發表。

電路交換

在計算機網路中,另一種透過網路鏈路和路由進行資料傳輸的另外一種方式就是電路交換(circuit switching)。電路交換在資源預留上與分組交換不同,什麼意思呢?

就是分組交換不會預留每次端系統之間互動分組的快取和鏈路傳輸速率,所以每次都會進行排隊傳輸;而電路交換會預留這些資訊。一個簡單的例子幫助你理解:這就好比有兩家餐館,餐館 A 需要預定而餐館 B 不需要預定,對於可以預定的餐館 A,我們必須先提前與其進行聯絡,但是當我們到達目的地時,我們能夠立刻入座並選菜。而對於不需要預定的那家餐館來說,你可能不需要提前聯絡,但是你必須承受到達目的地後需要排隊的風險。

下面顯示了一個電路交換網路

微信圖片_20220417165556.png

圖 1-11

在這個網路中,4條鏈路用於4臺電路交換機。這些鏈路中的每一條都有4條電路,因此每條鏈路能支援4條並行的連結。每臺主機都與一臺交換機直接相連,當兩臺主機需要通訊時,該網路在兩臺主機之間建立一條專用的端到端的連結(end-to-end connection)。

分組交換和電路交換的對比

分組交換的支持者經常說分組交換不適合實時服務,因為它的端到端時延時不可預測的。而分組交換的支持者卻認為分組交換提供了比電路交換更好的頻寬共享;它比電路交換更加簡單、更有效,實現成本更低。但是現在的趨勢更多的是朝著分組交換的方向發展。

分組交換網的時延、丟包和吞吐量

因特網可以看成是一種基礎設施,該基礎設施為執行在端系統上的分散式應用提供服務。我們希望在計算機網路中任意兩個端系統之間傳遞資料都不會造成資料丟失,這是一個極高的目標,實踐中難以達到。所以,在實踐中必須要限制端系統之間的吞吐量用來控制資料丟失。如果在端系統之間引入時延,也不能保證不會丟失分組問題。所以我們從時延、丟包和吞吐量三個層面來看一下計算機網路。

分組交換中的時延

計算機網路中的分組從一臺主機(源)出發,經過一系列路由器傳輸,在另一個端系統中結束它的歷程。在這整個傳輸歷程中,分組會涉及到四種最主要的時延:節點處理時延(nodal processing delay)、排隊時延(queuing delay)、傳輸時延(total nodal delay)和傳播時延(propagation delay)。這四種時延加起來就是節點總時延(total nodal delay)。

如果用 dproc dqueue dtrans dpop 分別表示處理時延、排隊時延、傳輸時延和傳播時延,則節點的總時延由以下公式決定:  dnodal = dproc + dqueue + dtrans + dpop。

時延的型別

下面是一副典型的時延分佈圖,讓我們從圖中進行分析一下不同的時延型別。

微信圖片_20220417165600.jpg

圖 1-12

分組由端系統經過通訊鏈路傳輸到路由器 A,路由器 A 檢查分組頭部以對映出適當的傳輸鏈路,並將分組送入該鏈路。僅當該鏈路沒有其他分組正在傳輸並且沒有其他分組排在該該分組前面時,才能在這條鏈路上自由的傳輸該分組。如果該鏈路當前繁忙或者已經有其他分組排在該分組前面時,新到達的分組將會加入排隊。下面我們分開討論一下這四種時延。

節點處理時延

節點處理時延分為兩部分,第一部分是路由器會檢查分組的首部資訊;第二部分是決定將分組傳輸到哪條通訊鏈路所需要的時間。一般高速網路的節點處理時延都在微秒級和更低的數量級。在這種處理時延完成後,分組會發往路由器的轉發佇列中。

排隊時延

在佇列排隊轉發過程中,分組需要在佇列中等待傳送,分組在等待傳送過程中消耗的時間被稱為排隊時延。排隊時延的長短取決於先於該分組到達正在佇列中排隊的分組數量。如果該佇列是空的,並且當前沒有正在傳輸的分組,那麼該分組的排隊時延就是 0。如果處於網路高發時段,那麼鏈路中傳輸的分組比較多,那麼分組的排隊時延將延長。實際的排隊時延也可以到達微秒級。

傳輸時延

佇列是路由器所用的主要的資料結構。佇列的特徵就是先進先出,先進食堂的先打飯。傳輸時延是理論情況下單位時間內的傳輸位元所消耗的時間。比如分組的長度是 L 位元,R 表示從路由器 A 到路由器 B 的傳輸速率。那麼傳輸時延就是 L / R 。這是將所有分組推向該鏈路所需要的時間。正是情況下傳輸時延通常也在毫秒到微秒級。

傳播時延

從鏈路的起點到路由器 B 傳播所需要的時間就是傳播時延。該位元以該鏈路的傳播速率傳播。該傳播速率取決於鏈路的物理介質(雙絞線、同軸電纜、光纖)。如果用公式來計算一下的話,該傳播時延等於兩臺路由器之間的距離 / 傳播速率。即傳播速率是 d/s ,其中 d 是路由器 A 和 路由器 B 之間的距離,s 是該鏈路的傳播速率。

傳輸時延和傳播時延的比較

計算機網路中的傳輸時延和傳播時延有時候難以區分,在這裡解釋一下,傳輸時延是路由器推出分組所需要的時間,它是分組長度和鏈路傳輸速率的函式,而與兩臺路由器之間的距離無關。而傳播時延是一個位元從一臺路由器傳播到另一臺路由器所需要的時間,它是兩臺路由器之間距離的倒數,而與分組長度和鏈路傳輸速率無關。從公式也可以看出來,傳輸時延是 L/R,也就是分組的長度 / 路由器之間傳輸速率。傳播時延的公式是 d/s,也就是路由器之間的距離 / 傳播速率。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028631/viewspace-2949722/,如需轉載,請註明出處,否則將追究法律責任。

相關文章