• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于以太網(wǎng)板卡的DHCP客戶(hù)端的設(shè)計(jì)

      2014-10-21 11:09:39張奎
      電子世界 2014年12期
      關(guān)鍵詞:設(shè)計(jì)

      張奎

      【摘要】DHCP是為了實(shí)現(xiàn)TCP/IP網(wǎng)絡(luò)參數(shù)的自動(dòng)分配而設(shè)計(jì)的,本文深入分析DHCP工作原理,在以太網(wǎng)板卡的基礎(chǔ)上,設(shè)計(jì)了一個(gè)DHCP客戶(hù)端,從而實(shí)現(xiàn)了板卡端口的地址自動(dòng)配置。

      【關(guān)鍵詞】DHCP客戶(hù)端;以太網(wǎng)板卡;設(shè)計(jì)

      1.引言

      隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,TCP/IP網(wǎng)絡(luò)與人們的工作與生活越來(lái)越緊密的聯(lián)系在一起。為確保網(wǎng)絡(luò)通信的正常進(jìn)行,需要配置IP地址等網(wǎng)絡(luò)參數(shù)。目前,IP地址分配主要采用手動(dòng)分配和自動(dòng)分配的方式。其中,手動(dòng)分配的地址將被長(zhǎng)期占用,導(dǎo)致地址利用率低。而自動(dòng)分配則是由處于網(wǎng)絡(luò)中的服務(wù)器分配地址,這種方式將手工配置IP地址所導(dǎo)致的錯(cuò)誤減少到最低程度[1]。

      IETF設(shè)計(jì)的動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)正是這樣一種動(dòng)態(tài)分配機(jī)制。本文將闡述利用以太網(wǎng)板卡的現(xiàn)有功能,設(shè)計(jì)一個(gè)DHCP客戶(hù)端,從而使板卡的每個(gè)端口可以動(dòng)態(tài)獲取IP地址等網(wǎng)絡(luò)參數(shù)。

      2.DHCP原理

      DHCP(Dynamic Host Configuration Protocol),是一種動(dòng)態(tài)向網(wǎng)絡(luò)終端提供配置參數(shù)的協(xié)議。DHCP使用客戶(hù)端/服務(wù)器模式,請(qǐng)求配置信息的終端被稱(chēng)為DHCP客戶(hù)端,而提供配置信息的被稱(chēng)為DHCP服務(wù)器。

      DHCP客戶(hù)端和服務(wù)器之間的交互通過(guò)以下8種類(lèi)型的報(bào)文來(lái)實(shí)現(xiàn):

      ①DISCOVER:由客戶(hù)端廣播,尋找可達(dá)的服務(wù)器;

      ②OFFER:由服務(wù)器響應(yīng)客戶(hù)端的DISCOVER報(bào)文,攜帶了相關(guān)配置參數(shù);

      ③REQUEST:客戶(hù)端發(fā)往服務(wù)器,請(qǐng)求配置參數(shù)或確認(rèn)原來(lái)的配置是否可用;

      ④ACK:服務(wù)器發(fā)往客戶(hù)端,該報(bào)文包含了所提交的配置參數(shù);

      ⑤NAK:服務(wù)器發(fā)往客戶(hù)端,提示客戶(hù)端參數(shù)錯(cuò)誤或租期已滿(mǎn);

      ⑥D(zhuǎn)ECLINE:客戶(hù)端發(fā)往服務(wù)器,告訴服務(wù)器IP地址已被使用;

      ⑦RELEASE:客戶(hù)端發(fā)往服務(wù)器,告訴服務(wù)器放棄IP地址并終止剩余租期;

      ⑧INFORM:客戶(hù)端發(fā)往服務(wù)器,告訴服務(wù)器已配置了網(wǎng)絡(luò),僅向服務(wù)器請(qǐng)求本地配置參數(shù)[2];

      客戶(hù)端從服務(wù)器動(dòng)態(tài)獲取IP地址,主要通過(guò)四個(gè)階段進(jìn)行:

      ①發(fā)現(xiàn)階段:客戶(hù)端尋找服務(wù)器的階段??蛻?hù)端以廣播方式發(fā)送DISCOVER報(bào)文。

      ②提供階段:服務(wù)器提供IP地址的階段。服務(wù)器接收到客戶(hù)端的DISCOVER報(bào)文后,根據(jù)IP地址分配的規(guī)則選出一個(gè)IP地址,與其他參數(shù)一起通過(guò)OFFER報(bào)文發(fā)送給客戶(hù)端。

      ③選擇階段:客戶(hù)端選擇IP地址的階段。如果有多臺(tái)服務(wù)器向該客戶(hù)端發(fā)來(lái)OFFER報(bào)文,客戶(hù)端只接受第一個(gè),然后以廣播方式發(fā)送REQUEST報(bào)文,該報(bào)文中包含服務(wù)器在OFFER報(bào)文中分配的IP地址。

      ④確認(rèn)階段:服務(wù)器確認(rèn)IP地址的階段。服務(wù)器收到REQUEST報(bào)文后,只有被選擇的服務(wù)器會(huì)進(jìn)行如下操作:如果確認(rèn)將該地址分配給該客戶(hù)端,則返回ACK報(bào)文;否則返回NAK報(bào)文,表明該地址不能分配給該客戶(hù)端[3]。

      3.系統(tǒng)設(shè)計(jì)

      軟件部分采用VC++6.0開(kāi)發(fā)工具設(shè)計(jì)和編譯,程序運(yùn)行在WindowsXP環(huán)境下,程序設(shè)計(jì)的流程如圖2所示??蛻?hù)端程序的具體實(shí)現(xiàn)過(guò)程主要包括:

      (1)定義一個(gè)數(shù)據(jù)結(jié)構(gòu),保存程序運(yùn)行中的配置參數(shù),描述如下:

      struct dhcp_frm_params

      unsigned char op; // 操作類(lèi)型.

      unsigned char htype; // client網(wǎng)絡(luò)硬件協(xié)議類(lèi)型.

      unsigned char hlen; // client網(wǎng)絡(luò)硬件地址長(zhǎng)度.

      unsigned char hops; // 當(dāng)前的DHCP報(bào)文經(jīng)過(guò)的DHCP中繼的數(shù)量.

      unsigned int tx_id; // 匹配Server的響應(yīng)報(bào)文是對(duì)哪個(gè)請(qǐng)求報(bào)文的響應(yīng).

      unsigned short seconds; // client開(kāi)始DHCP請(qǐng)求后到現(xiàn)在經(jīng)歷的時(shí)間.

      unsigned short flags;

      unsigned char ciaddr[4]; // 表示client的IP地址.

      unsigned char yiaddr[4]; // server分配給client的IP地址.

      unsigned char siaddr[4]; // client獲取配置信息的服務(wù)器的IP地址.

      unsigned char giaddr[4]; // 記錄第一個(gè)DHCP中繼的IP地址.

      unsigned char chaddr[16]; // 記錄client的實(shí)際硬件地址內(nèi)容.

      signed char sname[64]; // client獲取配置信息的服務(wù)器的名稱(chēng).

      signed char file[128]; // client的配置文件的名稱(chēng).

      unsigned char* options; // 包含大量可選的終端初始配置信息.

      unsigned int options_len; // options的長(zhǎng)度.

      }

      (2)為了產(chǎn)生特定的交互報(bào)文,定義了一系列函數(shù),主要函數(shù)描述如下:

      根據(jù)配置參數(shù),生成一個(gè)dhcp報(bào)文:

      make_up_dhcp_frm(dhcp_frm_params& dhcp_frm, char* buf);

      ①發(fā)送一個(gè)dhcp-discover報(bào)文;

      tx_one_dhcp_disscover_frm();

      ②判斷收到報(bào)文是否是dhcp-discover報(bào)文的響應(yīng)報(bào)文;

      chk_dhcp_discover_response_frm(char*buf, unsigned int dataLen );

      ③發(fā)送一個(gè)dhcp-request報(bào)文;

      tx_one_dhcp_request_frm();

      ④判斷收到報(bào)文是否是dhcp-request報(bào)文的響應(yīng)報(bào)文;

      chk_dhcp_request_response_frm(char *buf, unsigned int dataLen );

      ⑤查找dhcp-discover的響應(yīng)報(bào)文;

      get_dhcp_discover_response_msg();

      ⑥查找dhcp-request的響應(yīng)報(bào)文;

      get_dhcp_request_response_msg();

      ⑦發(fā)送免費(fèi)的ARP報(bào)文,進(jìn)行地址沖突檢測(cè);

      tx_one_gratis_arp_frm();

      ⑧檢測(cè)對(duì)免費(fèi)ARP的響應(yīng)報(bào)文;

      chk_gratis_arp_response_frm();

      ⑨查找免費(fèi)ARP的響應(yīng)報(bào)文。

      get_gratis_arp_response_msg()。

      (3)報(bào)文的收發(fā):

      當(dāng)由軟件生成交互報(bào)文后,通過(guò)板卡的協(xié)議仿真通道,將數(shù)據(jù)發(fā)送出去。同時(shí),通過(guò)檢測(cè)通道接收到的數(shù)據(jù),獲取服務(wù)器或者其他網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送的報(bào)文。

      在設(shè)計(jì)過(guò)程中,硬件部分實(shí)現(xiàn)創(chuàng)建一個(gè)協(xié)議仿真通道,執(zhí)行數(shù)據(jù)的收發(fā)。軟件部分實(shí)現(xiàn)初始化系統(tǒng)數(shù)據(jù),產(chǎn)生交互過(guò)程中需要的報(bào)文,保存獲取的網(wǎng)絡(luò)參數(shù)。

      測(cè)試中使用了某國(guó)產(chǎn)路由器作為DHCP服務(wù)器,將板卡的一個(gè)測(cè)試端口直接與路由器相連,通過(guò)超級(jí)終端以console方式登陸路由器,配置地址池,使能路由器端口的DHCP服務(wù)器功能。啟動(dòng)配置過(guò)程后,在超級(jí)終端中可以看到服務(wù)器成功為客戶(hù)端分配了IP地址,并設(shè)置了地址的過(guò)期時(shí)間。

      4.結(jié)語(yǔ)

      本文詳細(xì)介紹了DHCP客戶(hù)端如何動(dòng)態(tài)獲取IP地址的過(guò)程,并基于以太網(wǎng)板卡的功能,實(shí)現(xiàn)了一個(gè)DHCP客戶(hù)端,可以用來(lái)測(cè)試從網(wǎng)絡(luò)中獲取地址的能力,對(duì)現(xiàn)有板卡的功能是一個(gè)很好的補(bǔ)充。

      參考文獻(xiàn)

      [1]邢國(guó)穩(wěn).工業(yè)以太網(wǎng)中DHCP協(xié)議應(yīng)用技術(shù)分析[J].微計(jì)算機(jī)信息,2005,5:30-31.

      [2]RFC 2132,DHCP Options and BOOTP Vendor Extensions.

      [3]Dynamic Host Configuration Protocol,RFC 2131,1997.

      猜你喜歡
      設(shè)計(jì)
      二十四節(jié)氣在平面廣告設(shè)計(jì)中的應(yīng)用
      何為設(shè)計(jì)的守護(hù)之道?
      《豐收的喜悅展示設(shè)計(jì)》
      流行色(2020年1期)2020-04-28 11:16:38
      基于PWM的伺服控制系統(tǒng)設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:36
      基于89C52的32只三色LED搖搖棒設(shè)計(jì)
      電子制作(2019年15期)2019-08-27 01:11:50
      基于ICL8038的波形發(fā)生器仿真設(shè)計(jì)
      電子制作(2019年7期)2019-04-25 13:18:16
      瞞天過(guò)?!律O(shè)計(jì)萌到家
      設(shè)計(jì)秀
      海峽姐妹(2017年7期)2017-07-31 19:08:17
      有種設(shè)計(jì)叫而專(zhuān)
      Coco薇(2017年5期)2017-06-05 08:53:16
      從平面設(shè)計(jì)到“設(shè)計(jì)健康”
      商周刊(2017年26期)2017-04-25 08:13:04
      和龙市| 邓州市| 华安县| 弥渡县| 铜川市| 永城市| 临漳县| 普宁市| 安吉县| 祥云县| 巨野县| 五华县| 大港区| 东乌珠穆沁旗| 蒙阴县| 新源县| 龙里县| 木兰县| 高雄市| 黄陵县| 天峨县| 乳源| 靖远县| 克东县| 晋江市| 米脂县| 琼海市| 海南省| 秦安县| 灵寿县| 夏邑县| 伊川县| 辽中县| 炎陵县| 夏邑县| 澳门| 安徽省| 鹤山市| 高碑店市| 苍南县| 晋宁县|