TCP/IP的網路層相關封包與資料
1) IP封包的封裝:IPv4有32位,IPv6有128位元。 IP封包最大可以為65535bytes。其架構如下圖:
額外說明的有:
服務類型:主要分為,PPP,表示此IP封包的優先權,目前很少是使用;D,若為0表示一般延遲(delay),若為1表示為低延遲;T,若為0表示為一般傳輸量,若為1表示為高傳輸量;R,若為0表示為一般可靠性,若為1表示為高可靠性;UU:保留尚未被使用;總共合起來為格式為PPPDTRUU。
旗標:格式為DM,其中,D,若為0表示可分段,若為1表示不可分段;M,若為0表示此IP為最後分段,若為1表示非最後分段。
分段偏移:表示這個IP分段目前在原始IP封包中所佔的位置。透過TotalLength,Identification,Flags以及Fragment Offset才能將小的IP分段在收受端組合起來。
存活時間:範圍0-255,當IP封包通過一個路由器時,TTL會減一,當TTL為0時,這個封包將會被丟棄。
協定代碼:各程式碼的意義為,1,ICMP(InternetMessage Control);2,IGMP(Internet Group Management Protocol);3,GGP(Gateway-to-GatewayProtocol);4,IP(IP in IP encapsulation);6,TCP(Transmission Control Protocol);8,EGP(ExteriorGateway Protocol);17,UDP(Use Data Program)。
表頭檢查碼:用來檢查這個IP表頭的錯誤檢查碼之用。
目標位址:目標IP位址
其他參數:額外選項,提供包含安全處理機制,路由記錄,時間戳,嚴格與寬鬆之來源路由等。
補齊項目:由於Options的內容不一定有多大,但IP每個資料都必須是32bits,所以,若Options的資料不足32bits時,則有padding補齊。
2) IP位址的組成與分級:
IP組成:網路號碼與主機號碼。
相同網域(網段):在同一個實體網段內,主機的IP具有相同的網路號碼和獨立的主機號碼。而主機號碼全為0和全為1(廣播位址)的IP是不可用的。同一網段內的主機若設定相同的網域IP範圍(不可重複)可以透過CSMA/CD的功能直接在區網路內以廣播進行網路的聯機(亦即可直接網卡對網卡傳遞資料)。在同一個實體網段之內,如果兩部主機設定成不同的IP網段,則由於廣播位址的不同,導致無法透過廣播的方式來進行聯機。此時要透過路由器(router)來進行溝通才能將兩個網域連接在一起。
IP分級:整個IP分為五個等級,如下圖:
最常用在大批電腦的網路還原)。
E類別:保留未使用的網段。
3) IP種類與取得方式
IP種類:公共IP,由InterNIC統一規劃的IP,此IP才能連上Internet;私有(保留)IP:無法連接到InternetIP:無法連接到Internet的IP,主要用於區域網路內的主機聯機規劃。
私有IP分類:A類,10.0.0.0~10.255.255.255;B類,172.16.0.0~172.31.255.255;C172.16.0.0~172.31.255.255;C類,192.1685 自動取得網路參數:在區域網路內會有一部主機專門負責管理所有電腦的網路參數,當其他主機網路啟動時,會主動向該服務要求IP參數,若取得網路相關參數後,主機就能夠自行設定好所有伺服器給你的網路參數,從而連上網路。
4) Netmask,子網路與CIDR(Classless Interdomain Routing)
Netmask:網路號碼全取1而主機號碼全取0的IP位址。
Network:此網段的第一個IP位址,即網路號碼為網路號碼,而主機號碼全為0
網路域表示方法:常用Network以及Netmask來表示一個網路網域表示方法域。 192.168.0.0/255.255.255.0或192.168.0.0/24(其中24表示網路號碼佔24位元)
# 無等級網路域間路由(無類別借用器路由為主機網路號碼號,以使得多個網域寫成一個,這種打破原本IP代表等級的方式就被稱為無等級網域間路由(可以減少路由訊息,從而提升效能)。
5) 路由的概念:當一部主機傳送資料到另一台主機時,此主機會檢視本身的路由資訊並與資料的目標位址比較,若找到目標IP,則傳送到指定的機器,否則傳送到預設網關,再進行傳輸。重複此過程,直到資料到達目的地。
6) route [-n]:觀察路由表的指示,參數
a)-n:主機名稱以IP的方式顯示。
b)資料顯示解讀,
Destination:Network的意思
#10. # Genmask:Netmask
Flags:旗標,U,以代表此路由可用;G,代表此網路需要經由Gateway來幫忙傳遞;H:代表此行路由為一部主機,而非一整個主機為一個主機可經由Gateway來幫忙傳遞;H:代表此行路由為一部主機,而非一整個主機為一台主機,而非一整個主機為一台主機,而非一整個主
Iface:介面(interface)即網路卡代號。
7) ARP(Address Resolution Protocol,網路位址解析協定),RARP(Revers ARP,反向位址解析協定。
## 8) arp [-nd];arp –s hostname( IP) Hardware_address:取得本機的ARP表格內的IP/MAC對應的數據,參數: a)-n:以主機IP的形態顯示 hostname的hardware_address由ARP table當中刪除。 c)-s:設定某IP或hostname的MAC到ARP table中(用於建立靜態的ARP)。 9) ICMP(Internet Control Message Protocol,因特網訊息控制協定):是一個錯誤偵測與回報的機制,最大的功能就是可以確保我們網路的線上狀態與連線的正確性。 ICMP也是網路層重要的封包之一,不過,這個封包並非獨立存在,而是納入到IP封包中,也就是說,ICMP同樣是透過IP封包來進行資料傳送的。 ICMP比較常見的ICMP的類別: 0:Echo Reply,代表一個回應資訊 3:Destination Unreach1Source
##當router的負載過高時,此類別碼可用來讓發送端停止發送訊息) 5:Redirect,(用來重新導向路由路徑資訊) 請求回應訊息 11:Time Exceeded for a Datagram,當資料封包在某些路由傳送的現像中造成逾時狀態,此類別碼可告知來源此封包已忽略的訊息 12:Parameter Problem on a Datagram,當一個ICMP封包重複先前的錯誤時,會回復來源主機關於參數錯誤的訊息。 13:Timestamp Request,請對方送出時間訊息,以計算路由時間差異,以符合同步協定的要求 14:Timestamp Replay## 14:Timestamp Replay,# 14:Timestamp Replay,此# 的 15:Information Request,在RARP協定應用之前,此訊息用來在開機時,取得網路資訊。 16:Information Replay,以回應Information Request訊息 17:Address Mask Request Mask Reply,回應子網路mask查詢訊息的。ping和trcaceroute兩個指令可以透過ICMP封包來確認與回報網路主機的狀態,
以上是如何分析TCP及IP的網路層相關封包與數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!