DHCP伺服器回覆資料包是單播還是廣播的爭議
一:網路裝置上的DHCP回覆包都是單播.
二:微軟官方解釋:
預設情況下, Microsoft Windows NT 4.0 DHCP 伺服器 傳送所有的 DHCP 響應作為 IP 廣播到受限廣播地址 (255.255.255.255)。 但是,DHCP 伺服器 可以將配置為單播響應如果客戶端請求指定廣播的響應不需要。
DHCP 伺服器與 Windows NT 4.0 之前的版本忽略客戶端的 DHCP 資料 包中的該廣播的標誌,並且廣播所有答覆。 DHCP 伺服器 4.0 版支援 unicasting 通過下列登錄檔引數:
HKEY_LOCAL_MACHINE /CurrentControlSet /Services /DHCPServer /Parameters /IgnoreBroadcastFlag
引數型別: REG _ DWORD
預設值: 1
說明: 如果設定為 1,時將在客戶端請求該廣播的標誌被忽略,並且所有的 DHCP 資料包從伺服器廣播。如果設定為 0,行為 (是否廣播或不) 由廣播標誌在響應的客戶端請求中。
Networks.wri 檔案也包含此引數的說明。
總結:微軟作業系統上的DHCP伺服器的回覆包即可以是單播,也可以是廣播.(給出的答案很鬱悶)
三:總結:Linux下的DHCP回覆包是廣播.
DHCP 協議是基於UDP層之上的應用,本文結合抓報所得資料分析DHCP協議實現原理
一、先了解一下需要抓取的DHCP報文
客戶發出的IP租用請求報文
DHCP客戶機初始化TCP/IP,通過UDP埠67向網路中傳送一個DHCPDISCOVER廣播包,請求租用IP地址。該 廣播包中的源IP地址為0.0.0.0,目標IP地址為255.255.255.255;包中還包含客戶機的MAC地址和計算機名。
DHCP迴應的IP租用提供報文
任何接收到DHCPDISCOVER廣播包並且能夠提供IP地址的DHCP伺服器,都會通過UDP埠68給客戶機迴應一個DHCPOFFER廣播 包,提供一個IP地址。該廣播包的源IP地址為DCHP伺服器IP,目標IP地址為255.255.255.255;包中還包含提供的IP地址、子網掩碼 及租期等資訊。
客戶選擇IP租用報文
客戶機從不止一臺DHCP伺服器接收到提供之後,會選擇第一個收到的DHCPOFFER包,並向網路中廣播一個 DHCPREQUEST訊息包,表明自己已經接受了一個DHCP伺服器提供的IP地址。該廣播包中包含所接受的IP地址和伺服器的IP地址。所有其他的 DHCP伺服器撤消它們的提供以便將IP地址提供給下一次IP租用請求。
DHCP伺服器發出IP租用確認報文
被客戶機選擇的DHCP伺服器在收到DHCPREQUEST廣播後,會廣播返回給客戶機一個DHCPACK訊息包,表明已經接受客戶機的選擇,並將這一IP地址的合法租用以及其他的配置資訊都放入該廣播包發給客戶機。
客戶配置成功後發出的公告報文
客戶機在收到DHCPACK包,會使用該廣播包中的資訊來配置自己的TCP/IP,則租用過程完成,客戶機可以在網路中通訊。
至此一個客戶獲取IP的DHCP服務過程基本結束,不過客戶獲取的IP一般是用租期,到期前需要更新租期,這個過程是通過租用更新資料包來完成的。
客戶IP租用更新報文
(1)在當前租期已過去50%時,DHCP客戶機直接向為其提供IP地址的DHCP伺服器傳送DHCPREQUEST訊息包。如果客戶機接收到該服 務器迴應的DHCPACK訊息包,客戶機就根據包中所提供的新的租期以及其它已經更新的TCP/IP引數,更新自己的配置,IP租用更新完成。如果沒收到 該伺服器的回覆,則客戶機繼續使用現有的
IP地址,因為當前租期還有50%。
(2)如果在租期過去50%時未能成功更新,則客戶機將在當前租期過去87.5%時再次向為其提供IP地址的DHCP聯絡。如果聯絡不成功,則重新開始IP租用過程。
(3)如果DHCP客戶機重新啟動時,它將嘗試更新上次關機時擁有的IP租用。如果更新未能成功,客戶機將嘗試聯絡現有IP租用中列出的預設閘道器。 如果聯絡成功且租用尚未到期,客戶機則認為自己仍然位於與它獲得現有IP租用時相同的子網上(沒有被移走)繼續使用現有IP地址。如果未能與預設閘道器聯絡 成功,客戶機則認為自己已經被移到不同的子網上,將會開始新一輪的IP租用過程。
DHCP客戶機在發出IP租用請求的DHCPDISCOVER廣播包後,將花費1秒鐘的時間等待DHCP伺服器的迴應,如果1秒鐘沒有伺服器的回 應,它會將這一廣播包重新廣播四次(以2,4,8和16秒為間隔,加上1~1000毫秒之間隨機長度的時間)。四次之後,如果仍未能收到伺服器的迴應,則 執行 Windows 2000的DHCP客戶機將從169.254.0.0/16這個自動保留的私有IP地址(APIPA)中選用一個IP地址,而執行其他作業系統的DHCP 客戶機將無法獲得IP地址。DHCP客戶機仍然每隔5分鐘重新廣播一次,如果收到某個伺服器的迴應,則繼續IP租用過程。
二、設定SNIFFER PRO抓取DHCP通訊報文
本文使用的抓包工具軟體是NAI公司推出的功能強大的協議分析軟體---Sniffer Pro。Sniffer Pro 具有強大的網路分析功能和特徵,是解決網路問題的好工具。Sniffer支援豐富的的協議,而且能夠進行快速解碼分析。Sniffer Pro 4.6可以執行在各種Windows平臺上(其它類似軟體如Netxray不能在Windows 2003和Windows XP上正常執行)。Sniffer軟體比較大,執行時需要的計算機記憶體比較大,否則執行比較慢,這也是它與Netxray相比的一個缺點。
設定包過濾條件
網路中傳輸的資料包很多,這裡只抓取跟DHCP有關的資料,設定如下:點選Capture選單,選擇define filter開啟define filter-capture對話方塊,設定入圖引數。
Address選項
Address: Hardware
Mode:Include
Station 1: 10E08C5FC28A(網絡卡的物理MAC地址,不同的網絡卡MAC是不同)
Station 2: any
Advanced選項
IP:ICMP
UDP:BOOTP/DNS(UDP)
Packer Size:ALL
其它用預設設定,給這個配置起個名字:BOOTP
現在可以抓包了
先彈出Capture Panel(監視抓包情況),點選Capture選單中的START開始抓包。進入命令提示符,分別執行IPCONFIG/RELEASE 、IPCONFIG/RENEW命令,通過監視器可以看到已經以抓到資料包了,停止抓包並分析包,還是先保持包到磁碟以備分析。
三、分析抓到的資料包
使用者從DHCP獲取IP過程如下:
1、 使用者發出DHCPDISCOVER報文;
開始抓報文時首先執行的IPCONFIG/RELEASE命令的作用是用來釋放IP,這條報文後面分析,在釋放IP後執行的更新IP命令 IPCONFIG/RENEW將發起一個DHCP過程,分析從這裡開始。現在,客戶機沒有地址,它就會發出一個DHCPDiscover報文,該報文是廣 播報文,所有的具有DHCP Server功能的伺服器都會收到該報文。
在圖中我們可以看到該報文在鏈路層中發的確實是廣播報文。由於DHCP協議是初始化協議,更簡單的說,就是讓終端獲取IP 地址的協議,既然終端連IP地址都沒有,何以能夠發出IP報文呢?
為了解決這個問題,DHCP報文的封裝採取瞭如下措施:
1、首先鏈路層的封裝必須是廣播形式,即讓在同一物理子網中的所有主機都能夠收到這個報文。在Ethernet_II格式的網路中,就是目標MAC為全1。
2、由於終端沒有IP地址,IP頭中的原IP規定填為全0。
3、當終端發出DHCP請求報文,它並不知道DHCP SERVER的IP地址,因此IP頭中的目標IP填為子網廣播IP——全1,以保證DHCP SERVER的IP協議棧不丟棄這個報文。
4、上面的措施保證了DHCP SERVER能夠收到終端的請求報文,但僅憑鏈路層和IP層資訊,DHCP SERVER無法區分出DHCP報文,因此終端發出的DHCP請求報文的UDP層中的原埠為68,目標埠DstPort為67。即DHCP SERVER通過知名埠號67來判斷一個報文是否是DHCP報文。
DHCP協議的報文中主要資料格式詳解
Boot record type為1時表示是Client的請求,為2時表示是Server的應答。
Hardware address typeClient 的網路硬體地址型別,1表示Client 的網路硬體是10MB的乙太網型別
/Hardware address lengthClient 的網路硬體地址長度,6表示Client 的網路硬體地址長度是6bytes(即乙太網型別的6bytes的MAC地址)。
HOPS跳數,表示當前的DHCP報文經過的DHCP RELAY(中級)的數目,每經過一個DHCP中繼,此欄位就會加1,此欄位的作用是限制DHCP報文不要經過太多的DHCP RELAY,協議規定,當“hops”大於4(現在也有規定為16)時,這個DHCP報文就不能再進行處理,而是丟棄。
Transaction id事務ID,Client每次傳送DHCP請求報文時選擇的隨機數,用來匹配server的響應報文是對哪個請求報文的響應。Client會丟棄“ID”不匹配的響應報文。
Elapsed boot time秒數,用來表示client開始DHCP請求後的時間流逝秒數
flags標誌,在 BOOTP中此欄位是保留不用的,在DHCP協議中也只使用了其左邊的最高位。
Client self-assigned IPaddress客戶機IP地址
Client IP address server分配給client的IP地址
Next Server to use in bootstrap伺服器IP地址
Relay AgentDHCP中繼代理IP地址
Client hardware address客戶機硬體地址MAC
Host name 伺服器的主機名
Boot file nameClient 的啟動配置檔名
Vendor Information tag選項欄位,此欄位中包含了大量可選的終端初始配置資訊和網路配置資訊,對於BOOTP協議,此欄位為64bytes,對於DHCP協議,此欄位為64---312 bytes。其中最常用的選項列表如下:
Dhcp message typecode = 53, length = 1, value= 1-8,此欄位表示DHCP報文型別
Router Ipcode = 3, length = IP地址長度, value=client的預設閘道器的 IP地址;
DNS Ipcode = 6, length = IP地址長度的倍數, value= client的DNS伺服器的IP地址序列;
Wins Ipcode = 44, length = IP地址長度的倍數, value= client的WINS伺服器的 IP地址序列;
Client idcode = 61, length = client的網路硬體地址的長度+2, value=“htype”+“hlen”+ client的網路硬體地址;
server idcode = 54, length = IP地址長度, value= DHCP SERVER的IP地址;
其中我們要注意Transaction ID=CF04CD61和DHCP Message Type一項中type=Discover,前一項表示會話ID,即DHCP Server發回的響應報文中該結構的數值要與發出去的DHCP Discover中的該結構數值一樣,後一項說明DHCP報文型別為Discover型別報文。
2 DHCP SERVER回送DHCPOFFER報文
DHCPOFFER報文是單播而不是廣播,報文明確給出了目標MAC和IP,這一點不同與一般的技術文章介紹。其實,DHCP SERVER給終端的響應報文是根據DHCP報文中的內容決定是廣播還是單播,一般都是廣播形式。通訊源埠是67,目標埠為68,客戶端通過埠號 68來判斷一個報文是否是DHCP SERVER的響應報文,Transaction ID=CF04CD61,表示這個報文是與圖DHCP7中的DHCPDiscover報文相關的報文,因為二者標示一致。
從DHCP Server迴應的DHCPOffer報文中我們還可以得到DHCP擬分配給客戶端的初始配置資訊和網路配置資訊,其中
Client self-assigned IP address =0.0.0.0表示客戶機還沒有使用該地址
Client server-assigned IP address =10.177.124.73表示DHCP Server分配給該客戶機的IP地址
Server IP ID=218.290.240它標示了客戶機下一次發出DHCPRequest報文時,哪個DHCP Server會發出迴應
DHCP Message Typee=DHCP Offer表示這是一個對DHCPDiscover的迴應報文
Request IP address lease time =6000 表示租期是100分鐘
Domain Name Server=218.29.0.251域名伺服器地址
Gateway address=10.177.124.254閘道器地址
Subnet mask=255.255.255.0 表示這個地址的網段是一個標準的C類地址網段
所有傳送DHCP Offer資訊包的伺服器將保留它們提供的一個IP地址。在該地址不再保留之前,該地址不能分配給其他的客戶。
使用者發出DHCPREQUEST報文
客戶以廣播的方式傳送DHCP Request資訊包作為響應。注意其中的DHCP Message Type一項中type=Request表示這是一個請求報文。
客戶利用DHCP Request詢問伺服器其它的配置選項;
該資訊包是以單播的方式傳送的。當伺服器接收到DHCP Request資訊包時,它以一個DHCP Acknowledge資訊作為響應,其內容同DHCPOFFER類似,並在“選項”欄位中增加了IP地址使用租期選項。
宣告確認
CLIENT收到DHCPACK報文後(經過上面的處理後,有且只有一個DHCPACK報文),會檢查DHCP SERVER分配給自己的IP地址是否能夠使用,如在乙太網型別的網路中,CLIENT會發出一個ARP請求來確定DHCP SERVER分配的IP地址是否已經被別人使用,如果可以使用,則CLIENT成功獲得IP地址,並根據IP地址使用租期自動啟動續延過程。
DHCP協議報文的種類
前面反覆提到DHCP Message Type項,這裡列出所有DHCP協議報文的種類。DHCP協議採用CLIENT-SERVER方式進行互動,其報文格式共有8種,具體含義如下:
1:DHCPDISCOVER(0x01),此為Client開始DHCP過程的第一個報文
2:DHCPOFFER(0x02),此為Server對DHCPDISCOVER報文的響應
3:DHCPREQUEST(0x03),此報文是Slient開始DHCP過程中對server的DHCPOFFER報文的迴應,或者是client續延IP地址租期時發出的報文
4:DHCPDECLINE(0x04),當Client發現Server分配給它的IP地址無法使用,如IP地址衝突時,將發出此報文,通知Server禁止使用IP地址
5:DHCPACK(0x05),Server對Client的DHCPREQUEST報文的確認響應報文,Client收到此報文後,才真正獲得了IP地址和相關的配置資訊。
6:DHCPNAK(0x06),Server對Client的DHCPREQUEST報文的拒絕響應報文,Client收到此報文後,一般會重新開始新的DHCP過程。
7:DHCPRELEASE(0x07),Client主動釋放server分配給它的IP地址的報文,當Server收到此報文後,就可以回收這個IP地址,能夠分配給其他的Client。
8:DHCPINFORM(0x08),Client已經獲得了IP地址,傳送此報文,只是為了從DHCP SERVER處獲取其他的一些網路配置資訊,如route ip,DNS Ip等,這種報文的應用非常少見。
圖DHCP14是一個執行IPCONFIG/RELEASE後釋放IP的報文,從圖中可以看出DHCP Message Type是7,他的作用是主動釋放server分配給它的IP地址的報文,Server收到此報文後,就可以回收這個IP地址,能夠分配給其他的 Client。
上面提到的都是在已經開機的情況下獲得的報文,如果計算機重新啟動,是不是完全按照文章提到的四步得到IP引數。
其中包含關機前獲得的IP=192.168.0.22,這是不同與前面提到的10.177.124.X段的IP。原來客戶機保留了上一次獲得的地 址,客戶機在重新啟動時,如果租用期未超過50%,它就會認為它已經知道該與哪臺DHCP伺服器進行聯絡,於是就跳過前兩步,併發送另一個 DhcpRequest 報文給同一個伺服器。如果該IP地址仍然可用的話,該DHCP伺服器將給這臺客戶機返回另一個確認訊息。同樣,DHCP伺服器上也會保留(在租用期內的) 客戶機的地址。如果你的DHCP伺服器中的租用期設的足夠長,你就會發現,重啟一臺客戶機後,客戶機總是得到同一個地址。這正是由於客戶機、伺服器能儲存 已分配地址所造成的。
如果一臺客戶機未從該DHCP伺服器獲取過地址,或者它獲得的地址已過期,那麼它將需要經過全部四個步驟才能得到一個IP地址。
相關推薦
DHCP伺服器回覆資料包是單播還是廣播的爭議
一:網路裝置上的DHCP回覆包都是單播. 二:微軟官方解釋: 預設情況下, Microsoft Windows NT 4.0 DHCP 伺服器 傳送所有的 DHCP 響應作為 IP 廣播到受限廣播地址 (255.255.255.255)。 但是,DHCP 伺服器
Unity3D研究院之C#使用Socket與HTTP連線伺服器傳輸資料包
最近專案中需要使用HTTP與Socket,把自己這段時間學習的資料整理一下。有關Socket與HTTP的基礎知識MOMO就不贅述拉,不懂得朋友自己谷歌吧。我們專案的需求是在登入的時候使用HTTP請求,遊戲中其它的請求都用Socket請求,比如人物移動同步座標,同步關卡
wireshark實戰之:dhcp四次資料包交流過程
實驗目的:檢視客戶端向DHCP伺服器請求IP過程。 實驗資料: 實驗拓撲: 實驗步驟: 1、在sw2與R1之間放置資料包嗅探器。 2、開啟wireshark配置顯示過濾器為bootp。 可以
單播、廣播、組播、多播
交換機 電子 orm 數據流 優點 網上 size qos 電視機 組播=多播 單播、組播、廣播是網絡中結點的3種通訊方式。 1、單播 1)定義: 主機之間一對一的通訊模式。網絡中的交換機和路由器對數據只轉發,不復制。網絡中的路由器和交換機根據目標地址選擇傳輸路徑。
MAC地址(單播、廣播、組播、數據收發)
制造商 局域網 對比 地址 方式 傳輸 eid type 但是 MAC地址 網絡設備的MAC地址是全球唯一的。MAC地址長度為48比特,通常用十六進制表示。MAC地址包含兩部分:前24比特是組織唯一標識符(OUI,OrganizationallyUniqueIdent
單播,廣播,組播
個性 結構 數據 帶寬 能夠 時間 技術 網絡設備 都是 http://blog.csdn.net/cosmoslife/article/details/7616797 當前的網絡中有三種通訊模式:單播、廣播、組播(多播),其中的組播出現時間最晚但同時具備單播和廣播的優點,
計算機網路的三種通訊模式(單播,廣播,組播)小結
1.單播(Unicast) 單播在傳送者和每一接收者之間實現點對點網路連線。 如果一臺傳送者同時給多個的接收者傳輸相同 的資料,也必須相應的複製多份的相同資料包。如果有大量主機希望獲得資料包的同一份拷貝時, 將 導致傳送者負擔沉重、延遲長、網路擁塞;為保證一定
WIFI專案--【Java TCP/IP Socket】 — 單播、廣播、組播
在當前網路通訊中(TCP/IP也不例外)有三種通訊模式:單播、廣播、組播(又叫多播, 個人感覺叫多播描述的有點不恰當),其中多播出現的時間最晚,但同時具備單播和廣播的優點,最具有發展前景。 通訊方式分類: 1.單播:單臺主機與單臺主機之間的通訊;
計算機網路三種通訊模式(單播、廣播、組播)小結
1、單播定義:單播在傳送者和每一接收者之間實現點對點網路連線。如果一臺傳送者同時給多個接收者傳輸相同的資料,也必須相應的複製多份的相同資料包。如果有大量主機希望獲得資料包的同一份拷貝時,將導致傳送者負擔沉重、延遲長、網路擁塞,為保證一定的服務質量需增加硬體和頻寬。單播優點:1
UDP單播、廣播、多播
在Linux中使用多播技術,與使用UDP給單個使用者傳送訊息,沒有多大的區別,只是你要使用一個特殊的多播IP地址,還有一些環境需要改變一下。 一般的網絡卡,都是支援多播技術的,但是作業系統不一定。Linux一般在預設狀態編譯時,可能都不支援Multicast,你需要從新配置和編譯你的核心,使它支援多播,然
單播、廣播、組播
單播: 主機之間“一對一”的通訊模式,網路中的交換機和路由器對資料只進行轉發不進行復制。 單播的優點: 1. 伺服器及時響應客戶機的請求 2. 伺服器針對每個客戶不同請求傳送不同資料,容易實現個性化服務。 單播的缺點: 1. 在客戶數量大、每個客戶機流量大的流媒體應用中伺服器不堪重負。
vue單頁應用中,使用setInterval()定時向伺服器獲取資料,後來跳轉頁面後,發現還在不停的獲取資料。
使用VUE開發單頁專案時遇到這樣的問題,mounted中使用setInterval()定時向伺服器獲取資料,後來跳轉頁面後,發現還在不停的獲取資料。我以為是因為我路由用的push導致的,改成replace也是這樣,後來就在部落格園找到答案了,如下: http://www.cnblogs.com/zzbp/p/
鏈路內和鏈路外的數據包發送:單播、組播、任播
存在 sse ast 比特 inf 正常 ip組播 nan root 翻譯自:https://info.menandmice.com/blog/bid/103274/On-link-vs-Off-Link-Packet-Delivery-Unicast-Multicast-
單通道ECG資料包解析
print('-------------單通道ECG 資料包 解析!--------------------') with open('C:/Users/Liu/Desktop/abcd.txt','r') as file: list = file.readlines
ZStack單播組播廣播具體操作與原理資料整理
// Register the endpoint description with the AF afRegister( &GenericApp_epDesc ); 3.在需要傳送資料的地方,執行如下程式碼: if ( AF_DataRequest( &GenericApp_DstAddr,
TI CC2530 CC2538 zigbee source routing機制的有效利用(加快單播指令的傳送,解決單播丟包問題)
很多人開始對於source routing是十分迷惑的,加之TI的FAE很多時候人力有限,所以會產生很多疑問,既然都有路由表了,怎麼還會有個叫做source routing,這些東西不是憑空
Wireshark抓包分析Yersinia 根據DHCP協議傳送的偽造資料包攻擊(sending RAW packet)
抓包結果如下: 抓包與分析 幀號時間源地址目的地址高層協議包內資訊概況No. Time Source Destination Protocol Info 5 1
DHCP迴應報文廣播還是單播方式深度探究
對DHCP伺服器迴應報文的抓包實驗探究 對於DHCP報文中的offer報文和ack報文,到底是以廣播還是單播的方式回覆給主機,一直存在爭議,現做如下抓包實驗,具體的來分析DHCP報文出現的“可疑點”。 一、 猜想 對於DHCP的回覆報文到底是廣播還是單播
DHCP資料包捕獲
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個區域網的網路協議,使用UDP協議工作, 主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址,給使用者或者內部網路管理員作為對所有計算機作中央管理的手
在已經截獲網路資料包的情況下,做更新伺服器端的簡單WEB開發,請進。承諾RMB報酬,謝謝!
本人QQ:529615027 有一個程式,其實就是NP要更新,為了不讓NP更新,我想架設一個旁路伺服器,讓NP去我架設的伺服器更新資料。我截獲了NP更新的資料包。從資料包能看出原來伺服器的IP地址是218.6.139.196(其實IP有多個,更新程式使用的域名應該是np1