国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
TCP/IP協(xié)議簡介
什么是TCP/IP?

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

TCP/IP協(xié)議組中的協(xié)議保證Internet上數(shù)據(jù)的傳輸,提供了幾乎現(xiàn)在上網(wǎng)所用到的所有服務(wù)。這些服務(wù)包括:電子郵件的傳輸  文件傳輸  新聞組的發(fā)布  訪問萬維網(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ǔ)上工作的,比如說是機(jī)器的IP地址。在機(jī)器IP地址和其它信息的基礎(chǔ)上,IP確保信息包能正確地到達(dá)目的機(jī)器。通過這一過程,IP和其它網(wǎng)絡(luò)層的協(xié)議共同用于數(shù)據(jù)傳輸。如果沒有網(wǎng)絡(luò)工具,用戶就看不到在系統(tǒng)里工作的IP。

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

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

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

TCP/IP是如何工作的?

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

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

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

協(xié)議簡介

已經(jīng)知道數(shù)據(jù)是怎樣使用TCP/IP協(xié)議棧來傳輸?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是能看到這些步驟的裝置。這個裝置可以是軟件,也可以是硬件,她能讀取通過網(wǎng)絡(luò)發(fā)送的每一個包。Sniffers廣泛地用于隔離用戶看不到的、網(wǎng)絡(luò)性能下降的問題。sniffers能讀取發(fā)生在網(wǎng)絡(luò)層協(xié)議的任何活動。而且,正如你已經(jīng)猜到的,sniffers會對安全問題造成威脅。參見Sniffers一章。

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

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

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

 Internet協(xié)議(IP)

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

下面僅僅簡單介紹一下。

地址解析協(xié)議ARP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Telnet

Telnet在RFC

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

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

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

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

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

Shell。

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

$telnet internic.net

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

文件傳輸協(xié)議FTP

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

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

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

FTP是怎樣工作的?

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

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

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

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

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

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

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

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

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

Gopher

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

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

Internet

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第二節(jié) Etherner

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

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

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

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

沖突偵測和恢復(fù)

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

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

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

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

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

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

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

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

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

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

第三節(jié) Internet地址

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

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

 

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

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

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

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

IP地址: 10000000 00001010 00000010 00011110

記為: 128.10.2.30

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

IP協(xié)議

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

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

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

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

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

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

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

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

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

TOTAL LENGTH表示這個數(shù)據(jù)包的長度(字節(jié)數(shù))。從而包中的數(shù)據(jù)的長度就可以通過上面兩個數(shù)據(jù)而計(jì)算出來了。

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

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

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

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

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

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

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

TCP傳輸原理

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

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

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

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

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

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

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

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

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

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

端口

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

(host,port)

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

TCP格式

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

段的格式如下圖:

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

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

建立一個TCP連接

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

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

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

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

TCP/IP

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

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

Internet公用化以后,人們開始發(fā)現(xiàn)全球網(wǎng)的強(qiáng)大功能。Internet的普遍性是TCP/IP至今仍然使用的原因。常常在沒有意識到的情況下,用戶就在自己的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
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
TCP和UDP協(xié)議簡介
TCP與IP
TCP/IP協(xié)議
圖解 | 計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議
TCP/IP五層和七層模型總結(jié)
什么是 TCP/IP,它是如何工作的?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服