100 likes | 219 Views
進階網路技術 Broadband Network Technologies. 指導教授:王井煦老師 學 生 : 第四組 935606 吳朝元 935623 林運來 935626 林振全 935629 羅濟本 935632 鄭恒昌 935633 鍾嘉宏 935649 蕭遠訓. 請說明 IP 、 Ethernet 封包格式 ?. IP 封包格式. 格式說明.
E N D
進階網路技術Broadband Network Technologies 指導教授:王井煦老師 學 生: 第四組 935606 吳朝元 935623 林運來 935626 林振全 935629 羅濟本 935632 鄭恒昌 935633 鍾嘉宏 935649 蕭遠訓 請說明IP、Ethernet封包格式?
格式說明 • 在上圖中﹐括號之內的數字就是各部件的長度(bit)﹐如果您夠細心﹐就會計算得出每一列的總長度都是32bit。下面我們分別對各部件名稱解釋一下﹕ • Version 版本(VER)。表示的是IP規格版本﹐目前的IP規格多為版本4(version 4)﹐所以這裡的數值通常為 0x4 (注意﹕封包使用的數字通常都是十六進位的)。 • Internet Header Length 標頭長度(IHL)。我們從IP封包規格中看到前面的6列為header﹐如果Options和Padding沒有設定的話﹐也就只有5列的長度﹐所以這裡的長度為“5”﹔我們知道每列有32bit﹐也就是4byte﹔那麼5列就是20byte了﹐20這個數值換成16進位就成了0x14﹐所以﹐當封包標頭長度為最短的時候﹐這裡數值最終會被換算為 0x14 。
Type of Service 服務類型(TOS)。這裡指的是IP封包在傳送過程中要求的服務類型﹐其中一共由8個bit組成﹐其中每個bit的組合分別代表不同的意思﹕ • Total Length 封包總長(TL)。通常以byte做單位來表示該封包的總長度﹐此數值包括標頭和數據的總和。 • Identification 識別碼(ID)。每一個IP封包都有一個16bit的唯一識別碼。我們從OSI的網路層級知識裡面知道﹕當程式產生的數據要通過網路傳送時﹐都會被拆散成封包形式發送﹐當封包要進行重組的時候﹐這個ID就是依據了。
Flag 標記(FL)。這是當封包在傳輸過程中進行最佳組合時使用的3個bit的識別記號。請參考下表﹕ • Fragment Offset 分割定位(FO)。當封包被切開之後﹐由於網路情況或其它因素影響﹐其抵達順序並不會和當初切割順序一至的。所以當封包進行切割的時候﹐會為各片段做好定位記錄﹐所以在重組的時候﹐就能夠依號入座了。 • Time To Live 延續時間(TTL)。這個TTL我們在許多網路設定上都會碰到﹐當一個物件﹐被賦予TTL值(以秒為單位)之後﹐就會進行計時﹐如果物件在到達TTL值的時候還沒被處理的話﹐就會被遺棄。 不過﹐並不是所有的 TTL 都以時間為單位﹐例如 ICMP 協定的 TTL﹐則以封包路由過程中的跳站數目(Hop Count)做單位。TTL 值每經過一個跳站(或被一個 router 處理)之後﹐就會被減低一個數值 。這樣當封包在傳遞過程中由於某些原因而未能抵達目的地的時候﹐就可以避免其一直充斥在網路上面。
Protocol 協定(PROT)。這裡指的是該封包所使用的網路協定類型。要注意的是﹕這裡使用的協定是網路層的協定﹐這和上層的程式協定是不同的。 • Header Checksum 標頭檢驗值(HC)。這個數值主要用來檢錯用的﹐用以確保封包被正確無誤的接收到。當封包開始進行傳送後﹐接收端主機會利用這個檢驗值會來檢驗餘下的封包﹐如果一切看來無誤﹐就會發出確認信息﹐表示接收正常。 • Source IP Address 來源地址(SA)。相信這個不用多解釋了﹐就是發送端的IP地址。 • Destination IP Address 目的地址(DA)。也就是接收端的IP地址。 • Options & Padding 這兩個選項甚少使用﹐只有某些特殊的封包需要特定的控制﹐才會利用到。
乙太網路封包格式 • EV2 封包– 此為原始規格, 由DIX 聯盟主導。 • 802.3 封包– 由IEEE 所發表,局部修改了EV2封包的格式
Preamble (同步) 前7 個Byte 的功用是使接收端的時脈(Clock)能與封包的時脈同步。 從第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值是否相符,以判斷封包是否完整無損。 • 對於網路所傳送之特定格式的封包,我們稱之為訊框(frame)。一般而言,訊框都會攜帶錯誤偵測碼(error detection code)。此錯誤偵測碼由傳送端依訊框的資料,利用某種特定的方式來產生,然後附加在訊框資料後面傳送出去。在接收端收到訊框後,利用相同方式來產生錯誤偵測碼,如果得到不相同偵測碼,即資訊發生錯誤。 • 乙太網路封包格式的 Magic Packet: Magic Packet 的重點是在 MAC Adddress,它標明了欲開機電腦的網路卡卡號,它必須重覆十六次,且緊跟在六個 bytes 的 'FF' 後面。只要網路卡找到封包「任何地方」中有如此的片段,便會將電腦開機。這個部份可重覆多次。 因此,這個片段可以包在任何協定中,如包在 TCP/IP、IPX 封包中,如此一來封包可以被 router 或 switch 傳送,而不會影響 Magic Packet 讓遠端開機的功能。 也就是說,你可以在任何協定中的資料部份填上 "FFFFFFFFFFFF"+卡號...(16次),就可利用該協定作出一個使用該協定的 Magic Packet。
802.3 與EV2 封包的差別 • 增加SFD 欄位– SFD(Start Frame Delimiter, 封包起始分)欄位, 其實就是EV2 封包Preamble 欄位的最後1 Byte。 • 將Type 欄位改為Length– 改成記載Payload 的長度而非協定代碼。以Byte 為單位, 其值為46~1500。