3、網(wǎng)絡(luò)互聯(lián)層協(xié)議
IP協(xié)議:實(shí)現(xiàn)的是不可靠無連接的數(shù)據(jù)報(bào)服務(wù),它是TCP/IP協(xié)議族的核心,傳輸層上的數(shù)據(jù)信息和網(wǎng)絡(luò)層上的控制信息都以IP數(shù)據(jù)報(bào)的形式傳輸。在Ipv4 中, IP 地址由四個(gè)八位域(叫作 octets )組成。 Octets 被點(diǎn)號分開代表在 0 到達(dá) 55 范圍內(nèi)的十進(jìn)制數(shù)字。用二進(jìn)制格式時(shí)共有 32 位組成,為了方便記憶,用點(diǎn)號每八位一分割,稱為點(diǎn)分十進(jìn)制。因?yàn)門CP/IP網(wǎng)絡(luò)是為大規(guī)模的互連網(wǎng)絡(luò)設(shè)計(jì)的,所以不能用全部的32位來表示網(wǎng)絡(luò)上主機(jī)的地址。用IP地址的一部分來標(biāo)識網(wǎng)絡(luò),剩下的部分標(biāo)識其中的網(wǎng)絡(luò)設(shè)備。IP地址中用來標(biāo)識設(shè)備所在網(wǎng)絡(luò)的部分叫做網(wǎng)絡(luò)ID,標(biāo)識網(wǎng)絡(luò)設(shè)備的部分叫做主機(jī)ID。這些ID包含在同一個(gè)IP地址之中。 Internet組織定義了5種IP地址類,以容納不同大小的網(wǎng)絡(luò)。
· A類地址用于主機(jī)數(shù)目非常多的網(wǎng)絡(luò)。A 類地址的最高位為 0 ,接下來的 7 位完成網(wǎng)絡(luò) ID ,剩余的 24 位二進(jìn)制位代表主機(jī) ID 。 A 類地址允許 126 個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)大約一千七百萬臺主機(jī) ; 第一個(gè)八位體是 1~126 。 127 是一個(gè)特殊的網(wǎng)絡(luò) ID ,是用來檢查, TCP / IP 協(xié)議工作狀態(tài)。
· B 類地址用于中型到大型的網(wǎng)絡(luò)。B類地址的最高位為10,接下來的14位完成網(wǎng)絡(luò)ID,剩余的14位二進(jìn)制位代表主機(jī)ID。B類地址允許16384個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)大約65000臺主機(jī);第一個(gè)八位體是128~191。
· C 類地址用于小型本地網(wǎng)絡(luò)。 C 類地址的最高位為 110 ,接下來的 21 位完成網(wǎng)絡(luò) ID ,剩余的 8 位二進(jìn)制位代表主機(jī) ID 。 C 類地址允許大約二百萬個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)有 254 臺主機(jī);第一個(gè)八位體是 192~223 。
· D 類地址用于多重廣播組。一個(gè)多重廣播組可能包括 1 臺或更多主機(jī),或根本沒有。 D 類地址的最高位為 1110; 第一個(gè)八位體是 224~239 。剩余的位設(shè)計(jì)客戶機(jī)參加的特定組。在多重廣播操作中沒有網(wǎng)絡(luò)或主機(jī)位,數(shù)據(jù)包將傳送到網(wǎng)絡(luò)中選定的主機(jī)子集中。只有注冊了多重廣播地址的主機(jī)才能接收到數(shù)據(jù)包。 Microsoft 支持 D 類地址,用于應(yīng)用程序?qū)⒍嘀貜V播數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)間的主機(jī)上,包括 WINS 和 Microsoft NetShow 。
· E 類是一個(gè)通常不用的實(shí)驗(yàn)性地址:它保留作為以后使用。 E 類地址的最高四位通常為 11110 ;第一個(gè)八位體是 240~247 。248~254 無規(guī)定。
子網(wǎng)是一個(gè)邏輯概念,子網(wǎng)中的各主機(jī)的 NetID 是相同的。網(wǎng)段是一個(gè)物理概念,是指在物理上獨(dú)立的一段網(wǎng)絡(luò)。子網(wǎng)與網(wǎng)段之間,可以是多對多的關(guān)系。
劃分子網(wǎng)( subnetworking )的好處:a、 混合使用多種技術(shù),如以太網(wǎng)和令牌網(wǎng)。b、 克服已有技術(shù)的缺陷,如超過每段中最大主機(jī)數(shù)目。c、 通過對交通重定向和減少廣播來減少網(wǎng)絡(luò)阻塞。
子網(wǎng)掩碼:將IP地址的各位,NetID全改為1,HostID全改為0,則是子網(wǎng)掩碼。與IP地址進(jìn)行“與”或“and”運(yùn)算,用來分辯網(wǎng)絡(luò)ID和主機(jī)ID。
標(biāo)準(zhǔn)子網(wǎng)掩碼: A 類: 255.0.0.0 B 類: 255.255.0.0 C 類: 255.255.255.0
IP路由選擇: IP 搜索路由表的幾個(gè)步驟: 1. 搜索匹配的主機(jī)地址(即網(wǎng)絡(luò)標(biāo)識和主機(jī)標(biāo)識都相同); 2. 如果1不成功, 搜索匹配的網(wǎng)絡(luò)地址; 3. 如果2不成功, 搜索路由表中目的地址為“默認(rèn)”的表項(xiàng)。
地址解析協(xié)議( ARP ):地址解析協(xié)議是一個(gè)位于 IP 協(xié)議中的低層協(xié)議。它把 IP 地址解析成 MAC 地址。當(dāng)一個(gè)基于 TCP/IP 的應(yīng)用程序需要從一臺主機(jī)發(fā)送數(shù)據(jù)給另一臺主機(jī)時(shí),它把信息分割并且封裝成包,附加上目的主機(jī)的 IP 地址。然后尋找 IP 地址到實(shí)際 MAC 地址的映射。當(dāng) ARP 找到了 MAC 地址后,它就把這個(gè)信息傳給 IP ,由 IP 把包發(fā)送出去。
ICMP協(xié)議: ICMP 經(jīng)常被認(rèn)為是 IP 層的一個(gè)組成部分。它傳遞錯(cuò)誤信息以及其它詢問信息。 ICMP 報(bào)文通常被 IP 層或更高層協(xié)議( TCP 或 UDP )使用。一些 ICMP 報(bào)文把差錯(cuò)信息返回給用戶進(jìn)程。 ICMP 信息是在 IP 數(shù)據(jù)報(bào)內(nèi)部被傳輸?shù)摹.?dāng)發(fā)送一份 ICMP 差錯(cuò)報(bào)文時(shí),報(bào)文始終包含 IP 的首部和產(chǎn)生 ICMP 差錯(cuò)報(bào)文的 IP 數(shù)據(jù)報(bào)的前 8 個(gè)字節(jié)。這樣,接收 ICMP 差錯(cuò)報(bào)文的模塊就會把它與某個(gè)特定的協(xié)議(根據(jù) IP 數(shù)據(jù)報(bào)首部中的協(xié)議字段來判斷)和用戶進(jìn)程(根據(jù)包含在 IP 數(shù)據(jù)報(bào)前 8 個(gè)字節(jié)中的 TCP 或 UDP 報(bào)文首部中的 TCP 或 UDP 端口號來判斷)聯(lián)系起來。
4、傳輸層協(xié)議
主要有兩個(gè)協(xié)議:UDP協(xié)議和TCP協(xié)議。
UDP ( User Datagram Protocol ):提供無連接的通信,并不保證數(shù)據(jù)包被發(fā)送到。典型的即時(shí)傳輸少量數(shù)據(jù)的應(yīng)用程序使用 UDP 。 UDP 是一個(gè)簡單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議:進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè) UDP 數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的 IP 數(shù)據(jù)報(bào)。這與面向流字符的協(xié)議不同,如 TCP ,應(yīng)用程序產(chǎn)生的全體數(shù)據(jù)與真正發(fā)送的單個(gè) IP 數(shù)據(jù)報(bào)可能沒有什么聯(lián)系。UDP不提供可靠性:它把應(yīng)用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達(dá)目的地。端口號表示發(fā)送進(jìn)程和接收進(jìn)程。UDP長度字段指的是UDP首部和UDP數(shù)據(jù)的字節(jié)長度。該字段的最小值為8字節(jié)。(發(fā)送一份0字節(jié)的UDP數(shù)據(jù)報(bào)是OK。)這個(gè)UDP長度是有冗余的。IP數(shù)據(jù)報(bào)長度指的是數(shù)據(jù)報(bào)全長,因此UDP數(shù)據(jù)報(bào)長度是全長減去IP首部的長度(該值在首部長度字段中指定)。
UDP報(bào)頭格式報(bào)頭字段名 位數(shù) 說 明 源端口號 16 發(fā)送主機(jī)的UDP端口 目的端口號 16 目標(biāo)主機(jī)的UDP端口 消息長度 16 UDP消息的長度 校驗(yàn)和 16 驗(yàn)證報(bào)頭是否損壞
TCP ( Transmission Control Protocol ):為典型的傳輸大量數(shù)據(jù)或需要接收數(shù)據(jù)許可的應(yīng)用程序提供連接定向和可靠的通信。
由于 TCP 連接是一個(gè)全雙工的數(shù)據(jù)通道,一個(gè)連接的關(guān)閉必須由通信雙方共同完成。當(dāng)通信的一方?jīng)]有數(shù)據(jù)需要發(fā)送給對方時(shí),可以使用 FIN 段 向?qū)Ψ桨l(fā)送關(guān)閉連接請求。這時(shí),它雖然不再發(fā)送數(shù)據(jù),但并不排斥在這個(gè)連接上繼續(xù)接收數(shù)據(jù)。只有當(dāng)通信的對方也遞交了關(guān)閉連的請求后,這個(gè) TCP 連接才會完全關(guān)閉。在關(guān)閉連接時(shí),既可以由一方發(fā)起而另一方響應(yīng),也可以雙方同時(shí)發(fā)起。無論怎樣,收到關(guān)閉連接請求的一方必須使用 ACK 段 給予確認(rèn)。實(shí)際上, TCP 連接的關(guān)閉過程也是一個(gè)三次握手的過程。
滑動窗口:是兩臺主機(jī)間傳送數(shù)據(jù)時(shí)的緩沖區(qū)。每臺 TCP/IP 主機(jī)支持兩個(gè)滑動窗口:一個(gè)用于接收數(shù)據(jù),另一個(gè)用于發(fā)送數(shù)據(jù)。窗口尺寸表示計(jì)算機(jī)可能緩沖的數(shù)據(jù)量大小。當(dāng) TCP 從應(yīng)用層中接收數(shù)據(jù)時(shí),數(shù)據(jù)們于 Send 窗口。 TCP 將一個(gè)帶序列號的報(bào)頭加入數(shù)據(jù)包并將其交給 IP ,由 IP 將它發(fā)送到目標(biāo)主機(jī)。當(dāng)每一個(gè)數(shù)據(jù)包傳送時(shí),源主機(jī)設(shè)置重發(fā)計(jì)時(shí)器(描述在重新發(fā)送數(shù)據(jù)包之前將等待 ACK 的時(shí)間)。在 Send 窗口中有每一個(gè)數(shù)據(jù)包的備份,直到收到 ACK 。當(dāng)數(shù)據(jù)包到達(dá)服務(wù)器 Receive 窗口,它們按照序列號放置。當(dāng)接收到連續(xù)的段時(shí)就向源主機(jī)發(fā)送一個(gè)關(guān)于數(shù)據(jù)的認(rèn)可( ACK ),其中帶有當(dāng)前窗口尺寸。一旦源主機(jī)接收到認(rèn)可, Send 窗口將由已獲得認(rèn)可的數(shù)據(jù)滑動到等待發(fā)送的數(shù)據(jù)。如果有重發(fā)計(jì)時(shí)器設(shè)定的時(shí)間內(nèi),源主機(jī)沒有接收到對現(xiàn)存數(shù)據(jù)的認(rèn)可,數(shù)據(jù)將重新傳送。重發(fā)數(shù)據(jù)包將加重網(wǎng)絡(luò)和源主機(jī)的負(fù)擔(dān)。如果 Receive 窗口接收數(shù)據(jù)包的順序錯(cuò)亂,那么將強(qiáng)制啟動,延遲發(fā)送認(rèn)可 。
TCP段頭結(jié)構(gòu) 報(bào)頭字段名 位數(shù) 說 明 源端口號 16 本地通信端口,支持TCP的多路復(fù)用機(jī)制 目的端口號 16 遠(yuǎn)地通信端口,支持TCP的多路復(fù)用機(jī)制 序號(SEQ) 32 數(shù)據(jù)段第一個(gè)數(shù)據(jù)字節(jié)的序號(除含有SYN的段外);SYN段的SYN序號(建立本次連接的初始序號) 確認(rèn)號(ACK) 32 表示本地希望接收的下一個(gè)數(shù)據(jù)字節(jié)的序號 數(shù)據(jù)偏移 32 指出該段中數(shù)據(jù)的超始位置(以32位為單位) 控制字段URG 1 緊急指針字段有效標(biāo)志,即該段中攜帶緊急數(shù)據(jù) 控制字段 ACK 1 確認(rèn)號字段有效標(biāo)志 控制字段 PUSH 1 PUSH操作的標(biāo)志 控制字段 RST 1 要求異常終止通信連接的標(biāo)志 控制字段 SYN 1 建立同步連接的標(biāo)志 控制字段 FIN 1 本地?cái)?shù)據(jù)發(fā)送已結(jié)束,終止連接的標(biāo)志 窗口 16 本地接收窗口尺寸,即本地接收緩沖區(qū)大小 校驗(yàn)和 16 包括TCP報(bào)頭和數(shù)據(jù)在內(nèi)的校驗(yàn)和 緊急指針 16 從段序號開始的正向位移,指向緊急數(shù)據(jù)的最后一個(gè)字節(jié) 選項(xiàng) 可變 提供任選的服務(wù) 填充 可變 保證TCP報(bào)頭以32位為邊界對齊
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |