資料幀的產生

2021-07-26 09:58:48 字數 2005 閱讀 9026

幀到底是由誰來產生的?

網絡卡可以產生,交換機也可以產生。交換機產生的話是因為交換機之間需要一些協議來維護特定的功能,如stp,vtp而最重要的功能還是**網絡卡(也就是主機)所產生的幀。

追問

那比如說,我的裝置是這麼連的:主機---路由器---交換機---外網。那網絡卡是在我計算機內的,也就是網絡卡直接跟路由器相連。那我要向外傳送資料。網絡卡傳給路由器的不是資料幀嗎?可是路由器是工作在網路層的,比網絡卡高。在這裡是什麼樣的情況,還有這裡的交換機的作用?

真的對這些很模糊,希望能說得明白一點,謝謝。

追答

主機----交換機---路由器--外網,這樣連是比較正常的。

而你那種連法,把交換機去掉,也是可以的。(也不是說交換機連了就不可以,而是,沒必要)

所謂路由器工作在網路層,那指的是【實現功能中里最高的層次】,上層必須有底層的支援,也就是說路由器當然能支援資料鏈路層的功能。

你要弄清楚資料的流向:乙個幀到了交換機,它不需要把幀解封裝,也就是不會處理網路層裡資料報的內容,而是根據幀的資訊**。而到了路由器,它需要解開幀的封裝,檢視資料報的資訊,然後根據資料報的目標位址再結合自己的路由表查詢路徑,重新封裝成幀發往下乙個目標。這也是路由器工作在網路層的含義

追問

非常感謝你的回答。我還有疑問,那就是在計算機內部資料也是從高層(向外傳送資料的時候)流向低層,也就是說在說算機內部也完成了對資料的封裝,那計算機也具有網路層及以下層的功能嗎?這種是不是只是協議上的用軟體來實現的?也就是說這種功能不只有路由器才有(因為我們都說路由器工作在網路層)?

我就是對這裡感到疑惑,還有你說的某裝置工作在某層,那它是不是具備它所在層及以下層的功能?

追答

計算機具有所有層的功能,其中網絡卡完成資料鏈路層和物理層(可以看成硬體),tcp/ip協議棧完成其餘上層功能。(可以看成軟體)

路由器本質上就是計算機,裡面也可以分底層模組和高層模組,一般都是底層由硬體實現而高層會涉及軟體。其實高階路由器的一些比較強大的功能是可能超越網路層的(但路由器絕大部分還是在網路層)

對於你最後的問題:是的。還是那句話,高層必須有底層支援。其實物理層我沒有提到,但所有裝置都是有物理層功能的,也必須經過物理層

乙太網(ieee 802.3)幀格式:

1、前導碼:7位元組0x55,一串1、0間隔,用於訊號同步

2、幀起始定界符:1位元組0xd5(10101011),表示一幀開始

3、da(目的mac):6位元組

4、sa(源mac):6位元組

5、型別/長度:2位元組,0~1500保留為長度域值,1536~65535保留為型別域值(0x0600~0xffff)

6、資料:46~1500位元組

7、幀校驗序列(fcs):4位元組,使用crc計算從目的mac到資料域這部分內容而得到的校驗和。

據rfc894的說明,乙太網封裝ip資料報的最大長度是1500位元組,也就是說乙太網最大幀長應該是乙太網首部加上1500,再加上7位元組的前導同步碼和1位元組的幀開始定界符,具體就是:7位元組前導同步嗎+1位元組幀開始定界符+6位元組的目的mac+6位元組的源mac+2位元組的幀型別+1500+4位元組的fcs。

按照上述,最大幀應該是1526位元組,但是實際上我們抓包得到的最大幀是1514位元組,為什麼不是1526位元組呢?原因是當資料幀到達網絡卡時,在物理層上網絡卡要先去掉前導同步碼和幀開始定界符,然後對幀進行crc檢驗,如果幀校驗和錯,就丟棄此幀。如果校驗和正確,就判斷幀的目的硬體位址是否符合自己的接收條件(目的位址是自己的物理硬體位址、廣播位址、可接收的多播硬體位址等),如果符合,就將幀交「裝置驅動程式」做進一步處理。這時我們的抓包軟體才能抓到資料,因此,抓包軟體抓到的是去掉前導同步碼、幀開始分界符、fcs之外的資料,其最大值是6+6+2+1500=1514。

乙太網規定,乙太網幀資料域部分最小為46位元組,也就是乙太網幀最小是6+6+2+46+4=64。除去4個位元組的fcs,因此,抓包時就是60位元組。當資料字段的長度小於46位元組時,mac子層就會在資料字段的後面填充以滿足資料幀長不小於64位元組。由於填充資料是由mac子層負責,也就是裝置驅動程式。

python資料幀 Python資料幀

我有乙個dataframe df 並試圖將資料附加到特定的行 index fruit rank 0 banana 1 2 mango 3 3 melon 4 目標是將排名1的水果與每個等級進行比較,然後附加值。我在用difflib.sequencematcher做比較。現在我可以追加到df,但最後我...

MAC幀型別 資料幀

主要有如下幾種型別幀 管理幀 management frame 控制幀 control frame 資料幀 data frame 資料幀mac頭如下 其中address欄位由to ds from ds位來決定 資料幀 to ds 與from ds ds distribution system 分布式...

python資料幀 Python資料幀行和列

我是乙個新的python建模者,目前在一行 中遇到了一些問題,這些 可能對很多人來說非常基礎。在 我使用的是python2.7,並成功地使用xlwings將乙個命名範圍從外部工作簿複製到pd資料幀格式。一切都很好除了測向索引以及資料框列.目前,將1分配給n 基於行數和列數 數字作為索引和列名。在 有...