一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

TCP/IP協(xié)議簡(jiǎn)介

 xos 2006-12-21
什么是TCP/IP?

TCP協(xié)議和IP協(xié)議指兩個(gè)用在Internet上的網(wǎng)絡(luò)協(xié)議(或數(shù)據(jù)傳輸?shù)姆椒ǎ?。它們分別是傳輸控制協(xié)議和互連網(wǎng)協(xié)議。這兩個(gè)協(xié)議屬于眾多的TCP/IP 協(xié)議組中的一部分。

TCP/IP協(xié)議組中的協(xié)議保證Internet上數(shù)據(jù)的傳輸,提供了幾乎現(xiàn)在上網(wǎng)所用到的所有服務(wù)。這些服務(wù)包括:電子郵件的傳輸  文件傳輸  新聞組的發(fā)布  訪問(wèn)萬(wàn)維網(wǎng)

 在TCP/IP協(xié)議組分兩種協(xié)議:網(wǎng)絡(luò)層的協(xié)議  應(yīng)用層的協(xié)議

網(wǎng)絡(luò)層協(xié)議  

 網(wǎng)絡(luò)層協(xié)議管理離散的計(jì)算機(jī)間的數(shù)據(jù)傳輸。這些協(xié)議用戶注意不到,是在系統(tǒng)表層以下工作的。比如,IP協(xié)議為用戶和遠(yuǎn)程計(jì)算機(jī)提供了信息包的傳輸方法。它是在許多信息的基礎(chǔ)上工作的,比如說(shuō)是機(jī)器的IP地址。在機(jī)器IP地址和其它信息的基礎(chǔ)上,IP確保信息包能正確地到達(dá)目的機(jī)器。通過(guò)這一過(guò)程,IP和其它網(wǎng)絡(luò)層的協(xié)議共同用于數(shù)據(jù)傳輸。如果沒(méi)有網(wǎng)絡(luò)工具,用戶就看不到在系統(tǒng)里工作的IP。

應(yīng)用層協(xié)議

相反地,應(yīng)用層協(xié)議用戶是可以看得到的。比如,文件傳輸協(xié)議(FTP)用戶是看得到的。用戶為了傳輸一個(gè)文件請(qǐng)求一個(gè)和其它計(jì)算機(jī)的連接,連接建立后,就開始傳輸文件。在傳輸時(shí),用戶和遠(yuǎn)程計(jì)算機(jī)的交換的一部分是能看到的。

請(qǐng)記住這句總結(jié)性的話:TCP/IP協(xié)議是指一組使得Internet上的機(jī)器相互通信比較方便的協(xié)議。

TCP/IP是如何工作的?

TCP/IP通過(guò)使用協(xié)議棧工作。這個(gè)棧是所有用來(lái)在兩臺(tái)機(jī)器間完成一個(gè)傳輸?shù)乃袇f(xié)議的幾個(gè)集合。(這也就是一個(gè)通路,數(shù)據(jù)通過(guò)它從一臺(tái)機(jī)器到另一臺(tái)機(jī)器。)棧分成層,與這里有關(guān)的是五個(gè)層。學(xué)習(xí)下面的圖可以對(duì)層有個(gè)概念。

在數(shù)據(jù)通過(guò)圖示的步驟后,它就從網(wǎng)絡(luò)中的一臺(tái)機(jī)器傳到另一臺(tái)機(jī)器了。在這個(gè)過(guò)程中,一個(gè)復(fù)雜的查錯(cuò)系統(tǒng)會(huì)在起始機(jī)器和目的機(jī)器中執(zhí)行。

棧的每一層都能從相鄰的層中接收或發(fā)送數(shù)據(jù)。每一層都與許多協(xié)議相聯(lián)系。在棧的每一層,這些協(xié)議都在起作用。本章的下一部分將分析這些服務(wù),以及它們?cè)跅V惺侨绾温?lián)系的。同時(shí)也分析一下它們的功能,它們提供的服務(wù)和與安全性的關(guān)系。

協(xié)議簡(jiǎn)介

已經(jīng)知道數(shù)據(jù)是怎樣使用TCP/IP協(xié)議棧來(lái)傳輸?shù)牧恕,F(xiàn)在仔細(xì)分析在棧中所用到的關(guān)鍵的協(xié)議。先從網(wǎng)絡(luò)層的協(xié)議開始。

網(wǎng)絡(luò)層協(xié)議

網(wǎng)絡(luò)層協(xié)議是那些使傳輸透明化的協(xié)議。除了使用一些監(jiān)視系統(tǒng)進(jìn)程的工具外,用戶是看不見這些協(xié)議的。

Sniffers是能看到這些步驟的裝置。這個(gè)裝置可以是軟件,也可以是硬件,她能讀取通過(guò)網(wǎng)絡(luò)發(fā)送的每一個(gè)包。Sniffers廣泛地用于隔離用戶看不到的、網(wǎng)絡(luò)性能下降的問(wèn)題。sniffers能讀取發(fā)生在網(wǎng)絡(luò)層協(xié)議的任何活動(dòng)。而且,正如你已經(jīng)猜到的,sniffers會(huì)對(duì)安全問(wèn)題造成威脅。參見Sniffers一章。

重要的網(wǎng)絡(luò)層協(xié)議包括:

 地址解析協(xié)議(ARP)

 Internet控制消息協(xié)議(ICMP)

 Internet協(xié)議(IP)

 傳輸控制協(xié)議(TCP)

下面僅僅簡(jiǎn)單介紹一下。

地址解析協(xié)議ARP

地址解析協(xié)議的目的是將IP地址映射成物理地址。這在使信息通過(guò)網(wǎng)絡(luò)時(shí)特別重要。在一個(gè)消息(或其他數(shù)據(jù))發(fā)送之前,被打包到IP包里,或適合于Internet傳輸?shù)男畔K。這包括兩臺(tái)計(jì)算機(jī)的IP地址。在這個(gè)包離開發(fā)送計(jì)算機(jī)之前,必須要找到目標(biāo)的硬件地址。這就是ARP最初用到的地方。

一個(gè)ARP請(qǐng)求消息在網(wǎng)上廣播。請(qǐng)求由一個(gè)進(jìn)程接收,它回復(fù)物理地址。這個(gè)回復(fù)消息由原先的那臺(tái)發(fā)送廣播消息計(jì)算機(jī)接收,從而傳輸過(guò)程就開始了。

ARP的設(shè)計(jì)包括一個(gè)緩存。為了理解緩存的概念,考慮一下:許多現(xiàn)代的HTML瀏覽器(比如Netscape或Microsoft的Internet

Explorer)使用了一個(gè)緩存。緩存是磁盤的一部分,從Web網(wǎng)上經(jīng)常訪問(wèn)的東西就存在里面(比如按鈕,或通用的圖形)。這是符合邏輯的,因?yàn)楫?dāng)你返回這些主頁(yè)的時(shí)候,這些東西不必再?gòu)倪h(yuǎn)程計(jì)算機(jī)上裝載了。從緩存中裝載的速度要比較快。

相似的,ARP的實(shí)現(xiàn)包括一個(gè)緩存。以這種方式,網(wǎng)絡(luò)或遠(yuǎn)程計(jì)算機(jī)的硬件地址就存著了,并為接著的ARP請(qǐng)求作準(zhǔn)備。這樣節(jié)省了時(shí)間和網(wǎng)絡(luò)資源。

但是,正是由于緩存,就引起了安全性。

對(duì)于網(wǎng)絡(luò)安全來(lái)將,這并不是最重要的安全性問(wèn)題。然而,地址緩存(不僅僅是在ARP而且在其他例子中)確實(shí)會(huì)引起安全性問(wèn)題。一旦這些地址保存,都會(huì)是讓黑客偽造一個(gè)遠(yuǎn)程連接,它們對(duì)緩存的地址很歡迎。 Internet控制消息協(xié)議ICMP

Internet控制消息協(xié)議是用來(lái)在兩臺(tái)計(jì)算機(jī)間傳輸時(shí)處理錯(cuò)誤和控制消息的。它允許這些主機(jī)共享信息。在這一方面,ICMP是用來(lái)診斷網(wǎng)絡(luò)問(wèn)題的重要工具。通過(guò)ICMP收集診斷信息的例子如下:

一臺(tái)主機(jī)關(guān)機(jī)

一個(gè)網(wǎng)關(guān)堵塞和工作不正常

網(wǎng)絡(luò)中其他的失敗

可能最著名的ICMP實(shí)現(xiàn)的網(wǎng)絡(luò)工具是ping。ping通常用來(lái)判斷是否一臺(tái)遠(yuǎn)程機(jī)器正開著,數(shù)據(jù)包從用戶的計(jì)算機(jī)發(fā)到遠(yuǎn)程計(jì)算機(jī)。這些包通常返回用戶的計(jì)算機(jī)。如果沒(méi)有返回?cái)?shù)據(jù)包到用戶計(jì)算機(jī),ping程序就產(chǎn)生一個(gè)表示遠(yuǎn)程計(jì)算機(jī)關(guān)機(jī)的錯(cuò)誤消息。

應(yīng)用層協(xié)議

應(yīng)用層協(xié)議是專門為用戶提供應(yīng)用服務(wù)的。它是建立在網(wǎng)絡(luò)層協(xié)議之上的。

Telnet

Telnet在RFC

854中有詳細(xì)地描述,Telnet協(xié)議中說(shuō)明:Telnet協(xié)議的目的就是提供一個(gè)相當(dāng)通用的,雙向的,面向八位字節(jié)的通信機(jī)制。它的最初目的是允許終端和面向終端的進(jìn)程之間的交互。

Telnet不僅允許用戶登錄到一個(gè)遠(yuǎn)程主機(jī),它允許用戶在那臺(tái)計(jì)算機(jī)上執(zhí)行命令。這樣,Los Angeles的一個(gè)人可以Telnet到New

York的一臺(tái)機(jī)器,并在這臺(tái)機(jī)器上運(yùn)行程序,就跟在New York的用戶一樣。

對(duì)于熟悉Telnet的用戶來(lái)講,他的操作與BBS的界面一樣。Telnet是一個(gè)能提供建立在終端字體的訪問(wèn)數(shù)據(jù)庫(kù)的一個(gè)應(yīng)用程序。比如,多于80%的大學(xué)的圖書館的目錄可以通過(guò)Telnet訪問(wèn)到。

即使GUI應(yīng)用程序被大大采用,Telnet這個(gè)建立在字符基礎(chǔ)上的應(yīng)用程序,仍相當(dāng)?shù)牧餍?。這有許多原因。第一,Telnet允許你以很小的網(wǎng)絡(luò)資源花費(fèi)實(shí)現(xiàn)各種功能(如收發(fā)郵件)。實(shí)現(xiàn)安全的Telnet是件十分簡(jiǎn)單的事。有許多這樣的程序,通用的是Secure

Shell。

要使用Telnet,用戶要指定啟動(dòng)Telnet客戶的命令,并在后面指定目標(biāo)主機(jī)的名字。在Linux中,可以這樣:

$telnet internic.net

這個(gè)命令啟動(dòng)Telnet過(guò)程,連接到internic.net。這個(gè)連接可能被接受,或被拒絕,這與目標(biāo)主機(jī)的配置有關(guān)。在UNIX,Telnet命令很久以前就是內(nèi)置的。也就是說(shuō),Telnet已經(jīng)包含在UNIX的發(fā)行版本中有十年了。但并不是所有操作系統(tǒng)都將Telnet作為內(nèi)置的Telnet客戶。

文件傳輸協(xié)議FTP

文件傳輸協(xié)議是從一個(gè)系統(tǒng)向另一個(gè)系統(tǒng)傳遞文件的標(biāo)準(zhǔn)方法。它的目標(biāo)在RFC 0765中寫得很清楚。

FTP的目標(biāo)是1)促進(jìn)文件和程序的共享,2)鼓勵(lì)間接和含蓄的使用遠(yuǎn)程計(jì)算機(jī),3)使用戶不必面對(duì)主機(jī)間使用的不同的文件存儲(chǔ)系統(tǒng),4)有效和可靠地傳輸文件。FTP,盡管用戶可以直接通過(guò)終端來(lái)使用,是設(shè)計(jì)成讓別的程序使用的。

約有二十年,研究者調(diào)查了相當(dāng)廣泛的文件傳輸方法。FTP經(jīng)歷了多次改變。1971年作了第一次定義,整個(gè)的說(shuō)名參見RFC 114。

FTP是怎樣工作的?

FTP文件傳輸應(yīng)用在客戶/服務(wù)環(huán)境。請(qǐng)求機(jī)器啟動(dòng)一個(gè)FTP客戶端軟件。這就給目標(biāo)文件服務(wù)器發(fā)出了一個(gè)請(qǐng)求。典型地,這個(gè)要求被送到端口21。一個(gè)連接建立起來(lái)后,目標(biāo)文件服務(wù)器必須運(yùn)行一個(gè)FTP服務(wù)軟件。

FTPD是標(biāo)準(zhǔn)的FTP服務(wù)daemon。它的功能很簡(jiǎn)單:回復(fù)inetd收到的連接請(qǐng)求,并滿足這些要傳輸文件的請(qǐng)求。這個(gè)daemon在許多發(fā)行版的UNIX中是個(gè)標(biāo)準(zhǔn)。

FTPD等待一個(gè)連接請(qǐng)求。當(dāng)這樣的一個(gè)請(qǐng)求到達(dá)時(shí),F(xiàn)TPD請(qǐng)求用戶登錄。用戶提供它的合法的登錄名和口令或匿名登錄。

一旦登錄成功,用戶可以下載文件了。在某些情況下,如果服務(wù)器的安全允許,用戶可以上載文件。

簡(jiǎn)單郵件傳輸協(xié)議SMTP

簡(jiǎn)單郵件傳輸協(xié)議的目的是使得郵件傳輸可靠和高效。

SMTP是一個(gè)相當(dāng)小和有效的協(xié)議。用戶給SMTP服務(wù)器發(fā)個(gè)請(qǐng)求。一個(gè)雙向的連接隨后就建立了??蛻舭l(fā)一個(gè)MAIL指令,指示它想給Internet上的某處的一個(gè)收件人發(fā)個(gè)信。如果SMTP允許這個(gè)操作,一個(gè)肯定的確認(rèn)發(fā)回客戶機(jī)。隨后,會(huì)話開始??蛻艨赡芨嬷占说拿Q和IP地址,以及要發(fā)送的消息。

盡管SMTP相當(dāng)簡(jiǎn)單,郵件服務(wù)是無(wú)窮的安全漏洞的源泉。

SMTP服務(wù)在Linux內(nèi)部是內(nèi)置的。其它網(wǎng)絡(luò)操作系統(tǒng)也提供某些形式的SMTP。

Gopher

Gopher是一個(gè)分布式的文件獲取系統(tǒng)。它最初是作為Campus Wide Information

System在Minnesota大學(xué)實(shí)現(xiàn)的。它的定義如下:

Internet

Gopher協(xié)議最初是設(shè)計(jì)用來(lái)最為一個(gè)分布式文件發(fā)送系統(tǒng)的。文檔放在許多服務(wù)器上,Gopher客戶軟件給客戶提供一個(gè)層次項(xiàng)和目錄,看上去象一個(gè)文件系統(tǒng)。事實(shí)上,Gopher的界面設(shè)計(jì)成類似一個(gè)文件系統(tǒng),因?yàn)槲募到y(tǒng)是查找文件和服務(wù)的最好模型。

Gopher服務(wù)功能相當(dāng)強(qiáng)大。能提供文本,聲音,和其他媒體。主要用在文本模式,比通過(guò)用瀏覽器使用HTTP要來(lái)得快。毫無(wú)疑問(wèn),最流行的Gopher客戶軟件是為UNIX編寫的。其他操作系統(tǒng)也有Gopher客戶端軟件。

典型地,用戶啟動(dòng)一個(gè)Gopher客戶端軟件,和一個(gè)Gopher服務(wù)器。隨后,Gopher返回一個(gè)可以選擇的菜單??赡馨ú檎也藛?,預(yù)先設(shè)置的目標(biāo),或文件目錄。

注意,Gopher模式完全是一個(gè)客戶服務(wù)器模式。用戶每次登錄,客戶給Gopher服務(wù)器發(fā)送一個(gè)請(qǐng)求,要求所有能得到的文檔。Gopher服務(wù)器對(duì)這個(gè)信息做出反應(yīng)知道用戶請(qǐng)求一個(gè)對(duì)象。

超聯(lián)結(jié)傳輸協(xié)議HTTP

由于它能讓用戶在網(wǎng)上沖浪,超聯(lián)結(jié)傳輸協(xié)議可能是最有名的協(xié)議。HTTP是一個(gè)應(yīng)用層協(xié)議,它很小也很有效,符合發(fā)布、合成和超媒體文本系統(tǒng)的的需要。是一個(gè)通用的,面向?qū)ο蟮膮f(xié)議,通過(guò)擴(kuò)展請(qǐng)求命令,可以用來(lái)實(shí)現(xiàn)許多任務(wù)。HTTP的一個(gè)特點(diǎn)是數(shù)據(jù)表現(xiàn)的類型允許系統(tǒng)相對(duì)獨(dú)立于數(shù)據(jù)的傳輸。

HTTP的出現(xiàn)永久地改變了Internet的特點(diǎn),主要是使Internet大眾化。在某些程度上,他它的操作與Gopher相類似。比如,它的工作是請(qǐng)求/響應(yīng)式的。這是相當(dāng)重要的一點(diǎn)。其他應(yīng)用程序,比如Telnet仍需要用戶登錄(當(dāng)他們登錄時(shí),便消耗系統(tǒng)資源)。但Gopher和HTTP協(xié)議,消除了這一現(xiàn)象。用戶(客戶)僅僅在他們請(qǐng)求或接受數(shù)據(jù)時(shí)消耗資源。

使用通用瀏覽器,象Netscape Navigator或Microsoft Internet

Explore,可以監(jiān)視這一過(guò)程的發(fā)生。在WWW上的數(shù)據(jù),你的瀏覽器會(huì)和服務(wù)器及時(shí)聯(lián)系。這樣,它首先獲取文本,然后是圖形,再后是聲音,等等。在你的瀏覽器的狀態(tài)欄的左下角。當(dāng)它裝載頁(yè)面時(shí),看著它幾分鐘。你會(huì)看到請(qǐng)求和服務(wù)活動(dòng)的發(fā)生,通常速度很快。

HTTP并不特別關(guān)注所需的是什么類型的數(shù)據(jù)。各種形式的媒體都能插進(jìn),以及遠(yuǎn)程的HTML主頁(yè)。

網(wǎng)絡(luò)新聞傳輸協(xié)議NNTP

網(wǎng)絡(luò)新聞傳輸協(xié)議是一個(gè)廣泛使用的協(xié)議。它提供通常作為USENET新聞組的新聞服務(wù)。

NNTP定義了一個(gè)協(xié)議,使用一個(gè)可靠的建立在流的基礎(chǔ)上的在Internet上傳輸新聞的分發(fā),詢問(wèn),獲取和發(fā)布的一個(gè)協(xié)議。NNTP被設(shè)計(jì)成新聞被存儲(chǔ)在一個(gè)中心的數(shù)據(jù)庫(kù),允許訂閱者選擇他們希望讀的主題。目錄,交叉引用和過(guò)期的新聞都能找到。

NNTP有許多特性和簡(jiǎn)單郵件傳輸協(xié)議以及TCP相似。與SMTP相似,它接受一般的英語(yǔ)命令。和TCP相似,它是建立在流的傳輸和分發(fā)的基礎(chǔ)上的。NNTP通常在端口119運(yùn)行。

下面詳細(xì)地講解一下以太網(wǎng),IP協(xié)議和TCP協(xié)議。

第二節(jié) Etherner

以太網(wǎng)的基本工作原理

以太網(wǎng)上的所有設(shè)備都連在以太總線上,它們共享同一個(gè)通信通道。以太網(wǎng)采用的是廣播方式的通信,即所有的設(shè)備都接收每一個(gè)信息包。網(wǎng)絡(luò)上的設(shè)備通常將接收到的所有包都傳給主機(jī)界面,在這兒選擇計(jì)算機(jī)要接收的信息,并將其他的過(guò)濾掉。以太網(wǎng)是最有效傳遞的意思是,硬件并不給發(fā)送者提供有關(guān)信息已收到的信息。比如,即使目標(biāo)計(jì)算機(jī)碰巧關(guān)機(jī)了,送給它的包自然就丟失,但發(fā)送者并不會(huì)知道這一點(diǎn)。

以太網(wǎng)的控制是分布式的。以太網(wǎng)的存取方式叫做帶有Collision的Carrier Sense Multipe

Access。因?yàn)槎嗯_(tái)計(jì)算機(jī)可以同時(shí)使用以太網(wǎng),每臺(tái)機(jī)器看看是否有載波信號(hào)出現(xiàn)判定總線是否空閑。如果主機(jī)接口有數(shù)據(jù)要傳輸,它就偵聽,看看是否有信號(hào)正在傳輸。如果沒(méi)有探測(cè)到,它就開始傳輸。每次傳輸都在一定的時(shí)間間隔內(nèi),即傳輸?shù)陌泄潭ǖ拇笮?。而且,硬件還必須在兩次傳輸之間,觀察一個(gè)最小的空閑時(shí)間,也就是說(shuō),沒(méi)有一對(duì)機(jī)器可以不給其他計(jì)算機(jī)通信的機(jī)會(huì)而使用總線。

沖突偵測(cè)和恢復(fù)

當(dāng)開始一個(gè)傳輸時(shí),信號(hào)并不能同時(shí)到達(dá)網(wǎng)絡(luò)的所有地方。傳輸速度實(shí)際上是光速的80%。這就有可能兩個(gè)設(shè)備同時(shí)探測(cè)到網(wǎng)絡(luò)是空閑的,并都開始傳輸。但當(dāng)這兩個(gè)電信號(hào)在網(wǎng)絡(luò)上相遇時(shí),它們都不再可用了。這種情況叫做沖突。

以太網(wǎng)在處理這種情況時(shí),很有技巧性。每臺(tái)設(shè)備在它傳輸信號(hào)的時(shí)候都監(jiān)視總線,看看它在傳輸?shù)臅r(shí)候是否有別的信號(hào)的干擾。這種監(jiān)視叫做沖突偵聽。在探測(cè)到?jīng)_突后,設(shè)備就停止傳輸。有可能網(wǎng)絡(luò)會(huì)因?yàn)樗械脑O(shè)備都忙于嘗試傳輸數(shù)據(jù)而每次都產(chǎn)生沖突。

為了避免這種情況,以太網(wǎng)使用一個(gè)2進(jìn)制指數(shù)后退策略。發(fā)送者在第一次沖突后等待一個(gè)隨機(jī)時(shí)間,如果第二次還是沖突,等待時(shí)間延長(zhǎng)一倍。第三次則再延長(zhǎng)一倍。通過(guò)這種策略,即使兩臺(tái)設(shè)備第二的等待時(shí)間會(huì)很接近,但由于后面的等待時(shí)間成指數(shù)倍增長(zhǎng),不就,他們就不會(huì)相互沖突了。

以太網(wǎng)的硬件地址

每臺(tái)連接到以太網(wǎng)上的計(jì)算機(jī)都有一個(gè)唯一的48位以太網(wǎng)地址。以太網(wǎng)卡廠商都從一個(gè)機(jī)構(gòu)購(gòu)得一段地址,在生產(chǎn)時(shí),給每個(gè)卡一個(gè)唯一的地址。通常,這個(gè)地址是固化在卡上的。這個(gè)地址又叫做物理地址。

當(dāng)一個(gè)數(shù)據(jù)幀到達(dá)時(shí),硬件會(huì)對(duì)這些數(shù)據(jù)進(jìn)行過(guò)濾,根據(jù)幀結(jié)構(gòu)中的目的地址,將屬于發(fā)送到本設(shè)備的數(shù)據(jù)傳輸給操作系統(tǒng),忽略其他任何數(shù)據(jù)。

一個(gè)是地址位全為1的時(shí)表示這個(gè)數(shù)據(jù)是給所有總線上的設(shè)備的。

以太網(wǎng)的幀結(jié)構(gòu)

以太網(wǎng)的幀的長(zhǎng)度是可變的,但都大于64字節(jié),小于1518字節(jié)。在一個(gè)包交換網(wǎng)絡(luò)中,每個(gè)以太網(wǎng)的幀包含一個(gè)指明目標(biāo)地址的域。上圖是以太網(wǎng)幀的格式,包含了目標(biāo)和源的物理地址。為了識(shí)別目標(biāo)和源,以太網(wǎng)幀的前面是一些前導(dǎo)字節(jié),類型和數(shù)據(jù)域以及冗余校驗(yàn)。前導(dǎo)由64個(gè)0和1交替的位組成,用于接收同步。32位的CRC校驗(yàn)用來(lái)檢測(cè)傳輸錯(cuò)誤。在發(fā)送前,將數(shù)據(jù)用CRC進(jìn)行運(yùn)算,將結(jié)果放在CRC域。接收到數(shù)據(jù)后,將數(shù)據(jù)做CRC運(yùn)算后,將結(jié)果和CRC域中的數(shù)據(jù)相比較。如果不一致,那么傳輸過(guò)程中有錯(cuò)誤。

幀類型域是一個(gè)16位的整數(shù),用來(lái)指示傳輸?shù)臄?shù)據(jù)的類型。當(dāng)一個(gè)幀到達(dá)臺(tái)設(shè)備后,操作系統(tǒng)通過(guò)幀類型來(lái)決定使用哪個(gè)軟件模塊。從而允許在同一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)協(xié)議。

第三節(jié) Internet地址

網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī)都有一個(gè)表明自己唯一身份的地址。TCP/IP協(xié)議對(duì)這個(gè)地址做了規(guī)定。一個(gè)IP地址由一個(gè)32位的整數(shù)表示。它的一個(gè)較為聰明的地方是很好的規(guī)定了地址的范圍和格式,從而使地址尋址和路由選擇都很方便。一個(gè)IP地址是對(duì)一個(gè)網(wǎng)絡(luò)和它上面的主機(jī)的地址一塊編碼而形成的一個(gè)唯一的地址。

在同一個(gè)物理網(wǎng)絡(luò)上的主機(jī)的地址都有一個(gè)相同前綴,即IP地址分成兩個(gè)部分:(netid,hostid)。其中netid代表網(wǎng)絡(luò)地址,hostid代表這個(gè)網(wǎng)絡(luò)上的主機(jī)地址,根據(jù)他們選擇的位數(shù)的不同,可以分成以下五類基本IP地址。

 

通過(guò)地址的前3位,就能區(qū)分出地址是屬于A,B或C類。其中A類地址的主機(jī)容量有16777216臺(tái)主機(jī),B類地址可以有65536臺(tái)主機(jī),C類地址可以有256臺(tái)主機(jī)。

將地址分成網(wǎng)絡(luò)和主機(jī)部分,在路由尋址時(shí)非常有用,大大提高了網(wǎng)絡(luò)的速度。路由器就是通過(guò)IP地址的netid部分來(lái)決定是否發(fā)送和將一個(gè)數(shù)據(jù)包發(fā)送到什么地方。

一個(gè)設(shè)備并不只能有一個(gè)地址。比如一個(gè)連到兩個(gè)物理網(wǎng)絡(luò)上的路由器,它就有兩個(gè)IP地址。所以可以將IP地址看成是一個(gè)網(wǎng)絡(luò)連接。

為了便于記憶和使用32位的IP地址,可以將地址使用用小數(shù)點(diǎn)分開的四位整數(shù)來(lái)表示。下面舉個(gè)例子:

IP地址: 10000000 00001010 00000010 00011110

記為: 128.10.2.30

第四節(jié) IP協(xié)議和路由

IP協(xié)議

IP協(xié)議定義了一種高效、不可靠和無(wú)連接的傳輸方式。由于傳輸沒(méi)有得到確認(rèn),所以是不可靠的。一個(gè)包可能丟失了,或看不見了,或是延時(shí)了,或是傳輸順序錯(cuò)了。但是傳輸設(shè)備并不檢測(cè)這些情況,也不通知通信雙方。無(wú)連接

因?yàn)槊總€(gè)包的傳遞與別的包是相互獨(dú)立的。同一個(gè)機(jī)器上的包可能通過(guò)不同的路徑到達(dá)另一臺(tái)機(jī)器,或在別的機(jī)器上時(shí)已經(jīng)丟失。由于傳輸設(shè)備都試圖以最快的速度傳輸,所以是最高效的。

IP協(xié)議定義了通過(guò)TCP/IP網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)的格式,定義了數(shù)據(jù)進(jìn)行傳遞的路由功能。

IP數(shù)據(jù)包的格式如下:

由一個(gè)頭和數(shù)據(jù)部分組成。數(shù)據(jù)包的頭部分包含諸如目的地址和源地址,數(shù)據(jù)的類型等信息。

數(shù)據(jù)包頭格式:

數(shù)據(jù)包是由軟件處理的,它的內(nèi)容和格式并不是由硬件所限定。

比如,頭4位是一個(gè)VERS,表示的是使用的IP協(xié)議的版本號(hào)。它表示發(fā)送者、接收者和路由器對(duì)該數(shù)據(jù)的處理都要按所示的版本進(jìn)行處理。現(xiàn)在的版本號(hào)是4。軟件通過(guò)版本來(lái)決定怎樣進(jìn)行處理。

頭長(zhǎng)度(HLEN)也是用4位來(lái)表示以32位為計(jì)量單位的頭的長(zhǎng)度。

TOTAL LENGTH表示這個(gè)數(shù)據(jù)包的長(zhǎng)度(字節(jié)數(shù))。從而包中的數(shù)據(jù)的長(zhǎng)度就可以通過(guò)上面兩個(gè)數(shù)據(jù)而計(jì)算出來(lái)了。

一般來(lái)說(shuō),數(shù)據(jù)部分就是一個(gè)物理的幀。對(duì)于以太網(wǎng)來(lái)講,就是將整個(gè)的一個(gè)以太網(wǎng)的幀數(shù)據(jù)作為一個(gè)IP數(shù)據(jù)包的數(shù)據(jù)來(lái)傳輸?shù)摹?br>
數(shù)據(jù)包的頭里面還包含了一些其他的信息,請(qǐng)參見有關(guān)資料的具體介紹。 IP路由

在一個(gè)網(wǎng)絡(luò)上,連接兩種基本設(shè)備,主機(jī)和路由器。路由器通常連接幾個(gè)物理網(wǎng)絡(luò)。對(duì)一臺(tái)主機(jī)來(lái)講,要將一個(gè)數(shù)據(jù)包發(fā)往別的網(wǎng)絡(luò),就需要知道這個(gè)數(shù)據(jù)包應(yīng)該走什么路徑,才能到達(dá)目的地。對(duì)于一臺(tái)路由器來(lái)講,將收到的數(shù)據(jù)包發(fā)往哪個(gè)物理網(wǎng)絡(luò)。因此,無(wú)論主機(jī)還是路由器,在發(fā)送數(shù)據(jù)包是都要做路由選擇。

數(shù)據(jù)發(fā)送有兩種方式:直接數(shù)據(jù)發(fā)送和間接數(shù)據(jù)發(fā)送。

直接數(shù)據(jù)發(fā)送通常是在同一個(gè)物理網(wǎng)絡(luò)里進(jìn)行的。當(dāng)一個(gè)主機(jī)或路由器要將數(shù)據(jù)包發(fā)送到同一物理網(wǎng)絡(luò)上的主機(jī)上時(shí),是采用這種方式的。首先判斷IP數(shù)據(jù)包中的目的地址中的網(wǎng)絡(luò)地址部分,如果是在同一個(gè)物理網(wǎng)絡(luò)上,則通過(guò)地址分析,將該IP目的地址轉(zhuǎn)換成物理地址,并將數(shù)據(jù)解開,和該地址合成一個(gè)物理傳輸幀,通過(guò)局域網(wǎng)將數(shù)據(jù)發(fā)出。

間接數(shù)據(jù)發(fā)送是在不同物理網(wǎng)絡(luò)里進(jìn)行的。當(dāng)一個(gè)主機(jī)或路由器發(fā)現(xiàn)要發(fā)送的數(shù)據(jù)包不在同一個(gè)物理網(wǎng)絡(luò)上時(shí),這臺(tái)設(shè)備就先在路由表中查找路由,將數(shù)據(jù)發(fā)往路由中指定的下一個(gè)路由器。這樣一直向外傳送數(shù)據(jù),到最后,肯定有一個(gè)路由器發(fā)現(xiàn)數(shù)據(jù)要發(fā)往同一個(gè)物理網(wǎng)絡(luò),于是,再用直接數(shù)據(jù)發(fā)送方式,將數(shù)據(jù)發(fā)到目的主機(jī)上。

主機(jī)和路由器在決定數(shù)據(jù)怎樣發(fā)送的時(shí)候,都要去查找路由。一般,都將路由組成一個(gè)路由表存在機(jī)器中。路由表一般采用Next-Hop格式,即(N,R)對(duì)。N是目標(biāo)地址的網(wǎng)絡(luò)地址,R是傳輸路徑中的下一個(gè)路由。通常這個(gè)路由和這臺(tái)機(jī)器在同一物理網(wǎng)絡(luò)里。

第五節(jié) TCP協(xié)議

TCP傳輸原理

TCP協(xié)議在IP協(xié)議之上。與IP協(xié)議提供不可靠傳輸服務(wù)不同的是,TCP協(xié)議為其上的應(yīng)用層提供了一種可靠傳輸服務(wù)。這種服務(wù)的特點(diǎn)是:可靠、全雙工、流式和無(wú)結(jié)構(gòu)傳輸。

它是怎樣實(shí)現(xiàn)可靠傳輸?shù)哪兀?br>
TCP協(xié)議使用了一個(gè)叫積極確認(rèn)和重發(fā)送(positive acknowledgement with retransmission)的技術(shù)來(lái)實(shí)現(xiàn)這一點(diǎn)的。

接收者在收到發(fā)送者發(fā)送的數(shù)據(jù)后,必須發(fā)送一個(gè)相應(yīng)的確認(rèn)(ACK)消息,表示它已經(jīng)收到了數(shù)據(jù)。

發(fā)送者保存發(fā)送的數(shù)據(jù)的記錄,在發(fā)送下一個(gè)數(shù)據(jù)之前,等待這個(gè)數(shù)據(jù)的確認(rèn)消息。在它發(fā)送這個(gè)數(shù)據(jù)的同時(shí),還啟動(dòng)了一個(gè)記時(shí)器。如果在一定時(shí)間之內(nèi),沒(méi)有接收到確認(rèn)消息,就認(rèn)為是這個(gè)數(shù)據(jù)在傳送時(shí)丟失了,接著,就會(huì)重新發(fā)送這個(gè)數(shù)據(jù)。

這種方法還產(chǎn)生了一個(gè)問(wèn)題,就是包的重復(fù)。如果網(wǎng)絡(luò)傳輸速度比較低,等到等待時(shí)間結(jié)束后,確認(rèn)消息才返回到發(fā)送者,那么,由于發(fā)送者采用的發(fā)送方法,就會(huì)出現(xiàn)重復(fù)的數(shù)據(jù)了。解決的一個(gè)辦法是給每個(gè)數(shù)據(jù)一個(gè)序列號(hào),并需要發(fā)送者記住哪個(gè)序列號(hào)的數(shù)據(jù)已經(jīng)確認(rèn)了。為了防止由于延時(shí)或重復(fù)確認(rèn),規(guī)定確認(rèn)消息里也要包含確認(rèn)序列號(hào)。從而發(fā)送者就能知道哪個(gè)包已經(jīng)確認(rèn)了。 TCP協(xié)議中還有一個(gè)重要的概念:滑動(dòng)窗口。這一方法的使用,使得傳輸更加高效。

有前面的描述可見,發(fā)送者在發(fā)送完一個(gè)數(shù)據(jù)包之后,要等待確認(rèn)。在它收到確認(rèn)消息之前的這段時(shí)間是空閑的。如果網(wǎng)絡(luò)延時(shí)比較長(zhǎng),這個(gè)問(wèn)題會(huì)相當(dāng)明顯。

滑動(dòng)窗口方法是在它收到確認(rèn)消息以前,發(fā)送多個(gè)數(shù)據(jù)包??梢韵胂蟪捎幸粋€(gè)窗口在一個(gè)序列上移動(dòng)。

如果一個(gè)包發(fā)送出去之后還沒(méi)有確認(rèn),叫做未確認(rèn)包。通常未確認(rèn)的包的個(gè)數(shù)就是窗口的大小。

此窗口的大小為8。發(fā)送者允許在接收到一個(gè)確認(rèn)消息以前發(fā)送8個(gè)數(shù)據(jù)包。當(dāng)發(fā)送者接到窗口中第一個(gè)包的確認(rèn)消息時(shí),它就將窗口下滑一個(gè)。

在接收端,也有一個(gè)滑動(dòng)窗口接收和確認(rèn)一個(gè)包。

端口

使用TCP傳輸就是建立一個(gè)連接。在TCP傳輸中一個(gè)連接有兩個(gè)端點(diǎn)組成。其實(shí),一個(gè)連接代表的是發(fā)送和接收兩端應(yīng)用程序的之間的一個(gè)通信??梢园阉麄兿胂蟪山⒘艘粋€(gè)電路。通常一個(gè)連接用下面的公式表示:

(host,port)

host是主機(jī),port是端口。TCP端口能被幾個(gè)應(yīng)用程序共享。對(duì)于程序員來(lái)講,可以這樣理解:一個(gè)應(yīng)用程序可以為不同的連接提供服務(wù)。

TCP格式

TCP傳輸?shù)膯挝皇嵌?,在建立連接,傳送數(shù)據(jù),確認(rèn)消息和告之窗口大小時(shí)均要進(jìn)行段的交換。

段的格式如下圖:

段的格式也分成兩部分,頭和數(shù)據(jù)。

上面格式中的名稱已經(jīng)足夠說(shuō)明了他們的作用了。具體的含義請(qǐng)參見有關(guān)資料。

建立一個(gè)TCP連接

TCP協(xié)議使用一個(gè)三次握手來(lái)建立一個(gè)TCP連接的。

握手過(guò)程的第一個(gè)段的代碼位設(shè)置為SYN,序列號(hào)為x,表示開始一次握手。接收方收到這個(gè)段后,向發(fā)送者回發(fā)一個(gè)段。代碼位設(shè)置為SYN和ACK,序列號(hào)設(shè)置為y,確認(rèn)序列號(hào)設(shè)置為x+1。發(fā)送者在受到這個(gè)段后,知道就可以進(jìn)行TCP數(shù)據(jù)發(fā)送了,于是,它又向接收者發(fā)送一個(gè)ACK段,表示,雙方的連接已經(jīng)建立。

在完成握手之后,就開始正式的數(shù)據(jù)傳輸了。

上面握手段中的序列號(hào)都是隨機(jī)產(chǎn)生的。

TCP/IP

每種網(wǎng)絡(luò)協(xié)議都有自己的優(yōu)點(diǎn),但是只有TCP/IP允許與Internet完全的連接。TCP/IP是在60年代由麻省理工學(xué)院和一些商業(yè)組織為美國(guó)國(guó)防部開發(fā)的,即便遭到核攻擊而破壞了大部分網(wǎng)絡(luò),TCP/IP仍然能夠維持有效的通信。ARPANET就是由基于協(xié)議開發(fā)的,并發(fā)展成為作為科學(xué)家和工程師交流媒體的Internet。

TCP/IP同時(shí)具備了可擴(kuò)展性和可靠性的需求。不幸的是犧牲了速度和效率(可是:TCP/IP的開發(fā)受到了政府的資助)。

Internet公用化以后,人們開始發(fā)現(xiàn)全球網(wǎng)的強(qiáng)大功能。Internet的普遍性是TCP/IP至今仍然使用的原因。常常在沒(méi)有意識(shí)到的情況下,用戶就在自己的PC上安裝了TCP/IP棧,從而使該網(wǎng)絡(luò)協(xié)議在全球應(yīng)用最廣。

TCP/IP的32位尋址功能方案不足以支持即將加入Internet的主機(jī)和網(wǎng)絡(luò)數(shù)。因而可能代替當(dāng)前實(shí)現(xiàn)的標(biāo)準(zhǔn)是IPv6

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    久草精品视频精品视频精品| 国产成人精品一区二三区在线观看 | 国产一级片内射视频免费播放| 东京热男人的天堂久久综合| 亚洲国产丝袜一区二区三区四| 五月情婷婷综合激情综合狠狠| 老鸭窝精彩从这里蔓延| 日韩精品一级一区二区| 不卡中文字幕在线视频| 麻豆印象传媒在线观看| 香蕉网尹人综合在线观看| 国产精品欧美日韩中文字幕| 欧美国产日韩变态另类在线看 | 国产人妻精品区一区二区三区| 激情亚洲一区国产精品久久| 亚洲中文字幕在线观看四区| 一区二区三区精品人妻| 中文字幕人妻一区二区免费| 少妇肥臀一区二区三区| 亚洲视频在线观看你懂的| 日本精品理论在线观看| 暴力性生活在线免费视频| 99精品人妻少妇一区二区人人妻 | 好吊视频一区二区在线| 日韩精品一区二区三区射精| 亚洲精品欧美精品一区三区| 中文字幕日韩一区二区不卡| 国产精品免费精品一区二区| 91福利免费一区二区三区| 国产精品白丝久久av| 中文字幕不卡欧美在线| 欧美日本道一区二区三区| 国产欧美一区二区色综合| 亚洲一区二区精品免费| 欧美在线视频一区观看| 亚洲精品福利入口在线| 樱井知香黑人一区二区| 亚洲一区二区亚洲日本| 中文字幕人妻日本一区二区| 欧美乱妇日本乱码特黄大片 | 亚洲精品国产福利在线|