TCP IP 四 網際層

2021-08-08 21:44:10 字數 4744 閱讀 9210

網際層提供的協議負責區域網網段之外的傳遞,其中重要的協議包括ip、arp和icmp。網際層對應於osi模型的網路層,也就是所謂的第3層。

計算機通過網路介面裝置(比如網路介面卡)與網路進行通訊,網路介面裝置具有唯一的實體地址,用於接收發向該位址的資料。像乙太網網絡卡這樣的裝置對於上層協議層的細節是一點也不了解的,它不知道ip位址,也不知道傳送來的幀是要給telnet還是ftp,它只是監聽是否收到了資料幀,發現其中目標位址與自己實體地址相符的幀,並把這個幀傳遞給上層協議棧。

這種物理定址方式適合單個區域網網段。由不間斷介質連線在一起的若干臺計算機利用實體地址就可以實現所需的功能。只需使用網路訪問層的低階協議就可以把資料從網路介面卡直接傳遞另乙個網路介面卡。但是,在路由式網路中,不能利用實體地址實現資料傳輸,因為根據實體地址進行傳輸所需的過程不能跨越路由介面來執行。即使這樣是可行的,根據實體地址傳輸資料也是非常麻煩的,因為內建在網絡卡裡的固定實體地址不能在位址空間上引入邏輯結構。

因此,tcp/ip隱藏了實體地址,以一種邏輯化、層次化的定址方案對網路進行組織。這種邏輯定址方案由網際層的ip協議維護,而邏輯位址被稱為ip位址。位址解析協議(arp)是另一種網際層協議,它維護乙個**,用於把ip位址對映到實體地址。這個arp表連線了ip位址與網絡卡實體地址。

在乙個路由式網路中tcp/ip軟體使用如下策略在網路上傳送資料。

1.如果目的位址與源位址在同乙個網段,源計算機就把資料報直接傳送給目的計算機。ip位址被arp解析為實體地址,資料被直接傳送到目的網路介面卡。

2.如果目的位址與源位址不在乙個網段上,就執行如下過程。

a)直接將資料報傳送到閘道器。閘道器是位於區域網網段上的乙個裝置,能夠把資料報**到其他網段,閘道器位址被arp解析為實體地址,資料被傳送到閘道器的網路介面卡。

b)資料報通過閘道器被路由到較高階別的網段,再次重複上述過程。如果目的位址在這個新網段裡,資料就被傳送到目的,否則資料報就會被傳送到另乙個閘道器。

c)資料報經過一系列閘道器被**到目的網段,目的ip位址被arp解析為實體地址,資料被傳送到目的網路介面卡。

為了在複雜的路由式網路中傳輸資料,網際層協議必須具有以下功能:

識別網路中所有的計算機;

提供一種方式來判斷何時需要通過閘道器來傳遞訊息;

提供一種與硬體無關的方式來識別目的網段,從而讓資料報能夠高效率地經過路由器到達正確的網段;

提供一種方式把目標計算機的邏輯ip位址轉化為實體地址,讓資料能夠傳輸給目的計算機的網路介面卡。

網際協議(ip)

ip報頭字段

每個ip資料報都以乙個ip報頭開始。源計算機的tcp/ip軟體構造這個ip報頭,目的計算機的tcp/ip軟體利用ip報頭中封裝的資訊處理資料。ip報頭包含大量資訊,包括源ip位址、目的ip位址、資料報長度、ip版本號和對路由器的特殊指令。

ip報頭的最小長度是20位元組。

ip定址

ip位址是乙個32位的位址,被分為4個8位段(八位組)。人們人們不習慣使用32位的二進位制位址或8位的二進位制八位組,所以ip位址最常用的表達形式是「點分十進位制形式」,由4個八位組組成的,每個八位組必須單獨進行轉換。在這種形式裡,每個八位組都以相應的十進位制數值表示,4個十進位制數值以句點分隔。8位二進位制可以表示0~255之間的數值,所以這種形式中每個十進位制的數值都位於0~255之間。點分十進位制ip位址是這個樣子的:209.121.131.14。

ip位址中的一部分是網路id,另一部分是主機id。劃分網路id和主機id的最初方案是使用位址分類。雖然最近出現的cidr無類別定址降低了位址分類的重要性,但作為理解tcp/ip定址的乙個出發點,位址分類還是值得在此進行討論的。位址分類系統把ip位址劃分到不同的位址類。絕大多數ip位址屬於以下幾類。

如果32位的位址以0開頭,它就是a類位址;

如果32位的位址以10開頭,它就是b類位址;

如果32位的位址以110開頭,它就是c類位址。

這種規則很容易轉化為點分十進位制形式,因為它們有效地限制了位址中第乙個值的範圍。例如,由於a類位址中第乙個值的最高位必須是0,所以在點分十進位制的形式中,第乙個值不能大於127。

internet規範還定義了特殊用途的d類和e類位址。d類位址用於多播。多播是把乙個訊息傳送到網路的子網,這與廣播是不同的,後者需要網路上全部節點都進行處理。

d類位址最前面的4位是1110,對應於十進位制數值是224~239。

e類網路是實驗性質的,一般不用於生產環境。e類網路位址最前面的5位是11110,對應於十進位制數值是240~247。

從理論上講,internet上每台計算機都必須有乙個唯一的ip位址。在實際應用中,**伺服器軟體和nat裝置的使用讓未註冊和非唯一的位址也可以連線internet。

有一些ip位址具有特殊含義,不會分配給主機。

全0的主機id表示網路本身。例如,ip位址129.152.0.0是指網路id為129.152的b類網路。

全1的主機id表示廣播。廣播是向網路中全部主機傳送的訊息。ip位址129.152.255.255就是網路id為129.152的b類網路的廣播位址(十進位制的255對應於全1的八位組11111111)。位址255.255.255.255也可以用於網路上的廣播。

以十進位制值127開頭的位址是環迴位址。目的位址為環迴位址的訊息是由本地tcp/ip軟體傳送的,其目的在於測試tcp/ip軟體是否工作正常。

rfc1597(之後被rfc1918取代)保留了一些ip位址範圍用於私有網路,其設想是,這些私有網路不會連線到internet,所以不必要求是唯一的。目前,這些私有位址範圍經常用於「網路位址轉換(nat)」裝置背後的受保護網路。

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

由於私有位址範圍不必與其餘位址同步,所以整個位址範圍對於任何網路都是可用的。網路管理員利用這些私有位址可以獲得更大的子網空間和可用位址範圍。

位址範圍169.254.0.0~169.255.255.255保留用於自動配置。

位址解析協議(arp)

區域網上的計算機使用網際層的位址解析協議(arp)把ip位址對映為實體地址。主機必須知道目的網路介面卡的實體地址才能向它傳送資料,網段上每台主機在記憶體中都儲存著乙個被稱為arp表或arp快取的**,其中包含著網段上其他主機的ip位址與實體地址的對應關係。當主機需要向網段上的其他主機傳送資料時,它會檢視arp快取來獲得目的的實體地址。arp快取是動態變化的。如果要接收資料的位址當前並不存在於arp快取,主機就會傳送乙個名為arp請求幀的廣播。

arp請求幀包含未解析的ip位址,還包含傳送這個請求的主機的ip位址和實體地址。網段上的其他主機接收到這個arp請求,擁有這個未解析ip位址的主機會向發出請求的主機傳送自己的實體地址。這個新的ip位址與實體地址的對應關係就會新增到請求主機的arp快取裡。

一般來說,arp快取裡的條目在一定時間之後會過期,條目就會被從表裡刪除。當主機需要向這個條目所包含的ip位址傳送資料時,解析過程會再次重複。

逆向 arp( rarp)

rarp的含義是逆向arp,也就是arp的逆過程。當我們知道ip位址而不知道實體地址時,可以使用arp;而在知道實體地址而不知道ip位址時,則應使用rarp。

internet控制訊息協議(icmp)

傳送到遠端計算機的資料通常會經過乙個或多個路由器,這些路由器在把資料傳輸到最終目的地的過程中可能發生多種問題。路由器利用internet控制訊息協議(icmp)訊息把問題通知給源ip。icmp還有用於其他除錯和排錯的功能。

最常見的icmp訊息:

echorequest(回顯請求)和echoreply(回顯應答):icmp經常被用於測試,比如測試連線的ping命令實際上就是在使用icmp。ping向某個ip位址傳送乙個資料報,並且要求目的計算機在響應中返回所傳送的資料。ping實際使用的命令是icmp的echorequest和echoreply。

sourcequench(源抑制):如果一台高速計算機向遠端計算機傳送大量資料,可能會使路由器產生過載。這時路由器可以利用icmp向源ip傳送sourcequench訊息,讓它降低傳送資料的速度。如果有必要,還可以向源ip傳送額外的源抑制訊息。

destinationunreachable(目的不可到達):如果路由器收到乙個不能傳遞的資料報,icmp就會向源ip返回乙個destinationunreachable訊息。路由器不能傳遞訊息的原因之一是網路由於裝置故障或維修而關閉。

timeexceeded(超時):當資料報由於ttl為0而被拋棄時,icmp就會向源ip傳送這個訊息。這表示對於當前ttl值來說,到達目標需要經過太多的路由器;或者是說明路由表出了問題,導致資料報在同一臺路由器上連續迴圈。當資料報無限迴圈且永遠不能到達目的地時,就會發生路由環路。假設3臺路由器分別位於洛杉磯、舊金山和丹佛。洛杉磯的路由器向舊金山的路由器傳送乙個資料報,後者又傳送給丹佛,丹佛又傳送給洛杉磯。這樣一來,資料報就被陷在其中,不斷在這3臺路由器之間迴圈,直到ttl為0。路由環路不應該發生,但偶爾也會出現。當網路管理員在路由表裡設定了一條靜態路由時,有時就可能導致環路路由。

fragmentationneeded(需要分段):如果乙個資料報的「don』tfragment(不可分解)」位被設定為1,而路由器必須要對資料報進行分段才能把它**到下一台路由器或目的地,這時icmp就會傳送這條訊息。

網路工程1 14 網際層

網際層 internet 主要功能 1.處理來自傳出層的分組傳送請求 將分組裝入ip資料報,填充報頭,選擇去往目的節點的路徑,然後將資料報傳送到適當的埠 2.處理輸入資料報 首先檢查資料報的合法性,然後進行路由選擇。3.處理icmp報文 處理路由的選擇,流量控制和擁塞控制 ip協議 1.負責把資料從...

TCP IP協議學習之二(網際協議IP)

在進行通訊的時候,我們需要知道資料報去往何處,需要知道本地位址與目標位址,乙個典型的ip資料報如下 可以看到上面的ip資料的ip頭有20個位元組,其中含有32位的源ip位址與目的ip位址。這裡需要說明下首部的幾個標誌為 ttl time to live 生存時間字段設定了資料報可以經過的最多路由器數...

4 2網際協議IP

網際網路的設計思路是這樣的 網路層只向上提供簡單靈活的 無連線的 盡最大努力交付的資料報服務。這裡所講的都是ip的第四個版本,即ipv4,版本1 3以及版本5都是未曾使用過的。與ip協議配套的三個協議 虛擬網際網路絡就是邏輯網際網路絡,它的意思是互聯起來的各種物理網路的異構性本來是客觀存在的,但是我...