包”(Packet)是TCP/IP協議通信傳輸中的數據單位, 般也稱“數據包”。在局域網中,“包”是包含在“幀”里的。我們可以用 個形象 些的例子對數據包的概念加以說明:我們在郵局郵寄產品時,雖然產品本身帶有自己的包裝盒,但是在郵寄的時候只用產品原包裝盒來包裝顯然是不行的。必須把內裝產品的包裝盒放到 個郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產品包裝盒相當于數據包,里面放著的產品相當于可用的數據,而專用紙箱就相當于幀,且 個幀中只有 個數據包。 數據包主要由“目的IP地址”、“源IP地址”、“凈載數據”等部分構成。 數據包的結構與我們平常寫信非常類似,目的IP地址是說明這個數據包是要發給誰的,相當于收信人地址;源IP地址是說明這個數據包是發自哪里的,相當于發信人地址;而凈載數據相當于信件的內容。 正是因為數據包具有這樣的結構,安裝了TCP/IP協議的計算機之間才能相互通信。我們在使用基于TCP/IP協議的網絡時,網絡中其實傳遞的就是數據包。理解數據包,對于網絡管理的網絡安全具有至關重要的意義。
數據報是 個比較抽象的內容,常是對數據報結構進行分析,常見的有TCP/IP各層協議中的數據報,IP數據報中依次包括以下信息:
1、Version=4,表示IP協議的版本號為4。該部分占4個BIT位。
2、Header Length=20 Bytes,表示IP包頭的總長度為20個字節。該部分占4個BIT位,單位為4個字節,因此, 個IP包頭的長度 長為“1111”,即15*4=60個字節。
3、Type of Service=00,表示服務類型為0。該部分用二個十六進制值來表示,共占8個BIT。8個BIT的含義是:000 前三位不用
0 表示 小時延,如Telnet服務使用該位
0 表示吞吐量,如FTP服務使用該位
0 表示可靠性,如SNMP服務使用該位
0 表示 小代價
0 不用
4、Total Length=48Bytes,表示該IP包的總長度為48個字節。該部分占16個BIT,單位為Byte。由此可見, 個IP數據包的 大長度為2的16次方減1,即:65535個字節。因此,在以太網中能夠傳輸的 大IP數據包為65535個字節。
5、Identification=363,表示IP包識別號為363。該部分占16個BIT,以十進制數表示。
6、Flags,表示片標志,占3個BIT。各位含義分別為:第 個“0”不用,第二個“0”為分片標志位,“1”表示分片,“0”表示不分版本。第三個0為是否 后 片標志位,0表示 后 片,1表示還有更多的片。
7、Fragment Offset=0,表示片偏移為0個Bytes。該部分占13個BIT。
8、Time to Live=128Secongs/Hops,表示生存時間TTL值為128。該部分占8個BIT。
9、Proctol=6(TCP),表示協議類型為TCP,協議代碼是6。如果是UDP協議,則此處的協議代碼應為17。如果是ICMP協議,則此處的協議代碼應為1。該部分占8個BIT。
10、Header Checksun=4035(correct),表示IP包頭校驗和為4035,括號內的Correct表示此IP數據包是正確的,沒有被非法修改過。該部分占16個BIT,用十六進制表示。
11、Source Address=[76.88.16.104],表示IP數據包源地址為:76.88.16.104。該部分占32個BIT。
12、Destination Address=[76.88.16.16],表示IP數據包目的地址為:76.88.16.16。該部分占32個BIT。
13、No Options,表示IP數據包中未使用選項部分。當需要記錄路由時才使用該選項。TCP數據報中依次包括以下信息:
1、Source Port=1038,表示發起連接的源端口為1038。該部分占16個BIT。通過此值,可以看出發起連接的計算機源端口號。
2、Destination Port=21(FTP-CTRL),表示要連接的目的端口為21。該部分占16個BIT。通過此值,可以看出要登錄的目的端口號。21端口表示是FTP服務端口。
3、Initial Sequence Number=1791872318,表示初始連接的請求號,即SEQ值。該部分占32個BIT,值從1到2的32次方減1。
4、Next Expected SEQ Number=1791872319,表示對方的應答號應為1791872319,即對方返回的ACK值。該部分占32個BIT,值從1到2的32次方減1。
5、Data Offset=28 Bytes,表示數據偏移的大小。該部分占4個BIT。
6、Reserved Bites:保留位,此處不用。該部分占6個BIT。
7、Flags=02。該值用兩個十六進制數來表示。該部分長度為6個BIT,6個標志位的含義分別是:
0 URG,緊急數據標志,為1表示有緊急數據,應立即進行傳遞。
0 ACK,確認標志位,為1表示此數據包為應答數據包
0 PSH,PUSH標志位,為1表示此數據包應立即進行傳遞。
0 RST:復位標志位。如果收到不屬于本機的數據包,則返回 個RST
0 SYN:連接請求標志位。為1表示為發起連接的請求數據包。
0 FIN:結束連接請求標志位。為1表示是結束連接的請求數據包。
8、Window=64240,表示窗口是64240。該部分占16個BIT。
9、CheckSum=92D7(Correct),表示校驗和是92D7。該部分占16個BIT,用十六進制表示。
10、Urgent Pointer=0,表示緊急指針為0。該部分占16個BIT。
11、Maximum Segment Size=1460,表示 大段大小為1460個字節。datagram(數據報) -- 在網絡層中的傳輸單元(例如IP)。 個datagram可能被壓縮成 個或幾個packets,在數據鏈路層中傳輸。packet(數據包) -- 封裝的基本單元,它穿越網絡層和數據鏈路層的分解面。通常 個packet映射成 個fra-me,但也有例外:即當數據鏈路層執行拆分或將幾個packet合成 個fra-me的時候。
二層的PDU叫做fra-me;IP的叫做Packet;TCP的叫做Segment;UDP的叫做Datagram。OSI參考模型的各層傳輸的數據和控制信息具有種格式,常用的信息格式包括幀、數據包、數據報、段、消息、元素和數據單元。信息交換發生在對等OSI層之間,在源端機中每 層把控制信息附加到數據中,而目的機器的每 層則對接收到的信息進行分析,并從數據中移去控制信息,
下面是各信息單元的說明:
幀(fra-me)是 種信息單位,它的起始點和目的點都是數據鏈路層。
數據包(packet)也是 種信息單位,它的起始和目的地是網絡層。
數據報(datagram)通常是指起始點和目的地都使用無連接網絡服務的的網絡層的信息單元。
段(segment)通常是指起始點和目的地都是傳輸層的信息單元。
消息(message)是指起始點和目的地都在網絡層以上(經常在應用層)的信息單元。
元素(cell)是 種固定長度的信息,它的起始點和目的地都是數據鏈路層。元素通常用于異步
傳輸模式(ATM)和交換多兆位數據服務(SMDS)網絡等交換環境。
數據單元(data unit)指許多信息單元。常用的數據單元有服務數據單元(SDU)、協議數據
單元(PDU)。SDU是在同 機器上的兩層之間傳送信息。PDU是發送機器上每層的信息發送到接收機器上的相應層(同等層間交流用的)。