




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Application Layer3-1Chapter 2:應用層目標: 網絡應用的原理和實現傳輸層的服務模型客戶-服務器模式對等模式(peer-to-peer)r通過解釋流行的應用層協議學習協議rHTTPrFTPrSMTP / POP3 / IMAPrDNSr編寫網絡應用程序rSocket APIApplication Layer3-2一些網絡應用rE-mailrWebr即時通信r遠程登錄rP2P文件共享 r多用戶網絡游戲r流媒體rInternet 電話r實時電視會議r大型并行運算Application Layer3-3創建一個新的網絡應用編程在不同的端系統上運行通過網絡彼此通信如Web:
2、Web 服務器軟件與瀏覽器軟件通信網絡核心中沒有應用層軟件網絡核心沒有應用層功能快速的網絡應用開發和部署應用層傳輸層網絡層數據鏈路層物理層l應用層傳輸層網絡層數據鏈路層物理層l應用層傳輸層網絡層數據鏈路層物理層lApplication Layer3-4Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Socket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-5網絡應用體系結構r客戶-服務器模式(C/S:c
3、lient/server)r對等模式(P2P:Peer To Peer)r客戶-服務器和對等體系結構混合體Application Layer3-6客戶-服務器體系結構r服務器: r總是運行r固定的、周知的IP地址和端口號r擴展性:服務器場r客戶端:r與服務器通信r間歇性的連接r可能是動態IP 地址r不能直接與其它客戶端通信Application Layer3-7P2P 體系結構r沒有一個總是運行的服務器r每一個節點既是客戶端又是服務器r任意端系統之間進行通信r參與的主機間歇性連接且可以改變IP 地址r例子: Gnutellar可擴展性好r難于管理Application Layer3-8客戶-服
4、務器和P2P體系結構的混合體Napster文件傳輸:P2P文件搜索:集中 主機在中心服務器上注冊其資源主機向中心服務器查詢資源位置即時通信兩個用戶之間聊天:P2P在線檢測:集中當用戶在線時,向中心服務器注冊其IP地址用戶與中心服務器聯系,以找到其在線好友的位置Application Layer3-9進程通信進程:在主機上運行的程序在同一個主機內,使用進程間通信機制通信(操作系統定義)不同主機,通過交換報文(Message)通信客戶端進程:發起通信的進程服務器進程:等待連接的進程r注意:基于P2P體系結構的應用也有客戶端進程和服務器進程之分Application Layer3-10套接字(Soc
5、ket)r進程向套接字發送報文或從套接字接收報文r套接字 & 門戶r發送進程將報文推出門戶r發送進程假設由傳輸設施,將報文傳送到另一端的套接字進程具有緩存、變量的TCP套接字主機/服務器進程具有緩存、變量的TCP套接字主機/服務器Internet由操作系統控制由應用開發者控制r應用程序編程接口(API): (1) 選擇傳輸協議;(2) 設定幾個傳輸層參數 (后續章節介紹) Application Layer3-11對進程進行編址r一個進程為了接收報文,必須有一個標識r即:SAPr主機:唯一的 32位IP地址r所采用的傳輸層協議:TCP or UDPr端口號(Port Numbers)r一些端口
6、號的例子:rHTTP: TCP 80rMail: TCP25rftp:TCP 21Application Layer3-12TCP之上的套接字(socket)r對于使用面向連接服務(TCP)的應用而言,套接字是4元組的一個具有本地意義的標示r4元組:源IP,源port,目標IP,目標portr唯一的指定了一個會話(2個進程之間的通信)r應用使用這個標示,與遠程的應用進程通信r不必在每一個報文的發送都要指定這4元組r就像使用操作系統打開一個文件,OS返回一個文件句柄一樣,以后使用這個文件句柄,而不是使用這個文件的目錄名、文件名r簡單Application Layer3-13TCP實體TCP實體A
7、pplication Layer3-14UDP之上的套接字(socket)r對于使用無連接服務(UDP)的應用而言,套接字是2元組的一個具有本地意義的標示r2元組:IP,port (源端指定)r在發送數據報時,唯一指定了一個遠程的進程r無連接r應用使用這個標示,與遠程的應用進程通信r不必在每一個報文的發送都要指定這2元組r簡單Application Layer3-15應用層協議r運行在不同端系統上的應用進程如何相互交換報文r交換的報文類型:如請求和應答報文r各種報文類型的語法:報文中的各個字段及其描述r字段的語義:即字段的信息的含義r進程何時、如何發送報文及對報文進行響應r應用協議僅僅是應用的
8、一個部分rWeb應用:HTTP協議,web客戶端,web服務器,HTML公開協議:由RFC文檔定義允許互操作如HTTP, SMTP專用協議:如KaZaAApplication Layer3-16應用需要傳輸層提供什么樣的服務?數據丟失率有些應用(如音頻)能容忍一些數據丟失有些應用要求100%的可靠數據傳輸定時一些應用 出于有效性考慮,對數據傳輸有嚴格的時間限制Internet 電話、交互式游戲延遲、延遲差帶寬一些應用出于有效性考慮 (如多媒體) 要求以特定的速率傳輸數據一些應用能充分利用可供使用的帶寬 (彈性應用)如何描述傳輸層的服務?安全性機密性完整性可認證性(鑒別)Application
9、Layer3-17常見應用對傳輸服務的要求應用應用文件傳輸文件傳輸e-mailWeb 文檔文檔實時音視頻實時音視頻存儲音視頻存儲音視頻交互式游戲交互式游戲即時訊息即時訊息數據丟失率數據丟失率不能丟失不能丟失不能丟失不能丟失不能丟失不能丟失容忍丟失容忍丟失容忍丟失容忍丟失容忍丟失容忍丟失不能丟失不能丟失帶寬帶寬彈性彈性彈性彈性彈性彈性音頻:音頻: 5kbps-1Mbps視頻:視頻:0kbps-5Mbps同上同上 幾幾kbps 10kbps彈性彈性時間敏感性時間敏感性不不不不不不是,是,100ms是,幾秒是,幾秒是,是,100ms是和不是是和不是Application Layer3-18Inter
10、net 傳輸層提供的服務TCP 服務:面向連接:要求在客戶端進程和服務器進程之間建立連接可靠的傳輸服務流量控制:發送方不會淹沒接受方擁塞控制:當網絡出現擁塞時,抑制發送方不能提供的服務:時間保證、最小帶寬保證UDP 服務:不可靠數據傳輸不提供的服務:建立連接、流量控制、擁塞控制、時間和帶寬保證Q: 為什么要有 UDP?Application Layer3-19UDP存在的必要性r能夠區分不同的進程,而IP服務不能r在IP提供的主機到主機端到端功能的基礎上,區分了主機的應用進程r無需建立連接,省卻了建立連接的時間,適合事務性的應用r不做可靠性的工作,例如檢錯重發,適合那些對實時性要求比較高而對正
11、確性要求不高的應用r因為為了實現正確性,必須付出時間代價(檢錯重發)r沒有擁塞控制和流量控制,應用能夠按照設定的速度發送數據r而在TCP上面的應用,應用發送數據的速度和主機向網絡發送的實際速度是不一致的,因為有流量控制和擁塞控制Application Layer3-20Internet應用及其應用層協議和傳輸協議應用應用e-mail遠程終端訪問遠程終端訪問Web 文件傳輸文件傳輸流媒體流媒體Internet電話電話應用層協議應用層協議SMTP RFC 2821Telnet RFC 854HTTP RFC 2616FTP RFC 959專用協議專用協議(如如RealNetworks)專用協議專用
12、協議(如如Net2Phone)下層的傳輸協議下層的傳輸協議TCPTCPTCPTCPTCP 或或 UDP通常為通常為UDPApplication Layer3-21Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Socket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-22Web 與 HTTP一些術語Web頁:由一些對象組成對象可以是HTML文件、JPEG圖像、Java小程序、聲音剪輯文件等Web頁含有一
13、個基本的HTML文件,該基本HTML文件又包含幾個引用對象通過URL對每個對象進行引用訪問協議,用戶名,口令字,端口等;URL格式:Prot:/user:psw 主機名路徑名協議名 用戶:口令端口Application Layer3-23HTTP概況HTTP: 超文本傳輸協議Web的應用層協議客戶/服務器模式客戶: 請求、接收和顯示Web對象的瀏覽器服務器: 對請求進行響應,發送對象的Web服務器HTTP 1.0: RFC 1945HTTP 1.1: RFC 2068運行Explorer的PC運行Apache Web服務的服務器運行Navigator的MacHTTP請求HTTP請求HTTP響應
14、HTTP響應Application Layer3-24HTTP概況(續)使用TCP:客戶發起一個與服務器的TCP連接 (建立套接字) ,端口號為 80服務器接受客戶的TCP連接在瀏覽器(HTTP客戶端)與 Web服務器(HTTP服務器 server)交換HTTP報文 (應用層協議報文) TCP連接關閉HTTP是無狀態的服務器并不維護關于客戶的任何信息維護狀態的協議很復雜!必須維護歷史信息(狀態)如果服務器/客戶端死機,它們的狀態信息可能不一致,二者的信息必須是一致無狀態的服務器能夠支持更多的客戶端Application Layer3-25HTTP連接非持久HTTP連接最多只有一個對象在TCP連
15、接上發送HTTP/1.0使用非持久連接持久連接在客戶端和服務器之間的,多個對象可以在一個TCP連接上傳輸HTTP/1.1 默認使用持久連接Application Layer3-26非持久HTTP連接假設用戶輸入URL 1a. HTTP客戶端在端口號80發起一個到服務器 的連接2. HTTP客戶端向TCP連接的套接字發送HTTP請求報文,報文表示客戶端需要對象 someDepartment/home.index1b. 位于主機 的HTTP服務器在80號端口等待連接,接受連接并通知客戶端3. HTTP服務器接收到請求報文,檢索出被請求的對象,將對象封裝在一個響應報文,并通過其套接字象客戶端發送時間
16、(包含文本和10個就jpeg圖像的引用)Application Layer3-27非持久HTTP (續)5. HTTP客戶端收到包含html文件的響應報文,并顯示html。然后對html文件進行檢查,找到10引用對象6. 對10jpeg對象,重復1-5步4. HTTP關閉TCP連接。時間Application Layer3-28上次課程(2009-3-19)r網絡應用r應用的交互模式rC/SrP2Pr混合r應用編址r應用使用 與傳輸層的界面中的套接字,與遠程的應用進程通信r應用及應用協議r應用要求傳輸提供服務的描述r數據丟失r延遲r帶寬rWeb應用,及支持這個應用的HTTP協議Applicat
17、ion Layer3-29本次課程(2009-3-24)rWeb應用,及支持這個應用的HTTP協議rftp應用,ftp協議rEmail應用,smtp、pop3和IMAP協議Application Layer3-30響應時間模型往返時間RTT(round-trip time):一個小的分組從客戶端到服務器,在回到客戶端的時間(傳輸時間忽略)響應時間:一個RTT用來發起TCP連接一個 RTT用來HTTP請求并等待HTTP響應文件傳輸時間共:2RTT+傳輸時間傳輸文件的時間發起TCP連接RTT請求文件RTT接收文件客戶端時間服務器端時間Application Layer3-31持久HTTP非持久HT
18、TP的缺點:每個對象要2個 RTT操作系統必須為每個TCP連接分配資源但瀏覽器通常打開并行TCP連接,以獲取引用對象持久HTTP服務器在發送響應后,仍保持TCP連接在相同客戶端和服務器之間的后續請求和響應報文通過相同的連接進行傳送非流水方式的持久HTTP:客戶端只能在收到前一個響應后才能發出新的請求每個引用對象花費一個RTT流水方式的持久HTTP: HTTP/1.1的默認模式客戶端遇到一個引用對象就立即產生一個請求所有引用(小)對象只花費一個RTT是可能的Application Layer3-32HTTP請求報文r兩種類型的HTTP報文:請求、響應rHTTP請求報文:rASCII (人能閱讀)
19、GET /somedir/page.html HTTP/1.1Host: User-agent: Mozilla/4.0Connection: close Accept-language:fr (一個額外的換行回車符一個額外的換行回車符) 請求行 (GET, POST, HEAD命令)首部行換行回車符,表示報文結束 Application Layer3-33HTTP請求報文:通用格式Application Layer3-34提交表單輸入Post方式:方法:POST包含表單輸入的Web頁包含在實體主體(entity body )中的輸入被提交到服務器URL方式:方法:GET輸入通過請求行的URL
20、字段上載 參數:wd,cl參數值:XX+YY+zzz,3Application Layer3-35方法類型HTTP/1.0GETPOSTHEAD要求服務器在響應報文中不包含請求對象 故障跟蹤HTTP/1.1GET, POST, HEADPUT將實體主體中的文件上載到URL字段規定的路徑DELETE刪除URL字段規定的文件Application Layer3-36HTTP響應報文HTTP/1.1 200 OK Connection closeDate: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified:
21、 Mon, 22 Jun 1998 . Content-Length: 6821 Content-Type: text/html data data data data data . 狀態行 (協議版本、狀態碼和相應狀態信息)首部行數據,如請求的HTML文件Application Layer3-37HTTP響應狀態碼200 OK請求成功,請求對象包含在響應報文的后續部分請求成功,請求對象包含在響應報文的后續部分301 Moved Permanently請求的對象已經被永久轉移了;新的請求的對象已經被永久轉移了;新的URL在響應報文的在響應報文的Location:首部行中指定首部行中指定客戶端軟
22、件自動用新的客戶端軟件自動用新的URL去獲取對象去獲取對象400 Bad Request一個通用的差錯代碼,表示該請求不能被服務器解讀一個通用的差錯代碼,表示該請求不能被服務器解讀404 Not Found請求的文檔在該服務上沒有找到請求的文檔在該服務上沒有找到505 HTTP Version Not Supported位于服務器客戶端的響應報文中的首行一些狀態碼的例子:Application Layer3-38用戶-服務器狀態:cookies大多數主要的門戶網站使用 cookies4個組成部分:1) 在HTTP響應報文中有一個cookie的首部行2)在HTTP請求報文含有一個cookie的首
23、部行3) 在用戶端系統中保留有一個cookie文件,由用戶的瀏覽器管理4) 在Web站點有一個后端數據庫例子:Susan總是用同一個PC使用Internet Explore上網她第一次訪問了一個使用了Cookie的電子商務網站當最初的HTTP請求到達服務器時,該Web站點產生一個唯一的ID,并以此作為索引在它的后端數據庫中產生一個項Application Layer3-39Cookies: 維護狀態客戶端服務器平常的http請求報文平常的http響應報文 +Set-cookie: 1678 平常的http請求報文cookie: 1678平常的HTTP響應報文平常的http請求報文cookie:
24、 1678平常的HTTP響應報文Cookie特定的動作Cookie特定的動作服務器為用戶建立ID1678后端數據庫中的項訪問訪問Cookie 文件文件amazon: 1678ebay: 8734Cookie文件文件ebay: 8734Cookie文件文件amazon: 1678ebay: 8734一周后:Application Layer3-40Cookies (續)Cookies能帶來什么:用戶驗證購物車推薦用戶狀態 (Web e-mail)Cookies與隱私:Cookies允許站點知道許多關于用戶的信息可能將它知道的東西賣給第三方使用重定向和cookie的搜索引擎還能知道用戶更多的信息如
25、通過某個用戶在大量站點上的行為,了解其個人瀏覽方式的大致模式廣告公司從站點獲得信息Application Layer3-41Web緩存 (代理服務器)r用戶設置瀏覽器: 通過緩存訪問Webr瀏覽器將所有的HTTP 請求發給緩存r在緩存中的對象:緩存直接返回對象r如對象不在緩存,緩存請求原始服務器,然后再將對象返回給客戶端目標:不訪問原始服務器,就滿足客戶的請求客戶端代理服務器客戶端HTTP請求HTTP請求HTTP響應HTTP響應HTTP請求HTTP響應起始服務器起始服務器Application Layer3-42Web緩存r緩存既是客戶端又是服務器r通常緩存是由ISP安裝 (大學、公司、居民區
26、ISP)為什么要使用Web緩存?降低客戶端的請求響應時間可以大大減少一個機構內部網絡與Internent接入鏈路上的流量Application Layer3-43緩存示例假設平均對象大小 = 100kb機構內瀏覽器對原始服務器的平均請求率為 = 15請求/s機構內部路由器到原始服務器再返回到路由器的的延時 (Internet 延時)= 2s結果LAN的流量強度 = 15%接入鏈路上的流量強度 = 100%總延時 = LAN延時 + 接入延時 + Internet 延時 = ms + 分 + 2s起始服務器公共 Internet機構網絡10 Mbps LAN1.5 Mbps 接入鏈路機構內部緩存
27、器Application Layer3-44緩存示例(續)可能的解決方案增加接入鏈路的帶寬,如10 Mbps結果LAN的流量強度 = 15%接入鏈路上的流量強度 = 15%總延時 = LAN延時 + 接入延時 + Internet 延時 = ms + ms + 2s升級通常很昂貴起始服務器公共 Internet機構網絡10 Mbps LAN10 Mbps 接入鏈路機構內部緩存器Application Layer3-45緩存示例(續)安裝緩存器假設命中率為0.4結果40%請求幾乎立即可以得到響應60%請求仍需要通過訪問起始服務器才能滿足接入鏈路的流量強度減少為60%,這時延時可以忽略(10 ms
28、)總延時 = LAN延時 + 接入延時 + Internet 延時 = 0.4*0.01s + 0 .6*(2+0.01) s 1.4 s起始服務器公共 Internet機構網絡10 Mbps LAN1.5 Mbps 接入鏈路機構內部緩存器Application Layer3-46條件GET方法r目標:如果緩存器中的對象拷貝是最新的,就不要發送對象r緩存器: 在HTTP請求中指定緩存拷貝的日期rIf-modified-since: r服務器: 如果緩存拷貝陳舊,則響應報文沒包含對象: rHTTP/1.0 304 Not Modified緩存服務器HTTP請求報文If-modified-sinc
29、e: HTTP響應HTTP/1.0 304 Not Modified對象沒有修改HTTP請求報文If-modified-since: HTTP響應HTTP/1.0 200 OK對象被修改Application Layer3-47Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Socket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-48FTP: 文件傳輸協議r向遠程主機上傳輸文件或從遠程主機接收文件r客
30、戶/服務器模式r客戶端:發起傳輸的一方r服務器:遠程主機rftp: RFC 959rftp服務器:端口號為21NoImage文件傳輸FTP服務器FTP用戶接口FTP客戶端本地文件系統遠程文件系統用戶或主機Application Layer3-49FTP: 控制連接與數據連接分開rFTP客戶端與FTP服務器通過端口21聯系,并使用TCP為傳輸協議r客戶端通過控制連接獲得身份確認r客戶端通過控制連接發送命令瀏覽遠程目錄r收到一個文件傳輸命令時,服務器打開一個到客戶端的數據連接r一個文件傳輸完成后,服務器關閉連接FTP客戶端FTP服務器TCP控制連接port 21TCP數據連接port 20r服務器
31、打開第二個TCP數據連接用來傳輸另一個文件r控制連接: 帶外( “out of band” )傳送rFTP服務器維護用戶的狀態信息:當前路徑、用戶帳戶與控制連接對應r 有狀態Application Layer3-50FTP命令、響應命令樣例:在控制連接上以ASCII文本方式傳送USER usernamePASS passwordLIST:請服務器返回遠程主機當前目錄的文件列表RETR filename:從遠程主機的當前目錄檢索文件 (gets)STOR filename:向遠程主機的當前目錄存放文件 (puts)返回碼樣例:狀態碼和狀態信息 (同HTTP)331 Username OK, pa
32、ssword required125 data connection already open; transfer starting425 Cant open data connection452 Error writing fileApplication Layer3-51Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Socket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-52電子郵件(EMail
33、)3個主要組成部分:用戶代理郵件服務器簡單郵件傳輸協議:SMTP用戶代理又名 “郵件閱讀器”撰寫、編輯和閱讀郵件如Outlook、Foxmail輸出和輸入郵件保存在服務器上用戶郵箱輸出郵件隊列郵件服務器用戶代理用戶代理用戶代理郵件服務器用戶代理用戶代理郵件服務器用戶代理SMTPSMTPSMTPApplication Layer3-53EMail: 郵件服務器郵件服務器 郵箱中管理和維護發送給用戶的郵件輸出報文隊列保持待發送郵件報文郵件服務器之間的SMTP協議:發送email報文客戶:發送方郵件服務器服務器:接收端郵件服務器郵件服務器用戶代理用戶代理用戶代理郵件服務器用戶代理用戶代理郵件服務器用
34、戶代理SMTPSMTPSMTPApplication Layer3-54EMail: SMTP RFC 2821r使用TCP在客戶端和服務器之間傳送報文,端口號為25r直接傳輸:從發送方服務器到接收方服務器r傳輸的3個階段r握手r傳輸報文r關閉r命令/響應交互r命令:ASCII文本r響應:狀態碼和狀態信息r報文必須為7位ASCII碼Application Layer3-55舉例:Alice給Bob發送報文1) Alice使用用戶代理撰寫郵件并發送給 2) Alice的用戶代理將郵件發送到她的郵件服務器;郵件放在報文隊列中3) SMTP的客戶端打開到Bob郵件服
35、務器的TCP連接4) SMTP客戶端通過TCP連接發送Alice的郵件5) Bob的郵件服務器將郵件放到Bob的郵箱6) Bob調用他的用戶代理閱讀郵件用戶代理郵件服務器郵件服務器用戶代理123456Application Layer3-56簡單的SMTP交互 S: 220 C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 alicecrepes.fr. Sender ok C: RCPT TO: S: 250 . R
36、ecipient ok C: DATA S: 354 Enter mail, end with . on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 closing connectionApplication Layer3-57SMTP:總結rSMTP使用持久連接rSMTP要求報文(首部和主體)為7位ASCII編碼rSMTP服務器使用回車決定報文的尾部HTTP比較:HTTP
37、:拉(pull)SMTP:推(push)二者都是ASCII形式的命令/響應交互、狀態碼HTTP:每個對象封裝在各自的響應報文中SMTP:多個對象包含在一個報文中Application Layer3-58郵件報文格式SMTP:交換email報文的協議RFC 822: 文本報文的標準:首部行:如,To:From:Subject:與SMTP命令不同 !主體報文,只能是ASCII碼字符首部主體空行Application Layer3-59報文格式:多媒體擴展rMIME:多媒體郵件擴展(multimedia mail extension), RFC 2045, 2056r在報文首部用額外的行申明MIME
38、內容類型From: alicecrepes.fr To: Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data . . .base64 encoded data 多媒體數據類型、子類型和參數申明數據的編碼方式MIME版本編碼好的數據Application Layer3-60郵件訪問協議rSMTP::傳送到接收方的郵件服務器r郵件訪問協議:從服務器檢索郵件rP
39、OP:郵局訪問協議(Post Office Protocol)RFC 1939r用戶身份確認 (代理服務器) 并下載rIMAP:Internet郵件訪問協議(Internet Mail Access Protocol)RFC 1730r更多特性 (更復雜)r在服務器上處理存儲的報文rHTTP:Hotmail , Yahoo! Mail等r方便用戶代理發送方郵件服務器用戶代理SMTPSMTPPOP3、IMAP、HTTP接收方郵件服務器NoImageNoImageApplication Layer3-61POP3協議用戶確認階段客戶端命令:user: 申明用戶名pass: 口令服務器響應+OK-E
40、RR事物處理階段, 客戶端:list: 報文號列表retr: 根據報文號檢索報文dele: 刪除quit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK POP3 server signing offS: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged onApplication Layer3-62POP3 (續)
41、 與 IMAPPOP3(續)先前的例子使用 “下載并刪除”模式。如果改變客戶機,Bob不能閱讀郵件“下載并保留”:不同客戶機上為報文的拷貝POP3在會話中是無狀態的IMAPIMAP服務器將每個報文與一個文件夾聯系起來允許用戶用目錄來組織報文允許用戶讀取報文組件IMAP在會話過程中保留用戶狀態:目錄名、報文ID與目錄名之間映射本地管理文件夾遠程管理文件夾Application Layer3-63上次課程(上次課程(2009-3-24)rWeb應用,HTTP協議rftp應用,ftp協議rEmail應用,smtp、pop3和IMAP協議Application Layer3-64本次課程(本次課程(2
42、009-3-26)rDNSr分層,分布式數據庫r負責解析域名到IP地址的轉換r還包括:別名、郵件服務器名、負載均衡的作用rP2P 文件共享rNapster:集中目錄服務器rGnultella:完全分布式rKaZaa:分層Application Layer3-65Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Socket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-66DNS: 域名系統(Domain
43、Name System)人類有許多標識(ID):身份證號、名字、學號、護照號Internet上的主機和路由器:IP地址(32位) 用來對數據報進行尋址“名字”,如 人們經常使用Q: 怎樣在IP地址和名字之間建立映射?域名系統:運行在UDP之上,端口號為53一個由分層的DNS服務器實現的分布式數據庫一個允許主機查詢分布式數據庫(地址/名字轉換)的應用層協議注意:核心的Internet功能,但以應用層協議實現在網絡邊緣處理復雜性Application Layer3-67DNS 為什么不是集中式的DNS?單點故障通信容量遠距離的集中式數據庫維護不可擴展!DNS服務主機名到IP地址的轉換主機別名規范名
44、字和別名relay1.west- 郵件服務器別名負載分配冗余的Web服務器:一系列的IP地址對應同一個規范名字Application Layer3-68根DNS服務器com DNS 服務器org DNS服務器edu DNS 服務器DNS服務器DNS服務器DNS服務器DNS服務器DNS服務器分布式的、分層的數據庫客戶端查詢 的IP地址:客戶端向一個根服務器查詢,找到com DNS服務器客戶端com DNS服務器查詢,找到 DNS 服務器客戶端向 DNS服務器查詢,得到 的IP地址Application Layer3-69DNS: 根名字服務器r當與
45、本地名字服務器不能解析名字時,聯系根名字服務器r根名字服務器:r如果不知道名字映射,與權威名字服務器聯系r得到映射r將映射返回到本地名字服務器共有13個根名字服務器b USC-ISI Marina del Rey, CAl ICANN Los Angeles, CAe NASA Mt View, CAf Internet Software C. Palo Alto, CA (and 17 other locations)i Autonomica, Stockholm (plus 3 other locations)k RIPE London (also Amsterdam, Frankfurt
46、)m WIDE Tokyoa Verisign, Dulles, VAc Cogent, Herndon, VA (also Los Angeles)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 11 locations)Application Layer3-70TLD服務器與權威服務器r頂級域(TLD)服務器:負責頂級域名(如com, org, net, edu和gov)和所有國家級的頂級域名(如cn, uk, fr, ca, jp ).rNetwork solutions 公司
47、維護com TLD服務器rEducause公司維護edu TLD服務器r權威DNS服務器:組織機構的DNS服務器, 提供組織機構服務器(如Web和mail)可訪問的主機和IP之間的映射r組織機構可以選擇實現自己維護或由某個服務提供商來維護Application Layer3-71本地名字服務器r并不嚴格屬于層次結構r每個ISP (居民區的ISP、公司、大學)都有一個本地DNS服務器r也稱為“默認名字服務器”r當一個主機發起一個DNS查詢時,查詢被送到其本地DNS服務器r起著代理的作用,將查詢轉發到層次結構中Application Layer3-72發出請求的主機gaia
48、.根DNS服務器本地DNS服務器123456權威DNS服務器78TLD DNS 服務器例子r主機 想知道主機 的IP地址Application Layer3-73發起請求的主機根DNS服務器本地DNS服務器12456權威DNS服務器78TLD DNS服務器3遞歸查詢遞歸查詢:名字解析負擔都放在當前聯絡的名字服務器上疊代查詢:當前聯絡的服務器給出可
49、以聯系的服務器的名字“我不知道這個名字,但可以向這個服務器請求”Application Layer3-74DNS:緩存和記錄更新r一旦名字服務器學到了一個映射,就將該映射緩存起來r緩存記錄在一定時間后就丟棄(默認2天)rTLD服務器通常都在本地服務器中緩存著r使得根服務器不用經常被訪問r更新機制由IETF設計rRFC 2136r Application Layer3-75DNS記錄DNS 保存資源記錄(RR)的分布式數據庫rType=NSrName域名(如)rValue為該域名的權威服務器的域名RR 格式:(name, value, type, ttl)rType=ArName為主機rValu
50、e為IP地址rType=CNAMErName為規范名字的別名r 的規范名字為r rvalue 為規范名字rType=MXrValue為name對應的郵件服務器的名字TTL:生存時間,決定了資源記錄應當從緩存中刪除的時間Application Layer3-76DNS協議、報文DNS協議:查詢和響應報文的報文格式相同報文首部標識符(ID):16位flags:查詢/應答希望遞歸遞歸可用應答為權威Application Layer3-77DNS協議、報文一個查詢的Name, type字段對應查詢的RR記錄權威服務器的記錄附加的有用信息Application Layer3-78在DNS服務器中插入記錄
51、r例子:建立一個“Network Utopia”r到注冊登記機構注冊域名 (在中國,CNNIC)r需要向該機構提供權威DNS服務器(基本的、和輔助的)的名字和IP地址r登記機構在com TLD服務器中插入兩條RR記錄:r(, , NS)r(, , A)r在的權威服務器中確保有r用于Web服務器的 的類型為A的記錄r用于郵件服務器的類型為MX的記錄Application Layer3-79Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Soc
52、ket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-80P2P文件共享例子Alice在其筆記本電腦上運行P2P客戶端程序間歇性地連接到Internet,每次從其ISP得到新的IP地址請求“雙截棍.MP3”應用程序顯示其他有“雙截棍.MP3” 拷貝的對等方rAlice選擇其中一個對等方,如Bob.r文件從Bobs PC傳送到 Alice的筆記本上:HTTPr當Alice下載時,其他用戶也可以從Alice處下載rAlice的對等方既是一個Web客戶端,也是一個瞬時Web服務器r所有的對等方都是服務器r = 可擴展性好!Applicat
53、ion Layer3-81P2P文件共享r兩大問題:r如何定位所需資源r如何處理對等方的加入與離開r可能的方案r集中r分散r半分散Application Layer3-82P2P:集中式目錄最初的“Napster”設計1) 當對等方連接時,它告知中心服務器:IP地址內容2) Alice查詢 “雙截棍.MP3”3) Alice從Bob處請求文件集中式目錄服務器對等方AliceBob111123Application Layer3-83P2P:集中式目錄中存在的問題r單點故障r性能瓶頸r侵犯版權 文件傳輸是分散的,而定位內容則是高度集中的Application Layer3-84查詢洪泛:Gnut
54、ellar全分布式r沒有中心服務器r開放文件共享協議r許多Gnutella客戶端實現了Gnutella協議r類似HTTP有許多的瀏覽器覆蓋網絡:圖如果X和Y之間有一個TCP連接,則二者之間存在一條邊所有活動的對等方和邊就是覆蓋網絡邊并不是物理鏈路給定一個對等方,通常所連接的節點少于10個Application Layer3-85Gnutella:協議查詢查詢命中查詢查詢查詢命中查詢查詢查詢命中文件傳輸:HTTPr 在已有的TCP連接上發送查詢報文r 對等方轉發查詢報文r 以反方向返回查詢命中報文可擴展性:限制范圍的洪泛查詢Application Layer3-86Gnutella:對等方加入1
55、.對等方X必須首先發現某些已經在覆蓋網絡中的其他對等方:使用可用對等方列表2.自己維持一張對等方列表(經常開機的對等方的IP)3.聯系維持列表的Gnutella站點4.X接著試圖與該列表上的對等方建立TCP連接,直到與某個對等方Y建立連接5.X向Y發送一個Ping報文,Y轉發該Ping報文6.所有收到Ping報文的對等方以Pong報文響應7.IP地址、共享文件的數量及總字節數8.X收到許多Pong報文,然后它能建立其他TCP連接9.對等方離開?Application Layer3-87利用不勻稱性:KaZaAr每個對等方要么是一個組長,要么隸屬于一個組長r對等方與其組長之間有TCP連接r組長對
56、之間有TCP連接r組長跟蹤其所有的孩子的內容r組長與其他組長聯系r轉發查詢到其他組長r獲得其他組長的數據拷貝普通對等方組長對等方在覆蓋網絡中的鄰接關系Application Layer3-88KaZaA:查詢r每個文件有一個散列標識碼和一個描述符r客戶端向其組長發送關鍵字查詢r組長用匹配進行響應:r對每個匹配:元數據、散列標識碼和IP地址r如果組長將查詢轉發給其他組長,其他組長也以匹配進行響應r客戶端選擇要下載的文件r向擁有文件的對等方發送一個帶散列標識碼的HTTP請求Application Layer3-89Kazaa小技巧r請求排隊r限制并行上載的數量r確保每個被傳輸的文件從上載節點接收一
57、定量的帶寬r激勵優先權r鼓勵用戶上載文件r加強系統的擴展性r并行下載r從多個對等方下載同一個文件的不同部分rHTTP的字節范圍首部r更快地檢索一個文件Application Layer3-90上次課程(2010-3-26)rDNSr分層,分布式數據庫r負責解析域名到IP地址的轉換r還包括:別名、郵件服務器名、負載均衡的作用rP2P 文件共享rNapster:集中目錄服務器rGnultella:完全分布式rKaZaa:分層Application Layer3-91本次課程(2008-3-31)rTCP Socket編程rUDP Socket編程r第三章的概述r問題:實驗安排在哪些時段比較合適?A
58、pplication Layer3-92Chapter 2:線路圖2.1 應用層協議原理2.2 Web and HTTP2.3 FTP2.4 EMail2.5 DNS2.6 P2P 文件共享*2.7 TCP 套接字( Socket )編程*2.8 UDP 套接字編程*2.9 構造一個簡單的Web服務器Application Layer3-93套接字編程Socket API應用程序顯式地創建、使用和釋放 客戶端/服務器模式 通過socket API的兩種類型的傳輸服務: 不可靠的數據報服務可靠的字節流服務一個由本地主機應用程序創建的、由操作系統控制的接口(門戶)。通過該門戶,應用進程可以從另一個
59、應用進程接收和向另一個應用進程發送報文。套接字目標: 學會怎樣創建客戶端/服務器應用程序,彼此之間通過套接字進行通信Application Layer3-94TCP套接字編程套接字:應用進程與端到端傳輸協議(TCP或UDP)之間的門戶TCP服務:從一個進程向另一個進程可靠地傳輸字節流進程具有緩存、變量的TCP套接字由應用程序開發者控制由操作系統控制主機或服務器進程具有緩存、變量的TCP套接字由應用程序開發者控制由操作系統控制主機或服務器InternetApplication Layer3-95TCP套接字編程客戶端必須與服務器聯系服務器進程必須先處于運行狀態服務器必須有套接字(歡迎之門)打開,
60、歡迎客戶端與之聯系客戶端通過下列過程與服務器聯系創建客戶端本地套接字指定服務器進程的IP地址和端口號當客戶端創建套接字時,客戶端TCP與服務器的TCP建立了連接r當與客戶端聯系時,服務器TCP建立一個新的套接字用于服務器進程與客戶端通信r允許服務器與多個客戶端通信TCP在客戶端和服務器之間提供了可靠的字節流(管道)服務從應用程序的角度Application Layer3-96流(Stream)r流是流入或流出進程的字符序列r輸入流與進程的某個輸入源相關,如鍵盤或套接字r輸出流與進程的輸出源相關,如顯示器或套接字Application Layer3-97outToServer到傳輸層 來自傳輸層
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北斗監控考試題及答案
- 保險高考試題及答案
- 老年教育個性化課程設置與多元教學模式創新研究報告
- 安全實踐操作試題及答案
- 2025年鄉村振興戰略下職業技能培訓的多元化發展報告
- 中國歷史災難課件
- 國企法律思維培訓課件
- 周末表揚小學生的課件
- 寵物專業入學教育
- 中國剪紙分類
- 藥物配伍禁忌查詢表
- 水 泵 安 裝 記 錄
- 大健康產業商業計劃書
- GB∕T 7528-2019 橡膠和塑料軟管及軟管組合件 術語
- 常州市機械行業安管考試題庫
- 門店日常衛生檢查表
- FANUC機器人R-2000iA機械單元維護手冊
- 槽邊排風罩的設計計算
- 中國當代文學專題-國家開放大學2022年1月期末考試復習資料-漢語言本科復習資料
- 機動車維修經營備案表
- 超星爾雅學習通《國際金融》2020章節測試含答案(上)
評論
0/150
提交評論