国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 課堂 > 電腦知識(shí) > 正文

了解網(wǎng)絡(luò)應(yīng)用與網(wǎng)絡(luò)協(xié)議

2024-05-08 15:53:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  網(wǎng)絡(luò)應(yīng)用(network application)是計(jì)算機(jī)網(wǎng)絡(luò)之所以存在的理由。要是我們?cè)O(shè)想不出任何有用的網(wǎng)絡(luò)應(yīng)用,那就沒有必要設(shè)計(jì)支持它們的網(wǎng)絡(luò)協(xié)議了。不過,過去30年內(nèi)已有不少人設(shè)計(jì)出大量精妙的網(wǎng)絡(luò)應(yīng)用。這些應(yīng)用既包括從20世紀(jì)80年代流行起來(lái)的基于文本的經(jīng)典應(yīng)用,例如遠(yuǎn)程計(jì)算機(jī)訪問、電子郵件、文件傳送、新聞組、聊天等;也包括近些年來(lái)所謂的多媒體應(yīng)用,例如Web、因特網(wǎng)電話、視頻會(huì)議、音頻/視頻點(diǎn)播等。

  盡管網(wǎng)絡(luò)應(yīng)用品種繁多是有許多彼此交錯(cuò)的部件,其軟件卻幾乎總處于核心地位。網(wǎng)絡(luò)應(yīng)用的軟件分布于兩個(gè)或以上的端系統(tǒng)(即主機(jī))。例如,Web應(yīng)用包括彼此通信的兩部分軟件:運(yùn)行在用戶的主機(jī)(PC機(jī)、MAC機(jī)、工作站等)中的瀏覽器軟件,以及運(yùn)行在Web服務(wù)器上的Web服務(wù)器軟件。Telnet應(yīng)用同樣由分別運(yùn)行于本地主機(jī)和遠(yuǎn)程主機(jī)中的兩部分軟件構(gòu)成。至于多方視頻會(huì)議,參與會(huì)議的每臺(tái)主機(jī)上都運(yùn)行著一部分軟件。

  用操作系統(tǒng)的行話來(lái)說(shuō),彼此通信的實(shí)際上不是軟件部件(即程序)本身,而是進(jìn)程。我們可以把進(jìn)程看成是在端系統(tǒng)中運(yùn)行著的程序。運(yùn)行在同一個(gè)端系統(tǒng)上的進(jìn)程彼此間通過使用進(jìn)程間通信手段通信。進(jìn)程間通信的具體規(guī)則由端系統(tǒng)的操作系統(tǒng)決定。本文不關(guān)心同一臺(tái)主機(jī)內(nèi)的進(jìn)程間通信,而關(guān)心運(yùn)行在不同主機(jī)(操作系統(tǒng)也可能不一樣)的進(jìn)程間的通信。運(yùn)行在不同端系統(tǒng)上的進(jìn)程通過網(wǎng)絡(luò)交換消息彼此通信。發(fā)送進(jìn)程創(chuàng)建消息并將之傳入網(wǎng)絡(luò);接收進(jìn)程收取這些消息,并可能發(fā)送消息作為響應(yīng),如下圖所示。每個(gè)網(wǎng)絡(luò)應(yīng)用都有各自的應(yīng)用層協(xié)議,它定義在進(jìn)程間交流的消息的格式和順序,以及在送出或收到消息時(shí)采取的行動(dòng)。

  圖1:彼此通信的應(yīng)

  應(yīng)用層是我們著手研究協(xié)議的好地方。我們已經(jīng)熟悉依賴于協(xié)議的許多應(yīng)用。這將給我們一種似曾相識(shí)的感覺,知道協(xié)議的目的所在,有助于我們了解以后學(xué)習(xí)傳輸層協(xié)議、網(wǎng)絡(luò)層協(xié)議和數(shù)據(jù)鏈路層協(xié)議時(shí)會(huì)碰到的許多同樣的問題。

  網(wǎng)絡(luò)應(yīng)用(network application)是計(jì)算機(jī)網(wǎng)絡(luò)之所以存在的理由。要是我們?cè)O(shè)想不出任何有用的網(wǎng)絡(luò)應(yīng)用,那就沒有必要設(shè)計(jì)支持它們的網(wǎng)絡(luò)協(xié)議了。不過,過去30年內(nèi)已有不少人設(shè)計(jì)出大量精妙的網(wǎng)絡(luò)應(yīng)用。這些應(yīng)用既包括從20世紀(jì)80年代流行起來(lái)的基于文本的經(jīng)典應(yīng)用,例如遠(yuǎn)程計(jì)算機(jī)訪問、電子郵件、文件傳送、新聞組、聊天等;也包括近些年來(lái)所謂的多媒體應(yīng)用,例如Web、因特網(wǎng)電話、視頻會(huì)議、音頻/視頻點(diǎn)播等。

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

  把網(wǎng)絡(luò)應(yīng)用和應(yīng)用層協(xié)議區(qū)分開來(lái)相當(dāng)重要。應(yīng)用層協(xié)議僅僅是網(wǎng)絡(luò)應(yīng)用的一部分,讓我們看幾個(gè)例子。Web是一個(gè)允許用戶從Web服務(wù)器按要求取得“文檔”的網(wǎng)絡(luò)應(yīng)用,web應(yīng)用由許多部件構(gòu)成,包括—個(gè)文檔格式的標(biāo)準(zhǔn)(即超文本標(biāo)記語(yǔ)言HTML)、Web瀏覽器軟件、Web服務(wù)器軟件(例如Apache、IIS服務(wù)器)、一個(gè)應(yīng)用層協(xié)議。Web的應(yīng)用層協(xié)議是超文本傳送協(xié)議(HTTP),它定義如何在瀏覽器和web服務(wù)器之間傳遞消息。因此HTTP僅僅是Web應(yīng)用的一部分。另一個(gè)例于是電子郵件應(yīng)用。電子郵件應(yīng)用同樣由許多部件構(gòu)成,包括安置用戶信箱的郵件服務(wù)器、讓用戶閱讀和創(chuàng)建電子郵件消息的郵件閱讀器、一個(gè)定義電子郵件消息結(jié)構(gòu)的標(biāo)推、一組定義如何在服務(wù)器之間以及服務(wù)器和閱讀器之間傳遞電子郵件消息并解釋其特定部分(例如信頭)的應(yīng)用層協(xié)議。電于郵件應(yīng)用的首要應(yīng)用層協(xié)議是簡(jiǎn)單郵件傳輸協(xié)議(SMTP)。因此SMTP也僅僅是電子郵件應(yīng)用的一部分。

  我們已經(jīng)指出,應(yīng)用層協(xié)議定義運(yùn)行在不同端系統(tǒng)上的應(yīng)用程序進(jìn)程如何彼此傳遞消息。具體地說(shuō),一個(gè)應(yīng)用層協(xié)議定義:

  ●所傳遞消息的類型,例如請(qǐng)求消息和響應(yīng)消息。

  ●各種消息類型的語(yǔ)法,也就是消息中的各個(gè)字段以及它們?nèi)绾味ń纭?/p>

  ●各個(gè)字段的語(yǔ)義,也就是各個(gè)字段中的信息的含義。

  ●確定一個(gè)進(jìn)程何時(shí)以及如何發(fā)出消息或響應(yīng)所收到消息的規(guī)則。

  有些應(yīng)用層協(xié)議是在RFC文檔中詳細(xì)說(shuō)明的,也就是說(shuō)它們處于可免費(fèi)獲取的公眾域。例如,HTTP就可以作為RFC獲取。瀏覽器軟件開發(fā)者只要遵循該RFC中定義的規(guī)則,其瀏覽器就可以從同樣遵循這些規(guī)則的任何web服務(wù)器取得Web頁(yè)面。然而,其他許多應(yīng)用層協(xié)議卻是專屬的,有意不放在公眾域中。例如,許多現(xiàn)有的因特網(wǎng)電話產(chǎn)品使用專屬的應(yīng)用層協(xié)議。

  客戶和服務(wù)器

  一個(gè)網(wǎng)絡(luò)應(yīng)用協(xié)議通常擁有客戶端(client side)和服務(wù)器端(server side)這兩個(gè)對(duì)等的“端”或?qū)嶓w,它們分別對(duì)應(yīng)運(yùn)行客戶程序的客戶進(jìn)程(簡(jiǎn)稱客戶)和運(yùn)行服務(wù)器程序的服務(wù)器進(jìn)程(簡(jiǎn)稱服務(wù)器),如圖2所示。處于一個(gè)端系統(tǒng)中的客戶端與處于另一個(gè)端系統(tǒng)中的服務(wù)器端彼此通信。例如,web瀏覽器實(shí)現(xiàn)的是HTTP客戶端,web服務(wù)器實(shí)現(xiàn)的是HTTP服務(wù)器端。在電子郵件應(yīng)用中,發(fā)送郵件消息的郵件服務(wù)器扮演SMip的客戶端角色,接收郵件消息的郵件服務(wù)器扮演SMTP的服務(wù)器端角色。

  圖2:客戶/服務(wù)器交互

  對(duì)于許多應(yīng)用來(lái)說(shuō),它們的客戶端和服務(wù)器端可以同時(shí)實(shí)現(xiàn)在單臺(tái)主機(jī)上。就以主機(jī)A和主機(jī)B之間的一個(gè)Telnet會(huì)話為例。如果這個(gè)Telnet會(huì)話是由主機(jī)A發(fā)起的(即主機(jī)A上有一個(gè)用戶登錄到了主機(jī)B),那么主機(jī)A運(yùn)行的是該應(yīng)用的客戶端,主機(jī)B運(yùn)行的是該應(yīng)用的服務(wù)器端。相反,如果這個(gè)Telnet會(huì)話是由主機(jī)B發(fā)起的,那么主機(jī)B運(yùn)行的是該應(yīng)用的客戶端。用于在兩臺(tái)主機(jī)之間傳送文件的FTP提供了另外一個(gè)例子。兩臺(tái)主機(jī)之間一旦啟動(dòng)一個(gè)FTP會(huì)話,其中任何一臺(tái)主機(jī)就可以在該會(huì)話結(jié)束之前向另一臺(tái)主機(jī)傳達(dá)文件。盡管如此,我們還是按照幾乎所有網(wǎng)絡(luò)應(yīng)用的慣常情況,把發(fā)起會(huì)話的主機(jī)標(biāo)為客戶。另外,單臺(tái)主機(jī)實(shí)際上可能同時(shí)作為某個(gè)給定應(yīng)用的客戶主機(jī)和服務(wù)器主機(jī)。例如,郵件服務(wù)器主機(jī)同時(shí)運(yùn)行著SMlP客戶端(用于發(fā)送郵件)和服務(wù)器端(用于接收郵件)。

  進(jìn)程間跨網(wǎng)絡(luò)的通信

  一個(gè)網(wǎng)絡(luò)應(yīng)用涉及兩臺(tái)不同主機(jī)中跨網(wǎng)絡(luò)彼此通信的兩個(gè)進(jìn)程(當(dāng)然,組播網(wǎng)絡(luò)應(yīng)用有可能涉及兩臺(tái)以上主機(jī)間的通信)。這兩個(gè)進(jìn)程通過經(jīng)由各自的套接字(socket)發(fā)送和接收消息彼此通信。我們可以把套接字看作相應(yīng)進(jìn)程上的“門”:進(jìn)程把消息發(fā)送到網(wǎng)絡(luò)或從網(wǎng)絡(luò)接收消息都得經(jīng)過自身的套接字。當(dāng)一個(gè)進(jìn)程想給另一臺(tái)主機(jī)中的另一個(gè)進(jìn)程發(fā)送消息時(shí),它就把該消息推出自家的門。該進(jìn)程認(rèn)定在這扇門的另一側(cè)有一個(gè)傳輸設(shè)施會(huì)把這個(gè)消息傳輸?shù)侥康倪M(jìn)程的門口。

  圖3展示了通過因特網(wǎng)彼此通信的兩個(gè)進(jìn)程間的套接字通信(本圖假設(shè)底層的傳輸協(xié)議是TCP,不過UDP也可以同樣使用)。可見套接字是單臺(tái)主機(jī)內(nèi)應(yīng)用層和傳輸層之間的接口。套接字也用于指代應(yīng)用程序和網(wǎng)絡(luò)之間的應(yīng)用程序接口(application PRogram interface,簡(jiǎn)稱API),因?yàn)樗质怯糜跇?gòu)造因特網(wǎng)中的網(wǎng)絡(luò)應(yīng)用程序的編程接口。應(yīng)用程序開發(fā)人員可以完全控制套接字的應(yīng)用層一側(cè),對(duì)于套接字的傳輸層一側(cè)卻幾乎無(wú)能為力。對(duì)于傳輸層一側(cè)他們只能控制:(1)傳輸協(xié)議的選擇;(2)諸如最大緩沖區(qū)大小和最大片段大小等有限幾個(gè)傳輸層參數(shù)的調(diào)整。一旦選定某個(gè)可用的傳輸協(xié)議,就使用由該協(xié)議提供的傳輸層服務(wù)來(lái)構(gòu)造應(yīng)用程序。

  圖3:應(yīng)用程序進(jìn)程、套接字

  進(jìn)程尋址

  要讓一臺(tái)主機(jī)中的進(jìn)程給另一臺(tái)主機(jī)中的進(jìn)程發(fā)送消息,發(fā)送進(jìn)程必須能夠識(shí)別接收進(jìn)程。用于標(biāo)識(shí)接收進(jìn)程的信息有兩個(gè):(1)接收主機(jī)的主機(jī)名或主機(jī)地址,(2)在接收主機(jī)內(nèi)部識(shí)別接收進(jìn)程的標(biāo)識(shí)符。

  讓我們先考慮主機(jī)地址。在因特網(wǎng)應(yīng)用中,接收主機(jī)是用其IP地址(1P addresse)標(biāo)識(shí)的。現(xiàn)在,我們知道IP地址是惟一標(biāo)識(shí)每個(gè)端系統(tǒng)的一個(gè)32位二進(jìn)制數(shù)值(更準(zhǔn)確地說(shuō),IP地址惟一地標(biāo)識(shí)將各臺(tái)主機(jī)連接到因特網(wǎng)的網(wǎng)絡(luò)接口),既然連接到公共因特網(wǎng)的任何端系統(tǒng)的IP地址必須全球惟一,IP地址的分配就必須仔細(xì)管理。ATM網(wǎng)絡(luò)的尋址標(biāo)準(zhǔn)則不同于因特網(wǎng)。ITU—T已規(guī)定,在公共ATM網(wǎng)絡(luò)中使用稱為E.164地址(ITU1997)的類似電話號(hào)碼的地址。

  除了知道接收進(jìn)程所在端系統(tǒng)的地址外,發(fā)送進(jìn)程還得指定可讓接收端系統(tǒng)把所傳送消息定向到接收進(jìn)程的信息。因特網(wǎng)中用于此目的的是接收進(jìn)程的端口號(hào)(port number)。流行的應(yīng)用層協(xié)議已被賦予特定的端口號(hào)。例如,使用HTTP協(xié)議的web服務(wù)器進(jìn)程是以端口號(hào)80標(biāo)識(shí)的,使用SMTP協(xié)議的郵件服務(wù)器是以端門號(hào)25標(biāo)識(shí)的。RFC 1700列出了所有因特網(wǎng)標(biāo)準(zhǔn)協(xié)議眾所周知的端口號(hào)。在開發(fā)新的網(wǎng)絡(luò)應(yīng)用程序時(shí),必須賦予它一個(gè)新的端口號(hào)。

  用戶代理

  再開始繼續(xù)研究應(yīng)用層協(xié)議之前,討論一下用戶代理(user agent)的概念也許有所裨益。用戶代理是一個(gè)位于用戶和網(wǎng)絡(luò)應(yīng)用之間的接口。例如,Web應(yīng)用的用戶代理是諸如Netscape Navigator和微軟Internet Explore這樣的瀏覽器。瀏覽器使得用嚴(yán)可以觀看web頁(yè)面、進(jìn)行web沖浪、提供表單輸入、與java小應(yīng)用程序交互,等等。瀏覽器還實(shí)現(xiàn)了HTTP協(xié)議的客戶端。因此啟動(dòng)后的瀏覽器除給用戶提供一個(gè)接口外,其進(jìn)程還同時(shí)在經(jīng)由一個(gè)套接字發(fā)送接收消息。另一個(gè)例子是關(guān)于電子郵件應(yīng)用的。電子郵件應(yīng)用的用戶代理是“郵件閱讀器”,它使得用戶可以編寫和閱讀郵件消息。許多公司提供可運(yùn)行在PC機(jī)、MAC機(jī)和工作站上的圖形用戶界面的郵件閱讀器(例如Eudora,Netscape Messenger,Microsoft Outlook)。運(yùn)行在PC機(jī)上的郵件閱讀器還實(shí)現(xiàn)了多個(gè)應(yīng)用層協(xié)議的客戶端,典型的有用于發(fā)送郵件的SMTP協(xié)議的客戶端.以及用于檢索郵件的某個(gè)郵件檢索協(xié)議(例如POP3或IMAP)的客戶端。

  應(yīng)用所需的服務(wù)

  我們知道套接字是應(yīng)用進(jìn)程和傳輸協(xié)議之間的接口。發(fā)送端的應(yīng)用進(jìn)程通過這扇門送出消息。在門的另一側(cè),傳輸協(xié)議負(fù)責(zé)把這些消息跨網(wǎng)絡(luò)傳送到接收進(jìn)程的門口。包括因特網(wǎng)在內(nèi)的許多網(wǎng)絡(luò)體系結(jié)構(gòu)提供不止一個(gè)傳輸協(xié)議。在開發(fā)應(yīng)用程序時(shí),必須選擇一個(gè)可用的傳輸協(xié)議。如何進(jìn)行選擇呢?最可能的情形是,先研究一下由可用的傳輸協(xié)議提供的服務(wù),再選出其服務(wù)與應(yīng)用程序的需求最為匹配的協(xié)議。這種情形類似于在兩個(gè)城市之間旅行時(shí)選擇乘火車還是乘飛機(jī)。你只能選擇其中一種運(yùn)輸方式,而每種方式提供的服務(wù)是不同的(例如火車提供市區(qū)載客服務(wù).飛機(jī)提供更短的運(yùn)輸時(shí)間)。

  網(wǎng)絡(luò)應(yīng)用可能要求傳輸協(xié)議提供什么樣的服務(wù)呢?我們可以把網(wǎng)絡(luò)應(yīng)用的服務(wù)需求按以下3個(gè)尺度粗略地進(jìn)行劃分:可靠性、帶寬、實(shí)時(shí)性。

  可靠性

  有些應(yīng)用要求完全可靠地傳送數(shù)據(jù),也就是說(shuō)不能有數(shù)據(jù)丟失,例如電子郵件、文件傳送、遠(yuǎn)程主機(jī)訪問、Web文檔傳送、財(cái)務(wù)應(yīng)用等。丟失文件數(shù)據(jù)或財(cái)務(wù)交易數(shù)據(jù)的災(zāi)難性后果是可想而知的。另有一些丟失容忍應(yīng)用(lose-tolerant application)可以容忍一定數(shù)量的數(shù)據(jù)丟失,例如實(shí)時(shí)音頻/視頻或倉(cāng)儲(chǔ)音頻/視頻等多媒體應(yīng)用。在丟失容忍的多媒體應(yīng)用中,數(shù)據(jù)的丟失可能會(huì)在播放出的音頻/視頻中引入短時(shí)脈沖干擾,不過不是至關(guān)緊要的損傷。數(shù)據(jù)丟失對(duì)于應(yīng)用質(zhì)量的影響以及實(shí)際可容忍的分組丟失量強(qiáng)烈依賴于應(yīng)用本身及所用的編碼方案。

  帶寬

  有些應(yīng)用必須以特定的持續(xù)速率傳送數(shù)據(jù)才會(huì)有效。例如,如果某個(gè)因特網(wǎng)電話應(yīng)用32Kbps的速率編碼語(yǔ)音,那么它必須能夠以同樣的速率把數(shù)據(jù)發(fā)送到網(wǎng)絡(luò),再由網(wǎng)絡(luò)遞送到接收應(yīng)用。如果得不到這個(gè)數(shù)量的帶寬,應(yīng)用就得以一個(gè)較低的速率編碼,還得獲取足以維持這個(gè)編碼速率的帶寬,否則只能放棄,因?yàn)閷?duì)于這樣的帶寬敏感應(yīng)用(bandwidth-sensitive application)來(lái)說(shuō),僅僅得到所需帶寬的一半是沒有用的。許多當(dāng)前的多媒體應(yīng)用對(duì)帶寬敏感,不過將來(lái)的多媒體應(yīng)用可能用上自適應(yīng)編碼技術(shù),能夠以與當(dāng)前的可用帶寬相匹配的速率編碼。帶寬敏感應(yīng)用需要一個(gè)給定數(shù)量的帶寬,而與之相對(duì)的是,彈性應(yīng)用(elastic application)卻可以根據(jù)臨時(shí)可用量隨多隨少地使用帶寬。電子郵件、文件傳送、遠(yuǎn)程訪問、web傳送等都是彈性應(yīng)用。當(dāng)然帶寬肯定越高越好。

  實(shí)時(shí)性

  諸如因特網(wǎng)電話、虛擬環(huán)境、遠(yuǎn)程電話會(huì)議、多方游戲等交互式實(shí)時(shí)應(yīng)用要求數(shù)據(jù)的遞送滿足嚴(yán)格的定時(shí)限制,以此保證有效。這些應(yīng)用中有許多要求端到端的延遲在數(shù)百毫秒或以下的數(shù)量級(jí)。例如,因特網(wǎng)電話中的長(zhǎng)延遲往往導(dǎo)致交談中不自然的停頓:在多方游戲或虛擬交互環(huán)境中,從采取行動(dòng)到看見來(lái)自環(huán)境的響應(yīng)之間的長(zhǎng)延遲(譬如說(shuō)在某個(gè)端到端連接結(jié)束時(shí)才看到來(lái)自另一個(gè)玩家的響應(yīng))將使得應(yīng)用感覺起來(lái)不大現(xiàn)實(shí)。對(duì)于非實(shí)時(shí)應(yīng)用來(lái)說(shuō),低延遲總比高延遲可取,不過它們不會(huì)對(duì)端到端延遲施加任何嚴(yán)格的限制。

  下表匯總了一些流行的和新興的因特網(wǎng)應(yīng)用的可靠性、帶寬和實(shí)時(shí)性需求。這僅僅是一些較為流行的因特網(wǎng)應(yīng)用的若干關(guān)鍵需求的概要。我們的目的并不是提供網(wǎng)絡(luò)應(yīng)用需求的一個(gè)完整分類,而是簡(jiǎn)單地標(biāo)識(shí)出可由此將網(wǎng)絡(luò)應(yīng)用需求歸類的幾個(gè)最重要的軸。

  表1:一些網(wǎng)絡(luò)應(yīng)用的服務(wù)需求

  因特網(wǎng)(更一般地說(shuō),TCP網(wǎng)絡(luò))給應(yīng)用程序提供兩個(gè)傳輸協(xié)議:用戶數(shù)據(jù)報(bào)協(xié)議(UserDatagram Protocol,UDP)和傳輸控制協(xié)議(Transaction Control Protocol,TCP)。當(dāng)開發(fā)人員創(chuàng)建一個(gè)新的因特網(wǎng)應(yīng)用時(shí),他必須選擇UDP或TCP這兩個(gè)協(xié)議之一用于該應(yīng)用。這兩個(gè)協(xié)議給應(yīng)用提供不同的服務(wù)模型。

  由因特網(wǎng)傳輸協(xié)議提供的服務(wù)

  TCP服務(wù)

  TCP服務(wù)模型包括面向連接的服務(wù)和可靠的數(shù)據(jù)傳輸服務(wù)。調(diào)用TCP作為其傳輸協(xié)議的應(yīng)用同時(shí)取得這兩種服務(wù)。

  面向連接的服務(wù)指的是客戶端和服務(wù)器端的TCP在開始傳輸應(yīng)用層消息之前,先交換傳輸層控制信息。這個(gè)所謂的握手過程警示客戶和服務(wù)器,以便它們?yōu)閬?lái)自對(duì)方的分組沖擊做好準(zhǔn)備。握手階段結(jié)束之后,我們說(shuō)這兩個(gè)進(jìn)程的套接字之間存在一個(gè)TCP連接(TCP connection)。這是一個(gè)全雙工的連接,也就是說(shuō)客戶和服務(wù)器這兩個(gè)進(jìn)程可以同時(shí)通過該連接向?qū)Ψ桨l(fā)送消息。完成消息的發(fā)送后,應(yīng)用進(jìn)程必須告知TCP拆除這個(gè)連接。稱這種服務(wù)為“面向連接”服務(wù)而不是“連接”服務(wù)(或者說(shuō)“虛電路”服務(wù))的理由在于,它兩端的進(jìn)程是以非常松散的方式連接的。

  可靠的傳輸服務(wù)指的是彼此通信的進(jìn)程可以依賴TCP無(wú)錯(cuò)地順序遞送所有數(shù)據(jù)。當(dāng)其中任何一個(gè)應(yīng)用進(jìn)程把一個(gè)字節(jié)流傳入套接字時(shí),它可以指望TCP把同樣的字節(jié)流遞送到對(duì)方的套接字,中間不會(huì)有字節(jié)的丟失或重復(fù)。

  TCP還包含一個(gè)擁塞控制機(jī)制,它是因特網(wǎng)的一種公益服務(wù),其目的不在于讓彼此通信的進(jìn)程直接受益。TCP擁塞控制機(jī)制在網(wǎng)絡(luò)變得擁塞時(shí)抑制發(fā)送進(jìn)程(可以是客戶,也可以是服務(wù)器)。確切地說(shuō),TCP擁塞控制試圖把每個(gè)TCP連接限定在它所公平共享的網(wǎng)絡(luò)帶寬內(nèi)。對(duì)于有最小帶寬需求限制的實(shí)時(shí)音頻和視頻應(yīng)用來(lái)說(shuō),抑制傳輸率會(huì)有很壞的后果。此外,實(shí)時(shí)應(yīng)用可容忍數(shù)據(jù)丟失,不需要完全可靠的傳輸服務(wù)。由于這些原因,實(shí)時(shí)應(yīng)用程序的開發(fā)人員通常設(shè)計(jì)成在UDP而不是TCP上運(yùn)行他們的應(yīng)用。

  概述完TCP提供的服務(wù)后,我們說(shuō)一下TCP沒有提供的服務(wù)。首先,TCP不保證最小傳輸率。具體地說(shuō),TCP不允許發(fā)送進(jìn)程以想要的任意速率發(fā)送;相反,發(fā)送速率受到TCP擁塞控制的調(diào)節(jié),發(fā)送進(jìn)程有可能被迫以一個(gè)較低的平均速率發(fā)送。其次,TCP不提供任何延遲保證。具體地說(shuō),發(fā)送進(jìn)程把數(shù)據(jù)傳入自己的TCP套接字之后,這個(gè)數(shù)據(jù)將最終到達(dá)其接收套接字,然而就該數(shù)據(jù)花多長(zhǎng)時(shí)間到達(dá)那兒來(lái)說(shuō),TCP絕對(duì)不作保證。花幾十秒甚至幾分鐘等待TCP從web服務(wù)器往Web瀏覽器遞送一個(gè)消息(例如,其中含有一個(gè)HTML文件)也非罕見。總之,TCP保證遞送全部數(shù)據(jù),但對(duì)遞送速率和所經(jīng)歷的延遲不加保證。

  UDP服務(wù)

  UDP是一個(gè)不提供非必要服務(wù)的輕量級(jí)傳輸協(xié)議,具有一個(gè)最簡(jiǎn)約的服務(wù)模型。UDP是無(wú)連接的,因此兩個(gè)進(jìn)程彼此通信之前沒有握手過程。UDP提供不可靠的數(shù)據(jù)傳輸服務(wù),也就是說(shuō)當(dāng)一個(gè)進(jìn)程往自己的UDP套接字發(fā)出一個(gè)消息時(shí),UDP不能保證這個(gè)消息會(huì)最終到達(dá)接收套接字。另外,就確實(shí)到達(dá)接收套接字的消息而言,它們的到達(dá)順序也可能與發(fā)送順序不一致。

  UDP不包含擁塞控制機(jī)制,因此發(fā)送進(jìn)程能夠以任意速率往UDP套接字傾注數(shù)據(jù)。盡管不能保證所有的數(shù)據(jù)都到達(dá)接收套接字,但是仍會(huì)有相當(dāng)比例的數(shù)據(jù)到達(dá)。實(shí)時(shí)應(yīng)用程序的開發(fā)人員往往選擇在UDP上運(yùn)行他們的應(yīng)用。與TCP類似,UTP也不提供任何延遲保證。

  下表指出了一些流行的因特網(wǎng)應(yīng)用所用的傳輸協(xié)議。我們看到,電子郵件、遠(yuǎn)程終端訪問、web和文件傳送都使用TCP。這些應(yīng)用選擇TCP的主要原因在于TCP提供可靠的數(shù)據(jù)傳輸服務(wù),能夠保證所有數(shù)據(jù)最終到達(dá)其目的地。我們還看到,因特網(wǎng)電話一般運(yùn)行在UDP之上。一個(gè)因特網(wǎng)電話應(yīng)用的兩端都得以某個(gè)最小速率跨網(wǎng)絡(luò)發(fā)送數(shù)據(jù):與TCP相比,UDP更可能滿足這個(gè)要求。另外,因特網(wǎng)電話應(yīng)用可容忍數(shù)據(jù)丟失,因此并不需要由TCP提供的可靠數(shù)據(jù)傳輸服務(wù)。

  表2:流行的應(yīng)用及采用的協(xié)議

  我們已經(jīng)指出,TCP和UDP都不提供定時(shí)保證,這是不是意味著時(shí)間敏感的應(yīng)用不能運(yùn)行在當(dāng)今的因特網(wǎng)上呢?其答案顯然是否定的——時(shí)間敏感的應(yīng)用已在因特網(wǎng)上存在好多年了。這些應(yīng)用往往工作得相當(dāng)出色,因?yàn)樗鼈円驯辉O(shè)計(jì)成能夠盡最大程度地對(duì)付這種缺乏保證的服務(wù)。盡管如此,當(dāng)延遲過大時(shí)(這在公共因特網(wǎng)中是常事),最聰明的設(shè)計(jì)也有其局限。總之,當(dāng)今的因特網(wǎng)通常能夠?yàn)闀r(shí)間敏感的應(yīng)用提供滿意的服務(wù),但不能提供任何定時(shí)或帶寬上的保證。

  本文準(zhǔn)備介紹的網(wǎng)絡(luò)應(yīng)用

  因特網(wǎng)上,公眾域和專屬的應(yīng)用層出不窮。我們不想百科全書式地羅列一大堆因特網(wǎng)應(yīng)用,于是選了少數(shù)幾個(gè)既重要且流行的應(yīng)用集中討論。我們將具體地討論4個(gè)流行的應(yīng)用:Web、文件傳送、電子郵件、目錄服務(wù)。我們首先討論web,其原因不僅在于web是一個(gè)極其流行的應(yīng)用,還在于它的應(yīng)用層協(xié)議(即HTTP)相對(duì)簡(jiǎn)單,可用于闡明網(wǎng)絡(luò)協(xié)議的許多關(guān)鍵因素。接下來(lái)討論文件傳送,因?yàn)槠鋮f(xié)議與HTTP恰好形成對(duì)照,使得我們可以強(qiáng)調(diào)一些額外因素。我們還討論電子郵件,它是因特網(wǎng)中第一個(gè)高度流行的應(yīng)用。應(yīng)該看到,現(xiàn)代的電子郵件使用不止一個(gè)應(yīng)用層協(xié)議。Web、文件傳送和電于郵件有共同的服務(wù)需求:需要可靠的傳輸服務(wù),沒有特別的定時(shí)需求,能接受彈性帶寬服務(wù)。TCP提供的服務(wù)完全滿足這3個(gè)應(yīng)用。域名系統(tǒng)(Domain Name System,DN5)是我們討論的第4個(gè)應(yīng)用,它為因特網(wǎng)提供目錄服務(wù)。多數(shù)用戶不會(huì)直接與DNS打交道;相反,他們通過其他應(yīng)用(包括即將討論的那3個(gè)應(yīng)用)間接求助于DNS。DNS精妙地展示了可以怎樣在因特網(wǎng)中實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)。這4個(gè)即將討論的應(yīng)用對(duì)時(shí)間都不大敏感。


上一篇:i5 6600K怎么樣

下一篇:在Mac上用CDMA

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平山县| 鸡东县| 汝阳县| 牙克石市| 西吉县| 河间市| 茶陵县| 烟台市| 克拉玛依市| 阿鲁科尔沁旗| 阳春市| 息烽县| 阿拉善左旗| 乌拉特中旗| 北流市| 鄂州市| 淮南市| 象州县| 历史| 隆子县| 宾阳县| 哈尔滨市| 五大连池市| 筠连县| 濮阳市| 漳州市| 东阳市| 乌恰县| 新郑市| 西安市| 微山县| 株洲市| 彭泽县| 济阳县| 灵川县| 略阳县| 张家界市| 凌海市| 眉山市| 芜湖县| 三台县|