1. 程式人生 > >計算機網路世界(知識掃盲二)

計算機網路世界(知識掃盲二)

OSI模型

OSI模型提供了一個標準的描述或“參考模型”,用於描述如何在電信網路中的任意兩點之間傳輸訊息。

圖1.OSI模型

它由七個層組成,每個層描述通訊的狀態,如乙太網。

圖2比較了OSI模型與TCP/IP模型及其協議。

2OSITCP/IP模型的比較

TCP / IP模型

TCP/IP模型由四個層組成。

網路介面層

網路層結合了資料鏈路層和物理層,包括雙絞線、物理層裝置(PHY)和乙太網介質訪問控制器(MAC)。

網路層

Internet層主要由軟體實現組成。IP報頭由軟體計算或生成。

傳輸層

傳輸層定義了應該對資料做什麼。這個層基於以下兩個流行的協議:

UDP是一個非常簡單的協議,非常適合流序列(如音訊或視訊)

TCP是用於受控連線的高度可靠的主機對主機協議。TCP適用於需要保證交付的應用程式。

應用程式層

應用層包括所有可用的軟體實現(如FTP、HTTP、SMTP、DNS等),它們構成了較低層。這些應用程式只能與TCP或UDP的API結合使用,後者構成了傳輸層的軟體實現。

TCP / IP協議

圖2的第三列顯示了可能的方法(子協議和物理介質)來構建堆疊。例如,FTP、HTTP或SMTP應用程式可以使用TCP、IP、乙太網IEEE 802.3和雙絞線作為一種方式。

如圖2所示,建立了更多的協議。

rfc

RFCs(徵求意見

)是乙太網社群中非常流行的一種管理系統。RFCs描述了許多網際網路協議以及通訊和網路領域的標準、程式、規則、演算法和策略。RFC從推薦開始;經過成功的討論,它隨後被網際網路社群批准。該建議發表後,市場將普遍接受。例如,IAB (Internet Architecture Board)的決策總是以RCFs的形式釋出。

最重要的協議是:

RFC 768使用者資料協議

RFC 793傳輸控制協議RFC 791 Internet協議

RFC 792 Internet控制按摩協議RFC 826地址解析協議

RFCs是乙太網成功的主要因素之一。

乙太網的家譜

乙太網系譜樹(圖3)提供了關於類的概述,其中引用了傳輸介質。這個EE-Note只描述了10Base-T和100Base-TX乙太網。

3。乙太網的家譜

光纖中繼鏈路

物理層

本節將深入探討OSI模型的物理和資料鏈路層。它還描述了RJ45插孔、磁、乙太網電源(PoE)和媒體獨立介面(MII)介面。所有的頻率都詳細的顯示給讀者提供了訊號鏈在物理層和資料鏈路層的感覺。

概述

圖4詳細顯示了層1和層2,並描述了PHY的所有子層。有關更多資訊,請參閱規範IEEE802.3-2002。

通常,PHYs在第1層工作,乙太網mac放在第2層。

4PHYMAC100 mbit網路

* MII對於10mb /s DTEs和100mb /s系統是可選的,而對於1mb /s系統則不指定。

** PMD僅為100BASE-X指定;100BASE-T4不使用這個層。

***自主是可選的。

MAC和PHY之間的標準連線是媒體獨立介面(MII)。在描述PHY任務之後,本文稍後將描述MII介面。對於10Mbit/s網路,PHY與曼徹斯特編碼解碼機制工作。在100兆位元/秒的網路中,支援任務是4B/5B的編碼和解碼、置亂、非歸零/反轉(NRZI)編碼和MLT-3轉換。自動協商是基於自治的水平,並一直工作。

編碼方法

圖4 (PHY和MAC層)詳細顯示了layer 1,它包括PCS、PMA、PMD和自動協商單元。所有這些單位都由物理所支援。的活性成分

僅取決於介質,如10BaseT和100BaseTX(速度)或100BaseTX和100BaseFX(雙絞線-光學),等等。

這個EE-Note描述的重點是10BaseT和100BaseTX標準。這些標準使用以下編碼機制。

10Mbit/s = Manchester編碼100Mbit/s = 4B/5B編碼

曼徹斯特:

802.3乙太網採用Manchester Phase Encoding (MPE)作為10BaseT系統的支援介質。

一級編碼訊號的資料位“1”由主時鐘倒轉訊號的一個完整週期表示,與相位編碼訊號的“0”到“1”上升相匹配(即,前半段為-V,後半段為+V。

從水平編碼訊號的資料位'0'由主時鐘的一個完整的正常週期表示,它給出了'1'到'0'的相位編碼訊號下降(即,前半段+V,後半段-V。

5。曼徹斯特編碼階段

圖5顯示了MPE是如何工作的。圖表底部的示例說明了數字位元流10110是如何編碼的。

在每個位元中間的轉換使同步傳送方和接收方成為可能。在任何時刻,它可以處於三種狀態之一:傳輸0位(-0.85V)、傳輸1位(0.85V)或空閒(0伏特)。有一個正常的時鐘訊號和一個倒轉的時鐘訊號會導致定期的轉換,這意味著即使有一系列0或1,時鐘的同步也很容易實現。這導致了高度可靠的資料傳輸。曼徹斯特編碼的主時鐘速度總是與資料速度匹配。這就決定了載波訊號的頻率;因此,對於10Mbit/s乙太網,載波是10mhz .[11]

NRZI(PMA)

隨著新的100Base-TX標準的引入,編碼方法從曼徹斯特編碼轉向非歸零/反向(NRZI)編碼。

邏輯1現在用訊號邊表示。如果訊號極性沒有改變,則表示邏輯上為0。

在NRZI中,根據之前的電平,1位元由0伏特或+V伏特表示。如果之前的電壓為0伏特,1位元用+V伏特表示;然而,如果先前的電壓是+V伏特,1位元將用0伏特表示。0位由先前使用的電壓等級表示。這意味著只有1位元可以“反轉”電壓,而0位元對電壓沒有影響(無論電壓是多少,它都與前一位元相同)。

這可以在以下二進位制模式10110和11111的示例中演示。

6NRZI編碼

注意,1是電壓的倒數,0是電壓的倒數。這意味著同一二進位制模式的編碼是不同的,這取決於電壓起點。

使用NRZI可以最小化頻寬使用,時鐘同步需要頻繁的電壓變化。

對於光纖,功率輸出沒有問題,可以使用更高的時鐘頻率。對於銅,NRZI是不可接受的。[1]

4B/5B編碼方法(PCS)

顯然,NRZI方法比Manchester編碼產生更少的訊號邊緣。當將位元率從10Mbit/s提高到100Mbit/s時,這種情況是受歡迎的。零資料沒有訊號邊緣,給接收機端時鐘同步帶來了新的挑戰。

為了保證接收端獲得最小的訊號邊緣,資料不直接轉換為NRZI形式。更確切地說,每一個4位元的咬一口首先被轉換成一個5位元的單詞。5位單詞提供了25(32)種不同的位模式,而不僅僅是24(16)種。如表1所示,16個模式用於資料編碼,另外7個模式具有特殊意義。小於2個1的模式完全不使用。這種所謂的4B/5B編碼方案保證每個5位單詞至少有兩個訊號邊。

14 b / 5 b編碼

如果我們對100Mbit/s系統使用與10Mbit/s系統相同的方法,由於4B/5B編碼增加了5,頻率將增加到125 MHz。非歸零/反向(NRZI)特性的附加實現將最大頻率降低到62.5 MHz。

圖10顯示了所有可能頻率的概覽(理論上的PHY - tx模式下的PHY框圖)。

圖7中的資料序列顯示了沒有轉換和擾(即,不作任何改動)。

由於4位資料到5位資料的變化,我們得到了額外的組。這些組要麼是16個數據(從0到F),要麼是I到H的命令(見表1),所有其他5位組合都是v的無效程式碼,有些可能是預留的候選程式碼,以表示未來的新程式碼。

河流的起點和終點

除了幀分隔符命令(SFD)的開始之外,10Mbit乙太網不承認任何其他位星座為資料。使用100Mbit乙太網,有更多的控制命令(見表1),可以減少直流部分,同時向線路傳送空閒符號“1111”。對於有效資料包的宣告,始終嵌入“流的開始”和“流的結束”命令。該增益是減少直流部分的線路和空閒符號將用於同步。圖7顯示了該行上的完整資料流,其中有空閒符號、流的開始(SSD)、帶SFD的序言、MAC層上的資料以及流資料的結束(ESD).[1]

7。行上的位元組,100Mbit/s

MLT3和置亂(PMD)

100Base-TX在行上使用多級門限3 (MLT3)機制傳輸資料。從NRZI訊號中可以編碼三個值(+1、0和-.1),反之亦然。MLT3方法的好處是將NRZI轉移頻率的一半從62.5 MHz降低到31.25 MHz。

在100Base-TX傳輸中,需要擾頻以減少雙絞線上的輻射排放,但擾頻器和除擾器在10Base-T操作中禁用

側流擾碼多項式是由物理介質依賴(PMD)產生的,它有以下方程

gM (x) = 1+ x13 + x33為主gM (x) = 1+ x20 + x33為從gM

利用線性反饋移位暫存器實現了主從側流式置亂器。要實現此功能,請參考您最喜歡的PHY.[12]的資料表

比較Manchester Code, 4B/5B Code, MLT-3

所有位都將通過NRZI、MLT-3和置亂方法進行轉換;因此,你不能線上路上測量它(例如,用示波器)。

8。曼徹斯特對nrzicode [9]

曼徹斯特程式碼在訊號的每一個位元之後都改變了它的值。NRZI程式碼也做了同樣的事情,它的有限的後續零數量改變了位元的確定性。4B/5Bit編碼方法僅使用兩個後續零豁免的“流的開始”(見表1)。

NRZI和MLT-3方法的結合再次降低了頻率,使最大頻率降至31.25 MHz。

使用這些編碼方法的行為,時鐘恢復總是可能的。因此,對於10/100Mbit/s網路(曼徹斯特或4B/5B與MLT-3),不需要額外的時鐘源。

造成10/100Mbit/s乙太網鏈路效能問題的最常見原因之一是,鏈路上的一個埠以半雙工方式執行,而另一個埠以全雙工方式執行。

CSMA / CD

CSMA/CD由PHY支援,在多路訪問時需要聯網。

如果有交通,載波感應控制線路。如果CS檢測到線路是免費的,可以開始資料傳輸。

如果其他裝置同時啟動,MA被設計成產生一個穩定的網路。乙太網網路的設計使多路訪問變得正常。

CD檢測到這個多重訪問,等待一個時間(隨機數),並給出命令重新啟動新的資料傳輸過程。

模式:半雙工和全雙工

半雙工

半雙工是一種使用CSMA/CD支援區域網(LAN)的操作模式,在區域網中,資料終端裝置(DTEs)爭奪對共享介質的訪問權。在半雙工模式的CSMA/CD LAN中,多個同時傳輸會導致干擾,這需要通過CSMA/CD訪問控制協議來解決。

全雙工

全雙工是支援IEEE 100中定義的雙工傳輸的網路或物理介質附件(PMA)的操作模式。在本標準的範圍內,這種操作模式允許兩個工作站同時通訊,

只要物理層能夠支援不受干擾的同時傳輸和接收(不含CSMA/CD)。

在這些IEEE規範中描述了不同的模式:

半雙工:10mbit /s (IEEE 802.3)

全雙工:100mbit /s (IEEE 802.3u)

全雙工:千兆乙太網(IEEE 802.3ab)

全雙工傳輸是全部四對嗎

自動協商

自動協商功能根據連線夥伴的能力自動將PHY配置為最優的連結引數。自那時起,標準802.3-2002第28條中定義的雙絞線自動協商系統被擴充套件到包括雙絞線上支援的所有三種乙太網速度:10Mbit/s 10Base-T、100Mbit/s 100Base-TX和1000 Mbit/s 1000Base-T。三個雙絞線對系統的物理信令部分使用相同的自動協商信令標準。雖然在10Base-T和100Base-TX鏈路上可以禁用自動協商,但是在1000Base-T系統上需要禁用自動協商,因為千兆乙太網系統使用自動協商來建立使鏈路執行所需的主從訊號定時控制。

9。連結脈衝

有了自動協商,雙對乙太網的所有三種速度都可以確定一對“鏈路夥伴”之間支援的公共選項集。雙絞線的夥伴可以

例如,使用自動協商來計算它們各自支援的最高速度,如果兩端都支援該模式,則自動設定全雙工操作。

自動協商使用快速鏈路脈衝(FLP)訊號進行。這些訊號是用於驗證鏈路完整性的普通鏈路脈衝(NLP)訊號的修改版本。FLP訊號在通電時自動生成,或者通過自動協商裝置的管理介面手動選擇。FLP訊號用於傳送有關裝置功能的資訊。自動協商協議包含基於此資訊的裝置配置規則。[10]

自動協商優先

如果兩個具有多種功能的自動協商裝置連線在一起,它們會發現基於優先順序表2的最高效能操作模式,因為這兩個變體都與第一個脈衝相容。

優先順序列在表2中,從高到低排列。全雙工操作模式比原來的半雙工乙太網優先順序更高,因為全雙工系統比以相同速度執行的半雙工鏈路能傳送更多的資料。因此,如果連線兩端的裝置都能支援全雙工操作,並且兩者都支援這種自動協商功能,他們將自動配置自己為更高效能的全雙工模式。

2。自動協商優先解決

自動協商協議包含一組優先順序,這些優先順序導致裝置選擇它們最高的通用能力集。例如,如果鏈路上的兩個裝置都支援10Base-T和100Base-TX,那麼兩端的自動協商協議將使用100Base-TX模式連線,而不是10Base-T.[10]

物理量的理論框圖

MII和PHY訊號鏈包含一些不同的頻率和資料轉換。圖10顯示了所有可能的頻率以及所有資料塊的變化。這只是一幅理論圖,但總體上代表了100Base-TX資料流的訊號鏈。

10100Base-TX模式下的理論物理量方框圖

mii相容的PHY的暫存器

每個PHY都有多個暫存器用於它的配置。這些暫存器分為符合IEEE的暫存器和特定於供應商的暫存器。例如,前16個暫存器是符合IEEE的,但是它取決於支援的特性包括多少個暫存器。這對於特定於供應商的暫存器也是有效的;這意味著所包含暫存器的數量取決於裝置支援的功能。通常,特定於供應商的暫存器從地址16到地址32開始。

暫存器可通過MII介面使用站管理插腳訪問。它是一個具有時鐘(MDC)和資料(MDIO)線的同步序列介面。有關更多資訊,請參閱EE-Note後面的MII介面。

指示燈

PHY可以用led顯示系統的狀態。通過設定適當的暫存器,led將顯示有用的系統資訊(例如,表示速度、鏈路、傳輸、接收、碰撞、雙工狀態等)。

一些PHYs雙工這些引腳與PHY地址,以減少引腳計數。在這種情況下,內部邏輯會在啟動/重置期間找出PHY地址。

RJ45和雙絞線

圖4所示的介質依賴介面(Medium Dependent Interface, MDI)採用雙絞線或光纜作為傳輸介質。RJ45千斤頂與絞合電纜配合使用,因其柔韌性好,價格高,速度快,經久耐用。由於光學開關、光纜等方面的需求,光學變型更加昂貴。

11RJ45聯結器

RJ45聯結器是為全雙工傳輸而設計的,這意味著同時傳輸傳輸和接收資料。這是可能的,因為聯結器有兩對導線,並且一個方向總是需要一對導線(差分電壓原理)。圖11詳細顯示了RJ45 jack

交叉電纜

兩個裝置(如伺服器和客戶端連線)之間的直接連線需要一根交叉電纜,不需要開關。圖12顯示了普通電纜和交叉電纜的引腳和顏色描述。有了這些顏色,就很容易區分普通電纜和交叉電纜。例如,兩臺pc之間的直接連線(或一些集線器連線)需要交叉電纜。導線是交叉的,因此傳輸介面可以到達接收介面,反之亦然。

12。交叉電纜與普通電纜

使用雙絞線有什麼好處?

該系統基於差分電壓原理。這意味著資料被分成兩個訊號。雙絞線是傳輸介質。最後,比較器電路將訊號組合在一起。下式表明噪聲將被消除。

13。雙絞線的原理

(資料(+)+(+噪音))-((拼)-(+噪聲))= 2 x資料

雙絞線產生放大後的資料訊號,噪聲不影響資料質量。

10Mbit100Mbit乙太網可以使用相同的雙絞線嗎?

網路結構設計為10Mbit/s和100Mbit/s乙太網使用雙絞線。這是可能的,因為協議改變為4/5編碼,增加了100Mbit/s乙太網的NRZ-I和MLT-3轉換,因此,工作頻率線上路上下降到額定31.25 MHz。

磁學

IEEE標準要求每個RJ45聯結器都有隔離磁。這種磁隔離和偏移訊號電壓從MAC和RJ45,以保護MAC和其他裝置(如開關)線上路上被高電壓損壞。一些RJ45千斤頂已經包括磁性的。例如,光環電子提供FastJack™聯結器與整合的高效能磁學。這些聯結器有一個小型的行業標準聯結器設計和工作在一些EZ-KIT精簡子卡。圖14顯示了整合磁性材料的RJ45聯結器的pin描述

14。磁學的RJ45聯結器(光環FastJack系列)

通過乙太網供電

乙太網電源(PoE)適用於低功耗設計的系統(如網路攝像頭和感測器)和指定的最大供電電壓48 V dc (IEEE802.3af)。PoE系統包含電力採購裝置(PSE)和電力裝置(PD),建議最大電纜長度為100米。最大功耗為15.4 W,每臺裝置的最大電流為350 mA。建議使用RJ45千斤頂的CAT-5電纜型別。PoE是可能的,因為RJ45千斤頂的兩個引腳對被保留在10BaseT(10兆位元/秒)和100BaseTX(100兆位元/秒)系統中。這四個引腳將用於PoE,如圖15所示

15POE連線圖

電阻功率發現

電阻功率發現是一種保護PDs的方法,而PSE則定期控制25k歐姆終端電阻和當前電流的線路。如果最小電流小於5ma - 10ma, PSE會識別這是不插電的PoE裝置,並立即停止電源支援。

3。功率圖

MII介面

媒體獨立介面(MII)是一個18引腳的介面,設計用於在10Mbit和100Mbit乙太網網路中PHY和MAC層之間的通訊。收發信機(PHY)可以直接連線或與電纜和聯結器(最大距離為50cm)。

MII聯結器:尺寸和型別:

該標準描述了MII的一個微型d型聯結器,它有40個引腳,50毫米x15毫米。圖16顯示了這個聯結器。有關此聯結器的詳細描述,請參閱IEC 1076-3-1001:1995。

16Miniature-D MII聯結器

表4顯示了一個超小型d聯結器的引腳描述。

4MII聯結器引腳說明

17MII描述

乙太網MAC的標準MII介面(圖17)有三個塊(傳輸、接收和管理)。管理塊僅用於配置PHY,其他塊用於資料傳輸,如10BaseT(10兆位元/秒)和100BaseTX(100兆位元/秒)標準中定義的那樣。

TX_CLK訊號是由PHY生成的。協調子層在MAC子層每組4個數據事務後生成TXD[3:0]和TX_EN訊號,請求在物理介質上傳輸4個數據位或停止傳輸。PHY與調節子層之間通過RX_CLK訊號實現同步(參見IEEE802.3)。

乙太網MAC與外接PHY之間的資料傳輸方向各為4位(小點),時鐘頻率(TCLK和RCLK)為:

收發器有兩個用於通訊的狀態訊號:傳輸啟用(TX_EN)和傳輸錯誤(TX_ER)。這些訊號如表5所示。

表5。傳輸狀態訊號

另一方面,接收介面有更多的狀態訊號,如表6所示。

6所示。接收狀態訊號

RMII (reduce MII)僅使用兩條資料線進行傳輸(TXD[1:0])和兩條資料線進行接收(RX[1:0])。這需要兩倍的轉化率:

協議結構

層的概述

本節將深入探討以下幾層的結構和描述:

18。標題結構和前言

要理解乙太網資料流,必須知道每個層都有自己的頭和資料結構。所有實現的層都分析或生成頭和傳遞

這取決於堆疊是處於接收模式還是傳輸模式。

在傳輸模式下,堆疊從上層獲取資料,並圍繞此構建其標頭檔案。然後它將這些資訊傳遞給下層,下層執行與上層相同的過程,以此類推。

在接收模式下,層從底層獲取資料,分析資料,提取資料,並將其傳遞到上層,以此類推。

對於當前層,灰色欄位總是資料(參見圖18)。由於概述和理解,它仍然使用標題名進行描述。

物理層

圖19顯示了前言長度。它包含8個位元組來準備資料流。前7個位元組提供PHY和第8個位元組(SFD)的同步。位組合“11”表示值資料的開始。

在物理層中,DST欄位(MAC header)的前面是一個7位元組的前導和幀分隔符(SFD)的1位元組開始。

19序言

MAC

20MAC

圖20描述了MAC頭的長度。在14位元組的MAC頭中,前六個位元組是目標地址,後六個位元組是源地址,最後兩個位元組包括服務的長度或型別。乙太網II將此欄位用於型別資訊(注意,IEEE802.3-2002標準為長度資訊保留了此欄位)。這兩幀之間的區別非常明顯,因為0-1500的數字是長度數字,與IEEE802.3-2002相關。1500以上的數字與乙太網II有關。表7提供了流行協議的概述。

7所示。概述的TYP/長度欄位在MAC[13]

MAC層的預告片

拖車欄位(圖21)包含FCS欄位和擴充套件欄位。這包括

驗證資料流的校驗和。拖車的迴圈冗餘校驗(CRC)長度欄位為4位元組,由MAC.[8]生成

通常,擴充套件欄位的內容為零,除非minFrameSize小於slotTime(參見圖22)。

21。物理層拖車

幀檢查序列(FCS)欄位

傳輸和接收演算法使用迴圈冗餘校驗(CRC)為FCS欄位生成CRC值。幀檢查序列(FCS)欄位包含一個4- 8位(32位)迴圈冗餘檢查(CRC)值。此值作為源地址、目標地址、型別/長度和資料(即,除前言、SFD、FCS和擴充套件之外的所有欄位)。編碼由以下多項式定義。

G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x8 + x7 + x5 + x4 + x2 + x + 1

數學上,給定座標系對應的CRC值,定義如下:

1.幀的前32位被補全。

2.這個座標系的n位被認為是n - 1次的多項式M(x)的係數。

 (目標地址欄位的第一個位對應x(n-1)項,資料欄位的最後一個位對應x0項。)

3. M(x)乘以32,除以G(x),產生一個餘數R(x)程度≤31。

4.R(x)的係數被認為是一個32位序列。

5.對位序列進行補全,得到CRC。

CRC值的32位被放在frame check sequence欄位中,因此x31項是前一個八隅體的最左位,x0項是最後一個八隅體的最右位。(因此,CRC的位按x31、x30、……、x1、x0的順序傳輸)。有關詳細資訊,請參閱IEEE802.3-2002規範。

幀檢查序列驗證

FCS驗證與FCS生成本質上是相同的。如果傳入幀的位(不包括FCS欄位本身)不生成與接收到的CRC相同的CRC值,則發生錯誤,框架被標識為無效。

擴充套件欄位

擴充套件欄位在FCS欄位之後,由一系列擴充套件位組成,這些擴充套件位很容易與資料位區分開來。欄位的長度在0到(slotTime-minFrameSize)位之間,包括在內。擴充套件欄位的內容不包含在FCS計算中。這些擴充套件位是必需的,因為CSMA/CD媒體訪問機制要求傳輸最小幀長度的minFrameSize位。如果

其中的slotTime小於minFrameSize

CSMA/CD以八位元組為單位附加額外的位元。載波擴充套件只在半雙工模式下使用。

當slotTime小於時,擴充套件欄位的長度可能大於零

minFrameSize。在所有其他條件下,擴充套件欄位的長度都為零。為

詳細資訊,請參閱IEEE802.3-2002規範。

22。載流子延長架

無效的MAC

如果MAC框架滿足以下條件之一,則視為無效:

幀長度與長度/型別欄位中指定的長度值不一致。如果length/type欄位包含超過1536 (0x600)的型別值,則認為框架長度與該欄位一致,因此不應將其視為無效的框架。

它不是長度為8的整數倍。

傳入幀的位(不包括FCS欄位本身)不會生成與接收到的值相同的CRC值。無效MAC幀的內容不能通過MAC控制子層。無效MAC幀的出現可能會被告知網路管理。[12]

23。資料流位元組

網路層

地址分辨協議

OSI模型的第三層也包括ARP,它是基本網路系統的一部分。ARP通過堆疊組織MAC地址組。堆疊表包含具有熟悉的mac地址的IP地址。系統管理員指定MAC地址的存在時間(停留時間)。在堆疊中停留的時間是有限的,通常是兩天。當這一次到達時,MAC地址及其IP地址將被刪除。通過這種行為,堆疊總是被最小化。

基本功能如下所示。如果有人以“URL”開始請求,MAC地址通常不為人所知。在名稱伺服器的幫助下,“URL”被分解為IP地址,但報頭仍然不包含MAC地址;相反,值0xFFFFFF被放在它的位置。接下來,路由器開始向IP地址顯示的子層廣播,每個裝置在這些子層中接受這個請求。只有正確的裝置能夠識別這個請求(因為它的IP地址是合適的)並返回它的IP和MAC地址。[5]

ICMP (Internet控制訊息協議)

通常,ICMP訊息報告資料報處理中的錯誤,並使用IP的基本支援,就好像它是一個更高級別的協議一樣。然而,ICMP實際上是IP的一個組成部分,必須由每個IP模組實現,ICMP從閘道器到主機(以及主機之間)用於報告錯誤並提出路由建議

IP(網際網路協議)

24IP報頭

版本:4

Version欄位指示Internet標頭的格式。這個文件顯示了版本4。

IHL:4

Internet報頭長度是32位單詞中Internet報頭的長度;因此,它指向資料的開始。注意,正確的標頭的最小值是5。

服務型別:8

服務型別提供了所需服務質量的抽象引數的指示。這些引數將用於指導通過特定網路傳輸資料報時實際服務引數的選擇。

總長度:16

總長度是資料報的長度,以八位元組為單位,包括Internet頭和資料。這個欄位允許資料報的長度達到65535個位元組。對於大多數主機和網路來說,這樣長的資料報是不切實際的。所有主機都必須準備好接受多達576個位元組的資料報(無論它們是完整到達還是進入片段)。建議主機只發送大於576位元組的資料報,前提是它們確信目的地準備接受較大的資料報。

標識:16

這是傳送方為幫助組裝資料報片段而分配的標識值。

國旗:3

9所示。各種控制標誌片段偏移:13

此欄位指示此片段在資料報中的位置。

活下來的時間:8位元

此欄位表示允許資料報停留在Internet系統中的最長時間。如果該欄位包含值為0,則必須銷燬資料報。

協議:8

此欄位指示Internet資料報資料部分中使用的下一級協議。各種協議的值用“指定的數字”來指定。

頭校驗和:16

這只是頭上的校驗和。由於一些標頭欄位會發生變化(例如,生存時間),因此在處理Internet標頭的每個點上都會重新計算和驗證。

校驗和演算法

校驗和欄位是報頭中所有16位單詞的補碼和的16位補碼。

源地址:32

例如,類A,本地主機;127.0.0.0

目標地址:32

例如C類;192.168.0.0到

TCP/IP(傳輸控制協議和網際網路協議)

TCP是一種高度可靠的主機對主機協議。它執行在IP之上,並在傳送方和接收方之間提供面向連線的服務。TCP提供了有保證的傳遞,確保包按順序傳遞。底層網路IP非常不可靠,不為TCP提供任何保證。為了在傳送方和接收方之間提供可靠性,TCP使用各種機制,如序列號、確認、三向握手和計時器。表10列出了所有狀態。圖25詳細描述了狀態機。

10TCP狀態

圖25顯示了在RFC793中描述的TCP連線狀態圖。箭頭是必需的方向,其描述符號表示IP報頭的控制位,如圖24所示。只有控制位和正確的確認號才有可能到達下一個狀態。這個確認號也包括IP報頭。

25TCP狀態圖

下一節介紹握手機制的原理。

三方握手

大多數網路協議遵循傳統的三向握手方式,在不可靠的鏈路上建立或終止連線。“A”通過傳送訊息啟動到“B”的連線。“B”回答時表示感謝。此時,“A”向“B”傳送另一條訊息,確認“A”收到了“B”的確認。當“B”收到第二個訊息來自“A”(確認B的ACK)、“A”和“B”連線成功。TCP使用三向握手來建立連線和終止連線。當主機“A”和“B”想要使用TCP進行通訊時,它們必須使用三向握手建立連線。終止或關閉連線也使用三方握手執行。

兩端的主機使用ip地址和埠號的組合來標識它們與另一端的TCP連線。在接收到遠端主機的第一個段建立了一個表條目,其中包含標識連線所需的所有引數。

連線設定

TCP使用三種方式握手來建立成功的連線。當主機“A”想要開啟到主機“B”的連線時,“A”向“B”傳送一個初始段。此初始段具有“B”向“A”傳送資料所需的初始序列號。這個初始段由TCP報頭中的SYN位設定為1來標識。如果設定了SYN位,則將報頭中的32位序列號解釋為“不是”。在所有其他情況下(當SYN位未設定時),32位序列號標識該段中包含的第一個資料位元組的序列號。收到“A”傳送的SYN訊號後,“B”必須用另一個SYN訊號進行響應,並確認“A”傳送的SYN訊號。這由狀態機圖中的SYN+ACK表示。

26。初始連線建立

連線釋放

TCP中的連線釋放也使用三向握手。連線釋放使用FIN代替同步機。

27所示。TCP中的連線釋放

一些TCP/IP堆疊在傳送重置位時釋放連線的方式不同。這導致命令釋放該連線並立即再次移動到關閉狀態。

TCP計時器

計時器與TCP狀態緊密連線。一些值(但不是全部)是由RFC指定的。有些計時器對個別實現開放。本文件將檢查與討論相關的計時器,包括連線建立時的計時器和連線終止時的計時器。

連線建立計時器

此計時器與連線的開啟相關聯。在初始連線設定期間傳送SYN時啟動。在大多數TCP實現中,這個計時器的值設定為75秒。如果超時發生,連線將中止。

FIN_WAIT計時器

當從FIN_WAIT_1狀態轉換到FIN_WAIT_2狀態時,將啟動FIN_WAIT_2計時器。這個計時器的值是10分鐘。在FIN_WAIT_2狀態中預期會有一個具有FIN位集的TCP段。如果接收到帶有FIN位設定的資料包,則計時器將被取消。計時器到期時,它將以75秒的值重新啟動。如果沒有包

當FIN的資料位在此期間到達時,連線中斷。

TIME_WAIT計時器

當連線進入等待時間狀態時,將啟動等待時間計時器。這允許從網路中刪除所有在運輸中的部分。計時器的值通常設定為2分鐘。計時器到期時,連線終止。

KEEP_ALIVE計時器

通常,當沒有資料要傳送時,TCP不會通過連線傳輸任何內容。沒有辦法將這種沉默與斷開連線時的情況區分開來。可以設定一個keep-alive計時器,以便TCP定期檢查連線的另一端是否仍然活動。這個計時器的預設值是2小時。計時器過期後,探測器被髮送到遠端端。如果遠端不響應探測,則斷開連線。

TCP狀態機的問題

TCP狀態機如圖25所示,所有連線的狀態都是固定的。每個連線邏輯上從關閉狀態開始,並進行轉換,如圖所示。連線終止後,TCP返回到關閉狀態。有關狀態機的詳細描述,請參閱RFC 793。很容易利用狀態機中的一些缺陷,並建立拒絕服務攻擊。所有拒絕服務攻擊都試圖使TCP狀態機處於一種特定的狀態,不是無限期就是有限的時間

TCP資料報結構

28TCP報頭

標準的TCP報頭包含20位元組,但是可以通過“選項”欄位增加到最多60位元組。

源埠:16

這是源埠號。

目的埠:16

這是目的埠號。

序列號:32

這是該段中第一個資料八位元的序號(SYN除外)。如果有SYN,序號是初始序號(is),第一個資料八位是+1。

確認號碼:32

如果設定了ACK控制元件位,則該欄位包含段的傳送方希望接收。一旦建立了連線,就會發送該連線。

資料偏移量:4

這是TCP報頭中32位單詞的數量。它指示資料從哪裡開始。TCP報頭(甚至包括選項)是一個32位的整數。

保留:6

這些都是為將來使用預留的,並且必須為零。

控制位:6(從左到右):

URG:緊急指標欄位顯著

ACK:確認欄位重要的PSH: Push函式

重置連線

同步序列號FIN:沒有來自發件人的更多資料

亮點:16

這是資料八位元組的數量,以在確認欄位中表示的資料八位元組開始,這個段的傳送者願意接受這個八位元組。

校驗和:16

校驗和欄位是頭和文字中所有16位單詞的補碼和的16位補碼。如果段中包含奇數個要校驗和的頭和文字八位元,那麼右邊最後一個八位元將用零填充,以形成一個16位的字元來進行校驗和。該發射臺不作為部分部分傳輸。在計算校驗和時,校驗和欄位本身被替換為零。

緊急指標:16

此欄位將緊急指標的當前值作為與此段序列號的正偏移量進行通訊。緊急

指標指向緊急資料後面的八位位元組的序號。此欄位僅在使用URG控制位集的段中解釋。

選擇:變數

選項可能佔用TCP報頭末尾的空間,是長度為8位的倍數。所有選項都包含在校驗和中。

UDP

使用者資料報協議(UDP)只提供最小的傳輸服務、非擔保的資料報傳遞,並讓應用程式直接訪問IP層的資料報服務。UDP被那些不需要TCP服務水平或者希望使用TCP無法提供的通訊服務(例如,多播或廣播傳輸)的應用程式使用。

UDP幾乎是一個空協議;它通過IP提供的唯一服務是資料的“校驗和”和埠號的多路複用。因此,在UDP上執行的應用程式必須直接處理端到端通訊問題,這些問題是面向連線的協議在需要時能夠處理的(例如,為可靠的交付而進行的重傳、“包化”和重新組裝、流控制、避免擁塞等)。IP和TCP之間相當複雜的耦合將反映在UDP和許多使用UDP.[2]的應用程式之間的耦合中

UDP資料報的結構

29UDP頭源埠

源埠是一個可選欄位。有意義時,它指示傳送程序的埠。

目的端

目的埠在特定Internet目的地地址上下文中具有含義。

長度:

長度是這個使用者資料報的八位元組長度,包括這個頭和資料。(這意味著長度的最小值是8。)

校驗和

校驗和是IP報頭、UDP報頭和資料的偽報頭的補和的16位的補和,在最後(如果必要的話)填充0個八位,以使兩個八位的倍數。

應用程式層協議

隨著越來越多的新興應用程式的出現,不同的需求和各種各樣的網際網路協議應運而生。例如,FTP用於資料傳輸,HTTP用於顯示某些Web頁面,SMTP用於傳送電子郵件。圖2僅僅顯示了幾個應用程式協議,因為由於應用程式的多樣性,所有協議的列表在這裡沒有任何意義。通常,您可以區分伺服器應用程式和客戶機應用程式。伺服器被描述為守護程序(例如HTTPd),而客戶端通常不包含字元“d”(例如HTTP)。這一點很重要,因為伺服器和客戶機必須理解相同的協議,但是它們的任務非常不同。一般來說,伺服器需要服務更多的客戶端;作為一個管理系統,伺服器應該提供資訊的來源,就像一種資料庫,有檔案系統等等。因此,原始碼的大小比客戶機應用程式大。

以下是一些有用的超連結,可以幫助您設計乙太網應用程式:

參考文獻

[1]資料編碼技術(http://www.rhyshaden.com/encoding.htm)。東蘇塞克斯的里斯·哈登。

[2]使用者資料報協議(RFC 768)。1980年8月。ISI 28。

[3]網際網路控制訊息協議(RFC 792)。1981年9月。J. Postel,網路工作組。

[4]傳輸控制協議(RFC 793)。1981年9月。南加州大學資訊科學研究所。

[5]乙太網地址解析協議(RFC 826)。1982年11月。David C. Plummer,網路工作組。

[6] TCP/IP安全(http://www.linuxsecurity.com/resource_files/documentation/tcpip-security.html)。衛報數字,公司[7]RFC原始碼書

[7] (http://www.networksorcery.com/enp/default0602.htm)。網路巫術

[8]乙太網引用(http://www.geocities.com/SiliconValley/Haven/4824/ethernet.html)。威廉·f·亞歷山大。[9] Grundlagen Computernetzwerke (http://www.netzmafia.de/skripten/netze/)。

于爾根·普蘭特,慕尼黑應用科學大學。

[10]自動協商(http://www.ethermanage.com/ethernet/autoneg.html)。司布真Bellereti。

[11]資料通訊原理:曼徹斯特相位編碼(http://www.it.jcu.edu.au/Subjects/cp3070/2002-)

2 /資源/講座/ 2 _directlinknetworksnotes - 2. - pdf)。詹姆斯庫克大學資訊科技學院。

[13]乙太網。2002年1月。Jorg Rech, Verlag Heinz Heise。

[14]FastJack™單獨的埠10/100BASE-TX RJ45聯結器。

 [15]LAN83C185資料表。牧師0.8,2004年11月。SMSC。

[16]黑鰭處理器硬體參考。Prelim Rev 1.1, 2005年1月。模擬裝置公司。

[17]乙太網網路介面ADSP-BF535黑鰭處理器(EE-214)。2003年12月。模擬裝置公司

[18]L80227 10BASE-T/100BASE-TX Ethernet技術手冊。2002年10月。大規模積體電路邏輯公司。

網路嗅探器

這個工具準確地顯示了網路流量的資料。這對於使用二進位制檔案的人來說是非常理想的。

o http://www.ethereal.com是一個免費的Windows和Unix軟體TCPDUMP

o http://www.tcpdump.org, Unix WINDUMP的免費網路分析器

o http://netgroup-serv.polito。它/windump/,一個免費版的tcpdump用於Windows機器分析器

o http://analyzer.polito。免費的Windows軟體(Netgroup, Pilotecnico di Torino)

RFC源書

這些網頁對於搜尋rfc非常有用。通常,您會發現每個RFC的一小部分描述,以及原始版本的下載. txt檔案。

o http://www.rfc-editor.org

o http://www.networksorcery.com

圖及表參考

資料

1 -乙太網歷史

比較OSI