日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络 | 网络层 :IP协议详解

發布時間:2024/4/11 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络 | 网络层 :IP协议详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡層

  • IP協議
    • IPV4的協議格式
    • 地址管理
      • IP地址的組成
      • IP地址的分類
      • 特殊的IP地址
      • 子網劃分
      • 私有IP地址與公網IP地址
    • 路由選擇

網絡層的目的就是實現終端節點之間的通信,即點對點通信。具體功能包括路由選擇與地址管理等。
這一層主要有IP和ICMP兩個協議組成,在這里就先重點講解IP協議,后面會單獨將IP協議相關的如ICMP,DNS,NAT,NAPT,DHCP等協議單獨寫一篇博客匯總。


IP協議

IP是InternetProtocol(網際互連協議)的縮寫,是TCP/IP體系中的網絡層協議。設計IP的目的是提高網絡的可擴展性:一是解決互聯網問題,實現大規模、異構網絡的互聯互通;二是分割頂層網絡應用和底層網絡技術之間的耦合關系,以利于兩者的獨立發展。根據端到端的設計原則,IP只為主機提供一種無連接、不可靠的、盡力而為的數據報傳輸服務。

因為目前IP協議主流的版本有IPV4和IPV6,但是IPV6目前不夠普及,并且泛用性小,所以我這篇博客主要寫的是具有代表性的IPV4。

IPV4的協議格式

  • 4位版本號:用來標識IP首部的版本號,常見的即為IPV4和IPV6,各個版本的首部格式都有所不同,這里我畫的是IPV4的。

  • 4位首部長度:表示IP首部的長度,單位為4字節即32位,因為首部長度具有4位,所能表示的最大數據為15即2^4 - 1,所以IP首部的最大長度為15 * 4 = 60字節,因為首部長度最少為5(除選項),所以IP首部的最小長度為20字節。
  • 8位服務類型:用來表明服務質量。目前0-2位棄用,7位保留。3-6位為TOS字段,分別為最低延遲、最大吞吐、最大可靠性、(這四位合并也代表著最大安全)

  • 16位數據報長度:標志IP首部與發送數據的長度之和,大小為2^16,即64K,65535。因為IPV4的報頭和數據總大小為65535字節,但是數據中又包含了上層(傳輸層)傳下來的數據,所以會將上層如UDP協議數據的大小限制在65535-20(ip協議首部)- 8(UDP協議首部)。IPV6則沒有這個問題。
  • 16位標識:標識當前分片屬于哪一個完整的上層報文,用于分片重組。因為受限于數據鏈路層的MTU限制,如果IP報文大于MTU,卻又符合數據報長度字段,此時就會在網絡層進行數據的分片,將數據拆分開來發送,之后再重組
  • 3位標志位:標識包被分片的相關信息。0位保留,1位代表是否進行分片,2位代表如果分片是否位最后一個包。

  • 13位片偏移:當分片后的數據在對端重組時,用來確認該分片在原始報文中的位置。因為13位能夠標識的最大大小為8192,而數據報長度為65535,也就是16位。所以要想用13來標識16位,就將片偏移的單位設置為了8個字節,所以也就是說,例如當前片偏移位1000,則說明在原始數據中的1000*8 = 8000處。

  • 8位生存時間:報文的最長生命周期(也代表著可以中轉的路由器數量),每經過一次路由器就會減一,為0則直接丟棄。主要用于防止路由環路問題(多個路由互相連接,形成轉發環路,數據在環路中不斷的轉發)

  • 8位協議:記錄傳輸層所使用的協議,用于數據分用時,選擇上層解析協議

  • 16位校驗和:用于檢驗接收的數據與發送的數據是否一致,不一致則丟棄。校驗方法:二進制反碼求和,即對報文從頭開始的每個字節進行取反相加,高出16位則截斷高位,與低16位相加,得到校驗和。

  • 32位源IP地址/目的IP地址:表示發送端/接收端的IP地址,用于標識通信的兩臺主機

  • 0-40字節選項:主要協商和描述一些信息,如安全級別,源路徑,路徑記錄,時間戳。因為IP首部大小最高為60字節,而前面必須的有20字節,所以選項的大小可以為0-40字節。

  • 填充位:保證IP首部大小為4字節的整數倍,不夠則填充


地址管理

地址管理的目的是讓IP地址的分配更加的合理

IP地址的組成

IP地址就是網絡中主機的唯一標識,無論哪個主機與哪個主機之間進行通信,都需要用到IP地址來進行定位。
而IP地址,又由網絡號和主機號組成。

網絡號: 標識網絡,保證每一個路由器分配的IP地址都會帶有自己的網絡標識,(不同網絡使用不同的網絡號分配地址就可以避免沖突)
主機號: 標識主機,每一個主機在所在的網絡中都有唯一的主機號。

例如同一網絡下相鄰的兩個主機

/24代表著前24位是網絡號,而32-24=8,也就是剩下8位為主機號。
上圖中兩個主機的網絡號為:192.168.128
而他們的主機號分別為21和22。

不同的子網其實就是把網絡號相同的主機放到一起. 如果在子網中新增一臺主機, 則這臺主機的網絡號和這個子網的網絡號一致,
但是主機號必須不能和子網中的其他主機重復

通過合理的設置主機號和網絡號,就可以保證在互相連接的網絡下,每臺主機的IP地址都不同。

同時,可以利用DHCP技術來自動給子網中新增的主機分配IP地址,詳細的在下一篇博客中。


IP地址的分類

早期時人們通過對網絡號和主機號的劃分,將IP地址分為5類。


A類: 0.0.0.0到127.255.255.255
B類: 128.0.0.0到191.255.255.255
C類: 192.0.0.0到223.255.255.255
D類: 224.0.0.0到239.255.255.255
E類: 240.0.0.0到247.255.255.255

使用較為廣泛的主要為ABC三類地址,DE為特殊的IP地址。

A類IP地址:
用于組建大型網絡。第一位固定為0,7位網絡號,24位主機號。
IP地址范圍:0.0.0.0 ~ 127.255.255.255
例如1.0.0.0 ~1.255.255.255。
對于其中某一個網絡,其所能容納的主機數量位2^24 - 2,也就是16581373個主機(全0和1保留不用)

B類IP地址:
用于組建中型網絡。前兩位固定為10,14位網絡號,16位主機號。
IP地址范圍:128.0.0.0 ~ 223.255.255.255
例如128.1.0.0 ~128.1.255.255。
對于其中某一個網絡,其所能容納的主機數量位2^16 - 2,也就是65534個主機(全0和1保留不用)

C類IP地址:
用于組建小型網絡。前三位固定為110,21位網絡號,8位主機號。
IP地址范圍:192.0.0.0 ~ 223.255.255.255
例如192.168.1.0 ~192.168.1.255。
對于其中某一個網絡,其所能容納的主機數量位2^8 - 2,也就是254個主機(全0和1保留不用)

但是這種劃分方法是具有局限性的,因為A類太多(幾千萬個主機不可能用得完),而C類太少(254個一下就用完了)。所以政府、企業、學校等組織都去申請較為適中的B類地址,但是在實際使用中,不可能每一個組織都能用滿,所以造成了大量IP地址的浪費。

所以為了解決這種情況,就提出了新的劃分方法,CIDR

  • 引入一個額外的子網掩碼(subnet mask)來區分網絡號和主機號;
  • 子網掩碼也是一個32位的正整數. 通常用一串 “0” 來結尾;
  • 將IP地址和子網掩碼進行 “按位與” 操作, 得到的結果就是網絡號; 網絡號和主機號的劃分與這個地址的類型無關。

子網掩碼就是一段連續的二進制1。子網掩碼與IP地址相與則能得到網絡號,而子網掩碼取反則能得到主機號的范圍。

例如:



可見,IP地址與子網掩碼做與運算可以得到網絡號, 主機號從全0到全1就是子網的地址范圍;
IP地址和子網掩碼還有一種更簡潔的表示方法,例如140.252.20.68/24,表示IP地址為140.252.20.68, 子網掩碼的高
24位是1,也就是255.255.255.0


特殊的IP地址

0.0.0.0:可以識別當前主機上任意網卡地址(也就是缺省IP地址),常用于服務器的監聽地址。(表示綁定監聽本機上的所有地址)
255.255.255.255:全網廣播地址(任意一個主機收到這個地址的數據,都會認為是發送給自己的,常用于DHCP請求地址。)
127.0.0.1:本地虛擬回環網卡的地址(常用于本地的網絡通信測試,即自己給自己發送數據)

在上面寫到過,主機號全為1或者0的地址是特殊的,無法分配給主機。
主機號全為0:
其實就是網絡號,代表著這個網段。
主機號全為1:
其實是UDP局域網廣播地址(適配于當前網絡的所有主機)。


子網劃分

可以把基于每類的IP網絡進一步分成更小的網絡,每個子網由路由器界定并分配一個新的子網網絡地址,子網地址是借用基于每類的網絡地址的主機部分創建的。劃分子網后,通過使用掩碼,把子網隱藏起來,使得從外部看網絡沒有變化,這就是子網掩碼。

例如這道題目

某單位申請到一個C類網絡地址:192.168.2.0/24,該單位有4個部門,希望從這個網絡中平均劃分出四個子網,請列出每個子網的網絡號,子網掩碼,IP地址范圍

因為是C類網絡,主機號只有八位,而又要劃分出4個子網,那么就以為著要從8位中取兩位來作為網絡號。
192.168.2.00 192.168.2.01 192.168.2.10 192.168.2.11。
子網掩碼則為255.255.255.192
因為只剩下6位作為主機號,所以能夠使用的主機數量只有2^6 -2也就是62臺。

所以每個子網分別為
子網1:
網絡號:192.168.2.00 子網掩碼:255.255.255.192 IP地址范圍:192.168.2.0 ~192.168.2.63
子網2:
網絡號:192.168.2.00 子網掩碼:255.255.255.192 IP地址范圍:192.168.2.0 ~192.168.2.63
子網3:
網絡號:192.168.2.00 子網掩碼:255.255.255.192 IP地址范圍:192.168.2.0 ~192.168.2.63
子網4:
網絡號:192.168.2.00 子網掩碼:255.255.255.192 IP地址范圍:192.168.2.0 ~192.168.2.63


私有IP地址與公網IP地址

如果一個組織內部組建局域網,IP地址只用于局域網內的通信,而不直接連到Internet上,理論上 使用任意的IP地址都
可以,但是RFC 1918規定了用于組建局域網的私有IP地址

  • 10.* ,前8位是網絡號,共16,777,216個地址
  • 172.16.到172.31.,前12位是網絡號,共1,048,576個地址
  • 192.168.*,前16位是網絡號,共65,536個地址 包含在這個范圍中的, 都成為私有IP, 其余的則稱為全局 IP(或公網IP);
  • 一個路由器可以配置兩個IP地址, 一個是WAN口IP, 一個是LAN口IP(子網IP).
  • 路由器LAN口連接的主機, 都從屬于當前這個路由器的子網中.
  • 不同的路由器, 子網IP其實都是一樣的(通常都是192.168.1.1).子網內的主機IP地址不能重復. 但是子網之 間的IP地址就可以重復了.
  • 每一個家用路由器, 其實又作為運營商路由器的子網中的一個節點。這樣的運營商路由器可能會有很多級, 最外層的運營商路由器, WAN口IP就是一個公網IP了. 子網內的主機需要和外網進行通信時,路由器將IP首部中的IP地址進行替換(替換成WAN口IP), 這樣逐級 替換, 最終數據包中的IP地址成為一個公網IP.這種技術稱為NAT(Network Address Translation,網絡地 址轉換).
  • 如果希望我們自己實現的服務器程序,能夠在公網上被訪問到, 就需要把程序部署在一臺具有外網IP的服 務器上. 這樣的服務器可以在阿里云/騰訊云上進行購買.

在我們通過ipconfig查看本機IP地址時,往往看到的都是192.168.0.x。其實這個是我們的私有ip地址,可以這么說,比如在一定的區域內,劃分出了很多個網段,而這些網段下也就是我們的私網ip,這個ip地址僅僅用于我們內部的通信。也就是說,在這個大的網絡下,可能存在無數個這樣的子網,也就是為什么我們無論在家,還是在學校等地方,所看到的ip地址幾乎是一樣的。
這個私有的ip地址只能內部通信,如果要與外部通信,就需要借助到NAT技術來將私有的IP地址轉換為公有的IP地址。也就是說,這個網絡下的所有私有,都需要用統一的公網IP地址來外部通信。

關于NAT和NAPT的詳細就不在這里解釋,下一篇博客在一起寫。


路由選擇

路由選擇,即路由器為每一個流經的數據根據目的IP地址進行路徑選擇。

  • 當IP數據包, 到達路由器時, 路由器會先查看目的IP;
  • 路由器決定這個數據包是能直接發送給目標主機, 還是需要發送給下一個路由器;
  • 依次反復, 一直到達目標IP地址;

路由器內部通過維護一個路由表,來決定數據轉發的路徑。
路由表的每一項中記錄了目的網絡,子網掩碼,下一跳。
通過查詢路由表來決定轉發的對象。

  • 路由表可以使用route命令查看
  • 如果目的IP命中了路由表, 就直接轉發即可;
  • 路由表中的最后一行,主要由下一跳地址和發送接口兩部分組成,當目的地址與路由表中其它行都不匹配 時,就按缺省路由條目規定的接口發送到下一跳地址。

路由表可以通過手動維護(靜態路由),也可以通過ospf,rip等路由選擇算法來自動選取。

總結

以上是生活随笔為你收集整理的计算机网络 | 网络层 :IP协议详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。