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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ipv4协议的详解

發布時間:2024/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ipv4协议的详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


一、 IPv4協議報頭格式?

0??????????????????????? 4????????????????????????? 8?????????????????????????????????????????????? 16???????????????????? 19????????????????????????? 24????????????????????????????????????????? 32?

版本

Version

IP頭長度

IHL

服務類型(TOS

Type of Service

總長度

??????? Total Length????????

標識符號

????????? Identification???????

標記

Flags

分段偏移量

Fragment Offset

存活時間

Time to Live

協議

Protocol??

包頭校驗和

Header Checksum??

????????????????????? 源IP地址

???????????????????????? Source Address??

???????????????????? 目的IP地址

?????????????????????????????????????????????? Destination Address?????????????????????

IP選項(若有的話)

Options

填充

Padding

說明:

Version : 4 bits,顯示當前正在運行的IP版本信息。當前為4

IHL :?? 4 bits,標明了以32比特為單位的消息中數據報報頭的長度,這是所有報頭的總長度。注意:它的最小值為5

Type of Service : 8 bits,標明了一個特定的上層協議所分配的重要等級。

TOS字段包括一個3 bit的優先權子字段(現在已被忽略),4 bit的TOS子字段和1 bit未用位但必須置0。4 bit的TOS分別代表:最小時延、最大吞吐量、最高可靠性和最小費用。4 bit中只能置其中1 bit。如果所有4 bit均為0,那么就意味著是一般服務。每TOS值最多只能有一個為1.

如下所示

? ? ? ? ? ? ? ? ? ?協議?????????????????????? TOS 值

?????????TELNET/RLOGIN (1)????? 1000????????????????? (minimize delay)

??????????FTP

?????????? Control ? ? ? ? ? ? ? ? ? ? ? ? ? 1000????????????????? (minimize delay)

?????????? Data (2) ? ? ? ? ? ? ? ? ? ? ? ? ?0100???????????????? (maximize throughput)

?????????TFTP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1000???????????????? (minimize delay)

?????????SMTP (3)

?????????? Command phase ? ? ? ? ? 1000???????????????? (minimize delay)

?????????? DATA phase ? ? ? ? ? ? ? ? ? 0100???????????????? (maximize throughput)?????????????????????????????????????????

????????Domain Name Service

?????????? UDP Query ? ? ? ? ? ? ? ? ? ? 1000???????????????? (minimize delay)

?????????? TCP Query ? ? ? ? ? ? ? ? ? ? ?0000

?????????? Zone Transfer ? ? ? ? ? ? ? ?0100???????????????? (maximize throughput)

????????NNTP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0001???????????????? (minimize monetary cost)

????????ICMP

?????????? Errors ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0000

?????????? Requests ? ? ? ? ? ? ? ? ? ? ? ?0000 (4)

?????????? Responses??????? <same as request> (4)

?????????Any IGP? ? ? ? ? ? ? ? ? ? ? ? ? ?0010???????????????? (maximize reliability)

?????????EGP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0000

????????SNMP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0010???????????????? (maximize reliability)

????????BOOTP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0000

Total Length:? 16 bits,標明整個分組的長度,以字節為單位??傞L度減去IHL就是數據有效載荷的長度。理論上最大長度可以為65535,但報文經過數據鏈路層時很可能被分片。

Identification:? 16 bits,包含一個整數,用來標識當前的數據報。這是一個序列號。

Flag:?? 3 bits,實現不同的控制功能:

Bit 0 :?保留,必須置零。

Bit 1: (DF)?????0?表示可以對分組進行分片

???????????????????????1?表示不可以對分組進行分片

Bit 2: (MF)????0?表示該數據段是本分組中最后的一個數據分段

1??表示后面還有數據分段

Fragment Offset:? 13 bits。指示分段在數據包中的位置,用于重組數據分段。這個字段允許標記字段終止在16 Bit的邊界

TTL : 8 bits,指示分組在網絡傳輸中的允許保持的時間,以秒為單位。當該計時器為0時,數據報將被丟棄。

Protocol :? 8 bits,指明了在IP處理過程結束后,哪一個上層協議將接收這些數據。

Header Checksum : 16 bits,用于確保IP頭的完整性。

Source Address : 32 bits,指明了發送節點的IP地址。

Destination Address : 32 bits,指明了接收節點的IP地址。

Options :長度可變的字段,讓IP支持不同的功能特性。比如安全性。

???????該字段可能是零,或者更多的選項。該字段有2中使用情形:

????????? 1:用單一的一個字節表示選項類型

????????? 2:一個選項類型字節,一個選項長度字節,一個數據長度字節

Padding:這個字段以額外的0來填充IP報頭,以確保其長度為32 bit的倍數。

其后就是數據字段。


二、IPv4分組的地址

1. IP地址和MAC地址的區別

1.???MAC地址是每塊網卡的硬件地址,用于數據鏈路層的幀傳遞地址;IP地址是網絡層地址(也稱邏輯地址),用于路由器尋址

2.???IP地址標識的是一臺主機或路由器網絡的接口,而MAC地址唯一地標識一臺主機

3.???網橋,Ethernet交換機屬于數據鏈路層設備,使用MAC地址,不屬于網絡層設備,所以不分配IP

2. IP地址的分配概念

IP地址的分配可以分下面3種情況:?
1. 為每一個網絡接口分配一個IP地址?
一臺計算機連入網絡,需分配一個IP地址,與MAC地址一一對應,且在Internet中唯一的?
2. 為多歸屬主機的每一個網絡接口分配響應的IP地址?
路由器通過多個網卡連接到多個網絡時,需為每個網卡分配一個IP地址?
3. 可以為一個網絡接口分配多個IP地址

總結來說:?
1、連接到Internet的每一個主機(計算機或路由器)至少有一個IP地址?
2、IP地址是分配給網絡接口的?
3、多歸屬主機可以有多個IP地址,一個網絡接口也可以分配多個IP地址

3. IP的點分十進制表示方法

IPv4的地址長度為32位,點分十進制表示通常采用 x. x. x. x的格式,每個x為8位。(點分十進制從字面上理解,用點分隔,每個字段用十進制表示)

IP地址的分類有5中分類:A類,B類,C類,D類和E類地址?


網絡號:用于識別主機所在的網絡?
主機號:用于識別該網絡中的主機

A類保留給政府機構,B類分配給中等規模的公司,C類分配給任何需要的人,D類用于組播,E類用于實驗,各類可容納的地址數目不同

(tip:網絡號加粗表示)

A類地址

(1)A類地址網絡號第一位固定為0,其它7位可以分配,主機號長度為24位?
(2)網絡號分配的數量為2^7 = 128,地址范圍為:1.0.0.0—127.255.255.255?
(3)10.0.0.0-10.255.255.255是私有地址(所謂的私有地址就是在互聯網上不使用,而被用在局域網絡中的地址,路由器接收到私有地址,不會向Internet轉發該分組,私有地址與NAT相關)?
(4)127.0.0.0-127.255.255.255是保留地址,用做循環測試用的?
(5)0.0.0.0—0.255.255.255也保留用作特殊用途?
(6)因此網絡號可分配的只有125個,每個網絡段的主機號可以分配的只有 2^24-2=16777214個(主機號全0和主機號全1保留

B類地址

(1)B類地址網絡號第1,2位固定為10,其它14位可以分配,主機號長度為16位?
(2)地址范圍為:128.0.0.0—191.255.255.255?
(3)172.16.0.0—172.31.255.255是私有地址?
(4)169.254.0.0—169.254.255.255是保留地址(如果你的IP地址是自動獲取IP地址,而你在網絡上又沒有找到可用的DHCP服務器。就會得到其中一個IP)?
(5)每個網絡段可分配的主機號為2^16 - 2 = 65534(主機號全0和主機號全1保留

C類地址

(1)C類地址網絡號前3位固定為110,其它21位可以分配,主機號長度為8位?
(2)C類地址范圍:192.0.0.0—223.255.255.255?
(3)192.168.0.0—192.168.255.255是私有地址?
(4)網絡號可分配的塊數為2^21 = 2097152,沒塊網絡號可分配的主機號數為2^8-2 = 254(主機號全0和主機號全1保留)

D類地址

D類IP地址不標志網絡,前4位固定為1110,地址范圍為:224.0.0.0—239.255.255.255,用作特殊用途,如多播地址

E類地址

E類地址不分網絡地址和主機地址,它的第1個字節的前四位固定為1111。E類地址范圍:240.0.0.0—255.255.255.255,用于某些實驗和將來使用

總結上述的規律

1.???ABC三類地址的主機號全0和全1都保留,主機號全1為子網廣播地址,主機號全0為子網網絡地址(一個網段中第一個IP地址為網絡地址)

2.???A類地址的第1塊網絡號和第2塊網絡號要保留

ABC三類地址中的特殊IP地址

(1)直接廣播地址?
如果主機號全1,例如191.1.255.255,那么這個地址為直接廣播地址?
路由器將這個分組以廣播的形式發送到網絡號位191.1.x.x的全部主機?
(2)受限廣播地址?
網絡號與主機號的32位全為1(255.255.255.255)為受限廣播地址?
用來將一個分組以廣播方式發送給本網的所有主機?
(3)“這個網絡上的特定主機”地址?
網絡號是全0 (如0.0.0.25) 的地址是這個網絡號的特定主機地址?
路由器接到這樣的分組,不向外轉發,而是直接交付給本網絡中主機號為25的主機?
(4)回送地址?
A類地址中127.0.0.0是回送地址,它是一個保留地址

三、IPv4地址的子網劃分

子網劃分的思想:借用主機號的一部分作為子網的子網號,劃分出更多的子網IP地址,對于外網來說這些子網仍然像一個網絡一樣,這對于路由器的尋址沒有影響

1. 子網地址結構

1.???標準的ABCIP地址是兩級結構:網絡號主機號,而劃分子網后,IP地址的結構為三級結構:網絡號子網號主機號

2.???同一個子網的主機,網絡號和子網號必須相同

3.???子網之間的距離必須很近,例如一個公司或者校園內

2. 子網掩碼

引入子網后,如何從IP地址中提取出子網號?子網掩碼就是用來解決這個問題的?
子網掩碼的作用:從一個IP地址中提取出子網號?

子網掩碼的表示:網絡號和子網號全改為1,主機號全改為0?


實例:一個B類IP地址的子網劃分

該B類IP地址190.1.2.26,劃分出64個子網?
1. 借用原16為主機號的6位作為子網號,剩余10位為主機號?
2. 根據子網掩碼的格式,得出子網掩碼為:255.255.252.0,或表示成190.1.2.26/22(”/22“表示第22位開始為主機號

3. 子網的規劃和地址劃分的方法

例:一個校園網要對一個B類地址(156.26.0.0)進行子網劃分。該校園網有近210個局域網組成。?
由于210個局域網最接近2^8=256,所以可行的方案是從主機號借8位來作為子網號,這樣的子網的掩碼為:255.255.255.0 或 156.26.0.0/22(”/22“表示第22位開始為主機號

以上子網劃分結果為:?
子網1:156.26.1.1~156.26.1.254?
子網2:156.26.2.1~156.26.2.254?
……?
子網254:156.26.254.1~156.26.254.254

至于子網0:156.26.0.1~156.26.0.254和子網254:156.26.255.1~156.26.255.254,即子網號是否能夠為全0或者全1,值得商榷!

由于主機號不能全為1或者全為0,每個子網的主機號有254個

子網長度的確定,應考慮兩個因素:子網數與每個子網中主機與路由器數。子網數要考慮留有一定余量為原則

4. 可變長度的子網掩碼劃分方法

用一個例子來說明:?
某公司申請一個C類202.60.31.0的IP地址,該公司有100名員工在銷售部,50名在財務部,50名在設計部。要求為銷售部門、財務部門、設計部門分別組建子網

分析:

三個部門是三個子網,我們很容易想到,只需要借出2位來作為子網號就行。但是借了2位后,主機號只剩下6位,則每一個子網的最大主機號為2^6 = 64個,小于銷售部門的100個主機,所以行不通!

這時,可以采用可變長度的子網掩碼劃分方法:?
(1)銷售部100臺主機,所以主機號至少為7位,則子網號為1位,此時子網掩碼:255.255.255.128(11111111.11111111.11111111.1000000)或202.60.31.0/25(第25位開始為主機號)?
子網位為0:202.60.31.1(0?000 0001)~ 202.60.31.126(0?111 1110) (作為銷售部子網)?
子網位為1: 202.60.31.129(1?000 0001)~ 202.60.31.254(1?111 1110)

(2)對子網位為1的情況,再劃分出兩個子網給財務部門和設計部門,剩下的兩個部門只需要6個主機號,所以可以用2位作為子網號,子網掩碼為255.255.255.192(11111111.11111111.11111111.1100000)或202.60.31.0/26(第26位開始為主機號)?
子網位為10:202.60.31.129(10?00 0001)~ 202.60.31.190 (10?11 1110)(作為財務部子網)?
子網位為11:202.60.31.193(11?00 0001)~ 202.60.31.254(11?11 1110)(作為設計部子網)

tips:子網號加粗,主機號全0和全1不能使用

一個問題:

第3點子網的規劃和地址劃分的方法說到了子網號和主機號不能為全0或者全1,但是第4點可變長度的子網掩碼劃分方法中,卻存在子網號為0或者11的情況,那么子網號到底能不能為全0或者全1呢??
子網號全0或者全1
要看網絡設備所使用的路由器協議支持不支持,以前的老版的協議都是不支持,新版本可以支持,老的書籍或者資料都不用全0和全1子網,新的允許用

四、CIDR(無類別域間路由)

1. CIDR的概念和格式

其實在上述博文中,已經不經意間提到了CIDR,例如156.26.0.0/16?
CIDR其實講得是IP地址的格式問題,標準的IP地址的點分十進制是網絡號—主機號的二層結構,而CIDR用區別于傳統標準分類的IP地址與劃分子網的概念的“網絡前綴(network -prefix)”,用”<網絡前綴>/<主機號>“代替網絡號—主機號的二層結構,形成新的無分類二層地址結構

<網絡前綴>/<主機號>

<網絡前綴>/<主機號>這種格式為:”斜線記法“。如:200.16.23.0/20表前20位為網絡前綴,后12位為主機號

同標準的分類IP地址一樣,主機號全0的網絡地址和全1的廣播地址不分配給主機

2. CIDR的應用

例如:一個校園網獲得200.24.16.0/20的地址塊,希望將它劃分為8個等長的較小的地址塊

五、網絡地址轉換NAT

NAT的作用有兩個:?
1. 解決網絡地址短缺,支持IP地址復用?
2. 網絡安全

例如在企業內部,NAT和代理服務器、防火墻結合使用,采用一個內部專用IP和一個全局IP一對一的靜態映射,達到隱藏內部網絡地址的目的

IP地址復用原理

NAT技術解決IP地址短缺,主要用于ISP,ADSL,有線電視和無線移動接入的動態IP地址分配

原理:?
例如ISP有1000個全局IP地址,但是它有5000個使用專網內部專用IP的用戶。?
ISP在具有NAT功能的路由器中保持一個IP地址池,管理著多個全局IP地址。凡是需要訪問外部Internet的用戶,首先想NAT路由器申請,由NAT臨時分配一個全局IP地址給用戶;用戶訪問結束后,NAT路由器收回IP地址,供其他用戶使用。

之前提到過一個私有地址,所謂的私有地址就是在互聯網上不使用,而被用在局域網絡中的地址,路由器接收到私有地址,不會向Internet轉發該分組,那么主機該如何通過私有地址和Internet進行通信?

NAT就是私有地址和全局地址轉換的功能!

解決全局IP地址不夠用:連端口號一起轉換!

NAT的有動態NAT和靜態NAT兩種?
“靜態NAT”:一對一,配置一個內部專用IP地址對應一個公用IP地址。?
“動態NAT”:多對多,多個專業IP地址對應一個或幾個全局IP地址??蓪崿FIP地址的重用節約IP地址。如:ISP有1000個全局地址,但它有5000個使用專用內部專網IP地址的用戶。

NAT的工作原理

私有地址為10.0.1.1的主機如何訪問地址為135.2.1.1的web服務器??
(1)產生一個源地址為10.0.1.1,端口為3342,目的地址為135.2.1.1,端口號為80的ip分組,轉發到NAT功能的路由器?
(2)NAT路由器將私有地址轉換成全局IP地址202.0.1.1,產生一個源地址為202.0.1.1,端口為5001,目的地址為135.2.1.1,端口號為80的ip分組?
(3)地址為135.2.1.1,端口號為80的web服務器接收到該IP分組后,,返回源地址為135.2.1.1,端口號為80,目的地址為202.0.1.1,端口為5001為80的ip分組?
(4)NAT路由器將全局IP地址轉換成私有地址,產生源地址為135.2.1.1,端口號為80,目的地址為10.0.1.1,端口為3342的ip分組,主機10.0.1.1接受

NAT的潛在問題

由于NAT(NAPT)都依賴于自己的轉換表,所以會有一下問題:

1.???無法從NAT外部向內部服務器建立連接

2.???轉換表的生成和轉換操作都會產生一定的開銷

3.???通信過程中一旦NAT發生異常需要重新啟動時,所有的TCP連接都會被重置

4.???即便備置兩臺NAT做容災備份,TCP連接還是會被斷開

六、IPv6協議

1. IPv6地址的表示

IPv6地址采用”冒號十六進制表示法“,將128位地址按每16位劃分為一個位段,每個位段轉換為一個4位的十六進制數

例如:?
二進制:?
0010000111011010000000000000000000000000000000000000000000000000?
0000001010101010000000000000111111111110000010001001110001011010

1.??? 冒號十六進制表示法:?
21DA : 0000 : 0000 : 0000 : 02AA : 000F : FE08 : 9C5A

2.??? 如果某段存在幾位都是0的情況,可以使用零壓縮法壓縮:

零壓縮法:00D3D3),02AA2AA),000AA),00000),但是AB08不能壓縮為AB8

21DA : 0 : 0 : 0: 2AA : F : FE08 : 9C5A

3.??? 如果存在幾個連續位段都是0,可以用”雙冒號表示法“?
21DA : :2AA : F : FE08 : 9C5A?
用”雙冒號表示法“表示的一個問題:如何確定冒號省略的段數??
8 - 現有段數 = 冒號省略的段數

2. IPv6的前綴

在IPv4中,子網掩碼用來表示網絡和子網地址長度。用前綴長度來區分子網號和主機號。而?IPv6不支持子網掩碼,只支持前綴長度表示法,用“地址/前綴長度”表示

64位前綴是一個子網前綴,少于64位的前綴是一個路由前綴,或是一個地址范圍。?
例如:?
21DA:D3::/48 是一個路由前綴?
21DA:D3:0:2:2F3B::/64是一個子網前綴

3. IPv6的結構

版本

意義和IPv4相同,值為6表示使用Ipv6協議

流量類型

表示IPv6分組的類型或優先級,類似IPv4的服務類型字段

流標記

表示分組屬于源節點和目標節點之間的一個特定分組序列

載荷長度

載荷長度表示有效載荷的長度,包括擴展報頭和高層PDU

下一個報頭

表示若存在擴展報頭,“下一個報頭”值表示下一個擴展報頭的類型

跳步限制

與IPv4的TTL相似

源地址和目的地址

發送主機的地址和要發送的目標主機地址

七、IPv4和IPv6共存——隧道技術

隧道技術指的是IPv6分組進入IPv4網絡時,將IPv6分組封裝成IPv4分組,整個IPv6分組變成IPv4的數據部分。當IPv4分組離開IPv4網絡時,再將其數據部分交給主機IPv6協議,這就像在IPv4網絡中打通了一個隧道來傳輸IPv6。

隧道配置

隧道配置分為路由器-路由器,路由器-主機或主機-路由器,主機-主機三種情況,以及手動配置的隧道與自動配置的隧道兩種類型?
(1)路由器-路由器隧道

(2)路由器-主機或主機-路由器

(3)主機-主機

總結

以上是生活随笔為你收集整理的ipv4协议的详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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