蘭州理工大學(xué)以太網(wǎng)幀的封裝與成幀設(shè)計解析-2023修改整理_第1頁
蘭州理工大學(xué)以太網(wǎng)幀的封裝與成幀設(shè)計解析-2023修改整理_第2頁
蘭州理工大學(xué)以太網(wǎng)幀的封裝與成幀設(shè)計解析-2023修改整理_第3頁
蘭州理工大學(xué)以太網(wǎng)幀的封裝與成幀設(shè)計解析-2023修改整理_第4頁
蘭州理工大學(xué)以太網(wǎng)幀的封裝與成幀設(shè)計解析-2023修改整理_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦蘭州理工大學(xué)以太網(wǎng)幀的封裝與成幀設(shè)計解析*******************

實踐教學(xué)

*******************

蘭州理工高校

計算機與通信學(xué)院

2022年秋季學(xué)期

計算機通信課程設(shè)計

題目:以太網(wǎng)幀的封裝與成幀設(shè)計

專業(yè)班級:

姓名:

學(xué)號:

指導(dǎo)老師:王慧琴

成果:

本次課程設(shè)計應(yīng)用了計算機通信技術(shù)中有關(guān)于以太網(wǎng)的幀結(jié)構(gòu)的學(xué)問,應(yīng)用數(shù)據(jù)鏈路層的相關(guān)學(xué)問,通過對幀中固定的前導(dǎo)碼,源地址,目的地址等寫入,在處理數(shù)據(jù)字段之后與其一起舉行封裝,構(gòu)造成一個詳細(xì)的幀。在VC6.0中采納與封裝與解析數(shù)據(jù)包相關(guān)的代碼編寫“工程”,其中利用windsock庫函數(shù)舉行封裝與解析命令。

關(guān)鍵字:裝封;成幀;以太網(wǎng);計算機通信

前言(1)

一、基本原理(2)

1、以太網(wǎng)工作原理(2)

2、以太網(wǎng)幀結(jié)構(gòu)(3)

二、需求分析(6)

三、系統(tǒng)分析(7)

1、主流程(7)

2、封裝幀(8)

3、解析幀(14)

四、分析結(jié)果(22)

五、心得體味(23)

六、

計算機網(wǎng)絡(luò)是計算機技術(shù)與通信技術(shù)互相滲透、密切結(jié)合而形成的一門交錯學(xué)科。計算機網(wǎng)絡(luò)的應(yīng)用可以大大縮短人與人交往的時光和空間的距離,更進(jìn)一步擴大了人類社會群體之間互相與配合范圍,因此人們一定會很快接受在計算機網(wǎng)絡(luò)環(huán)境中的工作方式,同時計算機網(wǎng)絡(luò)也會對社會的長進(jìn)產(chǎn)生不行估計的作用。計算機網(wǎng)絡(luò)正在轉(zhuǎn)變?nèi)藗兊墓ぷ鞣绞胶蜕罘绞?,網(wǎng)絡(luò)技術(shù)的進(jìn)展已成為影響一個國家與地區(qū)政治、經(jīng)濟、科學(xué)與文化進(jìn)展的重要因素之一。

以太網(wǎng)是當(dāng)今現(xiàn)有局域網(wǎng)采納的最通用的通信協(xié)議標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了在局域網(wǎng)(LAN)中采納的電纜類型和信號處理辦法。以太網(wǎng)在互聯(lián)設(shè)備之間以10-100Mbps的速率傳送信息包,雙絞線電纜10BaseT以太網(wǎng)因為其低成本、高牢靠性以及10Mbps的速率而成為應(yīng)用最為廣泛的以太網(wǎng)技術(shù)。許多創(chuàng)造商提供的產(chǎn)品都能采納通用的軟件協(xié)議舉行通信,開放性最好。目前LAN接入方式就是俗稱的“以太網(wǎng)”,帶寬也達(dá)不到10-100Mbps,不過是2-4Mbps,比ADSL接入稍好一點。

一、基本原理

1、以太網(wǎng)工作原理

以太網(wǎng)采納分享信道的辦法,即多臺主機共用一個信道舉行數(shù)據(jù)傳輸。為了解決多個計算機的信道征用問題,以太網(wǎng)采納IEEE802.3標(biāo)準(zhǔn)規(guī)定的CSMA/CD(載波監(jiān)聽多路拜訪/矛盾檢測)協(xié)議,它是控制多個用戶共用一條信道的協(xié)議,CSMA/CD的工作原理如下:

(1)載波監(jiān)聽(先聽后發(fā))

使用CSMA/CD協(xié)議時,總線上各個節(jié)點都在監(jiān)聽總線,即檢測總線上是否有別的節(jié)點發(fā)送數(shù)據(jù)。假如發(fā)覺總線是空閑的,既沒有檢測到有信號正在傳送,即可立刻發(fā)送數(shù)據(jù);假如監(jiān)聽到總線忙,即檢測到總線上有數(shù)據(jù)正在傳送,這季節(jié)點要持續(xù)等待直到監(jiān)聽到總線空閑時才干將數(shù)據(jù)發(fā)送出去,或等待一個隨機時光,再從新監(jiān)聽總線,向來到總線空閑再發(fā)送數(shù)據(jù)。載波監(jiān)聽也稱作先聽后發(fā)。

(2)矛盾檢測

當(dāng)兩個或兩個以上的節(jié)點同時監(jiān)聽到總線空閑,開頭發(fā)送數(shù)據(jù)時,就會發(fā)生碰撞矛盾;傳輸延遲可能會使第一個節(jié)點發(fā)送的數(shù)據(jù)還沒有到達(dá)目標(biāo)節(jié)點時,另一個要發(fā)送的數(shù)據(jù)的節(jié)點就已經(jīng)監(jiān)聽到總線空閑,并開頭發(fā)送數(shù)據(jù),這也會帶至矛盾的產(chǎn)生。當(dāng)兩個幀發(fā)生矛盾時,兩個傳輸?shù)膸蜁黄茐?,被損壞幀繼續(xù)傳輸毫無意義,而且信道無法被其他站點使用,對于有限的信道來講,這是很大的鋪張。假如每個發(fā)送節(jié)點邊發(fā)送邊監(jiān)聽,并在監(jiān)聽到矛盾之后立刻停止發(fā)送,就可以提高信道的利用率,當(dāng)節(jié)點檢測到縱向上發(fā)生矛盾時,就立刻取消傳輸數(shù)據(jù),隨后發(fā)送一個短的干擾信號,一個較強矛盾信號,告知網(wǎng)絡(luò)上的全部的節(jié)點,總線已經(jīng)發(fā)生了矛盾。在堵塞信號發(fā)生后,等待一個隨機大事,然后再將要發(fā)送的數(shù)據(jù)發(fā)送一次。假如還有矛盾,則重復(fù)監(jiān)聽、等待和重傳操作。

CSMA/CD采納用戶拜訪總線時光不確定的隨機競爭方式,有結(jié)構(gòu)容易、輕負(fù)載時時延小等特點,但當(dāng)網(wǎng)絡(luò)通信負(fù)載增大時,因為矛盾增多,網(wǎng)絡(luò)吞吐率下降、傳輸延時增長,網(wǎng)絡(luò)性能會顯然下降。

從以上可看出以太網(wǎng)的工作方式就像沒有支持人的座談會中,全部的參會者都通過一個共同的介質(zhì)來相互交談。每個參與會議的人在講話前,都禮貌的等到別人把話講完。假如兩個客人同時開頭講話,那么他們都停下來,分離隨機等待

一段時光再開頭講話,這是假如兩個客人等待的時光不同,矛盾就不會浮現(xiàn),假如講話沖過了一次以上,將采納退避指數(shù)加強等待的時光。

2、以太網(wǎng)幀結(jié)構(gòu)

幀格式

EthernetII幀格式:

|前序|目的地址|源地址|類型|數(shù)據(jù)|FCS||8byte|6byte|6byte|2byte|46~1500byte|4byte|

IEEE802.3普通幀格式

|前序|幀起始定界符|目的地址|源地址|長度|數(shù)據(jù)|FCS|

|7byte|1byte|2/6byte|2/6byte|2byte|46~1500byte|4byte|EthernetII和IEEE802.3的幀格式比較類似,主要的不同點在于前者定義的2字節(jié)的類型,而后者定義的是2字節(jié)的長度;所幸的是,后者定義的有效長度值與前者定義的有效類型值無一相同,這樣就簡單區(qū)別兩種幀格式了。

1)前序字段

前序字段由8個(EthernetII)或7個(IEEE802.3)字節(jié)的交替浮現(xiàn)的1和0組成,設(shè)置該字段的目的是指示幀的開頭并便于網(wǎng)絡(luò)中的全部接收器均能與到達(dá)幀同步,另外,該字段本身(在EthernetII中)或與幀起始定界符一起(在IEEE802.3中)能保證各幀之間用于錯誤檢測和恢復(fù)操作的時光間隔不小于9.6毫秒。

2)幀起始定界符字段

該字段僅在IEEE802.3標(biāo)準(zhǔn)中有效,它可以被看作前序字段的連續(xù)。實際上,該字段的組成方式繼續(xù)使用前序字段中的格式,這個一個字節(jié)的字段的前6個比特位置由交替浮現(xiàn)的1和0構(gòu)成。該字段的最后兩個比特位置是11,這兩位中斷了同步模式并提示接收后面尾隨的是幀數(shù)據(jù)。

當(dāng)控制器將接收幀送入其緩沖器時,前序字段和幀起始定界符字段均被去除。類

似地當(dāng)控制器發(fā)送幀時,它將這兩個字段(假如傳輸?shù)氖荌EEE802.3幀)或一個

前序字段(假如傳輸?shù)氖钦嬲囊蕴W(wǎng)幀)作為前綴加入幀中。

3)目的地址字段

目的地址字段確定幀的接收者。兩個字節(jié)的源地址和目的地址可用于IEEE802.3網(wǎng)絡(luò),而6個字節(jié)的源地址和目的地址字段既可用于EthernetII網(wǎng)絡(luò)又可用于IEEE802.3網(wǎng)絡(luò)。用戶可以挑選兩字節(jié)或六字節(jié)的目的地址字段,但對IEEE802.3設(shè)備來說,局域網(wǎng)中的全部工作站必需使用同樣的地址結(jié)構(gòu)。目前,幾乎全部的802.3網(wǎng)絡(luò)使用6字節(jié)尋址,幀結(jié)構(gòu)中包含兩字節(jié)字段選項主要是用于使用16比專門址字段的早期的局域網(wǎng)。

4)源地址字段

源地址字段標(biāo)識發(fā)送幀的工作站。和目前地址字段類似,源地址字段的長度可以是兩個或六個字節(jié)。惟獨IEEE802.3標(biāo)準(zhǔn)支持兩字節(jié)源地址并要求使用的目的地址。EthernetII和IEEE802.3標(biāo)準(zhǔn)均支持六個字節(jié)的源地址字段。當(dāng)使用六個字節(jié)的源地址字段時,前三個字節(jié)表示由IEEE分配給廠商的地址,將燒錄在每一塊網(wǎng)絡(luò)接口卡的ROM中。而創(chuàng)造商通常為其每一網(wǎng)絡(luò)接口卡分配后字節(jié)。5)類型字段

兩字節(jié)的類型字段僅用于EthernetII幀。該字段用于標(biāo)識數(shù)據(jù)字段中包含的高層協(xié)議,也就是說,該字段告知接收設(shè)備如何解釋數(shù)據(jù)字段。在以太網(wǎng)中,多種協(xié)議可以在局域網(wǎng)中同時共存,例如:類型字段取值為十六進(jìn)制0800的幀將被識別為IP協(xié)議幀,而類型字段取值為十六進(jìn)制8137的幀將被識別為IPX和SPX傳輸協(xié)議幀。因此,在EthernetII的類型字段中設(shè)置相應(yīng)的十六進(jìn)制值提供了在局域網(wǎng)中支持多協(xié)議傳輸?shù)臋C制。

6)長度字段

用于IEEE802.3的兩字節(jié)長度字段定義了數(shù)據(jù)字段包含的字節(jié)數(shù)。不論是在EthernetII還是IEEE802.3標(biāo)準(zhǔn)中,先前序到FCS字段的幀長度最小必需是64字節(jié)。最小幀長度保證有足夠的傳輸時光用于以太網(wǎng)網(wǎng)絡(luò)接口卡精確地檢測矛盾?;谧钚L為64字節(jié)和使用六字節(jié)地址字段的要求,意味著每個數(shù)

據(jù)字段的最小長度為46字節(jié)。

7)數(shù)據(jù)字段

如前所述,數(shù)據(jù)字段的最小長度必需為46字節(jié)以保證幀長至少為64字節(jié),這意味著傳輸一字節(jié)信息也必需使用46字節(jié)的數(shù)據(jù)字段:假如填入該該字段的信息少于46字節(jié),該字段的其余部分也必需舉行填充。數(shù)據(jù)字段的最大長度為1500字節(jié)。

8)校驗序列字段

既可用于EthernetII又可用于IEE802.3標(biāo)準(zhǔn)的幀校驗序列字段提供了一種錯誤檢測機制,每一個發(fā)送器均計算一個包括了地址字段、類型/長度字段和數(shù)據(jù)字段的循環(huán)冗余校驗(CRC)碼。發(fā)送器于是將計算出的CRC填入四字節(jié)的FCS字段。

二、需求分析

依據(jù)以太網(wǎng)數(shù)據(jù)包格式,將前導(dǎo)碼,目的地址,源地址與數(shù)據(jù)字段舉行填充,對填充的數(shù)據(jù)字段的長度舉行推斷校驗,若數(shù)據(jù)過長則封裝成不同的幀舉行發(fā)送并解析。編寫出程序封裝數(shù)據(jù)包與解析數(shù)據(jù)包,并將解析后各包的頭部與數(shù)據(jù)字段寫入輸入文件。數(shù)據(jù)字段的值從封裝的文件中獵取。

三、系統(tǒng)分析

運行環(huán)境

平臺:WindowsXP

環(huán)境:VC6.0

運行方式

a.點桌面的“開頭”菜單->“運行”->鍵入“cmd”->進(jìn)入控制臺界面;

b.進(jìn)入可執(zhí)行程序所在文件夾并顯示;

運行界面

1、主流程

●協(xié)助命令“EthernetFrame/h”

●解析命令“EthernetFrame/u數(shù)據(jù)文件名”

●封裝命令“EthernetFrame/e數(shù)據(jù)文件名”

2、封裝幀

執(zhí)行“EthernetFrame-einput”命令,在相應(yīng)位置輸入兩次相同的信息,回車并結(jié)束輸入,以實現(xiàn)以太網(wǎng)幀的封裝。在舉行封裝命令之前,首先要將幀結(jié)構(gòu)中的前導(dǎo)碼,幀前定界符,目的地址,源地址等四項內(nèi)容填充,輸入數(shù)據(jù)字段,并對數(shù)據(jù)舉行校驗,若數(shù)據(jù)字段過長則需將其封裝成不同的幀舉行發(fā)送,第一個幀被發(fā)送之后再發(fā)送其次個幀。若少于46B的數(shù)據(jù)則要在后面填充“0”,發(fā)送封裝幀后對總線的空閑狀態(tài)要舉行推斷,惟獨在總線空閑時才可將其發(fā)送寫入文件,接收并解析。

封裝命令流程圖

//Encap.cpp封裝幀類的實現(xiàn)代碼

#include

#include

#include

#include"Encap.h"

#include"CRC8.h"

usingnamespacestd;

/************************************************************************/

/*功能:完成前導(dǎo)碼到源地址的四項封裝

/*輸入?yún)?shù):fstream對象

/************************************************************************/

voidEncap::HeaderEncap(fstream//將讀指針移到文件末尾

for(inti=0;i<7;i++)//寫入B的前導(dǎo)碼和B的幀前定界符file.put((char)0xaa);

file.put((char)0xab);

file.write(destination,6);//寫入目的地址

file.write(source,6);//寫入源地址

}

/*************

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論