第9章 因特網(wǎng)與TCP/IP協(xié)議
本章為次重點(diǎn)章節(jié),其中TCP/IP體系結(jié)構(gòu)的網(wǎng)絡(luò)接口層協(xié)議、應(yīng)用層協(xié)議、因特網(wǎng)服務(wù)資源考核要求均為“簡(jiǎn)單應(yīng)用”。本章介紹因特網(wǎng)的TCP/IP體系結(jié)構(gòu)、因特網(wǎng)的接入方式、因特網(wǎng)的服務(wù)資源等。要求重點(diǎn)掌握TCP/IP協(xié)議族。
1、概述
TCP/IP協(xié)議族是因特網(wǎng)的核心。TCP/IP體系結(jié)構(gòu)是專(zhuān)門(mén)用來(lái)描述TCP/IP協(xié)議族的,從低到高共有五層:物理層、網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)互聯(lián)層、傳輸層、應(yīng)用層。
· 應(yīng)用層:包含了所有的高層協(xié)議,如FTP、TELNET、DNS、SMTP等。
· 傳輸層:負(fù)責(zé)在源主機(jī)和目的主機(jī)的應(yīng)用程序之間提供端-端的數(shù)據(jù)傳輸服務(wù),主要有傳輸控制協(xié)議TCP和用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP。
· 網(wǎng)絡(luò)互聯(lián)層:負(fù)責(zé)將數(shù)據(jù)報(bào)獨(dú)立地從信息源送到信宿,主要解決路由選擇、阻塞控制、網(wǎng)絡(luò)互聯(lián)等問(wèn)題,主要有互聯(lián)網(wǎng)協(xié)議IP。
· 網(wǎng)絡(luò)接口層:負(fù)責(zé)將IP數(shù)據(jù)報(bào)封裝成適合在物理網(wǎng)絡(luò)上傳輸?shù)貛袷讲鬏敚驅(qū)奈锢砭W(wǎng)絡(luò)接收到地幀解封,取出IP數(shù)據(jù)報(bào)交給上層地網(wǎng)絡(luò)互聯(lián)層。
· 物理層:只要能傳輸IP數(shù)據(jù)報(bào),允許任何協(xié)議。
2、網(wǎng)絡(luò)接口層協(xié)議
SLIP 的全稱(chēng)是 Serial Line IP 。它是一種在串行線路上對(duì) IP 數(shù)據(jù)報(bào)進(jìn)行封裝的簡(jiǎn)單形式。在IP數(shù)據(jù)報(bào)以一個(gè)稱(chēng)作END(0xc0)的特殊字符結(jié)束。同時(shí),為了防止數(shù)據(jù)報(bào)到來(lái)之前的線路噪聲被當(dāng)成數(shù)據(jù)報(bào)內(nèi)容,大多數(shù)實(shí)現(xiàn)在數(shù)據(jù)報(bào)的開(kāi)始處也傳一個(gè)END字符。如果 IP 報(bào)文中某個(gè)字符為 END ,那么就要連續(xù)傳輸兩個(gè)字節(jié) 0xdb, 0xdc 來(lái)取代它。 0xdb 這個(gè)特殊字符被稱(chēng)作 SLIP 的 ESC 字符,但是它的值與 ASCII 碼的 ESC 字符( 0x1b )不同。如果 IP 報(bào)文中某個(gè)字符為 SLIP 的 ESC 字符,那么就要連續(xù)傳輸兩個(gè)字節(jié) 0xdb,0xdd 來(lái)取代它。
SLIP是一種簡(jiǎn)單的幀封裝方法,還有一些值得一提的缺陷:
1.每一端必須知道對(duì)方的IP地址。沒(méi)有辦法把本端的IP地址通知給另一端。
2.數(shù)據(jù)幀中沒(méi)有類(lèi)型字段(類(lèi)似于以太網(wǎng)中的類(lèi)型字段)。如果一條串行線路用于SLIP,那么它不能同時(shí)使用其他協(xié)議。
3. SLIP沒(méi)有在數(shù)據(jù)幀中加上檢驗(yàn)和(類(lèi)似于以太網(wǎng)中的CRC字段)。如果SLIP傳輸?shù)膱?bào)文被線路噪聲影響而發(fā)生錯(cuò)誤,只能通過(guò)上層協(xié)議來(lái)發(fā)現(xiàn)。(另一種方法是,新型的調(diào)制解調(diào)器可以檢測(cè)并糾正錯(cuò)誤報(bào)文。)這樣,上層協(xié)議提供某種形式的CRC就顯得很重要。
PPP ,點(diǎn)對(duì)點(diǎn)通信協(xié)議修改了 SLIP 協(xié)議中的所有缺陷。 PPP 包括以下三個(gè)部分:
1 .在串行通信線路上組幀的方法。 PPP 既支持?jǐn)?shù)據(jù)為 8 位和無(wú)奇偶檢驗(yàn)的異步模式(如大多數(shù)計(jì)算機(jī)上都普遍存在的串行接口),還支持面向比特的同步鏈接。
2 .建立、配置及測(cè)試數(shù)據(jù)鏈路的鏈路控制協(xié)議( LCP : Link Control Protocol )。它允許通信雙方進(jìn)行協(xié)商,以確定不同的選項(xiàng)。
3 .針對(duì)不同網(wǎng)絡(luò)層協(xié)議的網(wǎng)絡(luò)控制協(xié)議( NCP : Network Control Protocol )體系。PPP數(shù)據(jù)幀的格式看上去很像ISO的HDLC(高層數(shù)據(jù)鏈路控制)標(biāo)準(zhǔn)。每一幀都以標(biāo)志字符0x7e開(kāi)始和結(jié)束。緊接著是一個(gè)地址字節(jié),值始終是0xff,然后是一個(gè)值為0x03的控制字節(jié)。接下來(lái)是協(xié)議字段,類(lèi)似于以太網(wǎng)中類(lèi)型字段的功能。當(dāng)它的值為0x0021時(shí)表示信息字段是一個(gè)IP數(shù)據(jù)報(bào),值為0xc021時(shí)表示信息字段是鏈路控制數(shù)據(jù),值為0x8021時(shí)表示信息字段是網(wǎng)絡(luò)控制數(shù)據(jù)。CRC字段(或FCS,幀校驗(yàn)序列)是一個(gè)循環(huán)冗余檢驗(yàn)碼,以檢測(cè)數(shù)據(jù)幀中的錯(cuò)誤。由于標(biāo)志字符的值是0x7e,因此當(dāng)該字符出現(xiàn)在信息字段中時(shí),PPP需要對(duì)它進(jìn)行轉(zhuǎn)義。在同步鏈路中,該過(guò)程是通過(guò)一種稱(chēng)作比特填充(bit stuffing)的硬件技術(shù)來(lái)完成的。在異步鏈路中,特殊字符0x7d用作轉(zhuǎn)義字符。
因特網(wǎng)地接入方式:終端方式、SLIP/PPP方式、DDN專(zhuān)線、代理服務(wù)器方式、其他通信線路入網(wǎng)。
3、網(wǎng)絡(luò)互聯(lián)層協(xié)議
IP協(xié)議:實(shí)現(xiàn)的是不可靠無(wú)連接的數(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)號(hào)分開(kāi)代表在 0 到達(dá) 55 范圍內(nèi)的十進(jìn)制數(shù)字。用二進(jìn)制格式時(shí)共有 32 位組成,為了方便記憶,用點(diǎn)號(hào)每八位一分割,稱(chēng)為點(diǎn)分十進(jìn)制。因?yàn)門(mén)CP/IP網(wǎng)絡(luò)是為大規(guī)模的互連網(wǎng)絡(luò)設(shè)計(jì)的,所以不能用全部的32位來(lái)表示網(wǎng)絡(luò)上主機(jī)的地址。用IP地址的一部分來(lái)標(biāo)識(shí)網(wǎng)絡(luò),剩下的部分標(biāo)識(shí)其中的網(wǎng)絡(luò)設(shè)備。IP地址中用來(lái)標(biāo)識(shí)設(shè)備所在網(wǎng)絡(luò)的部分叫做網(wǎng)絡(luò)ID,標(biāo)識(shí)網(wǎng)絡(luò)設(shè)備的部分叫做主機(jī)ID。這些ID包含在同一個(gè)IP地址之中。 Internet組織定義了5種IP地址類(lèi),以容納不同大小的網(wǎng)絡(luò)。
· A類(lèi)地址用于主機(jī)數(shù)目非常多的網(wǎng)絡(luò)。A 類(lèi)地址的最高位為 0 ,接下來(lái)的 7 位完成網(wǎng)絡(luò) ID ,剩余的 24 位二進(jìn)制位代表主機(jī) ID 。 A 類(lèi)地址允許 126 個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)大約一千七百萬(wàn)臺(tái)主機(jī) ; 第一個(gè)八位體是 1~126 。 127 是一個(gè)特殊的網(wǎng)絡(luò) ID ,是用來(lái)檢查, TCP / IP 協(xié)議工作狀態(tài)。
· B 類(lèi)地址用于中型到大型的網(wǎng)絡(luò)。B類(lèi)地址的最高位為10,接下來(lái)的14位完成網(wǎng)絡(luò)ID,剩余的14位二進(jìn)制位代表主機(jī)ID。B類(lèi)地址允許16384個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)大約65000臺(tái)主機(jī);第一個(gè)八位體是128~191。
· C 類(lèi)地址用于小型本地網(wǎng)絡(luò)。 C 類(lèi)地址的最高位為 110 ,接下來(lái)的 21 位完成網(wǎng)絡(luò) ID ,剩余的 8 位二進(jìn)制位代表主機(jī) ID 。 C 類(lèi)地址允許大約二百萬(wàn)個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)有 254 臺(tái)主機(jī);第一個(gè)八位體是 192~223 。
· D 類(lèi)地址用于多重廣播組。一個(gè)多重廣播組可能包括 1 臺(tái)或更多主機(jī),或根本沒(méi)有。 D 類(lèi)地址的最高位為 1110; 第一個(gè)八位體是 224~239 。剩余的位設(shè)計(jì)客戶(hù)機(jī)參加的特定組。在多重廣播操作中沒(méi)有網(wǎng)絡(luò)或主機(jī)位,數(shù)據(jù)包將傳送到網(wǎng)絡(luò)中選定的主機(jī)子集中。只有注冊(cè)了多重廣播地址的主機(jī)才能接收到數(shù)據(jù)包。 Microsoft 支持 D 類(lèi)地址,用于應(yīng)用程序?qū)⒍嘀貜V播數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)間的主機(jī)上,包括 WINS 和 Microsoft NetShow 。
· E 類(lèi)是一個(gè)通常不用的實(shí)驗(yàn)性地址:它保留作為以后使用。 E 類(lèi)地址的最高四位通常為 11110 ;第一個(gè)八位體是 240~247 。248~254 無(wú)規(guī)定。
子網(wǎng)是一個(gè)邏輯概念,子網(wǎng)中的各主機(jī)的 NetID 是相同的。網(wǎng)段是一個(gè)物理概念,是指在物理上獨(dú)立的一段網(wǎng)絡(luò)。子網(wǎng)與網(wǎng)段之間,可以是多對(duì)多的關(guān)系。
劃分子網(wǎng)( subnetworking )的好處:a、 混合使用多種技術(shù),如以太網(wǎng)和令牌網(wǎng)。b、 克服已有技術(shù)的缺陷,如超過(guò)每段中最大主機(jī)數(shù)目。c、 通過(guò)對(duì)交通重定向和減少?gòu)V播來(lái)減少網(wǎng)絡(luò)阻塞。
子網(wǎng)掩碼:將IP地址的各位,NetID全改為1,HostID全改為0,則是子網(wǎng)掩碼。與IP地址進(jìn)行“與”或“and”運(yùn)算,用來(lái)分辯網(wǎng)絡(luò)ID和主機(jī)ID。
標(biāo)準(zhǔn)子網(wǎng)掩碼: A 類(lèi): 255.0.0.0 B 類(lèi): 255.255.0.0 C 類(lèi): 255.255.255.0
IP路由選擇: IP 搜索路由表的幾個(gè)步驟: 1. 搜索匹配的主機(jī)地址(即網(wǎng)絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí)都相同); 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)用程序需要從一臺(tái)主機(jī)發(fā)送數(shù)據(jù)給另一臺(tái)主機(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ò)誤信息以及其它詢(xún)問(wèn)信息。 ICMP 報(bào)文通常被 IP 層或更高層協(xié)議( TCP 或 UDP )使用。一些 ICMP 報(bào)文把差錯(cuò)信息返回給用戶(hù)進(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)文的模塊就會(huì)把它與某個(gè)特定的協(xié)議(根據(jù) IP 數(shù)據(jù)報(bào)首部中的協(xié)議字段來(lái)判斷)和用戶(hù)進(jìn)程(根據(jù)包含在 IP 數(shù)據(jù)報(bào)前 8 個(gè)字節(jié)中的 TCP 或 UDP 報(bào)文首部中的 TCP 或 UDP 端口號(hào)來(lái)判斷)聯(lián)系起來(lái)。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |