1. 程式人生 > >《c語言從入門到精通》看書筆記——第16章 網路套接字程式設計(上)——網路

《c語言從入門到精通》看書筆記——第16章 網路套接字程式設計(上)——網路

      (1)TCP協議:傳輸協議(TCP)是一種提供克勞資料傳送的通用協議,他是TCP/IP體系結構中傳輸層上的協議。在傳送資料時,應用層的資料傳輸到傳輸層,傢伙是哪個TCP首部,資料就構成了報文。報文就是網路層IP的資料,如果再加上IP首部,就構成了IP資料報。TCP協議的C語言資料描述如下:            typedef struct HeadTCP  {      WORD SourcePort;     //16位源埠號      WORD DePort;     //16位目的埠      DWORD SequenceNo;     //32位序號      DWORD ConfirmNo;     //32位確認系列號      BYTE HeadLen     //與Flag為一個組成部分,首部長度,佔4位,保留6位,6位識別符號,共16位      BYTE Flag;      WORD WndSize;     //16位視窗大小      WORD CheckSum;     //16位校驗和      WORD UrgPtr;     //16位緊急指標  }HEADTCP;      (2)IP協議            IP協議又稱為網際協議。它工作在網路層,主要提供無連結資料報傳輸。IP協議不保證資料報的傳送,但可以最大限度地傳送資料。IP協議C語言的資料描述如下: typedef struct HeadIP {       unsigned char headerlen:4;     //首部長度,佔4位       unsigned char version:4     //版本,佔4位       unsigned char servertype;     //服務型別,佔8位,即一個位元組       unsigned short totallen;     //總長度,佔16位       unsigned short id;     //與idoff構成標識,共佔16位,前3位是標識,後13位是片偏移       unsigned short idoff;       unsigned char ttl;     //生存時間       unsigned char proto;     //協議,佔8位       unsigned short checksum;     //首部檢驗和。佔16位
      unsigned int sourceIP;     //源IP地址,佔32位       unsigned int destIP;     //目的IP地址,佔32位 } HEADIP;      (3)ICMP協議           ICMP協議又稱為網路控制報文協議。他負責網路上裝置狀態的傳送和報文檢查,可以將裝置的故障資訊傳送到其他裝置上。ICMP協議的C語言資料描述如下: typedef struct HeadICMP {      BYTE Type;     //8位型別      BYTE Code;     //8位程式碼      WORD ChkSum;     //16位校驗和 }HEADICMP;      (4)UDP協議           使用者資料報協議(UDP)是一個面向無連線的協議,採用該協議,米昂個應用程式不需要先建立連線,它為應用程式提供一次性的資料傳輸協議。UDP協議不提供差錯恢復,不能提供資料重傳,因此該協議傳輸資料安全性略差。UDP協議C語言資料描述如下: typedef struct HeadUDP {      WORD SourcePort;     //16位源埠號      WORD DePort;     //16位目的埠      WORD Len;     //16位UDP長度      WORD ChkSum;     //16位UDP校驗和 }HEADUDP; 6、埠      TCP/IP協議提出l埠的概念,用於標識通訊的應用程式。當應用程式(程序)與某個埠繫結後,系統會將收到的給該埠的資料送往該應用程式。埠是用一個16位的無符號整數值來表示的,範圍為0~65535,低於256的埠被作為系統的保留埠,用於系統程序的通訊,不在這一範圍的埠號被稱為自由埠,可以由程序自由使用。 7、巢狀字的引入      巢狀字(socket)存在於通訊區域中,通訊區域也稱為地址族,主要用於將通過套接字通訊的程序的共有特性綜合起來。套接字通常只與同一區域的套接字交換資料。Windows Sockets只支援一個通訊區域——AF-INET網際域,使用網際域協議族通訊的程序使用該域。 8、網路位元組順序      基於Intel CPU的PC機採用低位先存的方式。為了保證資料的正確性,在網路協議中需要指定網路位元組順序,TCP/IP協議使用16位整數和32位整數的高位先存格式。由於不同的計算機存放資料位元組的順序不同,這樣傳送資料後當接收到該資料時,也可能無法檢視所接收到的資料。因此,在網路中不同的主機間進行通訊時,要統一採用網路位元組順序。