




已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Ethernet幀的解析、封裝和模擬發(fā)送說(shuō)明文檔姓名:周建偉 學(xué)號(hào):2120100402一、 背景知識(shí)TCP/IP支持多種不同的鏈路層協(xié)議,這取決于網(wǎng)絡(luò)所使用的硬件,如Ethernet,令牌環(huán)網(wǎng),F(xiàn)DDI(Fiber Distributed Data Interface,光纖分布式數(shù)據(jù)接口)等?;诓煌挠布木W(wǎng)絡(luò)使用不同形式的幀結(jié)構(gòu),Ethernet是當(dāng)今應(yīng)用最廣泛的局域網(wǎng)技術(shù)。Ethernet V2.0的幀結(jié)構(gòu):前導(dǎo)碼幀前定界符目的地址DA源地址SA類型字段數(shù)據(jù)字段幀校驗(yàn)字段7B1B6B6B2B461500B4B1. 前導(dǎo)碼和幀前定界符。字段前導(dǎo)碼由56位(7B)的101010.1010比特序列組成,幀前定界符由一個(gè)8位的字節(jié)組成,其比特序列為10101011。 如果將前導(dǎo)碼與幀前定界符一起看,那么在62位101010.1010比特序列之后出現(xiàn)11。在這個(gè)11之后便是Ethernet幀的目的地址字段。從Ethernet物理層角 度看,接收電路從開始接收比特到進(jìn)入穩(wěn)定狀態(tài),需要一定的時(shí)間。設(shè)計(jì)前62位1和0的交替比特序列的目的是保證接收電路在幀的目的地址到來(lái)之前到達(dá)正常狀 態(tài)。接收端在收到最后兩位11時(shí),標(biāo)志在他之后應(yīng)該是幀的目的地址。前導(dǎo)碼與幀前定界符主要起到接收同步的作用,這8個(gè)字節(jié)接收后不需要保留,也不計(jì)入幀 頭長(zhǎng)度。2. 目的地址和源地址。目的地址與源地址分別表示幀的接收節(jié)點(diǎn)與發(fā)送節(jié)點(diǎn)的硬件地址。硬件地址一般稱作MAC地址,物理地址或Ethernet地址。地址長(zhǎng)度為6B(即48位)。為了方便起見,通常使用十六進(jìn)制數(shù)字書寫。 Ethernet幀的目的地址可分為3種:l 單播地址(unicast address):目的地址的第一位為0表示單播地址。目的地址是單播地址,則表示該幀只被與目的地址相同的節(jié)點(diǎn)所接收l(shuí) 多播地址(multicast address):目的地址第一位為1表示多播地址。目的地址是多播地址,則表示該幀被一組節(jié)點(diǎn)所接收。l 廣播地址(broadcast address):目的地址全為1表示廣播地址。目的地址是廣播地址,則表示該幀被所有所有節(jié)點(diǎn)接收。3. 類型字段類型字段表示的是網(wǎng)絡(luò)層使用的協(xié)議類型。常見的協(xié)議類型:0800表示網(wǎng)絡(luò)層使用IP協(xié)議,0806表示網(wǎng)絡(luò)層使用ARP協(xié)議,8137表示網(wǎng)絡(luò)層使用Novell IPX協(xié)議,809b表示網(wǎng)絡(luò)層使用Apple Talk協(xié)議。4. 數(shù)據(jù)字段IEEE 802.3協(xié)議規(guī)定數(shù)據(jù)的長(zhǎng)度在461500B之間。如果數(shù)據(jù)的長(zhǎng)度少于46B,需要加填充字節(jié),補(bǔ)充到46B。填充字節(jié)是任意的,不計(jì)入長(zhǎng)度字段中。 幀頭部分長(zhǎng)度為18B,包括6B的目的地址字段,6B的源地址字段,2B的類型字段和4B的幀校驗(yàn)和字段,而前導(dǎo)碼與幀前界定符不計(jì)入幀頭長(zhǎng)度中,那 么,Ehternet幀的最小長(zhǎng)度為64B(46B+18B),最大長(zhǎng)度為1518B(1500B+18B)。設(shè)置最小幀長(zhǎng)度的一個(gè)目的是使每個(gè)接收節(jié)點(diǎn) 能夠有足夠的時(shí)間檢測(cè)到?jīng)_突5. 幀校驗(yàn)字段幀校驗(yàn)字段FCS采用32位CRC校驗(yàn)。校驗(yàn)的范圍包括目的地址字段、源地址字段、長(zhǎng)度字段、LLC數(shù)據(jù)字段。在接收端進(jìn)行校驗(yàn),如果發(fā)現(xiàn)錯(cuò)誤,幀將被丟棄。在本次作業(yè)中,為了簡(jiǎn)便起見,采用8位的CRC校驗(yàn)。8位CRC校驗(yàn)的生成多項(xiàng)式為:二、 開發(fā)環(huán)境平臺(tái):Windows XP SP3;環(huán)境:Visual Studio 2005語(yǔ)音:C#三、 程序介紹3.1 運(yùn)行方式1. 點(diǎn)桌面的“開始”菜單-“運(yùn)行”-鍵入“cmd”-進(jìn)入控制臺(tái)界面;2. 進(jìn)入可執(zhí)行程序所在文件夾;運(yùn)行界面3. 從上圖可見,本程序能執(zhí)行三種命令l 幫助命令“EthernetFrame /h”l 解析命令“EthernetFrame /u 數(shù)據(jù)文件名”l 封裝命令 “EthernetFrame /e 數(shù)據(jù)文件名”命令說(shuō)明:1、不區(qū)分大小寫;2、數(shù)據(jù)文件名自行定義;3、執(zhí)行封裝命令時(shí),若當(dāng)前目錄中已經(jīng)存在同名文件,會(huì)被覆蓋掉。3.2 程序流程圖1、主流程圖解析命令/h -u -e用戶鍵入命令 輸入不合法處理封裝命令-e-u處理解析命令/h處理幫助命令2、 封裝命令流程圖用戶輸入一段文字將文字轉(zhuǎn)變?yōu)樽止?jié)流最多1500字節(jié)填充到數(shù)據(jù)字段,不足46字節(jié)的填充0校驗(yàn)CRC發(fā)送幀將幀寫入文件發(fā)送完成?3、 解析命令流程圖讀二進(jìn)制文件尋找?guī)^找到?封裝幀顯示幀3.3 核心代碼分析1、主流程Frame frame = new Frame();/定義一個(gè)Ethernet幀 frame.FileName = args1; switch (args0.ToUpper() case -E:/封裝幀 frame.Package(); break; case -U:/解析幀 frame.Analyse(); break; default: /其他命令,待擴(kuò)展 break;命令ToUpper()的目的是不區(qū)分命令的大小寫。2、封裝幀message = Console.ReadLine();/輸入字段文字 byteMessage = Encoding.ASCII.GetBytes(message);/將其轉(zhuǎn)變?yōu)樽止?jié)流 count = byteMessage.Length / 1500 + 1;/被封裝成多少個(gè)幀/逐個(gè)封裝并發(fā)送幀for (int blockIndex = 0; blockIndex count; blockIndex+ ) this.length = 幀長(zhǎng); this.dataField = new bytethis.length;/數(shù)據(jù)字段 for (int index = 0; index dataLength; index+ ) /填充數(shù)據(jù)字段 this.dataFieldindex = byteMessageindex + point; this.fcs = CheckSum();/計(jì)算校驗(yàn)和 WriteFrame();/將幀寫入文件 SendFrame(); /發(fā)送封裝后的幀 封裝幀是將用戶輸入的文字轉(zhuǎn)變?yōu)樽止?jié)流,并封裝成一個(gè)一個(gè)的幀并模擬發(fā)送,最后寫入文件。值得注意的是幀的長(zhǎng)度應(yīng)為461500B。3、解析幀index = 0; fileStream = new FileStream(this.fileName, FileMode.Open);/讀文件 binaryReader = new BinaryReader(fileStream);/以二進(jìn)制方式讀文件 while (index fileStream.Length) Console.WriteLine(沒有找到完整幀頭,解析終止); break;/從文件中讀出目的地址、源地址、長(zhǎng)度,并填充到相應(yīng)字段 this.destAddress = binaryReader.ReadBytes(this.destAddress.Length); this.sourceAddress = binaryReader.ReadBytes(this.sourceAddress.Length); this.Length = (short)(binaryReader.ReadByte() 8); this.Length |= (short)binaryReader.ReadByte(); this.dataField = new bytedataLength; this.dataField = binaryReader.ReadBytes(this.dataField.Length); this.fcs = binaryRea
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山東省日照市高三上學(xué)期開學(xué)考試-生物試題(含答案)
- 2025年大學(xué)物理考試常識(shí)學(xué)習(xí)試題及答案
- 2025年可持續(xù)發(fā)展與管理專業(yè)知識(shí)考試試題及答案
- 2025年課程與教學(xué)論基礎(chǔ)知識(shí)測(cè)試卷及答案
- 2025年跨文化溝通能力考試試卷及答案
- 2025年金融學(xué)專業(yè)考研模擬試卷及答案
- 心理設(shè)備購(gòu)買合同協(xié)議
- 商場(chǎng)保安服務(wù)合同協(xié)議
- 正規(guī)房產(chǎn)抵押合同協(xié)議
- 模具材料供應(yīng)協(xié)議書范本
- 二類修理廠安全會(huì)議記錄
- Festo氣動(dòng)基礎(chǔ)知識(shí)介紹
- 重慶談判歷史劇劇本
- 物流管理專業(yè)畢業(yè)答辯論文答辯PPT模板
- 乒乓球-循環(huán)賽積分表人-人
- 電工材料(第五版)中職PPT完整全套教學(xué)課件
- HIV實(shí)驗(yàn)室SOP文件-新版
- 孤獨(dú)癥兒童評(píng)估填寫范例(一表兩圖)
- 韌性:不確定時(shí)代的精進(jìn)法則
- 地坪涂料與自流平地坪(第二版)
- 賀蘭山東麓干紅葡萄酒多酚組分與其抗氧化、抗癌活性的關(guān)聯(lián)性研究
評(píng)論
0/150
提交評(píng)論