原理總結 DHCP資料報分析

2021-09-21 08:23:46 字數 2768 閱讀 3508

協議分析

- dhcp協議解碼詳解

dhcp,全稱是 dynamic host configuration protocol﹐中文名為動態主機配置協議,它的前身是 bootp,它工作在osi的應用層,是一種幫助計算機從指定的dhcp伺服器獲取它們的配置資訊的自舉協議。

dhcp使用客戶端/伺服器模式,請求配置資訊的計算機叫做dhcp客戶端,而提供資訊的叫做dhcp的伺服器。dhcp為客戶端分配位址的方法有三種:手工配置、自動配置、動態配置。

dhcp最重要的功能就是動態分配。除了ip位址,dhcp分組還為客戶端提供其他的配置資訊,比如子網掩碼。這使得客戶端無需使用者動手就能自動配置連線網路。

發現階段,即dhcp客戶機尋找dhcp伺服器的階段。dhcp客戶機以廣播方式(因為dhcp伺服器的ip位址對於客戶機來說是未知的)傳送dhcp discover發現資訊來尋找dhcp伺服器,即向位址255.255.255.255傳送特定的廣播資訊。網路上每一台安裝了tcp/ip協議的主機都會接收到這種廣播資訊,但只有dhcp伺服器才會做出響應。

提供階段,即dhcp伺服器提供ip位址的階段。在網路中接收到dhcp discover發現資訊的dhcp伺服器都會做出響應,它從尚未出租的ip位址中挑選乙個分配給dhcp客戶機,向dhcp客戶機傳送乙個包含出租的ip位址和其他設定的dhcp offer提供資訊。

選擇階段,即dhcp客戶機選擇某台dhcp伺服器提供的ip位址的階段。如果有多台dhcp伺服器向dhcp客戶機發來的dhcp offer提供資訊,則dhcp客戶機只接受第乙個收到的dhcp offer提供資訊,然後它就以廣播方式回答乙個dhcp request請求資訊,該資訊中包含向它所選定的dhcp伺服器請求ip位址的內容。之所以要以廣播方式回答,是為了通知所有的dhcp伺服器,他將選擇某台dhcp伺服器所提供的ip位址。

確認階段,即dhcp伺服器確認所提供的ip位址的階段。當dhcp伺服器收到dhcp客戶機回答的dhcp request請求資訊之後,它便向dhcp客戶機傳送乙個包含它所提供的ip位址和其他設定的dhcp ack確認資訊,告訴dhcp客戶機可以使用它所提供的ip位址。然後dhcp客戶機便將其tcp/ip協議與網絡卡繫結,另外,除dhcp客戶機選中的伺服器外,其他的dhcp伺服器都將收回曾提供的ip位址。

重新登入,以後dhcp客戶機每次重新登入網路時,就不需要再傳送dhcp discover發現資訊了,而是直接傳送包含前一次所分配的ip位址的dhcp request請求資訊。當dhcp伺服器收到這一資訊後,它會嘗試讓dhcp客戶機繼續使用原來的ip位址,並回答乙個dhcp ack確認資訊。如果此ip位址已無法再分配給原來的dhcp客戶機使用時(比如此ip位址已分配給其它dhcp客戶機使用),則dhcp伺服器給dhcp客戶機回答乙個dhcp nack否認資訊。當原來的dhcp客戶機收到此dhcp nack否認資訊後,它就必須重新傳送dhcp discover發現資訊來請求新的ip位址。

更新租約,dhcp伺服器向dhcp客戶機出租的ip位址一般都有乙個租借期限,期滿後dhcp伺服器便會收回出租的ip位址。如果dhcp客戶機要延長其ip租約,則必須更新其ip租約。dhcp客戶機啟動時和ip租約期限過一半時,dhcp客戶機都會自動向dhcp伺服器傳送更新其ip租約的資訊。

我們來介紹一下dhcp的報文格式,如圖1,

op(1)

htype(1)

hlen(1)

hops(1)

transactionid(4)

seconds(2)

flags(2)

ciaddr

(4 )

yiaddr

(4 )

siaddr

(4 )

giaddr

(4 )

chaddr

(16 )

sname

(64 )

file

(128 )

options

(variable

)(圖1   dhcp的

報文格式)

op:若是client送給server的封包,設為1,反向為2;

htype:硬體類別,ethernet為1;

hlen:硬體長度,ethernet為6;

hops:若資料報需經過router傳送,每站加1,若在同一網內,為0;

transaction id:事務id,是個隨機數,用於客戶和伺服器之間匹配請求和相應訊息;

flags:從0-15bits,最左一bit為1時表示server將以廣播方式傳送封包給 client,其餘尚未使用;

ciaddr:使用者ip位址;

yiaddr:伺服器分配給客戶的ip位址;

siaddr:用於bootstrap過程中的ip位址;(伺服器的ip位址)

giaddr:****(閘道器)ip位址;

chaddr:client的硬體位址;

sname:可選server的名稱,以0x00結尾;

file:啟動檔名;

options:,廠商標識,可選的引數字段

此次用的軟體是:wireshark(在宿舍內)

1.發現階段:

2.提供階段:

3.選擇階段

4.確認階段:

環境分析:根據上述內容,我的pc獲取到ip位址是有經過**的。而且是只經過乙個路由器**,即是閘道器。

實驗說明:此次實驗僅分析pc到閘道器這個廣播域的包走向過程,閘道器和dhcp伺服器之間這裡沒做分析。

此時實驗讓自己更加理解了dhcp的獲取過程,還熟悉了抓包軟體的使用。

Linux網路資料報分析

在linux下分析網路情況一般使用tcpdump命令。tcpdump命令後面一些常用引數 i eth0 這是網絡卡 w 檔名 將資料報儲存到檔案 c 100 只抓100個包 host 主機ip 只抓指定主機與本機的資料報 舉例 tcpdump c 2000 w home dg01.cap tcpdu...

Wireshark UDP資料報分析 廣播

udp協議 使用者資料報協議 udp協議是乙個簡單的面向資料報的傳輸層協議 程序的每個輸出操作都正好產生乙個 u d p資料報,並組裝成乙份待傳送的 i p資料報。udp協議的特點 udp是乙個無連線的協議 udp使用最大努力交付,不提供可靠性 udp頭部只有8個位元組 下面是udp資料報在ip資料...

IP 資料報分析上

學習tcp ip協議就必須的學會怎麼學分析資料報,下面為乙個簡單的例項來說明怎麼去分析乙個ip資料報 1 乙太網 rfc 894 幀的格式 其中的源位址和目的位址是指網絡卡的硬體位址 也叫mac位址 長度是48位,是在網絡卡出廠時固化的。用ifconfig命令看一下,hwaddr 00 15 f2 ...