BOOTP服務器的設計
發表于:2007-05-26來源:作者:點擊數:
標簽:
BOOTP客戶通常固化在無盤系統只讀存儲器中,因此了解BOOTP 服務器 的實現將更有意義。 首先,BOOTP服務器將從它的熟知端口(67)讀取UDP數據報。這沒有特別的地方。它不同于RARP服務器,它必須讀取類型字段為“RARP請求”的以太網
BOOTP客戶通常固化在無盤系統只讀存儲器中,因此了解BOOTP
服務器的實現將更有意義。
首先,BOOTP服務器將從它的熟知端口(67)讀取UDP數據報。這沒有特別的地方。它不同于RARP服務器,它必須讀取類型字段為“RARP請求”的以太網幀。BOOTP
協議通過將客戶的硬件地址放入BOOTP分組中,使得服務器很容易獲取客戶的硬件地址。
這里出現了一個有趣的問題:TFTP服務器如何能將一個響應直接送回BOOTP客戶?這個響應是一個UDP數據報,而服務器知道該客戶的IP地址(可能通過讀取服務器上的配置文件)。但如果這個客戶向那個IP地址發送一個UDP數據報(正常情況下會處理UDP的輸出),BOOTP服務器的主機就可能向那個IP地址發送一個ARP請求。但這個客戶不能響應這個ARP請求,因為它還不知道它自己的IP地址?。ㄟ@就是在RFC951中被稱作“雞和蛋”的問題。)
有兩種解決辦法:第一種,通常被
Unix服務器采用,是服務器發一個ioctl(2)請求給內核,為該客戶在ARP高速緩存中設置一個條目(這就是命令arp-s所做的工作,見4.8節)。服務器能一直這么做直到它知道客戶的硬件地址和IP地址。這意味著當服務器發送UDP數據報(即BOOTP應答)時,服務器的ARP將在ARP高速緩存中找到該客戶的IP地址。
另一種可選的解決辦法是服務器廣播這個BOOTP應答而不直接將應答發回該客戶。既然通常期望
網絡廣播越少越好,因此這種
解決方案應該只在服務器無法在它的ARP高速緩存設置一個條目的情況下使用。通常只有擁有超級用戶權限才能在ARP高速緩存設置一個條目,如果沒有這種權限就只能廣播BOOTP應答。
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|