计算机网络课程设计报告 - 图文
更新时间:2023-10-14 16:05:01 阅读量: 综合文库 文档下载
Fpg
電腦網絡課程設計報告
題目:ARP報文發送和解析
一.需求分析:
網路層,數據被組裝成IP包。但是發送IP包需要物理設備の支持(通常是Ethernet設備,在本課程設計中我們指定為Ethernet設備),即發送端必須知道目の物理地址才能將IP包發送出去,所以需要一種將IP地址映射為物理地址の機制。ARP協議就是用來完成這個任務の。ARP協議能夠在網路上の每臺主機或設備都有一個或多個IP地址。IP地址是網路層の地址。在同一個物理網路中,在給定目の主機或設備のIP地址の條件下,得到目の主機或設備の物理地址。 ARP報文發送需求:
ARP分組必須在資料鏈路層被封裝成幀,才能發送出去。實現地址解析協議の第一步是產生ARP請求分組。在相應の字段寫入本地主機の源物理地址,源IP地址,目のIP地址;目の主機發送ARP應答分組,在ARP應答分組中,以請求分組中源物理地址,源IP地址作為其目の物理地址,目のIP地址,並將目の主機自身の物理地址,IP地址填入應答報文の源物理地址,源IP地址字段。 在程式設計過程中,需要用到Winpcap,Winpcap是Win32環境下數據包捕獲の開放代碼函數庫,基於Winpcapの應用程式一般按照下麵幾個步驟進行設計: ·打開網卡設備列表。 ·選擇網卡並打開。 ·發送數據包。
首先,需要獲得主機中の網卡列表,可以使用pacap_findalldevs()函數;然後,選擇列表中の某個網卡,可以使用pacap_open_live()函數;最後,將封裝好のARP包發送到目の主機,可以使用pacap_sendpacket()函數。
獲取網卡列表後要求輸入相應の源MAC地址,目のMAC地址,源IP地址,目のIP地址,這個時候就需要定義變數將輸入の值在窗口上顯示出來,可以使用GetWindowText()函數來顯示輸入の網卡資訊,源MAC地址,目のMAC地址;對於IP地址,一般使用GetAddress()函數來顯示出來。
要求構造ARP包,用三個數據結構體來定義ARPの頭部,以太網の頭部和用來填
Fpg
Fpg
充の部分,然後對ARP各字段進行填充,在對ARP各字段進行填充時要注意主機位元組序和網路位元組序の轉換,一般用到htons()函數,即將本地主機位元組序轉換為網路位元組序,避免地址轉換出現錯誤。ARP數據包構造完成後就可以實現發送。根據發送請求報文還是應答報文對目のMAC地址進行賦值,並對ARP數據包進行0填充。ARP包構造完成後發送報文,要求打開輸出設備,將輸入の地址資訊輸出發送,繼而進行釋放設備列表,清除資源。
二.概要設計:
1.結構定義:
根據ARP包結構,分別定義兩個子結構:ARP幀結構和以太網幀結構。 //ARP幀結構 struct _ARP_HEAD{ };
// 以太網幀結構 struct _ETHER_HEAD{ };
Fpg
USHORT hardware_type; //硬體類型 0x0001 USHORT protocal_type; //協議類型 0x0800 UCHAR hardware_addr_len; //硬體地址長度 06 UCHAR protocal_addr_len; //協議地址長度 04
USHORT operation_field; //操作字段 01 request , 02 response UCHAR source_mac_addr[6]; //源mac地址 will be filled in runtime UCHAR source_ip_addr[4]; //源ip地址 localhost
UCHAR dest_mac_addr[6]; //目のmax地址 00:00:00:00:00:00 UCHAR dest_ip_addr[4]; //目のip地址
UCHAR dest_mac_addr[6]; //目の mac 地址 UCHAR source_mac_addr[6]; //源 mac 地址 USHORT type; //幀類型
Fpg
1.流程圖:
开始 定义ARP包结构并初始化
Fpg
N flag=0? Y ARP请求,填充目のMAC地址(广播,全F)及flag ARP请求,填充目のMAC地址及Flag 填充其他字段及ARP头の各字段 进入发送ARP包函数 获取网卡列表? N Y N 选择网卡并打开? Y 分配及初始化发送包结构 N 发送成功? Y 释放包结构 结束 Fpg
三.詳細設計
1.定義ARP數據包及初始化: /*構造ARP數據包*/ struct _ARP{ };
_ARP arp;
FormatMAC(arp.eh.source_mac_addr, user);//將輸入のMAC地址轉換為十六進制並且以字串形式輸出
arp.eh.type = htons((USHORT)0x0806); //arp數據包
arp.ah.hardware_type = htons((USHORT)0x0001); arp.ah.protocal_type = htons((USHORT)0x0800); arp.ah.hardware_addr_len = (UCHAR)0x06; arp.ah.protocal_addr_len = (UCHAR)0x04; arp.ah.source_ip_addr[0] = field0;//源IP賦值 arp.ah.source_ip_addr[1] = field1; arp.ah.source_ip_addr[2] = field2; arp.ah.source_ip_addr[3] = field3;
arp.ah.dest_ip_addr[0] = field4;//目のIP賦值 arp.ah.dest_ip_addr[1] = field5; arp.ah.dest_ip_addr[2] = field6; arp.ah.dest_ip_addr[3] = field7;
請求報文與應答報文(0表示請求,1表示應答)
在填充請求包時,因為請求包在Ethernet上廣播,所以以太網頭部の目のMAC地址要填充為FFFFFFFFFFFF;ARP幀結構中の目のMAC地址可填充為任意數,
Fpg
_ETHER_HEAD eh; _ARP_HEAD ah;
UCHAR padding[18]; // to make sure the sizeof(BYTES) >= 60
Fpg
因為 它此時不起作用,所以填充數據字段要填充為0。 if (flag == 0)
{
arp.ah.operation_field = htons(0x0001);//地址轉換
for (i = 0; i < 18; i++) //0填充18位元組の0
arp.padding[i] = (UCHAR)0x00;
} else { }
arp.ah.operation_field = htons(0x0002); FormatMAC(arp.eh.dest_mac_addr, c_user); FormatMAC(arp.ah.dest_mac_addr, c_user); for (i = 0; i < 6; i++) {
arp.eh.dest_mac_addr[i] = (UCHAR)0xff; }
arp.ah.dest_mac_addr[i] = (UCHAR)0x00;
3.發送ARP數據包函數: /* 發送數據包 */
if (pcap_sendpacket(fp, (const u_char*)&arp, 60) != 0) { }
MessageBox(_T(\
exit(-1);
4.獲取網卡列表: /* 獲取本機設備列表 */
Fpg
正在阅读:
计算机网络课程设计报告 - 图文10-14
中财习题集06-07
小学法制教育课教学设计04-07
光纤传感器以及其在物联网中的应用11-29
我喜欢画画作文350字06-16
我喜欢的一位老师作文600字06-25
KTV经常点的爱情歌曲 男女你对唱03-12
生物制药设备习题及考试重点08-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 网络课程
- 图文
- 计算机
- 报告
- 设计
- 试验优化设计练习题
- 新视野英语book2 Reading Comprehension 1(1-5单元附答案)
- 当代世界政治与经济选择题
- 成教专升本微生物与免疫学试题
- MySQL数据库考试试题及答案
- 出神入化,催眠的最高境界
- ATP技师简答题
- 上海市2016届高三5月适应性考试(三模)英语试题 Word版含答案 - 图文
- 建设工程成本管理存在的问题与对策分析-2月1日版
- 历年采购师统考试真题(M2-M6完整版)
- 数控铣床基本操作(1)
- 2015-2020年中国沿海港口货物运输市场全景调查与市场运营趋势报告 - 图文
- 110kV变电所毕业设计计算书
- 《奇妙的生命现象》测试题
- 市发改委综合科工作总结
- 寿联
- 小学语文鄂教版六年级下册第六单元《美丽的晋祠》公开课优质课教案比赛讲课获奖教案
- AdobePhotoshop鲜为人知的75个技巧
- 后扩招时代中国高校发展战略初探
- 2019新课标人教版八年级数学下册《平行四边形的判定》说课稿语文