100 likes | 253 Views
進階網路技術 Broadband Network Technologies. 題目 : 請說明 IP 、 Ethernet 封包格式. 授課老師: 王井煦 敎授 組別 : 第一組 925650 邱鑫坤 935603 劉文雄 935635 劉得源 935639 邱顯忠 935652 蔡子健 935655 郭大豪. IP 封包表頭格式. 首先 ﹐ 讓我們看看 IP 封包的組成部份 ﹐ 以及各部件的長度 ﹕. 單位 :bit. Version
E N D
進階網路技術Broadband Network Technologies 題目: 請說明IP、Ethernet封包格式 授課老師: 王井煦 敎授 組別:第一組 925650邱鑫坤935603劉文雄 935635劉得源935639邱顯忠 935652蔡子健935655郭大豪
IP 封包表頭格式 首先﹐讓我們看看IP封包的組成部份﹐以及各部件的長度﹕ 單位:bit
Version 版本 (VER)。表示的是 IP 規格版本﹐目前的 IP 規格多為版本 4 (version 4)﹐所以這裡的數值通常為 0x4 (注意﹕封包使用的數字通常都是十六進位的)。 Internet Header Length 標頭長度 (IHL)。我們從 IP 封包規格中看到前面的 6 行為 header ﹐如果Options 和 Padding沒有設定的話﹐也就只有5 行的長度﹔我們知道每行有 32bit ﹐也就是 4byt e﹔那麼, 5 列就是 20byte 了。20 這個數值換成 16 進位就成了 0x14﹐所以﹐當封包標頭長度為最短的時候﹐這裡數值會被換算為 0x14 。 Type of Service 服務類型 (TOS)。這裡指的是 IP 封包在傳送過程中要求的服務類型﹐其中一共由 8 個 bit 組成﹐每組 bit 組合分別代表不同的意思﹕
Total Length 封包總長 (TL)。通常以 byte 做單位來表示該封包的總長度﹐此數值包括標頭和數據的總和。 Identification 識別碼 (ID)。每一個IP封包都有一個 16bit 的唯一識別碼。我們從 OSI 和 TCP/IP 的網路層級知識裡面知道﹕當程式產生的數據要通過網路傳送時﹐都會在傳送層被拆散成封包形式發送﹐當封包要進行重組的時候﹐這個 ID 就是依據了。 Flag 旗標 (FL)。這是當封包在傳輸過程中進行最佳組合時使用的 3 個 bit 的識別記號。請參考下表﹕
Fragment Offset 分割定位 (FO)。當一個大封包在經過一些傳輸單位(MTU)較小的路徑時﹐會被被切割成碎片(fragment) 再進行傳送(這個切割和傳送層的打包有所不同﹐它是由網路層決定的)。由於網路情況或其它因素影響﹐其抵達順序並不會和當初切割順序一至的。所以當封包進行切割的時候﹐會為各片段做好定位記錄﹐所以在重組的時候﹐就能夠依號入座了。 如果封包沒有被切割﹐那麼 FO 的值為“0”。 Time To Live 存活時間 (TTL)。這個 TTL 的概念﹐在許多網路協定中都會碰到。當一個封包被賦予 TTL 值(以秒或跳站數目(hop)為單位)﹐之後就會進行倒數計時。在 IP 協定中,TTL 是以 hop 為單位,每經過一個 router 就減一)﹐如果封包 TTL 值被降為 0 的時候﹐就會被丟棄。這樣﹐當封包在傳遞過程中由於某些原因而未能抵達目的地的時候﹐就可以避免其一直充斥在網路上面。有隻叫做 traceroute 的程式﹐就是一個上佳的 TTL 利用實作﹐我們會在後面的章節裡面討論。 Protocol 協定(PROT)。這裡指的是該封包所使用的網路協定類型﹐例如﹕ICMP 或 TCP/UDP 等等。
Header Checksum 標頭檢驗值(HC)。這個數值主要用來檢錯用的﹐用以確保封包被正確無誤的接收到。當封包開始進行傳送後﹐接收端主機會利用這個檢驗值會來檢驗餘下的封包﹐如果一切看來無誤﹐就會發出確認信息﹐表示接收正常。 Source IP Address 來源位址(SA)。相信這個不用多解釋了﹐就是發送端的 IP 位址是也﹐長度為 32 bit。 Destination IP Address 目的地位址(SA)。也就是接收端的 IP 位址﹐長度為 32 bit。 Options & Padding 這兩個選項甚少使用﹐只有某些特殊的封包需要特定的控制﹐才會利用到。這裡也不作細表啦。
Ethernet封包格式 EV2 封包– 此為原始規格, 由DIX 聯盟主導 802.3 封包– 由IEEE 所發表,局部修改了EV2封包的格式
Preamble (同步) • 前7 個Byte 的功用是使接收端的時脈(Clock)能與封包的時脈同步。(0101…) • 從第8 個Byte(在802.3 封包中稱為SFD 欄位)之後的資 料, 才會被網路設備(包 • 括網路卡、集線器等等)視為封包內容、開始解讀。 • Destination Address (目的位址) • 記錄此封包的目的MAC 位址。 • 前3 Bytes 為廠商代號, 後3 Bytes 為流水號。 • 『0xFFFFFFFFFFFF』(全部Bit 都是1)這個位址特別稱為『廣播位址』, 代表所 • 有的接收端都必須處理這個封包 • Source Address (來源位址) • 記錄此封包的來源MAC 位址。 • 此欄位必定是指某個特定的MAC 位址, 不可能是廣 • 播位址。
Type (協定種類) • 以代碼指定上層(網路層)所採用的協定 • 例如0x0800代表IP、0x8137 代表IPX。 • 因網路層可能同時安裝TCP/IP、IPX、NetBeui 等多種協定, 此欄位便指出應將 • Payload 傳給上層的哪一種協定處理。 • Data (資料) • 也就是Payload。 • 長度為46 Bytes 到1500 Bytes。 • FCS(Frame Check Sequence,封包檢查結果、訊框查核) • 記錄著由硬體(網路卡)自動產生的CRC (cyclic redundancy check)值。 • 將來接收端收到封包時, 也會產生一個CRC 值, 並比對兩個CRC值是否相符,以判 • 斷封包是否完整無損。
802.3 與EV2 封包的差別 • 增加SFD 欄位– SFD(Start Frame Delimiter, 封包起始分)欄位, 其實就是EV2 封包Preamble 欄位的最後1 Byte。 • 將Type 欄位改為Length– 改成記載Payload 的長度而非協定代碼。以Byte 為單位, 其值為46~1500。