❶ 數據包和數據報的區別
-- 作者: IT-man
-- 發布時間: 2005/09/10 01:28am
1、《什麼是數據包?》
http://www0.ccidnet.com/school/net/2003/04/24/134_8639.html
「包」(Packet)是TCP/IP協議通信傳輸中的數據單位,一般也稱「數據包」。
2、《「數據報」 是什麼?》
http://www.kepu.net.cn/gb/technology/telecom/network/net310.html
那麼,「數據報」 是什麼?它又有什麼特點呢?數據報也是分組交換的一種形式,就是把所傳送的數據分段打成「包」,再傳送出去。看上去就好象運貨裝「集裝箱」似的。但是,與傳統的「連接型」分組交換不同,它屬於「無連接型」,是把打成的每個「包」(分組)都作為一個「獨立的報文」傳送出去,所以叫做「數據報」。
每個傳入或傳出的數據包叫做一個 IP 數據報。從字面看,兩者基本上是同一樣東西,但使用起來,前者常常指數據流,後者常常是討論數據信息內容的方式。
❷ 一個網路數據和一個網路數據包的區別是
網路數據不是論個的是多少m多少g
網路數據包簡介:
一.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數據報結構
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個位元組。
三.UDP數據報結構
16 32bit
Source port Destination port
Length Checksum
Data
Source Port — 16位。源埠是可選欄位。當使用時,它表示發送程序的埠,同時它還被認為是沒有其它信息的情況下需要被定址的答復埠。如果不使用,設置值為0。
Destination Port — 16位。目標埠在特殊網際網路目標地址的情況下具有意義。
Length — 16位。該用戶數據報的八位長度,包括協議頭和數據。長度最小值為8。
Checksum — 16位。IP 協議頭、UDP 協議頭和數據位,最後用0填補的信息假協議頭總和。如果必要的話,可以由兩個八位復合而成。
Data — 包含上層數據信息。
CODE 協議結構定義
---------------------------------------
#pragma pack(1) //進入位元組對齊方式
typedef struct FramHeader_t
{ //Pcap捕獲的數據幀頭
BYTE DstMAC[6]; //目的MAC地址
BYTE SrcMAC[6]; //源MAC地址
WORD FrameType; //幀類型
} FramHeader_t;
typedef struct IPHeader_t
{ //IP數據包頭
BYTE Ver_HLen; //版本+報頭長度
BYTE TOS; //服務類型
WORD TotalLen; //總長度
WORD ID; //標識
WORD Flag_Segment; //標志+片偏移
BYTE TTL; //生存周期
BYTE Protocol; //協議類型
WORD Checksum; //頭部校驗和
DWORD SrcIP; //源IP地址
DWORD DstIP; //目的IP地址
} IPHeader_t;
typedef struct ARPHeader_t
{ //ARP數據包頭
WORD HeadwareType; //硬體類型
WORD ProtocolType; //協議類型
BYTE HLen; //硬體地址長度
BYTE PLen; //協議地址長度
WORD Operation; //操作類型
BYTE SrcMAC[6]; //源MAC地址
DWORD SrcIP; //源IP地址
BYTE DstMAC[6]; //目的MAC地址
DWORD DstIP; //目的IP地址
} ARPHeader_t;
typedef struct UDPHeader_t
{ //UDP數據包頭
WORD SrcPort; //源埠
WORD DstPort; //目的埠
WORD Len; //總長度
WORD Checksum; //校驗和
}UDPHeader_t;
typedef struct TCPHeader_t
{ //TCP數據包頭
WORD SrcPort; //源埠
WORD DstPort; //目的埠
DWORD SeqNO; //序號
DWORD AckNO; //確認號
WORD Offset4_Reserved6_Flag6; //頭部長度+保留+標志
WORD Window; //窗口大小
WORD Checksum; //校驗和
WORD UrgentPointer; //緊急指針
DWORD Option_; //選項+填充
}TCPHeader_t;
#pragma pack() //恢復默認對齊方式
❸ 數據幀,IP數據報指的是什麼 有什麼區別 又有什麼關系
數據幀,是物理網路傳輸過程中的一種模式,一種固定的模式,所有的數據包都會被封裝成這樣的數據幀投到網路上。由網路上的路由器,電腦等網路設備處理這些數據幀,選擇丟掉或者解包。
IP數據報是一個虛擬的,假想的東西,打個比方,它就是一輛車,有車牌(編號),有固定的路線(有收方的IP),還有裝人的地方(數據),當車想上路時候,就會被ISO的物理層,處理,封裝成數據幀,然後傳輸出去,當然了,物理層,什麼都不知道,它只會發和收,解包和封裝,但是它不知道對方的物理地址,所以,就這樣了。
當一台電腦的網卡收到一個數據幀,物理層會解包,然後由物理層的上一層解讀IP地址,如果不是,會丟棄掉這個幀,不會處理數據,如果是,那麼就會處理數據,接收後面的數據幀。
我以上講的只是一個大概,其中,解讀IP的過程,一般是對照電腦本身的物理地址,IP地址影射表的,這個是路由,電腦一般只看物理IP地址,這個跟你的問題無關。
還有,理論上,如果你的機器是在網路中,可以連接到任何機器,那麼你的機器的網卡就會處理很多數據幀,但是不會處理那些不是給你機器的IP數據報,因為有路由和IP地址的存在,我們的網路才不會出現大量的數據幀橫行的情況,這種情況,就是網路堵塞。
最恰當的解釋就是,IP數據報是一個郵包,有收件人地址和發件人地址還有內容,數據幀是郵車,路由器就是郵局了。你明白否。
謝謝。