1。地址解析
地址解析(Address Resolution)就是將計算機中的協(xié)議地址翻譯成物理地址(或稱MAC地址)。地址解析只能在本地網(wǎng)進行。
地址解析技術(shù)分為如下幾種:
(1)表查詢(Table-Lookup)。該方法適合廣域網(wǎng)(WAN),通過建立映射數(shù)組(協(xié)議地址--物理地址)的方法查詢。
(2)相近形式計算(Close Form-Compute)。該方法適用于可以自行配置的網(wǎng)絡(luò),IP地址和物理地址相互對應(yīng),例如: 220.123.5.1 –>xxx1
220.123.5.2->xxx2
可通過這種方法得到物理地址:物理地址=協(xié)議地址&0xFF。
(3)信息交換(Message-Exchange)。該方法適用于局域網(wǎng)(LAN),是基于分布式的處理方式,即主機發(fā)送一個解析請求,一廣播的形式發(fā)出,并等待網(wǎng)絡(luò)各個主機的響應(yīng)。
2。數(shù)據(jù)包的封裝和分用
當(dāng)應(yīng)用程序用TCP傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層,直到當(dāng)作一串比特流傳送如網(wǎng)絡(luò)。其中每一層收到數(shù)據(jù)都要增加一些首部信息(有時還要增加尾部信息)。
以太網(wǎng)的幀的長度必須在46~1518字節(jié)之間。
IP在首部中存入一個長度為8bit的數(shù)據(jù),稱作協(xié)議域。1表示ICMP,2表示IGMP,6表示TCP,17表示UDP。
3。以太網(wǎng)數(shù)據(jù)鏈路層幀結(jié)構(gòu)
|前導(dǎo)符 |起始幀分界符 |目標地址 |源地址 |長度/類型 |數(shù)據(jù) | CRC
|7byte |1byte |6byte |6byte |2byte |46--1500byte | 4byte
IEEE802.3MAC幀結(jié)構(gòu)
前導(dǎo)符(Preamble):其中1和0交替出現(xiàn),警告接收系統(tǒng)即將有數(shù)據(jù)幀到來,同時同步系統(tǒng)時序。
起始幀分界符(SFD):一個字節(jié),為10101011,標志幀的開始。SFD通知接收方后面所有的內(nèi)容都是數(shù)據(jù)。
目標地址(Destination Address):包含數(shù)據(jù)幀的目的物理地址。
源地址(Source Address):包含轉(zhuǎn)發(fā)數(shù)據(jù)幀的最后一個設(shè)備的物理地址。
PDU的長度/類型(Length/Type):該字段指出PDU的長度或封裝的數(shù)據(jù)類型。當(dāng)PDU的長度固定式,這個字段用來表示數(shù)據(jù)類型,如IP(0x0800)、ARP(0x0806)、RARP(0x8035)等。
數(shù)據(jù):保存高層協(xié)議的數(shù)據(jù)(PDU)。
CRC:IEEE802.3MAC幀的最后一個字段是檢錯信息,通常為CRC-32。
4。IP
IP復(fù)雜在TCP/IP提供數(shù)據(jù)報服務(wù),進行數(shù)據(jù)的封裝及產(chǎn)生協(xié)議頭。由于以太網(wǎng)幀的大小要受限制,并且不同的幀可能由不同的網(wǎng)絡(luò)路徑傳送,因此IP協(xié)議需要將較大的數(shù)據(jù)報文分割開來,并且在目的主機處按正確的順序組合。但是,IP協(xié)議不負責(zé)包的校驗,它是一種無連接,不可靠的服務(wù)。如果發(fā)生錯誤,IP協(xié)議則丟棄該數(shù)據(jù)報,然后發(fā)送ICMP消息報給信源端。此外,IP協(xié)議還有負責(zé)尋找路由,因此還需要配套一個確定的IP地址。
IP數(shù)據(jù)報時Internet上數(shù)據(jù)的通信的基本單元,這些數(shù)據(jù)不超過1000字節(jié)才。
IP數(shù)據(jù)報格式
*版本(VERS):指定IP協(xié)議的版本號,對于IPv4來說,版本為4。
*報頭長度(HLENS):指定IP報頭的長度,以字為單位,范圍5-15個word。
*服務(wù)類型(ToS):表示數(shù)據(jù)報的服務(wù)類型,即處理的優(yōu)先級,包括延時,吞吐量,可靠性或代價。
*報文總長度(Total Length):IP數(shù)據(jù)報最大為65535字節(jié),網(wǎng)絡(luò)主機可以使用數(shù)據(jù)報長度來確定一個數(shù)據(jù)報的結(jié)束和下一個數(shù)據(jù)報的開始;當(dāng)傳送長度超過65535字節(jié)的IP數(shù)據(jù)報時,大多數(shù)的鏈路層都會分片。主機一般要求接收的數(shù)據(jù)報不超過576字節(jié)。
*標識符(ID):該16位標識符由產(chǎn)生它的主機唯一指定給數(shù)據(jù)報,分段后的數(shù)據(jù)報享同一個數(shù)據(jù)報共享一個數(shù)據(jù)報ID。
*標識(FLG):包括3個1位標志,標識報文是否允許被分段和是否可以被分段。
第一位保留并設(shè)為0。
第二位0表示報文可以被分段,1表示報文不能被分段。
第三位只有在第一位為0時才有意義,這一位標識次報文是否是這一系列分段的最后一個,0表示報文時最后一個。
*分段偏移量(Fragment Offset):指定分段在整個數(shù)據(jù)報中的位置。
*生命周期(TTL):代表數(shù)據(jù)報被丟棄前能夠穿越的最大主機跳數(shù)。TTL的初始值由源主機設(shè)置,其理論最大值為255,每經(jīng)過一個處理節(jié)點減1。當(dāng)該字段為0時,報文就被認為是不可轉(zhuǎn)發(fā),之后產(chǎn)生一個ICMP報文發(fā)回源主機,并丟棄不可轉(zhuǎn)發(fā)的報文。
*協(xié)議(Protocol):主要標識上層協(xié)議的類型,一般是指TCP協(xié)議、UDP協(xié)議、ICMP協(xié)議和IGMP協(xié)議。
*頭校驗和(Header Checksum):目的是保證頭的正確性,目的機和網(wǎng)絡(luò)中每個網(wǎng)關(guān)都要重新計算報頭的校驗和,如果計算出校驗和與報文所含的校驗和不同,則丟棄該報文。
*源IP地址(Source IP Address):指明數(shù)據(jù)報的發(fā)送地址。
*目的IP地址(Destination IP Address):指明數(shù)據(jù)報接收方的地址。
*選項(Options):在IPv4中,主要用于網(wǎng)絡(luò)測試和調(diào)試。
*填充區(qū)(Padding):為了保證IP頭長度是32為整數(shù)倍,要填充額外的0。
IP協(xié)議時TCP和UDP的基礎(chǔ)。ICMP和IGMP是IP層協(xié)議的附屬協(xié)議。
5。TCP(Transmission Control Protocol)
TCP提供一個完全可靠地、面向連接的、全雙工的流傳輸服務(wù)。
TCP段格式
*源端口:16bit源端口指的是發(fā)起通信的端口號。
*目的端口:16bit目的端口指的是傳輸目的地的端口號。
*序號:該序號是32bit的無符號數(shù),到達2^32-1后又從0開始,表示在這個報文段中的第一個數(shù)據(jù)字節(jié)的編號。利用序號段可以糾正傳輸導(dǎo)致的亂序,從而重組分段報文。
*確認序號:TCP使用32確認號標識下一個希望收到的報文的第一個字節(jié)的編號。因此,確認號應(yīng)當(dāng)是上一次成功接收到的數(shù)據(jù)字節(jié)序號加1。
*首部長度:4bit,該字段以字為單位計量TCP頭長度。
*保留:6bit恒為0,將來定義新的用途。
*URG:緊急指針有效。
*ACK:確認序號有效。
*PSH:接收方應(yīng)該盡快將這個報文交給應(yīng)用層。
*RST:重置連接。
*SYN:同步序號,用來發(fā)起一個連接。
*FIN:發(fā)送端完成發(fā)送任務(wù)。
*窗口:該16bit字段表明接收端聲明可以接收的TCP數(shù)據(jù)段大小,最大為65535字節(jié)。
*校驗和:該16bit由發(fā)送端計算存儲,由接收端進行驗證。驗證整個TCP,包括首部和數(shù)據(jù)。
*緊急指針:只有當(dāng)URG置1時才有效。緊急指針是一個正的偏移量,和序號字段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號。用于發(fā)送緊急數(shù)據(jù)、
*選項:常見可選字段是最長報文大小。
*數(shù)據(jù):TCP數(shù)據(jù)部分是可選的。在建立和釋放連接時,雙方交換的只有TCP首部。
6。TCP建立連接的3次握手
(1)請求端(客戶)發(fā)送一個SYN段,指明客戶打算連接的服務(wù)器的端口以及SEQ(初始序號)。
(2)服務(wù)器發(fā)回包含服務(wù)器的SEQ(初始序號)的SYN報文段作為應(yīng)答。同時序號(ISN)加1,用以對客戶的SYN報文段進行確認。
(3)客戶將確認服務(wù)器的ISN加1,用以對服務(wù)器的SYN報文段進行確認。

7。UDP
UDP數(shù)據(jù)報首部
8。ARP/RARP
ARP(Address Resolution Protocol,地址解析協(xié)議) ARP中規(guī)定了兩種信息的基本類型: 請求(Request)和應(yīng)答(Response)。
*操作類型:該16bit字段用以區(qū)分協(xié)議的四種操作類型,即ARP請求(值為1),ARP應(yīng)答(值為2),
RARP請求(值為3),RARP請求(值為4)。
9。ICMP
ICMP全稱為Internet Control Protocol,即Internet控制報文協(xié)議。ICMP是IP的附屬協(xié)議,IP用它來與其他主機或路由器交換錯誤報文和其他一些網(wǎng)絡(luò)情況。
在ICMP包中攜帶了控制信息和故障恢復(fù)信息,這些信息有以下幾個方面:
*源抑制:這是一個流控制信息,由接收方向源主機發(fā)送該消息來請求源主機停止發(fā)送數(shù)據(jù)。當(dāng)接收主機在其緩沖區(qū)快滿時發(fā)送該信息。
*路徑重定向:由網(wǎng)關(guān)向請求其提供服務(wù)的主機發(fā)送,用于通知該主機在網(wǎng)絡(luò)中還有其他距離目的主機更近的網(wǎng)關(guān)。
*主機不可達:在網(wǎng)絡(luò)狀況不佳的網(wǎng)絡(luò)中傳送數(shù)據(jù)報時,發(fā)生故障的網(wǎng)關(guān)或者系統(tǒng)會發(fā)送此信息。
*應(yīng)答請求與回復(fù):用Ping來檢測目標是否可達。