1、IP地址
每臺計算機都需要一個IP地址以識別自己,IP地址由IP協議規定的32位的二進制表示,最新的IPV6協議將IP地址提升爲128位,但還不能廣泛應用。
32位的IP地址主要分爲前綴和後最兩部分。前綴表示計算機所屬的物理網絡(網絡號),後綴是主機號。根據網絡號的不同,可以將IP地址分爲A、B、C、D、E五類。其中ABC爲基本類,D用於多播發送,E屬於保留位。
表16.1 各類IP地址的範圍
類型 | 範圍 |
A(7位網絡號,24位主機號),2^7=128=(1000 0000) | 0.0.0.0~127.255.255.255 |
B(14位網絡號,16位主機號),128+64=192=(1100 0000) | 128.0.0.0~191.255.255.255 |
C(21位網絡號,8位主機號),192+32=224=(1110 0000) | 192.0.0.0~223.255.255.255 |
D,224+16=240=(11110 0000) | 224.0.0.0~239.255.255.255 |
E | 240.0.0.0~247.255.255.255 |
特殊地址:
(1)網絡地址:網絡號不變,主機號全0
(2)廣播地址:網絡號不變,主機號全1
(3)回送地址:127.0.0.0表示回送地址,用於測試。
(4)本地地址:即私有地址,10.0.0.0/8;172.16.0.0/12;192.168.0.0/16
2、OSI七層參考模型
開放系統互聯(Open System Interconnection,OSI),是國際標準化組織(ISO)頒佈的網絡標準化參考模型。
層次 | 名稱 | 功能 |
7 | 應用層(Application) | 負責網絡中應用與網絡操作系統的聯繫 |
6 | 表示層(Presentation) | 用於確定數據交換的格式,解決運用程序之間的數據格式上的差異 |
5 | 會話層(session) | 是用戶應用程序與網絡層的接口,他能夠建立與其他設備的連接,即會話,並進行管理 |
4 | 傳輸層(Transport) | 提供會話層和網絡層之間的傳輸協議 |
3 | 網絡層(Network) | 將傳輸的數據封包,然後由路由選擇、分段組合等控制將信息傳送到目標設備 |
2 | 數據鏈路層(Data Link) | 修正傳輸過程中的錯誤信號,提供可靠的通過物理介質傳輸數據的方法 |
1 | 物理層(Physical) | 利用傳輸介質爲數據鏈路層提供物理連接,它規範了網絡硬件的特性、規格和傳輸速度 |
3、地址解析
所謂地址解析是指將計算機的協議地址解析爲物理地址,即MAC(Medium Access Control)地址,又稱爲媒體訪問控制地址。通常在網絡上由地址解析協議(ARP)來實現地址解析。
解析過程如下:主機A,B要進行通信,A的ip爲192.168.1.21,B的ip爲192.168.1.23,主機B的IP地址被解析過程:
(1)主機A從本地ARP緩存中查找IP爲192.168.1.23對應的物理地址。
(2)主機A在ARP緩存中沒有發現192.168.1.23映射的物理地址,將發送ARP請求幀(請求幀中包含A的物理地址和ip地址)
(3)本地網絡上的其他主機接收到請求幀後,檢查是否與資金及的IP地址匹配,若果不匹配則丟棄。B發現與自己的匹配則將主機A的物理地址和IP地址添加到自己的ARP緩存中,然後B將自己的物理地址和IP地址發送到主機A,當A接收到主機B發來的信息,將以這些信息更新ARP緩存。
(4)當主機B的物理地址確定後,主機A就可以和主機B進行通信了。
4、域名系統
Internet管理機構採用在主機名後加上後綴名的方法標識一臺主機,其後綴名被稱爲域名。例如COM爲一級域名,表示商業組織。
5、TCP/IP協議
TCP/IP(Transmission Control Protocal/Internet Protocal,傳輸控制協議/網絡協議)是互聯網上最流行的協議。他能實現互聯網上不同類型操作系統的計算機相互通信。TCP/IP協議將網絡分爲4層。
表16.2 RCP/IP協議結構層次
TCP/IP協議 | OSI參考模型 |
應用層(包含Telnet、FTP、SNTP協議) | 會話層、表示層、應用層 |
傳輸層(包含TCP、UDP協議) | 傳輸層 |
網絡層(包含ICMP、IP、ARP等協議) | 網絡層 |
數據鏈路層 | 物理層和數據鏈路層 |
(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位整數的高位先存格式。由於不同的計算機存放數據字節的順序不同,這樣發送數據後當接收到該數據時,也可能無法查看所接收到的數據。因此,在網絡中不同的主機間進行通信時,要統一採用網絡字節順序。