報文

網路中交換與傳輸的數據單元

報文(mes徠sage)是網路中交換與傳輸的數據單元,即站點一次性要發送的數據塊。報文包含了將要發送的完整的數據信息,其長短很不一致,長度不限且可變。

概述


報文也是網路傳輸的單位,傳輸過程中會不斷的封裝成分組、包、幀來傳輸,封裝的方式就是添加一些信息段,那些就是報文頭以一定格式組織起來的數據。
比如裡面有報文類型,報文版本,報文長度,報文實體等等信息。
完全與系統定義,或自定義的數據結構同義。
IP報文頭部信息
IP報文頭部信息
來幾個TCP/IP頭結構感受一下:
typedef struct _iphdr//定義IP首部
{
unsigned char h_lenver; //4位首部長度+4位IP版本號
unsigned char tos; //8位服務類型TOS
unsigned short total_len; //16位總長度(位元組)
unsigned short ident; //16位標識
unsigned short frag_and_flags; //3位標誌位
unsigned char ttl; //8位生存時間 TTL
unsigned char proto; //8位協議 (TCP, UDP 或其他)
unsigned short checksum; //16位IP首部校驗和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IP_HEADER;
typedef struct psd_hdr //定義TCP偽首部
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //協議類型
unsigned short tcpl; //TCP長度
}PSD_HEADER;
typedef struct _tcphdr //定義TCP首部
{徠
USHORT th_sport; //16位源埠
USHORT th_dport; //16位目的埠
unsigned int th_seq; //32位序列號
unsigned int th_ack; //32位確認號
unsigned char th_lenres; //4位首部長度/6位保留字
unsigned char th_flag; //6位標誌位
USHORT th_win; //16位窗口大小
USHORT th_sum; //16位校驗和
USHORT th_urp; //16位緊急數據偏移量
}TCP_HEADER;
// 這裡只是數據頭,但頭最能讓你看清報文是啥東東
// IP_HEADER::total_len 指明了實體數據(也就是真正的消息內容)長度.
// 其他以此類推

認證方式


報文的認證方式有傳統加密方式的認證、使用密鑰的報文認證碼方式、使用單向散列函數的認證和數字簽名認證方式。

系統設計


分析了報文解析的原理,研究了兩種硬體解析結構的設計原理,通過總結其中的優點和不足,設計了一種新的報文解析結構,該結構採用TCAM和流水線的設計,具備高速和靈活性的特點。
原理
當一個站點要發送報文時,它將一個目的地址附加到報文上,網路節點根據報文上的目的地址信息,把報文發送到下一個節點,一直逐個節點地轉送到目的節點。每個節點在收到整個報文並檢查無誤后,就暫存這個報文,然後利用路由信息找出下一個節點的地址,再把整個報文傳送給下一個節點。
特點
(1)報文從源點傳送到目的地採用“存儲轉發”方式,在傳送報文時,一個時刻僅佔用一段通道。
(2)在交換節點中需要緩衝存儲,報文需要排隊,故報文交換不能滿足實時通信的要求。
優點
(1)電路利用率高。由於許多報文可以分時共享兩個節點之間的通道,所以對於同樣的通信量來說,對電路的傳輸能力要求較低。
(2)在電路交換網路上,當通信量變很大時,就不能接受新的呼叫。而在報文交換網路上,通信量大時仍然可以接收報文不過傳送延遲會增加。
(3)報文交換系可以把一個報文發送到多個目的地,而電路交換網路很難做到這一點。
(4)報文交換網路可以進行速度和代碼的轉換。
缺點
(1)不能滿足實時或互動式的通信要求,報文經過網路的延遲時間長且不定。
(2)有時節點收到過多的數據而無空間存儲或不能及時轉發時,就不得不丟棄報文,而且發出的報文不按順序到達目的地。