chapter2應用層.ppt_第1頁
chapter2應用層.ppt_第2頁
chapter2應用層.ppt_第3頁
chapter2應用層.ppt_第4頁
chapter2應用層.ppt_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2 ApplicationLayer 1 第2章應用層 2 1應用層協(xié)議原理2 2Web應用和HTTP協(xié)議2 3文件傳輸 FTP2 4Internet中的電子郵件2 5DNS2 6P2P文件共享2 7基于TCP的Socket程序設計2 8基于UDP的Socket程序設計2 9構建一個簡單的Web服務器 2 ApplicationLayer 2 第2章應用層 電子郵件Web即時通信遠程登錄P2P文件共享多用戶網絡游戲流式存儲的音頻和視頻 網絡電話實時視頻會議大規(guī)模并行計算 2 ApplicationLayer 3 構造一個網絡應用 寫一個程序在不同的終端系統(tǒng)上運行可以在網絡上通信如 Web服務器軟件 瀏覽器軟件很少給網絡核心設備寫軟件網絡核心設備上不運行用戶應用代碼 2 ApplicationLayer 4 2 1應用層協(xié)議原理 2 1 1網絡應用程序體系結構2 1 2進程通信2 1 3應用層協(xié)議2 1 4應用需要什么樣的服務 2 1 5由傳輸層提供的服務 2 ApplicationLayer 5 2 1 1應用程序體系結構 客戶端 服務器結構Client server對等結構Peer to peer P2P 客戶端 服務器和對等結構的混合模型 2 ApplicationLayer 6 2 1 1應用體系結構 Client server server 總是在線的主機永久性IP地址提供所請求的服務clients 和服務器通信可能是動態(tài)IP地址彼此間不直接通信請求服務 2 ApplicationLayer 7 2 1 1應用體系結構 純P2P 沒有永遠在線的服務器任意終端直接通信對等端可能用不同的IP地址間歇性連接到網絡上example Gnutella規(guī)模很大但難于管理 PureP2P 2 ApplicationLayer 8 2 1 1應用體系結構 C S和P2P的混合 即時通信在兩個用戶之間進行通信的系統(tǒng)分布使用 集中管理 用戶上線時向中心服務器注冊他的IP地址用戶聯(lián)系中央服務器來獲取好友的IP 2 ApplicationLayer 9 2 1 2進程通信 進程 process 運行在主機上的程序在同一臺主機上 兩進程使用OS支持的進程間通信方式通信不同主機上的進程之間通過交換消息進行通信 客戶端進程 發(fā)起通信的進程服務器進程 等待被連接的進程 注意 P2P結構的應用程序同時有客戶端進程和服務器進程 2 ApplicationLayer 10 2 1 2進程通信 Socket 進程通過Socket發(fā)送 接受消息socket是一扇 門 位于 應用層和傳輸層之間程序設計者和OS之間 Internet 由OS控制 程序設計者操作 2 ApplicationLayer 11 2 1 2進程通信 Socket 每個socket都有一個標示 port 端口號 主機通過不同的socket 端口號提供不同的應用服務 2 ApplicationLayer 12 2 1 2進程通信 尋址 標示包括IP地址和端口號 port 二者共同和主機上的進程相關聯(lián)IP地址 32bit 標示主機port 16bit 標示進程 應用程序 向web服務器發(fā)送HTTP消息 IP 202 200 142 46Port 80向服務器發(fā)送e mail IP 202 200 142 46Port 25向web服務器發(fā)送HTTP消息 IP 202 43 216 251Port 80 2 ApplicationLayer 13 2 1 3應用層協(xié)議 區(qū)別 應用 和 應用層協(xié)議 應用 可通信的 分布式的進程在網絡上的用戶空間上運行Web 瀏覽器 服務器軟件 HTTPEmail 用戶代理 郵件服務器 SMTP應用層協(xié)議 是一個應用的一部分規(guī)定了消息的類型 請求 響應 定義了消息的語法 格式制定了發(fā)送 接收消息的規(guī)則 2 ApplicationLayer 14 2 1 3應用層協(xié)議 應用電子郵件遠程終端登陸Web文件傳輸流式多媒體遠程文件服務器網絡電話 應用層協(xié)議smtptelnethttpftpproprietary e g RealNetworks NSFproprietary e g Vocaltec 底層傳輸協(xié)議TCPTCPTCPTCPTCPorUDPTCPorUDPtypicallyUDP 2 ApplicationLayer 15 2 1 4應用需要什么樣的服務 Dataloss 差錯 需要100 可靠數(shù)據傳輸?shù)膽?e mail ftp可以容忍一些數(shù)據丟失的應用 音頻 多媒體 loss tolerant 容許錯誤 Bandwidth 帶寬 帶寬敏感的應用 多媒體帶寬彈性較大的應用 web e mail 可以充分利用其所能得到的大或小的帶寬 差錯 帶寬 實時性 2 ApplicationLayer 16 2 1 4Whatservicedoesanappneed 實時性時間敏感 網絡電話 實時應用 容許延遲 web e mail 2 ApplicationLayer 17 2 1 5傳輸層提供的服務 FTP HTTP SMTP DNS 2 ApplicationLayer 18 2 1 5傳輸層提供的服務 TCP服務 面向連接 在client和server之間建立連接可靠傳輸 在發(fā)送和接收進程之間進行可靠傳輸流量控制 避免發(fā)送方淹沒接收方擁塞控制 當網絡過載時遏制發(fā)送方不提供的服務 時間和最小帶寬保證 UDP服務 在發(fā)送進程和接收進程間提供不可靠的傳輸不提供的服務 建立連接 可靠保證 流量控制 擁塞控制 時間和帶寬保證 2 ApplicationLayer 19 2 1 3應用層協(xié)議 應用電子郵件遠程終端登陸Web文件傳輸流式多媒體遠程文件服務器網絡電話 應用層協(xié)議smtptelnethttpftpproprietary e g RealNetworks NSFproprietary e g Vocaltec 底層傳輸協(xié)議TCPTCPTCPTCPTCPorUDPTCPorUDPtypicallyUDP 2 ApplicationLayer 20 2 2WWW WorldWideWeb 2 2 1HTTP概述2 2 2非持續(xù)性和持續(xù)性連接2 2 3HTTP報文格式2 2 4用戶和服務器的交互 Cookies2 2 5HTTP內容2 2 6Web緩存 2 ApplicationLayer 21 2 2 1Web和HTTP Web網頁包括若干對象對象的類型可以是HTML文檔 JPEG圖片 Java小應用程序 音頻文件 每個對象的地址通過URL表示例如 瀏覽器 Web的用戶代理MSInternetExplorer提供Web服務的服務器稱為Webserver Apache MSInternetInformationServer IIS 2 ApplicationLayer 22 2 2 1Web http協(xié)議 http hypertexttransferprotocol超文本傳輸協(xié)議Web的應用層協(xié)議定義消息格式 怎樣發(fā)送數(shù)據client server模式TCP port80無狀態(tài)協(xié)議http1 0 非持續(xù)連接 http1 1 持續(xù)連接 2 ApplicationLayer 23 http例 假定用戶鍵入URL 1a 通過80端口向服務器發(fā)起連接 4 關閉TCP連接 2 ApplicationLayer 24 2 2 2HTTP連接 非持續(xù)性HTTP一個TCP連接最多傳送一個對象在HTTP 1 0中使用 持續(xù)性HTTP在一個TCP連接中可以傳送多個對象在HTTP 1 1中使用 2 ApplicationLayer 25 2 2 3http報文格式 請求 http報文有兩種類型 請求 響應http請求報文 ASCII 人類可以閱讀的格式 GET somedir page htmlHTTP 1 0User agent IE 5 0Accept text html image gif image jpegAccept language fr extracarriagereturn linefeed 2 ApplicationLayer 26 2 2 3http報文格式 請求 GET somedir page htmlHTTP 1 0User agent Mozilla 4 0Accept text html image gif image jpegAccept language fr 2 ApplicationLayer 27 2 2 3http報文格式 響應 HTTP 1 0200OKDate Thu 06Aug199812 00 15GMTServer Apache 1 3 0 Unix Last Modified Mon 22Jun1998 Content Length 6821Content Type text htmldatadatadatadatadata 2 ApplicationLayer 28 2 2 3http報文格式 響應 HTTP 1 0200OKDate Thu 06Aug199812 00 15GMTLast Modified Mon 22Jun1998 Content Length 6821Content Type text htmldatadatadatadatadata 2 ApplicationLayer 29 2 2 3http報文格式 響應 200OK請求成功 所請求的對象在后續(xù)的報文中301MovedPermanently請求的對象位置移動了 新位置在后續(xù)報文中400BadRequest服務器無法讀取請求報文404NotFound本服務器上沒有所請求的文檔505HTTPVersionNotSupportedHTTP版本不支持 server client的響應報文的第一行中的部分代碼 2 ApplicationLayer 30 自己嘗試一個HTTP 作為客戶端 1 Telnet一個你喜歡的Webserver OpensTCPconnectiontoport80 defaultHTTPserverport atcis poly edu Anythingtypedinsenttoport80atcis poly edu telnetcis poly edu80 2 TypeinaGETHTTPrequest GET ross HTTP 1 1Host cis poly edu Bytypingthisin hitcarriagereturntwice yousendthisminimal butcomplete GETrequesttoHTTPserver 3 LookatresponsemessagesentbyHTTPserver 2 ApplicationLayer 31 2 2 3httpmessageformat respone 2 ApplicationLayer 32 2 2 3httpmessageformat respone 2 ApplicationLayer 33 80GET index htmlHTTP 1 0 2 ApplicationLayer 34 2 2 4用戶 服務器交互 cookies cookies可以 用戶身份認證用戶會話狀態(tài) Webe mail cookies能讓站點了解 你 怎樣維護 狀態(tài) cookies 由http報文攜帶信息cookie文件存放在用戶主機上 由用戶的瀏覽器管理服務器端有后臺數(shù)據庫 2 ApplicationLayer 35 2 2 4用戶 服務器交互 cookies server為該用戶創(chuàng)建ID1678 在后臺數(shù)據庫登記 訪問 訪問 一周后 2 ApplicationLayer 36 2 2 6Web高速緩存 代理服務器 用戶設置瀏覽器 通過webcache訪問網頁客戶端將所有http請求發(fā)送給webcache如果所請求的對象在webcache上 則webcache在http響應報文中立刻返回該對象 否則 向原始服務器請求該對象 并向客戶端返回對象 代理服務器 2 ApplicationLayer 37 2 2 6WebCaching的優(yōu)點 優(yōu)點 響應時間短 減少通信量 例 1 每個請求對象100kb 2 15個 秒請求 3 時間延遲 2秒 路由器B發(fā)送一個請求到接收到響應 LAN通信量 15req s 100kb req 10Mb s 0 15接入網通信量 15req s 100kb req 1 5Mbps 1若在proxyserver命中40 則1 0 6 2 ApplicationLayer 38 2 3ftp 文件傳輸協(xié)議 向遠程主機發(fā)送 接收文件client servermodelclient 發(fā)起傳輸server 遠程主機ftpserver port21 20 2 ApplicationLayer 39 ftp 控制和數(shù)據連接分離 outofbandcontrol 帶外控制開啟兩個平行的TCP連接 控制 port21 在客戶端和服務器之間交換命令和響應數(shù)據 port20 向服務器發(fā)送 接收文件的數(shù)據ftpserver維護狀態(tài)信息 當前目錄 從前的用戶記錄等 2 ApplicationLayer 40 2 4電子郵件 2 4 1SMTP2 4 2SMTP和http的比較2 4 3郵件消息格式和MIME2 4 4郵件接收協(xié)議 POP3 IMAP 2 ApplicationLayer 41 2 4電子郵件 三個主要組成部分 1 用戶代理2 郵件服務器3 簡單郵件傳輸協(xié)議 smtp 1 用戶代理提供菜單圖形方式與電子郵件系統(tǒng)交互 讀取 顯示 發(fā)送郵件例 Outlook 2 ApplicationLayer 42 2 4電子郵件 郵件服務器 2 郵件服務器將消息從出發(fā)地傳到目的地 是后臺運行的系統(tǒng)程序 在系統(tǒng)間傳輸郵件郵箱 存放收到的郵件消息隊列 存放要發(fā)送的郵件smtp協(xié)議 用于郵件服務器間發(fā)送郵件 client 發(fā)送郵件的服務器 server 接收郵件的服務器 2 ApplicationLayer 43 2 4 1電子郵件 smtp 基于TCP協(xié)議 port25 客戶端到服務器的可靠傳輸直接發(fā)送 由發(fā)送服務器到接收服務器直接傳送 不經過第3個服務器 3階段傳送 握手傳送消息關閉連接使用命令 響應交互方式命令 ASCIItext響應 狀態(tài)碼及簡短說明報文要用7 bitASCII編碼 2 ApplicationLayer 44 場景 Alice給Bob發(fā)送郵件 1 Alice使用用戶代理編輯郵件 并發(fā)送到bob someschool edu2 Alice的用戶代理將郵件發(fā)送到她的郵件服務器 郵件存放到郵件隊列中3 SMTP中的客戶端的郵件服務器發(fā)起到Bob s郵件服務器的連接 4 SMTP客戶端使用TCP協(xié)議發(fā)送Alice的郵件5 Bob的郵件服務器將收到的郵件放進Bob的郵箱6 Bob使用用戶代理閱讀郵件 1 2 3 4 5 6 2 ApplicationLayer 45 2 4 2smtp和http的比較 http pull 拉 數(shù)據流 email push 推 數(shù)據流 Smtp和http都使用ASCII碼和狀態(tài)代碼進行交互http 每個對象都封裝在不同的響應報文中smtp 將所有對象封裝在一個報文中 SMTP使用持續(xù)性連接 2 ApplicationLayer 46 2 4 3郵件消息格式 SMTP 1 SMTP SimpleMailTransferProtocol 簡單郵件傳輸協(xié)議消息格式 頭部行 例如To From Subject 內容郵件內容 只能用ASCII碼 2 ApplicationLayer 47 2 4 3郵件消息格式 MIME 2 MIME MultipurposeInternetMailExtensionprotocol多用途因特網郵件擴展協(xié)議在報文頭部有一行聲明MIME類型 圖像等要先轉化為ASCII碼才能發(fā)送 TextImageAudioVideoApplication 2 ApplicationLayer 48 多類型郵件 From alice crepes frTo bob hamburger eduSubject Pictureofyummycrepe MIME Version 1 0Content Type multipart mixed boundary 98766789 98766789Content Transfer Encoding quoted printableContent Type text plainDearBob Pleasefindapictureofacrepe 98766789Content Transfer Encoding base64Content Type image jpegbase64encodeddata base64encodeddata 98766789 2 ApplicationLayer 49 2 4 4郵件訪問協(xié)議 郵件訪問協(xié)議 從server獲取郵件pullPOP PostOfficeProtocol 郵局協(xié)議 身份認證 用戶代理服務器 下載eg sinaIMAP InternetMailAccessProtocol 因特網郵件訪問協(xié)議 性能更好 更復雜 可以處理在服務器上存儲的郵件HTTP Hotmail Yahoo Mail etc receiver smailserver Mail送到接收郵件服務器上 讀取郵件有2種方式 1 登錄到server上 打開mailbox直接閱讀 2 通過郵件接收器 Outlook 將server上的mail 移至 本地PC上 pop3 2 ApplicationLayer 50 Mailapplication 2 ApplicationLayer 51 Mailapplication 2 ApplicationLayer 52 Mailapplication 2 ApplicationLayer 53 Mailapplication 2 ApplicationLayer 54 Mailapplication 2 ApplicationLayer 55 2 5DNS DomainNameSystem 2 5 1DNS提供的服務2 5 2DNS基本工作原理集中式設計層級分布式DNS 兩種請求方式回顧 client serverhttp示例 2 ApplicationLayer 56 2 5DNS DomainNameSystem Domain 域是按某種規(guī)則的一些劃分 每個域可劃分為子域 形成二級域 三級域 表示為 三級域名 二級域名 頂級域名樹型結構 2 ApplicationLayer 57 2 5 1DNS提供的服務 DomainNameSystem IP地址和域名的映射在由名稱服務器構成的層次結構中實現(xiàn)的分布式數(shù)據庫應用層協(xié)議 2 ApplicationLayer 58 DNSserver ipconfig all 2 ApplicationLayer 59 DNSserver ipconfig all 2 ApplicationLayer 60 Nslookup 2 ApplicationLayer 61 2 5 2DNS基本工作原理 集中式設計一個域名服務器包含所有的映射問題 單點故障 一點壞 全網壞通信容量 巨大的訪問量遠距離的集中式數(shù)據庫 遠距離訪問延遲大維護 頻繁更新 身份認證 授權等 不可能有一臺服務器包含網路上所有的域名到IP的映射 2 ApplicationLayer 62 2 5 2DNS基本工作原理 2 層級分布式根rootnameservers 與頂級域名服務器或本地域名服務器相通 響應其請求頂級域名 TLD top leveldomainnameservers 與localnameserver相通 響應其請求權威authoritativenameserver root中找不到時 root提供一個權威服務器 可能是專用的 也可能是一個localnameserver本地localnameservers 直接和用戶PC相通的server每個ISP 公司都有l(wèi)ocal default nameserver主機的DNS請求首先發(fā)給localnameserver好像一個代理 在層級中轉發(fā)DNS請求 兩種請求方法 1 遞歸查詢2 迭代查詢 2 ApplicationLayer 63 2 5 2DNS基本工作原理 1 遞歸查詢 2 迭代查詢 2 ApplicationLayer 64 2 5 3DNS報文 請求和響應報文具有相同的報文格式 2 ApplicationLayer WhathappenedwhenyouclickaURL 1 browserasksDNSforIPaddr oftheURL 2 DNSreplieswithIPaddress 3 browsermakesaTCPconnectiontoIPaddr 4 browsersendsaGETcommand DomainNameserver Client Server 5 TheURLserversendsthefileindex html 6 TCPconnectionisreleased 7 display 2 ApplicationLayer 66 2 6P2Pfilesharing Server Client所有用戶和一個服務器通信peer to peer用戶之間共享資源 直接通信存在問題 如何確定哪個計算機上有自己所需要的資源 集中式目錄 Napster QQ洪泛式查詢 Gnutella利用不均勻性 KaZaA 2 ApplicationLayer 67 2 6P2P 1 集中式目錄 Napster 的設計方案1 當對等機連網時 告知中央服務器 IP地址共享資源內容中央服務器為共享資源建立一個數(shù)據庫 并維護 用戶通過中央服務器了解享有資源的對等機地址 直接聯(lián)系對等機傳送文件 文件傳輸是非集中的 但是內容定位過程是高度集中的 2 ApplicationLayer 68 2 6P2P 1 集中式目錄 存在問題單點故障性能瓶頸版權問題 2 ApplicationLayer 69 2 6P2P 2 洪泛式查詢 Gnutella Filetransfer HTTP 完全分布式定位內容沒有中央服務器通過已有的TCP連接發(fā)送請求報文對等機轉發(fā)請求報文 洪泛式轉發(fā) 2 ApplicationLayer 70 2 6P2P 2 洪泛式查詢 Gnutella 覆蓋網 圖如果對等端X和Y之間有TCP連接 則認為X和Y之間有一條邊所有活動的對等端和邊構成覆蓋網 邊 并不是實際的物理線路對給定的對等端 通常在覆蓋網上的鄰居節(jié)點 10個 2 ApplicationLayer 71 Gnutella 對等端的加入 要加入的對等端X必須首先發(fā)現(xiàn)覆蓋網中的其他一些對等端 使用一張候選對等端列表X順次嘗試和列表中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論