TCP/IP通訊協定及網路架構研析
IP資料頭格式
被IP加上資料頭之後的資料包,看起來是這個樣子的:
IP資料頭格式
IP的資料頭中,最重要的就是來源位址(Source Address),及目的位址(Destination Address)。來源位址是發出此訊息的主機位址,有了此一位址,目的端主機,才知道資料包從何處來,在必要時可以回覆訊息。目的位址,則是接收訊息的主機位址,有了此一位址,網路上的各router,才能判斷將資料包往何處送。
Protocol Number則告知目的端主機,將此資料包送給哪一個呼叫此IP的協定(TCP或是UDP . . . 等其中之一)模組,繼續處理。當資料包被送到某個網路時,如果這個網路沒,有辦法傳送如此大的資料包時,每一個資料包會被切成幾個更小的資料塊,此時Flags和Fragment Offset ,會被用來記錄追蹤這些小資料塊們。
Time to Live中的數字,在資料包每經過一個系統的時候,就會被逐漸遞減,當此值等於0時,此資料包會被丟棄不再傳送,如此就可以避免,萬一傳送的路徑形成迴路時,無法停止傳送。
加上IP資料頭之後,整個訊息看起來,就變成這個樣子:
資料包加上IP資料頭
Ethernet資料頭格式
最後,目前大多數的網路,在實質上都屬於乙太網路(Ethernet)。由於Ethernet,有自己的定址方式(Ethernet使用48位元的位址格式,每塊Ethernet網路控制卡本身,就內含了這個位址設定,所有的Ethernet控制卡製造廠商,都得向全球統一的中心註冊,以確保每一塊卡上的位址都不相同)。
所以當資料包,在Ethernet上傳送時,Ethernet協定,要負責將每一塊資料包上的目的端主機位址,和自己主機上的Ethernet位址,做一轉換比對,才知道是不是要接收此資料包、或是要繼續向外傳送此資料包。所以Ethernet會在所有的資料包前,加上來源及目的主機的位址(各48位元)。如下圖所示:
Ethernet資料頭格式
Type Code是用來指明此資料包,在Ethernet上層,對應的是TCP/IP或DECnet或Xerox . . . 等協定中的哪一種。而Ethernet除了會為資料包加上資料頭之外,也會在資料包的尾端,加上一個加總檢查數,以確保資料包內容,在傳送過程中沒有出錯。若用「E」代表Ethernet資料頭,「C」代表加總檢查數,你的訊息看起來,會是這樣子:
資料包加上Ethernet資料頭
當這些資料包,被目的端主機接收到之後,所有的資料頭,都會被移除。Ethernet模組會除去Ethernet資料頭,及加總檢查數,並且依據Type Code,來做進一步處理。
如果Type Code表明了使用IP,則Ethernet模組,會將資料包,上傳給IP模組。IP模組除去了IP資料頭時,根據該IP資料頭的Protocol欄位中,所指明的協定做判斷,若其值為TCP,則該資料包會被上傳給TCP模組。TCP模組,再根據TCP資料頭中的Sequence Number、及其它資訊,來組合所有的資料包,還原成原來的訊息。
|