目地MAC地址(8字節(jié)) |
---|
源MAC地址(8字節(jié)) |
類型(2字節(jié)) |
1、IP頭的結(jié)構(gòu)
(1)字節(jié)和數(shù)字的存儲(chǔ)順序是從右到左,依次是從低位到高位,而網(wǎng)絡(luò)存儲(chǔ)順序是從左到右,依次從低位到高位。
(2)版本:占第一個(gè)字節(jié)的高四位。頭長(zhǎng)度:占第一個(gè)字節(jié)的低四位。
(3)服務(wù)類型:前3位為優(yōu)先字段權(quán),現(xiàn)在已經(jīng)被忽略。接著4位用來(lái)表示最小延遲、最大吞吐量、最高可靠性和最小費(fèi)用。
(4)封包總長(zhǎng)度:整個(gè)IP報(bào)的長(zhǎng)度,單位為字節(jié)。
(5)存活時(shí)間:就是封包的生存時(shí)間。通常用通過(guò)的路由器的個(gè)數(shù)來(lái)衡量,比如初始值設(shè)置為32,則每通過(guò)一個(gè)路由器處理就會(huì)被減一,當(dāng)這個(gè)值為0的時(shí)候就會(huì)丟掉這個(gè)包,并用ICMP消息通知源主機(jī)。
(6)協(xié)議:定義了數(shù)據(jù)的協(xié)議,分別為:TCP、UDP、ICMP和IGMP。定義為:
#definePROTOCOL_TCP0x06 #definePROTOCOL_UDP0x11 #definePROTOCOL_ICMP0x06 #definePROTOCOL_IGMP0x06
(7)檢驗(yàn)和:校驗(yàn)的首先將該字段設(shè)置為0,然后將IP頭的每16位進(jìn)行二進(jìn)制取反求和,將結(jié)果保存在校驗(yàn)和字段。
(8)來(lái)源IP地址:將IP地址看作是32位數(shù)值則需要將網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)化位主機(jī)字節(jié)順序。轉(zhuǎn)化的方法是:將每4個(gè)字節(jié)首尾互換,將2、3字節(jié)互換。
(9)目的IP地址:轉(zhuǎn)換方法和來(lái)源IP地址一樣。
在網(wǎng)絡(luò)協(xié)議中,IP是面向非連接的,所謂的非連接就是傳遞數(shù)據(jù)的時(shí)候,不檢測(cè)網(wǎng)絡(luò)是否連通。所以是不可靠的數(shù)據(jù)報(bào)協(xié)議,IP協(xié)議主要負(fù)責(zé)在主機(jī)之間尋址和選擇數(shù)據(jù)包路由。
2、ICMP協(xié)議的頭結(jié)構(gòu)
(1)類型:一個(gè)8位類型字段,表示ICMP數(shù)據(jù)包類型。
(2)代碼:一個(gè)8位代碼域,表示指定類型中的一個(gè)功能。如果一個(gè)類型中只有一種功能,代碼域置為0。
(3)檢驗(yàn)和:數(shù)據(jù)包中ICMP部分上的一個(gè)16位檢驗(yàn)和。
3、TCP協(xié)議的頭結(jié)構(gòu)
(1)TCP源端口(Source Port):16位的源端口包含初始化通信的端口號(hào)。源端口和IP地址的作用是標(biāo)識(shí)報(bào)文的返回地址。(2)TCP目的端口(Destination Port):16位的目的端口域定義傳輸?shù)哪康?。這個(gè)端口指明報(bào)文接收計(jì)算機(jī)上的應(yīng)用程序地址接口。
(3)序列號(hào)(Sequence Number):TCP連線發(fā)送方向接收方的封包順序號(hào)。
(4)確認(rèn)序號(hào)(Acknowledge Number):接收方回發(fā)的應(yīng)答順序號(hào)。
(5)頭長(zhǎng)度(Header Length):表示TCP頭的雙四字節(jié)數(shù),如果轉(zhuǎn)化為字節(jié)個(gè)數(shù)需要乘以4。
(6)URG:是否使用緊急指針,0為不使用,1為使用。
(7)ACK:請(qǐng)求/應(yīng)答狀態(tài)。0為請(qǐng)求,1為應(yīng)答。
(8)PSH:以最快的速度傳輸數(shù)據(jù)。
(9)RST:連線復(fù)位,首先斷開(kāi)連接,然后重建。
(10)SYN:同步連線序號(hào),用來(lái)建立連線。
(11)FIN:結(jié)束連線。如果FIN為0是結(jié)束連線請(qǐng)求,F(xiàn)IN為1表示結(jié)束連線。
(12)窗口大?。╓indow):目的機(jī)使用16位的域告訴源主機(jī),它想收到的每個(gè)TCP數(shù)據(jù)段大小。
(13)校驗(yàn)和(Check Sum):這個(gè)校驗(yàn)和和IP的校驗(yàn)和有所不同,不僅對(duì)頭數(shù)據(jù)進(jìn)行校驗(yàn)還對(duì)封包內(nèi)容校驗(yàn)。
(14)緊急指針(Urgent Pointer):當(dāng)URG為1的時(shí)候才有效。TCP的緊急方式是發(fā)送緊急數(shù)據(jù)的一種方式。
4、UDP協(xié)議的頭結(jié)構(gòu)
(1)源端口(Source Port):16位的源端口域包含初始化通信的端口號(hào)。源端口和IP地址的作用是標(biāo)識(shí)報(bào)文的返回地址。
(2)目的端口(Destination Port):6位的目的端口域定義傳輸?shù)哪康摹_@個(gè)端口指明報(bào)文接收計(jì)算機(jī)上的應(yīng)用程序地址接口。
(3)封包長(zhǎng)度(Length):UDP頭和數(shù)據(jù)的總長(zhǎng)度。
(4)校驗(yàn)和(Check Sum):和TCP和校驗(yàn)和一樣,不僅對(duì)頭數(shù)據(jù)進(jìn)行校驗(yàn),還對(duì)包的內(nèi)容進(jìn)行校驗(yàn)。
5、ARP報(bào)頭結(jié)構(gòu)
(1)硬件類型字段指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1;
(2)協(xié)議類型字段指明了發(fā)送方提供的高層協(xié)議類型,IP為0800(16進(jìn)制);
(3)硬件地址長(zhǎng)度和協(xié)議長(zhǎng)度指明了硬件地址和高層協(xié)議地址的長(zhǎng)度,這樣ARP報(bào)文就可以在任意硬件和任意協(xié)議的網(wǎng)絡(luò)中使用;
(4)操作字段用來(lái)表示這個(gè)報(bào)文的類型,ARP請(qǐng)求為1,ARP響應(yīng)為2,RARP請(qǐng)求為3,RARP響應(yīng)為4;
(5)發(fā)送方的硬件地址(0-3字節(jié)):源主機(jī)硬件地址的前3個(gè)字節(jié);
(6)發(fā)送方的硬件地址(4-5字節(jié)):源主機(jī)硬件地址的后3個(gè)字節(jié);
(7)發(fā)送方IP(0-1字節(jié)):源主機(jī)硬件地址的前2個(gè)字節(jié);
(8)發(fā)送方IP(2-3字節(jié)):源主機(jī)硬件地址的后2個(gè)字節(jié);
(9)目的硬件地址(0-1字節(jié)):目的主機(jī)硬件地址的前2個(gè)字節(jié);
(10)目的硬件地址(2-5字節(jié)):目的主機(jī)硬件地址的后4個(gè)字節(jié);
(11)目的IP(0-3字節(jié)):目的主機(jī)的IP地址。
ARP的工作原理如下:
首先,每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)(ARP Cache)中建立一個(gè) ARP列表,以表示IP地址和MAC地址的對(duì)應(yīng)關(guān)系。
當(dāng)源主機(jī)需要將一個(gè)數(shù)據(jù)包要發(fā)送到目的主機(jī)時(shí),會(huì)首先檢查自己 ARP列表中是否存在該 IP地址對(duì)應(yīng)的MAC地址,如果有﹐就直接將數(shù)據(jù)包發(fā)送到這個(gè)MAC地址;如果沒(méi)有,就向本地網(wǎng)段發(fā)起一個(gè)ARP請(qǐng)求的廣播包,查詢此目的主機(jī)對(duì)應(yīng)的MAC地址。此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的IP地址、硬件地址、以及目的主機(jī)的IP地址。
網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)ARP請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經(jīng)存在該IP的信息,則將其覆蓋,然后給源主機(jī)發(fā)送一個(gè) ARP響應(yīng)數(shù)據(jù)包,告訴對(duì)方自己是它需要查找的MAC地址;
源主機(jī)收到這個(gè)ARP響應(yīng)數(shù)據(jù)包后,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開(kāi)始數(shù)據(jù)的傳輸。如果源主機(jī)一直沒(méi)有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6820瀏覽量
88748 -
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4228瀏覽量
85581 -
路由器
+關(guān)注
關(guān)注
22文章
3696瀏覽量
113432 -
ARP
+關(guān)注
關(guān)注
0文章
50瀏覽量
14726
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論