




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
應(yīng)用層1第2章應(yīng)用層
ApplicationLayer
計算機網(wǎng)絡(luò):自頂向下方法(原書第三版)
陳鳴譯,機械工業(yè)出版社,2005年
ComputerNetworking:ATopDownApproachFeaturingtheInternet,
3rdedition.
JimKurose,KeithRoss
Addison-Wesley,July2004.
應(yīng)用層2第2章應(yīng)用層我們的目標:
網(wǎng)絡(luò)應(yīng)用協(xié)議的概念,實現(xiàn)方面運輸層服務(wù)模型客戶機/服務(wù)器模式對等范例通過考察流行的應(yīng)用級協(xié)議,學習協(xié)議HTTPFTPSMTP/POP3/IMAPDNS網(wǎng)絡(luò)應(yīng)用編程套接字API應(yīng)用層3第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層4某些網(wǎng)絡(luò)應(yīng)用E-mailWeb即時訊息遠程注冊P2P文件共享多用戶網(wǎng)絡(luò)游戲流式存儲視頻片段因特網(wǎng)電話實時視頻會議大規(guī)模并行計算應(yīng)用層5創(chuàng)建一個網(wǎng)絡(luò)應(yīng)用編寫程序能夠能夠在不同的端系統(tǒng)上運行能夠通過網(wǎng)絡(luò)通信如Web:Web服務(wù)器軟件與瀏覽器軟件通信沒有為網(wǎng)絡(luò)核心的設(shè)備書寫的軟件網(wǎng)絡(luò)核心設(shè)備不作用于應(yīng)用層這種設(shè)計使得能夠快速開發(fā)應(yīng)用應(yīng)用層運輸層層網(wǎng)絡(luò)層鏈路層物理層應(yīng)用層運輸層層網(wǎng)絡(luò)層鏈路層物理層應(yīng)用層運輸層層網(wǎng)絡(luò)層鏈路層物理層應(yīng)用層6應(yīng)用體系結(jié)構(gòu)客戶機/服務(wù)器對等(P2P)客戶機/服務(wù)器與P2P的混合應(yīng)用層7客戶機/服務(wù)器體系結(jié)構(gòu)服務(wù)器:
總是打開的主機永久的IP地址可擴展為服務(wù)器池客戶機:與服務(wù)器通信可以間歇地連接可以具有動態(tài)的IP地址彼此不直接地通信應(yīng)用層8純P2P體系結(jié)構(gòu)無總是打開的服務(wù)器任意的端系統(tǒng)直接通信對等方間歇地連接,改變IP地址例子:Gnutella高度地可擴展但是難以管理應(yīng)用層9客戶機/服務(wù)器與P2P的混合Napster文件傳送P2P集中式文件搜索:對等方在中心服務(wù)器上注冊內(nèi)容對等方查詢相同的中心服務(wù)器以定位內(nèi)容即時訊息在兩個用戶之間聊天是P2P集中式的出席檢測/定位:用戶當他在線時,向中心服務(wù)器注冊其IP地址用戶聯(lián)系中心服務(wù)器以發(fā)現(xiàn)伙伴的IP地址應(yīng)用層10進程通信進程:在一臺主機上運行的程序。在同一臺主機中,兩個進程使用進程間通信IPC(由操作系統(tǒng)定義)通信.在不同的主機中的進程通過交換報文通信客戶機進程:
發(fā)起通信的進程服務(wù)器進程:等待聯(lián)系的進程注意:具有P2P體系結(jié)構(gòu)的應(yīng)用程序具有客戶機進程和服務(wù)器進程應(yīng)用層11套接字進程從/來自它的套接字發(fā)送/接收報文套接字類似于門發(fā)送進程將報文推出門外發(fā)送進程依賴門的另一側(cè)運輸層基礎(chǔ)設(shè)施,它將報文送到接收進程的套接字進程具有緩存、變量的TCP套接字主機或服務(wù)器進程具有緩存、變量的TCP套接字主機或服務(wù)器因特網(wǎng)由操作系統(tǒng)控制由應(yīng)用研發(fā)者控制應(yīng)用程序接口API:(1)選擇運輸協(xié)議;(2)確定一些參數(shù)的能力
(詳情見后)應(yīng)用層12尋址進程對于接收報文的進程,必須具有一個標識一臺主機具有一個獨特的32比特的IP地址問題:在主機的IP地址足以標識該進程?答案:
在同一臺主機上能夠運行許多進程表示符包括IP地址和與主機上該進程相關(guān)的端口號.端口號例子:HTTP服務(wù)器:80電子郵件服務(wù)器:25詳情見后應(yīng)用層13應(yīng)用層協(xié)議定義交換的報文類型,如請求和響應(yīng)報文報文類型的語法:報文中的各字段以及字段的定界字段的語義,即字段中信息的含義進程何時、怎樣發(fā)送和響應(yīng)報文的規(guī)則公共域協(xié)議:在RFC中定義允許具有互操作性例如,HTTP,SMTP專用協(xié)議:如,KaZaA應(yīng)用層14應(yīng)用程序需要什么樣的運輸服務(wù)?數(shù)據(jù)丟失某些應(yīng)用(如音頻)能夠容忍某些丟失其他應(yīng)用(如文件傳輸,Telnet)要求100%可靠數(shù)據(jù)傳輸定時某些應(yīng)用(如因特網(wǎng)電話、交互式游戲)要求“有效的”低時延帶寬某些應(yīng)用(如多媒體)要求“有效的”最小量的帶寬其他應(yīng)用(”彈性應(yīng)用“)充分利用它們獲得的所有帶寬應(yīng)用層15普通應(yīng)用的運輸服務(wù)要求應(yīng)用程序文件傳輸電子郵件Web文檔實時音頻/視頻存儲音頻/視頻交互式游戲即時訊息數(shù)據(jù)丟失不能丟失
不能丟失不能丟失容忍丟失容忍丟失容忍丟失不能丟失帶寬彈性彈性彈性音頻:5kbps-1Mbps視頻:10kbps-5Mbps同上幾kbps以上彈性時間敏感不不不是,100’smsec是,幾秒是,100msec是和不是應(yīng)用層16因特網(wǎng)運輸協(xié)議服務(wù)TCP服務(wù):面向連接:
客戶機和服務(wù)器之間所需的建立可靠傳輸:在發(fā)送和接收進程之間流控制:
發(fā)送方不會淹沒接收方擁塞控制:
當網(wǎng)絡(luò)過載時抑制發(fā)送方并不提供:
定時,最小帶寬保證UDP服務(wù):在發(fā)送進程及接收進程之間的不可靠數(shù)據(jù)傳輸不提供:建立連接建立,可靠性,流控,擁塞控制,定時或帶寬保證問題:為什么這么麻煩?為什么需要UDP?應(yīng)用層17因特網(wǎng)應(yīng)用:應(yīng)用協(xié)議與運輸協(xié)議應(yīng)用 應(yīng)用層協(xié)議 下面的傳輸協(xié)議電子郵件 SMTP[RFC2821] TCP遠程終端訪問 Telnet[RFC854] TCPWeb HTTP[RFC2616] TCP文件傳輸 FTP[RFC959] TCP遠程文件服務(wù)器 NFS[McKusik1996] UDP或TCP流媒體 通常專用(如RealNetworks) UDP或TCP因特網(wǎng)電話 通常專用(如Net2phone) 典型用UDP應(yīng)用層18第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層19Web和HTTP某些術(shù)語Web頁由對象組成對象可以是HTML文件,JPEG圖片,Java小程序,音頻文件,…Web頁由基本的HTML文件組成,基本的HTML文件包括了幾個引用對象每個對象可由URL尋址URL的例子:
主機名路徑名應(yīng)用層20HTTP概況HTTP:超文本傳送協(xié)議Web的應(yīng)用層協(xié)議客戶機/服務(wù)器模式客戶機:
請求、接收,”顯示“Web對象瀏覽器服務(wù)器:Web服務(wù)器響應(yīng)請求而發(fā)送對象HTTP1.0:RFC1945HTTP1.1:RFC2068PC運行Explorer服務(wù)器運行ApacheWeb服務(wù)器Mac運行NavigatorHTTP請求HTTP請求HTTP響應(yīng)HTTP響應(yīng)應(yīng)用層21HTTP概述(續(xù))使用TCP:客戶機向服務(wù)器發(fā)起TCP連接(產(chǎn)生套接字),端口80服務(wù)器從客戶機接受TCP連接在瀏覽器(HTTP客戶機)和Web服務(wù)器(HTPP服務(wù)器)之間交換HTTP報文(應(yīng)用層協(xié)議報文)關(guān)閉TCP連接HTTP是”無狀態(tài)的“
服務(wù)器不保留有關(guān)客戶機過去請求的任何信息維護“狀態(tài)”的協(xié)議是復(fù)雜的!過去歷史(狀態(tài))必須維護如果服務(wù)器/客戶機崩潰,“狀態(tài)”的視圖可能不一致,必須要重新建立應(yīng)用層22HTTP連接非持久HTTP至多一個對象經(jīng)過一個TCP連接發(fā)送.HTTP/1.0使用非持久HTTP持久HTTP多個對象能夠經(jīng)過客戶機和服務(wù)器之間的單個TCP連接發(fā)送.HTTP/1.1以默認模式使用持久連接應(yīng)用層23非持久HTTP假定使用輸入URL1a.HTTP客戶機向HTTP服務(wù)器(進程)的80端口的發(fā)起TCP連接2.HTTP客戶機發(fā)送
HTTP請求報文
(包含URL)進TCP連接套接字.報文指示客戶機要對象someDepartment/home.index1b.在主機的HTTP服務(wù)器在80端口等待TCP連接“接受”連接,通知客戶機3.
HTTP服務(wù)器接收請求報文,形成響應(yīng)報文包含請求對象,并向套接字其發(fā)送報文time(包括文本和對10個jpeg圖片的引用images)應(yīng)用層24非持久HTTP(續(xù))5.HTTP客戶機接收包含html文件的響應(yīng)報文,顯示html.解析html文件,發(fā)現(xiàn)10個引用的jpeg對象6.
對10個hpeg對象重復(fù)步驟1-54.HTTP服務(wù)器關(guān)閉TCP連接time應(yīng)用層25響應(yīng)時間建模往返時延RRT的定義:
從客戶機到服務(wù)器發(fā)送一個小分組并返回所歷經(jīng)的時間.響應(yīng)時間:一個RTT發(fā)起TCP連接對HTTP請求和返回的HTTP響應(yīng)前幾個字節(jié)的一個RTT文件傳輸時間總計=2RTT+傳輸時間傳輸文件的時間發(fā)起TCP連接RTT請求文件RTT接收的文件時間時間應(yīng)用層26持久HTTP非持久HTTP問題:每個對象要求2RTT操作系統(tǒng)必須為每個TCP連接工作并分配逐級資源但瀏覽器經(jīng)常打開并行TCP連接以獲取引用的對象持久HTTP在發(fā)送響應(yīng)后,服務(wù)器讓連接打開在相同的客戶機/服務(wù)器之間的后繼HTTP報文通過該連接發(fā)送無流水線的持續(xù):僅當前面的響應(yīng)已經(jīng)收到,客戶機發(fā)出新的請求對每個引用對象一個RTT有流水線的持續(xù):在HTTP/1.1為默認只要客戶機遇到一個引用對象,它發(fā)送請求對于所有引用的對象花費一個RTT時間應(yīng)用層27HTTP請求報文兩類HTTP報文:請求,響應(yīng)HTTP請求報文:ASCII(人可讀的格式)GET/somedir/page.htmlHTTP/1.1Host:User-agent:Mozilla/4.0Connection:closeAccept-language:fr(另外的回車,換行)請求行(GET,POST,HEAD命令)首部行回車,換行指示報文的結(jié)束應(yīng)用層28HTTP請求報文:通用格式應(yīng)用層29上載表單輸入Post方法:Web頁經(jīng)常包括表單輸入在實體主體中的輸入被上載到服務(wù)器URL方法:使用GET方法在請求行的URL字段中的輸入被上載:
應(yīng)用層30方法類型HTTP/1.0GETPOSTHEAD請求服務(wù)器許可響應(yīng)請求的對象HTTP/1.1GET,POST,HEADPUT向URL字段中定義的路徑,上載在實體主體中文件DELETE刪除在URL字段中定義的文件應(yīng)用層31HTTP響應(yīng)報文HTTP/1.1200OKConnectioncloseDate:Thu,06Aug199812:00:15GMT服務(wù)器:Apache/1.3.0(Unix)Last-Modified:Mon,22Jun1998…...Content-Length:6821Content-Type:text/html
datadatadatadatadata...
狀態(tài)行(協(xié)議狀態(tài)碼狀態(tài)短語)首部行數(shù)據(jù),如請求的HTML文件應(yīng)用層32HTTP響應(yīng)狀態(tài)碼200OK請求成功,請求的對象在這個報文后面301MovedPermanently請求的對象已轉(zhuǎn)移,新的URL在響應(yīng)報文的Location:首部行中指定400BadRequest請求報文不為服務(wù)器理解404NotFound請求的文檔沒有在該服務(wù)器上發(fā)現(xiàn)505HTTPVersionNotSupported在服務(wù)器到客戶機響應(yīng)報文中的首行.一些編碼的例子:應(yīng)用層33你自行試驗HTTP(客戶機側(cè))1.Telnet到你喜歡的Web服務(wù)器上:打開到位于的端口80(默認的HTTP服務(wù)器端口).鍵入的任何東西將發(fā)送到位于的80端口telnet802.鍵入一個GETHTTP請求:GET/~ross/HTTP/1.1Host:通過鍵入這些(按回車兩次),你向THHP服務(wù)器發(fā)送最小(但完整)的GET請求3.觀察由HTTP服務(wù)器發(fā)送的響應(yīng)報文!應(yīng)用層34用戶服務(wù)器狀態(tài):cookies許多重要的Web站點使用cookies四個部分:1)在HTTP響應(yīng)報文中的cookie首部行2)在HTTP請求報文中的cookie首部行3)保持在用戶主機中的cookie文件并由用戶瀏覽器管理4)位于Web站點的后端數(shù)據(jù)庫例子:Susan總是從相同的PC訪問因特網(wǎng)她首次訪問一個特定的電子商務(wù)站點當起始HTTP請求到達站點時,站點產(chǎn)生一個獨特的ID,并為ID在后端數(shù)據(jù)庫中生成一個表項應(yīng)用層35Cookies:保持“狀態(tài)”
(續(xù))客戶機服務(wù)器普通HTTP請求報文普通HTTP請求+Set-cookie:1678普通HTTP請求報文cookie:1678普通HTTP響應(yīng)報文普通HTTP請求報文cookie:1678普通HTTP響應(yīng)報文特定cookie動作特定cookie動作服務(wù)器為用戶生成ID1678后端數(shù)據(jù)庫中的表項訪問訪問Cookiefileamazon:1678ebay:8734Cookiefileebay:8734Cookiefileamazon:1678ebay:8734一個星期以后:應(yīng)用層36Cookies(續(xù))cookies能夠做:鑒別購物車推薦用戶會話狀態(tài)(Web電子郵件)Cookies和隱私:Cookies使得站點了解你許多東西你可能向站點提供名字和電子郵件搜索引擎使用重定向和cookies來知道更多跨越站點獲得信息,以向公司作廣告應(yīng)用層37Web緩存(代理服務(wù)器)用戶設(shè)置瀏覽器:經(jīng)過緩存訪問瀏覽器向緩存發(fā)送所有HTTP請求對象在緩存中:緩存返回對象否則緩存向起始服務(wù)器請求對象,然后向客戶機返回對象目標:
滿足客戶機請求而不涉及起始服務(wù)器客戶機代理服務(wù)器客戶機HTTP請求HTTP請求HTTP響應(yīng)HTTP響應(yīng)HTTP請求HTTP響應(yīng)起始服務(wù)器起始服務(wù)器應(yīng)用層38Web緩存更多情況緩存充當客戶機和服務(wù)器緩存通常由ISP(大學,公司和住宅ISP)安裝維和使用Web緩存?減小客戶機請求的響應(yīng)時間減小機構(gòu)訪問鏈路的流量因特網(wǎng)密集安裝緩存使得內(nèi)容提供商能有效地交付內(nèi)容(對P2P文件共享也是這樣)應(yīng)用層39緩存例子假定平均對象長度=100,000比特來自機構(gòu)的瀏覽器的平均請求=15/sec從機構(gòu)路由器到任何起始服務(wù)器并返回的時延=2sec結(jié)果局域網(wǎng)利用率=15%訪問鏈路利用率=100%總時延=因特網(wǎng)時延+訪問時延+LAN時延=2sec+分鐘+毫秒起始服務(wù)器公共因特網(wǎng)機構(gòu)網(wǎng)絡(luò)10MbpsLAN1.5Mbps訪問鏈路應(yīng)用層40緩存例子(續(xù))可能的解決方案將訪問鏈路的帶寬提高到如10Mbps結(jié)果LAN利用率=15%訪問鏈路利用率=15%總時延=因特網(wǎng)時延+訪問時延+LAN時延=2sec+毫秒+毫秒通常升級費用可觀起始服務(wù)器公共因特網(wǎng)機構(gòu)網(wǎng)絡(luò)10MbpsLAN1.5Mbps訪問鏈路應(yīng)用層41緩存例子(續(xù))安裝緩存器假定命中率是0.4結(jié)果40%請求將幾乎立即得到滿足60%請求由起始服務(wù)器滿足訪問鏈路的利用率減少到60%,產(chǎn)生可忽略不計的時延(如10msec)總平均時延=因特網(wǎng)時延+訪問時延+LAN時延=.6*(2.01)secs+毫秒<1.4secs起始服務(wù)器公共因特網(wǎng)機構(gòu)網(wǎng)絡(luò)10MbpsLAN1.5Mbps訪問鏈路機構(gòu)緩存器應(yīng)用層42條件GET方法目的:如果緩存中有最新緩存版本,就不發(fā)送該對象緩存器:在HTTP請求If-modified-since:<date>中,指定緩存版本的日期服務(wù)器:如果緩存的拷貝是最新的,響應(yīng)不包含對象:HTTP/1.0304NotModified緩存器服務(wù)器HTTP請求報文If-modified-since:<date>HTTP響應(yīng)HTTP/1.0304NotModified不修改對象HTTP請求報文If-modified-since:<date>HTTP響應(yīng)HTTP/1.0200OK<data>修改對象應(yīng)用層43第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層44FTP:文件傳輸協(xié)議傳輸文件到/來自遠程主機客戶機/服務(wù)器模型客戶機:
發(fā)起傳輸一側(cè)(到/來自遠程之一)服務(wù)器:
遠程主機ftp:RFC959ftp服務(wù)器:端口21文件傳輸FTP服務(wù)器FTP用戶接口FTP客戶機本地文件系統(tǒng)遠程文件系統(tǒng)主機上的用戶應(yīng)用層45FTP:獨立的控制和數(shù)據(jù)連接FTP客戶機聯(lián)系FTP服務(wù)器的21號端口,指定TCP為運輸協(xié)議客戶機通過控制連接獲得授權(quán)客戶機經(jīng)控制連接通過發(fā)送命令瀏覽遠程目錄當服務(wù)器接收到一個文件傳輸命令時,該服務(wù)器打開到客戶機的一個數(shù)據(jù)連接在傳輸一個文件后,服務(wù)器關(guān)閉連接FTP客戶機FTP服務(wù)器TCP控制連接端口21TCP數(shù)據(jù)連接端口20服務(wù)器打開第二個TCP數(shù)據(jù)連接,以傳輸另一個文件控制連接:“帶外”
FTP服務(wù)器維護“狀態(tài)”:當前目錄,較早的鑒別應(yīng)用層46FTP命令,響應(yīng)命令示例:經(jīng)控制信道以ASCII文本發(fā)送USERusernamePASSpasswordLIST返回當前目錄中的文件列表RETRfilename獲取(get)文件STORfilename
存儲(puts)文件到遠程主機返回碼示例:狀態(tài)碼和短語(如在HTTP中的那樣)331UsernameOK,passwordrequired125dataconnectionalreadyopen;transferstarting425Can’topendataconnection452Errorwritingfile應(yīng)用層47第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層48電子郵件三個主要部分:
用戶代理郵件服務(wù)器簡單郵件傳輸協(xié)議:SMTP用戶代理亦稱為
“郵件閱讀器”寫作、編輯、閱讀郵件報文例如Eudora,Outlook,elm,NetscapeMessenger存儲在服務(wù)器上的報文的達到和離開用戶郵箱輸出報文隊列郵件服務(wù)器用戶代理用戶代理用戶代理郵件服務(wù)器用戶代理用戶代理郵件服務(wù)器用戶代理SMTPSMTPSMTP應(yīng)用層49電子郵件:郵件服務(wù)器郵件服務(wù)器
郵箱包含用戶的到達報文離開(將發(fā)送)郵件報文的報文隊列在發(fā)送電子郵件報文的郵件服務(wù)器之間的SMTP協(xié)議客戶機:發(fā)送郵件服務(wù)器服務(wù)器:接收郵件的服務(wù)器郵件服務(wù)器用戶代理用戶代理用戶代理郵件服務(wù)器用戶代理用戶代理郵件服務(wù)器用戶代理SMTPSMTPSMTP應(yīng)用層50電子郵件:SMTP[RFC2821]使用TCP從客戶機到服務(wù)器可靠地傳輸電子郵件報文,用端口25直接傳輸:發(fā)送服務(wù)器到接收服務(wù)器傳輸?shù)娜齻€階段握手(歡迎)報文的傳輸關(guān)閉命令/響應(yīng)交互命令:ASCII文本響應(yīng):
狀態(tài)碼和短語報文必須以7比特ASCII格式應(yīng)用層51場景:Alice向Bob發(fā)送報文1)Alice使用UA寫作報文并向bob@發(fā)送2)Alice的UA向其郵件服務(wù)器發(fā)送報文;報文放置在報文隊列中3)SMTP的客戶機側(cè)打開與Bob的郵件服務(wù)器的TCP連接4)SMTP通過TCP連接發(fā)送Alice的報文5)Bob’的郵件服務(wù)器將該報文放入Bob的郵箱6)Bob調(diào)用其用戶代理來讀報文用戶代理郵件服務(wù)器郵件服務(wù)器用戶代理123456應(yīng)用層52SMTP交互的示例
S:220C:HELOcrepes.frS:250Hellocrepes.fr,pleasedtomeetyouC:MAILFROM:<alice@crepes.fr>S:250alice@crepes.fr...SenderokC:RCPTTO:<bob@>S:250bob@...RecipientokC:DATAS:354Entermail,endwith"."onalinebyitselfC:Doyoulikeketchup?C:Howaboutpickles?C:.S:250MessageacceptedfordeliveryC:QUITS:221closingconnection應(yīng)用層53自行試驗SMTP交互:telnet服務(wù)器name25觀察來自服務(wù)器的220回答輸入HELO,MAILFROM,RCPTTO,DATA,QUIT命令上述過程使你發(fā)送電子郵件而不使用電子郵件客戶機(閱讀器)應(yīng)用層54SMTP:有關(guān)情況SMTP使用持久連接SMTP要求報文(首部和主體)以7bitASCII格式SMTP服務(wù)器使用CRLF.CRLF以決定報文結(jié)束與HTTP的比較:HTTP:拉SMTP:推兩者都有ASCII命令/響應(yīng)交互,狀態(tài)碼HTTP:每個對象封裝在其自己的響應(yīng)報文中SMTP:多個對象在多方報文中發(fā)送應(yīng)用層55郵件報文格式SMTP:交換電子郵件報文的協(xié)議RFC822:文本報文格式的標準:首部行,如To:From:Subject:不同于SMTP命令!主體“報文”,均為ASCII字符首部主體空行應(yīng)用層56
報文格式:多媒體擴展MIME:多媒體郵件擴展,RFC2045,2056在報文首部的附加行聲明MIME內(nèi)容類型From:alice@crepes.frTo:bob@Subject:Pictureofyummycrepe.MIME-Version:1.0Content-Transfer-Encoding:base64Content-Type:image/jpegbase64encodeddata
base64encodeddata
多媒體數(shù)據(jù)類型,子類型,聲明參數(shù)使用編碼數(shù)據(jù)的方法MIME版本編碼數(shù)據(jù)應(yīng)用層57郵件訪問協(xié)議SMTP:交付/存儲到接收方服務(wù)器郵件訪問協(xié)議:從服務(wù)器獲取郵件POP:郵局協(xié)議[RFC1939]授權(quán)(代理<-->服務(wù)器)并下載IMAP:互聯(lián)網(wǎng)郵件訪問協(xié)議[RFC1730]更多特色(更復(fù)雜)操作存儲在服務(wù)器上的報文HTTP:Hotmail,Yahoo!Mail等用戶代理發(fā)送方郵件服務(wù)器用戶代理SMTPSMTP訪問協(xié)議接收方郵件服務(wù)器應(yīng)用層58POP3協(xié)議特許階段客戶機命令:user:
聲明用戶名pass:
口令服務(wù)器響應(yīng)+OK-ERR事務(wù)階段,客戶機:list:
列出報文成員retr:
由數(shù)字獲取報文dele:
刪除quit
C:listS:1498S:2912S:.C:retr1S:<message1contents>S:.C:dele1C:retr2S:<message1contents>S:.C:dele2C:quitS:+OKPOP3服務(wù)器signingoffS:+OKPOP3服務(wù)器readyC:userbobS:+OKC:passhungryS:+OKusersuccessfullyloggedon應(yīng)用層59POP3和IMAPPOP3其他情況前面的例子使用了
“downloadanddelete”
模式如果Bob改變客戶機,則不能重讀電子郵件“Download-and-keep”:在不同客戶機上的報文拷貝POP3跨越會話是無狀態(tài)的IMAP在一個地方保持所有報文:服務(wù)器允許用戶在文件夾中組織報文IMAP跨越會話保持用戶狀態(tài):文件夾名和報文ID和文件夾名之間的映射應(yīng)用層60第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層61DNS:域名系統(tǒng)人:許多標識符社會保險號,名字,護照#因特網(wǎng)主機、路由器:IP地址(32bit):用于數(shù)據(jù)報尋址“名字”,如–由人所使用問題:IP地址和名字之間的映射?域名系統(tǒng):分布式數(shù)據(jù)庫由層次化的許多名字服務(wù)器實現(xiàn)應(yīng)用層協(xié)議主機、路由器、名字服務(wù)器通信以解析名字(地址/名字轉(zhuǎn)換)注意:因特網(wǎng)核心功能,作為應(yīng)用層協(xié)議實現(xiàn)復(fù)雜性位于網(wǎng)絡(luò)“邊緣”應(yīng)用層62DNS為何不用集中式DNS?單點故障通信量遠程集中式數(shù)據(jù)庫維護不具有擴展性!DNS服務(wù)主機名到IP地址的轉(zhuǎn)換主機別名規(guī)范名和別名郵件服務(wù)器別名負載分配復(fù)制的Web服務(wù)器:對一個規(guī)范名的IP地址集合應(yīng)用層63根DNS服務(wù)器comDNS服務(wù)器orgDNS服務(wù)器eduDNS服務(wù)器DNS服務(wù)器DNS服務(wù)器
DNS服務(wù)器
DNS服務(wù)器
DNS服務(wù)器分布式、等級制數(shù)據(jù)庫客戶機要求的IP地址;1stapprox:客戶機請求根服務(wù)器以發(fā)現(xiàn)comDNS服務(wù)器客戶機請求comDNS服務(wù)器以得到DNS服務(wù)器客戶機請求DNS服務(wù)器以得到對的IP地址應(yīng)用層64DNS:根名字服務(wù)器當本地名字服務(wù)器不能分解名字時聯(lián)系它根名字服務(wù)器:如果名字映射未知,聯(lián)系權(quán)威名字服務(wù)器獲得映射返回對本地名字服務(wù)器的映射世界范圍的13個根名字服務(wù)器bUSC-ISIMarinadelRey,CAlICANNLosAngeles,CAeNASAMtView,CAfInternetSoftwareC.PaloAlto,CA(and17otherlocations)iAutonomica,Stockholm(plus3otherlocations)kRIPELondon(alsoAmsterdam,Frankfurt)mWIDETokyoaVerisign,Dulles,VAcCogent,Herndon,VA(alsoLosAngeles)dUMarylandCollegePark,MDgUSDoDVienna,VAhARLAberdeen,MDjVerisign,(11locations)應(yīng)用層65頂級域和權(quán)威服務(wù)器頂級域(TLD)服務(wù)器:
負責com,org,net,edu等,以及所有頂級國家域uk,fr,ca,jp.NetworkSolutions維護com頂級域服務(wù)器Educause維護edu頂級域服務(wù)器權(quán)威DNS服務(wù)器:
組織的DNS服務(wù)器為組織的服務(wù)器(如Web和電子郵件)提供對IP映射的權(quán)威主機名能夠由組織或服務(wù)提供商維護應(yīng)用層66本地名字服務(wù)器并不嚴格屬于等級結(jié)構(gòu)每個ISP(住宅ISP、公司、大學)有一個也稱為“默認名字服務(wù)器”當主機發(fā)出DNS請求時,請求被發(fā)送到其本地名字服務(wù)器作為代理,將請求轉(zhuǎn)發(fā)到等級結(jié)構(gòu)應(yīng)用層67請求主機根DNS服務(wù)器本地DNS服務(wù)器123456權(quán)威DNS服務(wù)器78頂級域DNS服務(wù)器例子位于的主機為要求IP地址應(yīng)用層68請求主機根DNS服務(wù)器本地DNS服務(wù)器12456權(quán)威DNS服務(wù)器78TLDDNS服務(wù)器3遞歸請求遞歸請求:將名字解析的負擔放在聯(lián)系的名字服務(wù)器沉重的負擔?迭代請求:聯(lián)系的服務(wù)器用要聯(lián)系的名字服務(wù)器回答“我不知道該名字,但詢問這個服務(wù)器”應(yīng)用層69DNS:緩存和更新記錄一旦(任何)名字服務(wù)器知道了映射,它將緩存該映射在一定時間后,緩存項超時(消失)頂級域服務(wù)器通常緩存在本地名字服務(wù)器中因此不經(jīng)常訪問根名字服務(wù)器更新/通知機制正由IETF設(shè)計RFC2136
應(yīng)用層70DNS記錄DNS:
分布式數(shù)據(jù)庫存儲資源記錄
(RR)Type=NSname是域(如)Value是該域的權(quán)威名字服務(wù)器的IP地址RR格式:(name,name,type,ttl)Type=Aname
是主機名name是IP地址Type=CNAMEname是對某些“規(guī)范的”(真實)名字的別名實際是服務(wù)器value是規(guī)范名Type=MXValue是與name相聯(lián)系的郵件服務(wù)器應(yīng)用層71DNS協(xié)議、報文DNS協(xié)議:
查詢和回答報文,都具有相同的報文格式報文首部標識符identification:16bit#用于查詢和回答,回答與查詢使用相同的#標志flags:查詢或回答希望遞歸
遞歸可用
回答是權(quán)威的應(yīng)用層72DNS協(xié)議,報文用于查詢的名字、類型字段對查詢的響應(yīng)中的RR權(quán)威服務(wù)器的記錄可被使用的附加“有幫助的”信息應(yīng)用層73將記錄插入DNS例子:創(chuàng)建新興公司NetworkUtopia在注冊登記機構(gòu)(如NetworkSolutions)注冊名字為,需要提供你的權(quán)威名字服務(wù)器(基本和輔助的)的名字和IP地址注冊登記機構(gòu)將兩條RR插入comTLD服務(wù)器:
(,,NS)(,,A)
對,在權(quán)威服務(wù)器插入TypeA記錄,對插入TypeMX記錄人們?nèi)绾蔚玫侥鉝eb站點的IP地址呢?應(yīng)用層74第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層75P2P文件共享例子Alice在她自己的筆記本機上運行P2P客戶機應(yīng)用程序間歇地與因特網(wǎng)相連;得到對每個連接的新IP地址尋找歌曲“HeyJude”應(yīng)用程序顯示具有HeyJude拷貝的其他對等方Alice選擇其中一個對等方Bob文件從Bob的PC拷貝到Alice筆記本:HTTP在Alice下載時,Alice也向其他用戶上載Alice的對等方既是Web客戶機,也是瞬時的Web服務(wù)器所有對等方都是服務(wù)器=高度可擴展!應(yīng)用層76P2P:集中式目錄初始
“Napster”設(shè)計1)當對等方連接時,它通知中心服務(wù)器:IP地址內(nèi)容2)Alice查詢“HeyJude”3)Alice從Bob請求文件集中式目錄服務(wù)器對等方AliceBob111123應(yīng)用層77P2P:集中式目錄存在的問題單點故障性能瓶頸侵犯版權(quán)文件傳輸是分散的,但定位內(nèi)容是高度集中的應(yīng)用層78查詢洪泛:Gnutella全分布方式無中心服務(wù)器公共域協(xié)議許多Gnutella客戶機實現(xiàn)協(xié)議覆蓋網(wǎng)絡(luò):圖如果對等方X和Y間有一條TCP連接,則存在一條邊所有活動對等方和邊形成覆蓋網(wǎng)絡(luò)邊不是物理鏈路給定對等方將通常與少于10個覆蓋節(jié)點相連應(yīng)用層79Gnutella:協(xié)議查詢查詢命中查詢查詢查詢命中查詢查詢查詢命中文件傳輸:HTTP查詢報文經(jīng)現(xiàn)有的TCP連接對等方轉(zhuǎn)發(fā)查詢報文
查詢命中
經(jīng)反向路徑發(fā)送擴展性:有限范圍的查詢應(yīng)用層80Gnutella:對等方加入加入對等方X必須在Gnutella網(wǎng)絡(luò)中發(fā)現(xiàn)某些其他對等方:使用候選對等方列表X隨后試圖與列表上的對等方建立TCP,直到與Y建立連接X向Y發(fā)送Ping報文;Y轉(zhuǎn)發(fā)Ping報文接收到Ping報文的所有對等方用Pong報文響應(yīng)X接收許多Pong報文。它能建立附加的TCP連接對等方離開:參見課后作業(yè)!應(yīng)用層81利用不均勻性:KaZaA每個對等方或是一個組長,或指派給一個組長對等方和其組長間的TCP連接某些組長之間的TCP連接組長追蹤其所有子節(jié)點上的內(nèi)容普通對等方組長對等方在覆蓋網(wǎng)絡(luò)中的鄰居關(guān)系應(yīng)用層82KaZaA:查詢每個文件具有一個散列碼標準和一個描述符客戶機向其組長發(fā)送關(guān)鍵詞查詢組長用匹配響應(yīng):對于每個匹配:元數(shù)據(jù),hash,IP地址如果組長向其他組長轉(zhuǎn)發(fā)查詢,它們用匹配響應(yīng)客戶機則為下載選擇文件HTTP請求使用Hash作為標識符,向具有所要文件的對等方發(fā)送應(yīng)用層83KaZaA技巧限制并行上載
請求排隊激勵優(yōu)先權(quán)并行下載應(yīng)用層84第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層85套接字編程套接字API在BSD4.1UNIX引入,1981由應(yīng)用程序顯式產(chǎn)生、使用和釋放客戶機/服務(wù)器范式通過套接字API提供兩類運輸服務(wù):不可靠數(shù)據(jù)庫可靠,面向字節(jié)流一個主機本地、應(yīng)用程序產(chǎn)生、OS控制的接口(一扇門),通過它,應(yīng)用進程能夠向/從其他應(yīng)用進程發(fā)送和接收報文套接字目標:
學習構(gòu)建使用套接字通信的客戶機/服務(wù)器應(yīng)用程序應(yīng)用層86使用TCP套接字編程套接字:
應(yīng)用程序進程和端到端運輸協(xié)議(UCP或TCP)之間的門TCP服務(wù):
從一個進程到另一個的可靠字節(jié)傳輸進程具有緩存,變量的TCP套接字由應(yīng)用程序研發(fā)者控制由操作系統(tǒng)控制主機或服務(wù)器進程具有緩存,變量的TCP套接字由操作系統(tǒng)控制主機或服務(wù)器internet由應(yīng)用程序研發(fā)者控制應(yīng)用層87TCP套接字編程客戶機必須聯(lián)系服務(wù)器服務(wù)器進程必須首先運行服務(wù)器必須已經(jīng)生成套接字(門),以歡迎客戶機的聯(lián)系客戶機聯(lián)系服務(wù)器,通過:創(chuàng)建客戶機本地TCP套接字定義服務(wù)器進程的IP地址,端口號當客戶機產(chǎn)生套接字時:客戶機TCP創(chuàng)建到服務(wù)器TCP的連接當客戶機聯(lián)系時,服務(wù)器TCP為服務(wù)器進程生成新的套接字,以與客戶機通信允許服務(wù)器與多個客戶機交談源端口號用于區(qū)分客戶機
(詳情參見第3章)TCP在客戶機和服務(wù)器之間提供可靠的、按序的字節(jié)傳輸(管道)應(yīng)用程序觀點應(yīng)用層88流的術(shù)語一個流是流入或流出某進程的字符序列一個輸入流與該進程的某些輸入源(如鍵盤或套接字)相聯(lián)系一個輸出流與輸出源(如監(jiān)視器或套接字)相聯(lián)系應(yīng)用層89TCP套接字編程例子客戶機-服務(wù)器app:1)客戶機從標準輸入(inFromUserstream)讀入行,經(jīng)套接字(outToServerstream)發(fā)送給服務(wù)器2)服務(wù)器從套接字讀行3)服務(wù)器轉(zhuǎn)換成大寫,向客戶機發(fā)送4)客戶機讀,從套接字(inFromServerstream)打印修改的行客戶機process客戶機TCP套接字outToServer到網(wǎng)絡(luò)來自網(wǎng)絡(luò)inFromServerinFromUser鍵盤顯示器進程clientSocket輸入流inputstream輸出流TCP套接字應(yīng)用層90客戶機/服務(wù)器套接字交互:TCP等待入連接請求connectionSocket=eSocket.accept()對入請求生成套接字,port=xeSocket=ServerSocket()生成套接字,與hostid連接,port=xClientSocket=Socket()關(guān)閉connectionSocket讀回答從ClientSocket關(guān)閉ClientSocket服務(wù)器(運行在hostid上)客戶機發(fā)送請求,使用ClientSocket讀請求從connectionSocket寫回答到connectionSocketTCPconnectionsetup應(yīng)用層91例子:Java客戶機(TCP)importjava.io.*;import.*;classTCPClient{publicstaticvoidmain(Stringargv[])throwsException{Stringsentence;StringmodifiedSentence;BufferedReaderinFromUser=newBufferedReader(newInputStreamReader(System.in));SocketClientSocket=newSocket("hostname",6789);DataOutputStreamoutToServer=newDataOutputStream(ClientSocket.getOutputStream());
產(chǎn)生輸入流產(chǎn)生客戶機套接字,與服務(wù)器連接生成輸出流與套接字聯(lián)系應(yīng)用層92例子:Java客戶機(TCP)
BufferedReaderinFromServer=newBufferedReader(newInputStreamReader(ClientSocket.getInputStream()));sentence=inFromUser.readLine();outToServer.writeBytes(sentence+'\n');modifiedSentence=inFromServer.readLine();System.out.println("FROMServer:"+modifiedSentence);ClientSocket.close();
}}
產(chǎn)生與套接字聯(lián)系的輸入流向服務(wù)器發(fā)送行從服務(wù)器讀行應(yīng)用層93例子:Java服務(wù)器(TCP)importjava.io.*;import.*;classTCPServer{publicstaticvoidmain(Stringargv[])throwsException{StringClientSentence;StringcapitalizedSentence;ServerSocketeSocket=newServerSocket(6789);
while(true){
SocketconnectionSocket=eSocket.accept();BufferedReaderinFromClient=newBufferedReader(newInputStreamReader(connectionSocket.getInputStream()));
在端口6789生成歡迎套接字在歡迎套接字等待客戶機的聯(lián)系生成輸入流,與套接字聯(lián)系應(yīng)用層94例子:Java服務(wù)器(TCP)
DataOutputStreamoutToClient
=newDataOutputStream(connectionSocket.getOutputStream());
ClientSentence=inFromClient.readLine();capitalizedSentence=ClientSentence.toUpperCase()+'\n';outToClient.writeBytes(capitalizedSentence);}}}
從套接字逐行讀生成輸出流,與套接字聯(lián)系向套接字讀出行當循環(huán)結(jié)束,循環(huán)回來并等待另一個客戶機連接應(yīng)用層95第2章要點2.1網(wǎng)絡(luò)應(yīng)用的原則2.2Web和HTTP2.3FTP2.4電子郵件SMTP,POP3,IMAP2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構(gòu)建一個Web服務(wù)器應(yīng)用層96UDP套接字編程UDP:在客戶機and服務(wù)器之間無“連接”沒有握手發(fā)送方為每個分組附加上目的地的IP地址和端口號no服務(wù)器必須從接收到的分組提取IP地址,端口號UDP:接收到的傳輸數(shù)據(jù)可能失序或丟失應(yīng)用程序觀點UDP為客戶機和服務(wù)器間的字節(jié)組(數(shù)據(jù)報)提供不可靠的傳輸應(yīng)用層97客戶機/服務(wù)器套接字交互:UDPcloseClientSocket服務(wù)器(運行在hostid之上)readreplyfromClientSocketcreateSocket,ClientSocket=DatagramSocket()客戶機Create,address(hostid,port=x,senddatagramrequestusingClientSocketcreateSocket,port=x,foringrequest:ServerSocket=DatagramSocket()readrequestfromServerSocketwritereplytoServerSocketspecifying客戶機hostaddress,portnumber應(yīng)用層98例子:Java客戶機(UDP)輸出:發(fā)送分組(TCP發(fā)送“字節(jié)流”)客戶機process客戶機UDP套接字sendPacket到網(wǎng)絡(luò)來自網(wǎng)絡(luò)receivePacketinFromUser鍵盤顯示器ProcessclientSocketUDP分組輸入流UDP分組UDP套接字輸入:接收分組(TCP接收“字節(jié)流”)應(yīng)用層99例子:Java客戶機(UDP)importjava.io.*;import.*;
classUDPSocket{publicstaticvoidmain(Stringargs[])throwsException{
BufferedReaderinFromUser=newBufferedReader(newInputStreamReader(System.in));
DatagramSocketClientSocket=newDatagramSocket();
InetAddressIPAddress=InetAddress.getByName("hostname");
byte[]sendData=newbyte[1024];byte[]receiveData=newbyte[1024];
Stringsentence=inFromUser.readLine();sendData=sentence.getBytes();生成輸入流生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氫能裝備施工方案
- 惠州市匯科源科技有限公司電源適配器的生產(chǎn)建設(shè)項目環(huán)評報告表
- 昌江縣公益性公墓及殯儀館建設(shè)工程(一期)項目環(huán)評報告表
- 甘肅巨化新材料有限公司股東全部權(quán)益價值項目資產(chǎn)評估報告
- 玻璃更換施工方案施工方案
- 2024-2025學年下學期高一語文第一單元A卷
- 東江大壩隧道施工方案
- 《雷雨》教案-高一下學期語文統(tǒng)編版
- 2025年中國碑石行業(yè)供需態(tài)勢、市場現(xiàn)狀及發(fā)展前景預(yù)測報告
- 提高女性、老年人及殘疾人就業(yè)率的策略及實施路徑
- 食品安全教育主題班會課件
- 小學二年級數(shù)學-除法豎式計算訓練100題
- 充電樁采購安裝投標方案
- MOOC 國際商務(wù)-暨南大學 中國大學慕課答案
- 《酵母表達系統(tǒng)》課件
- 依法行使權(quán)利-統(tǒng)編版道德與法治八年級下冊
- 巡察工作指導(dǎo)手冊
- 2023-2024全球及中國企業(yè)組織活力報告(中文版)
- 2016-2023年北京電子科技職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 電磁學第四版趙凱華習題詳細解答
- 紹興文理學院開題報告模板
評論
0/150
提交評論