Posts

Showing posts from March, 2017

IPv6的延伸標頭 Extended Header

Image
IPv4的時代要使用一些特殊的功能(如通知或控制)有兩種方式,1. IPv4 Option,2. ICMPv4


IPv4 Option
需要在IPv4標頭的最後面再加上各種 OPTION,這個動作會造成IPv4標頭長度不固定。
(IPv4標頭最小是20 bytes,最大是60 bytes)
IPv4不常用Option功能,因為處理Option可能會消耗到寶貴的CPU資源


IPv4 Option 格式
Option Type - 指定這個 option 是做甚麼用的,Option Type 又分成3個小項目
    Copied- 如果這個封包會被分割,是否要把這個option複製到全部分割後的IPv4標頭內,1 = Yes,0 = No
    Option Class - option的分類,雖然2 bits可以分成四類,目前只有 0 Control和2 Debugging and Measurement,這兩個有用到
    Option Number - 接續上面的分類(class),指定在類別內的功能

Option Length - 0 or 1 byte - 整個Option的大小,包含option的標頭,單位是byte
Option Data - 0 or any bytes - 這個 option 要傳送的資料


可以用Windows Ping功能的 -r -s -k -j參數,這些參數會設定IPv4 Option,最常用的應該是 -r 功能
Record Route - 紀錄一路上經過的路由器數量和IP,因IPv4封包上限限制紀錄的最高數量是9
底下的圖片是使用wireshark抓Ping -r 的截圖,只截取Option的部分
圖片的上方是 Echo 下面是 Reply



底下的網址有IPv4 option列表
http://www.networksorcery.com/enp/protocol/ip.htm#Options



ICMPv4 (這邊會用 v4 是為了要跟 ICMPv6 區別)
另一種方式是使用ICMP,通常是用來通知主機或路由器網路上發生了錯誤,還有常用的Ping功能也是ICMP的一部份

這邊有很完整的ICMPv4介紹
http://www.pcnet.idv.tw/pcnet/network/network_ip_icmp.htm





IPv6…