畢業設計之路(3)——以太網協議與ARP協議

對於不是網絡工程學院的孩子,關於網絡方面的瞭解真是一張白紙。TCP/IP之前據說過,認真看起來真頭疼,不過協議是死的,多看幾遍就熟悉了。緩存

看看書,瞭解一下TCP/IP有關概念,不然後續工做開展不下去。網絡

TCP/IP協議分爲4層。spa

  • 應用層——Telent, FTP, HTTP, SMTP
  • 傳輸層——TCP, UDP (ICMP, IGMP)
  • 網絡層——IP, ARP
  • 鏈路層——設備驅動(PPP, 以太網, FDDI等)
注:ARP屬於網絡層和鏈路層的通道。括號內的ICMP和IGMP協議,有人將其歸爲網絡層。

瞭解一下幾個比較重要的協議。
以太網協議
Ethernet II標準是一種比較舊的以太網標準。後來IEEE又創立了IEEE802.3標準。
首先看Ethernet II幀的封裝。原本想照書上畫個圖直觀的,可不知道怎麼畫,用什麼軟件能夠畫出來那樣。哎。
  • 報頭:供8字節,其中前7字節是連續的0xAA,用於同步,而後是一個0xAB,它表示幀開始的地方。它提供了同步和前定界的功能。
  • 目標地址:長度是6字節,表示目標節點的地址,它多是單播、多播、廣播地址,單播即物理地址,也叫MAC地址。廣播地址通常是0xFF 0xFF 0xFF 0xFF 0xFF 0xFF,廣播地址能夠經過網橋,但通不過網關。
  • 源地址:與上面相同,但它只能是單播地址。
  • 以太網類型:長度是兩字節,用來表示有效負載上的協議。0x0800爲IP報,0x0806爲ARP報,0x8035爲RARP報,0x86DD爲IPv6報,0x880B爲PPP報(基於以太網的PPP報)。
  • 有效負載:Ethernet II幀最大負載時1500字節,最小爲46字節。
  • 幀檢查序列:長度4字節,用於檢查幀的完整性,其原理和PPP幀的檢查序列同樣。
下面是IEEE802.3幀的封裝。
  • 報頭、目標地址、源地址:與Ethernet II相同。
  • 長度:指從DSAP開始到有效負載的最後一位的字節數。最大值1500,最小值爲46.
  • DSAP:長度是1字節,代表目標節點的下一層的協議類型,如SNAP爲0xAA.
  • SSAP:與DSAP相同,表示源節點下一層的協議類型。
  • 控件:長度多是2字節,有多是1字節。取決於在該層協議的可靠傳輸服務,單字節爲不可靠的鏈接服務,2字節爲面向鏈接的可靠服務。但IP報和ARP報都不使用面向鏈接的可靠服務,,因此它們的控件都是1字節、用0x03來表示。
由上可看出,Ethernet II與IEEE802.3幀的不一樣之處就是以太網類型變成了幀長度。能夠把IEEE802.3幀的DSAP、SSAP、控件都看作Ethernet II幀有效負載的一部分。全部在接收到一幀數據時,判斷它是Ethernet II幀仍是IEEE802.3幀能夠由Ethernet II幀的以太網類型來判斷,大於等於1500(0x05DC)就是Ethernet II幀,小於1500就是IEEE802.3幀。

ARP協議

稱爲地址解析協議,是聯繫IP協議和LAN協議的橋樑,應用範圍是局域網(LAN),是基於訪問共享和廣播技術的協議。該協議把節點的IP解析成對應的MAC地址(也叫物理地址),它能夠在局域網內尋找IP所對應的MAC地址,並保存起來以供發送使用。它是基於數據鏈路層協議之上的,但不屬於網絡層協議。
ARP有兩種幀組成, 請求幀和應答幀。前者即在網絡裏面查找IP地址對應的MAC地址。後者即回答該IP地址對應的MAC地址是多少。工做過程是這樣的,請求幀由要發IP報的節點發出,它是一個廣播報,子網內的全部節點都可以收到。各節點收到後,若是目標IP和本身的IP相同,就發送一個ARP應答報;不然就扔掉。當發送請求幀的節點接收到應答報後,就知道了對方的MAC地址,便可發送IP報。
再看 ARP緩存表,它是一個保存網絡內IP地址和對應MAC地址的緩存表。在發送IP報時,首先查看ARP緩存表中目標IP是否有對應的MAC地址。若是有就直接發送;不然,就向網絡發送ARP請求幀,並等待ARP應答幀。若是沒有APR應答報回覆,就取消IP的發送。另一種狀況是收到正確的ARP應答幀時,就要更新ARP緩存表,並把IP報發送出去。ARP緩存表的表項都有一個 生存時間,生存時間和系統時間相對應,表項生存時間爲0時表示該表項失效,從新發ARP請求幀後獲得正確的IP地址對應的MAC地址時恢復生存時間。
ARP幀的以太網類型是0x0806,ARP幀不包含IP幀,ARP幀過不了IP路由器。
下面說明ARP幀的結構。
  • 硬件類型:2字節,指出數據鏈路層的協議。如0x0001表示以太網。
  • 協議類型:2字節,指出要解析的協議。如0x0800表示IP協議,即指出ARP報要解析的協議時IP協議。
  • 硬件地址長度:1字節,指出物理地址的長度,單位是字節,如以太網地址的長度是6字節,該字段就是0x06.
  • 協議地址長度:1字節,指出要解析的協議地址的長度,單位是字節。如IP協議的IP地址長度是4字節,該字段就是0x04.
  • 操做:2字節,用於表示該ARP幀的類型,如0x0001表示ARP請求幀,0x0002表示ARP應答幀,0x0008表示反轉ARP請求幀,0x0009表示反轉ARP應答幀(反轉ARP幀只用在幀中繼)。
  • 發送端硬件地址:它的長度等於硬件地址長度的值,如以太網是6字節。在以太網中它是發送端節點的MAC地址。
  • 發送端協議地址:它的長度等於協議地址長度的值,如IP協議是4字節。用IP協議時,它是本節點的IP地址。
  • 接收端硬件地址:它的長度等於硬件地址長度的值,如以太網是6字節。在以太網中它是接收端節點的MAC地址。若是是發送請求幀,它是0x00,0x00,0x00,0x00,0x00,0x00.
  • 接收端協議地址:它的長度等於協議地址長度的值,如IP協議是4字節。用IP協議時,它是接收端節點的IP地址。
相關文章
相關標籤/搜索