版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2:應(yīng)用層1第二章應(yīng)用層2:應(yīng)用層2第二章應(yīng)用層目的:
網(wǎng)絡(luò)應(yīng)用及應(yīng)用層協(xié)議的概念、實現(xiàn)傳輸層服務(wù)模型客戶服務(wù)器模式對等模式peer-to-peer通過對主流應(yīng)用層協(xié)議分析來掌握應(yīng)用層協(xié)議HTTPFTPSMTP/POP3/IMAPDNS網(wǎng)絡(luò)應(yīng)用編程socketAPI2:應(yīng)用層3第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層4一些網(wǎng)絡(luò)應(yīng)用電子郵件Web即時訊息遠程登陸P2P文件共享在兩臺計算機之間的兩個帳戶之間的文件傳輸多用戶網(wǎng)絡(luò)游戲流式存儲視頻片段因特網(wǎng)電話實時視頻會議2:應(yīng)用層5研發(fā)網(wǎng)絡(luò)應(yīng)用程序研發(fā)網(wǎng)絡(luò)應(yīng)用程序的核心:寫出能夠運行在不同的端系統(tǒng)并通過網(wǎng)絡(luò)彼此通信的程序例如,Web:Web服務(wù)器軟件和瀏覽器軟件通信應(yīng)用層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層應(yīng)用層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層應(yīng)用層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層沒有應(yīng)用程序軟件運行在網(wǎng)絡(luò)核心設(shè)備上網(wǎng)絡(luò)核心設(shè)備不在應(yīng)用層起作用這種設(shè)計方法促進了應(yīng)用程序的研發(fā)2:應(yīng)用層6網(wǎng)絡(luò)應(yīng)用程序體系結(jié)構(gòu)客戶機/服務(wù)器體系結(jié)構(gòu)P2P體系結(jié)構(gòu)客戶機/服務(wù)器和P2P混合的體系結(jié)構(gòu)2:應(yīng)用層7客戶機/服務(wù)器體系結(jié)構(gòu)服務(wù)器:
總是打開的主機具有固定的、眾所周知的IP地址主機群集常被用于創(chuàng)建強大的虛擬服務(wù)器客戶機:同服務(wù)器端通信可以間斷的同服務(wù)器連接可以擁有動態(tài)IP地址客戶機相互之間不直接通信2:應(yīng)用層8純P2P體系結(jié)構(gòu)沒有總是打開的服務(wù)器任意一對主機直接相互通信對等方間歇連接并且可以改變IP地址例如:Gnutella優(yōu)點:自擴展性缺點:難以管理2:應(yīng)用層9客戶機/服務(wù)器和P2P混合的體系結(jié)構(gòu)Napster文件直接在對等方之間交換文件搜索通過服務(wù)器中心服務(wù)器記錄對等方內(nèi)容對等方查詢中心服務(wù)器來決定要求的文件位置即時訊息兩個聊天用戶之間是P2P注冊、查詢通過服務(wù)器用戶上線時要在中心服務(wù)器上進行注冊用戶與中心服務(wù)器聯(lián)系以找出在線伙伴2:應(yīng)用層10進程通信進程:運行在端系統(tǒng)中的程序同一主機上的兩個進程通過內(nèi)部進程通信機制進行通信不同主機上的進程通過交換報文相互通信客戶進程:發(fā)起通信的進程服務(wù)器進程:
等待聯(lián)系的進程注意:具有P2P體系結(jié)構(gòu)的應(yīng)用程序既有客戶進程和服務(wù)器進程。2:應(yīng)用層11進程與計算機網(wǎng)絡(luò)的接口-套接字進程通過它的套接字在網(wǎng)絡(luò)上發(fā)送和接收報文套接字類比于門戶發(fā)送進程把報文推出門戶發(fā)送進程假定門戶到另外一側(cè)之間有運輸設(shè)施,該設(shè)施可以傳送報文到接收進程由操作系統(tǒng)控制進程具有緩存、變量的TCP套接字主機或服務(wù)器進程具有緩存、變量的TCP套接字主機或服務(wù)器Internet由應(yīng)用開發(fā)者控制套接字又叫做應(yīng)用程序編程接口API用戶通過API對傳輸層的控制僅限于: (1)選擇傳輸協(xié)議;(2)能設(shè)定幾個參數(shù)2:應(yīng)用層12進程尋址為了一個進程能接收報文,它需要一個標(biāo)識主機有唯一的32位IP地址問:主機的IP地址足夠標(biāo)識進程嗎?答:不能。因為一臺主機上能夠運行許多進程。主機上的進程標(biāo)識包括IP地址和端口號常用應(yīng)用程序的端口號:Web服務(wù):80郵件服務(wù):25 將在第三章詳細分析端口號2:應(yīng)用層13應(yīng)用層協(xié)議交換的報文類型,如請求報文和應(yīng)答報文報文類型的語法:報文中的各個字段及其詳細描述字段的語義,即包含在字段中的信息的含義進程何時、如何發(fā)送報文及對報文進行響應(yīng)公共領(lǐng)域協(xié)議:由RFC文檔定義可供大家使用例如:HTTP,SMTP專用協(xié)議:例如:KaZaA,Skype等2:應(yīng)用層14應(yīng)用需要什么樣的服務(wù)?數(shù)據(jù)丟失率一些應(yīng)用(如:實時音頻)能容忍一定程度的數(shù)據(jù)丟失另一些應(yīng)用(如:文件傳輸,telnet)需要100%可靠的數(shù)據(jù)傳輸定時一些應(yīng)用(如:因特網(wǎng)電話、多方游戲)要求低時延帶寬和吞吐量一些應(yīng)用(如:多媒體)必須要達到所需帶寬另一些應(yīng)用(彈性應(yīng)用)根據(jù)需要充分利用可供使用的帶寬安全加密,數(shù)據(jù)完整性等2:應(yīng)用層15常見應(yīng)用的傳輸服務(wù)需求時間敏感不不不是,100msec是,幾秒是,100msec是和不是應(yīng)用文件傳輸電子郵件Web實時音頻/視頻存儲音頻/視頻交互式游戲即時訊息數(shù)據(jù)丟失不能丟失不能丟失不能丟失容忍丟失容忍丟失容忍丟失不能丟失帶寬彈性彈性彈性音頻:幾kbps-1Mbps視頻:10kbps-5Mbps同上幾kbps以上彈性2:應(yīng)用層16因特網(wǎng)運輸協(xié)議提供的服務(wù)TCP服務(wù):面向連接的服務(wù):在客戶機程序和服務(wù)器程序之間必須建立連接可靠的傳輸服務(wù):
接收和發(fā)送進程間流量控制:發(fā)送方不會淹沒接收方
擁塞控制:網(wǎng)絡(luò)出現(xiàn)擁塞時抑制發(fā)送進程沒有提供:時延保證,最小帶寬保證UDP服務(wù):不可靠數(shù)據(jù)傳輸沒有提供:建立連接,可靠性,流量控制,擁塞控制,時延和帶寬保證2:應(yīng)用層17因特網(wǎng)應(yīng)用:應(yīng)用層協(xié)議,傳輸協(xié)議應(yīng)用電子郵件遠程終端訪問Web文件傳輸流媒體因特網(wǎng)電話應(yīng)用層協(xié)議SMTP[RFC2821]Telnet[RFC854]HTTP[RFC2616]FTP[RFC959]通常專用(e.g.RealNetworks)通常專用(e.g.,Skype)下面的傳輸協(xié)議TCPTCPTCPTCPTCPorUDP典型用UDP2:應(yīng)用層18安全TCPTCP和UDP沒有加密網(wǎng)絡(luò)明文傳輸,如用戶名和口令信息等SSL(SecuritySocketLayer)提供加密的TCP連接保證數(shù)據(jù)完整性端點認(rèn)證SSL在應(yīng)用層應(yīng)用使用SSL庫調(diào)用TCP服務(wù)接口SSL提供套接字API2:應(yīng)用層19第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層20Web和HTTP常用術(shù)語網(wǎng)頁(Web頁,或稱文檔)由許多對象組成。對象就是文件,可以是HTML文件,JPEG圖像,Javaapplet,音頻文件…多數(shù)網(wǎng)頁由單個基本HTML文件和若干個所引用的對象構(gòu)成每個對象被一個URL(UniformResourceLocator統(tǒng)一資源定位符)尋址舉例URL:/someDept/pic.gif主機名路徑名協(xié)議2:應(yīng)用層21HTTP概述HTTP:超文本傳輸協(xié)議hypertexttransferprotocolWeb的應(yīng)用層協(xié)議client/server模式client:瀏覽器browser請求,接收,“解釋顯示”Web對象server:Web服務(wù)器響應(yīng)請求,發(fā)送Web對象HTTP1.0:RFC1945HTTP1.1:RFC2616PCrunningExplorerServerrunningApacheWebserverMacrunningNavigatorHTTPrequestHTTPrequestHTTPresponseHTTPresponse2:應(yīng)用層222.HTTP概述(續(xù))使用TCP:客戶初始化一個與HTTP服務(wù)器80端口的TCP連接(創(chuàng)建套接字)HTTP服務(wù)器接受來自客戶的TCP連接請求,建立連接Browser(HTTPclient)和Web服務(wù)器(HTTPserver)交換HTTP消息(應(yīng)用層協(xié)議消息)包括HTTP請求和響應(yīng)消息最后結(jié)束(或叫關(guān)閉)TCP連接HTTP是無狀態(tài)協(xié)議HTTP服務(wù)器不維護客戶先前的狀態(tài)信息維護狀態(tài)的協(xié)議非常復(fù)雜!必須維護過去歷史(狀態(tài)信息)如果server/client崩潰,它們各自的狀態(tài)視圖可能不一致,因此必須保持協(xié)調(diào)一致。補充2:應(yīng)用層233.HTTP連接持久HTTP連接一個TCP連接上可以傳送多個對象HTTP/1.1默認(rèn)使用持久HTTP連接非持久HTTP連接每個TCP連接上只傳送一個對象,下載多個對象需要建立多個TCP連接HTTP/1.0使用非持久HTTP連接2:應(yīng)用層24(1).非持久HTTP連接假設(shè)用戶輸入URL
http://www.someS/someDepartment/home.index1a.HTTP客戶初始化1個與服務(wù)器主機www.someS中HTTP服務(wù)器的TCP連接
2.HTTP客戶發(fā)送1個HTTP請求消息(requestmessage
)包含URL到TCP連接套接字.消息指出客戶要Web對象-someDepartment/home.index1b.www.someS服務(wù)器主機中的HTTP服務(wù)器在80端口監(jiān)聽來自HTTP客戶的TCP連接請求.收到連接請求,接受,建立連接,通知客戶.3.HTTP服務(wù)器接收請求消息,產(chǎn)生1個響應(yīng)消息responsemessage包含被請求對象,并發(fā)送這個消息到自身TCP連接套接字time網(wǎng)頁由1個HTML文件,和10個jpeg圖像構(gòu)成2:應(yīng)用層25(1).非持久HTTP連接(續(xù).)5.HTTP客戶接收包含html文件的響應(yīng)消息,顯示html.解析html文件,找出10個引用jpeg對象6.對10個引用jpeg對象的每1個重復(fù)步驟1-54.HTTP服務(wù)器結(jié)束TCP連接.time2:應(yīng)用層26響應(yīng)時間模型定義往返時間RTT(Round-TripTime):1個小分組從客戶主機到服務(wù)器再到客戶主機所花費的時間.響應(yīng)時間:1個RTT用于建立TCP連接1個RTT用于HTTP請求/響應(yīng)消息的交互Html文件傳輸時間total=2RTT+transmittime傳輸文件的時間發(fā)起TCP連接RTT請求文件RTT接收整個文件客戶機的時間服務(wù)器的時間2:應(yīng)用層27持久HTTP連接非持久HTTP連接的問題:每個對象需要2個RTTOS必須為每個TCP連接分配主機資源大量客戶的并發(fā)TCP連接形成服務(wù)器的嚴(yán)重負擔(dān)持久HTTP連接服務(wù)器發(fā)送響應(yīng)消息后保持連接同1客戶/服務(wù)器的后續(xù)HTTP消息繼續(xù)在該連接上傳送不帶流水線的持久HTTP連接:客戶先前響應(yīng)消息收到,才發(fā)出新的請求消息每個引用對象經(jīng)歷1個RTT帶流水線的持久HTTP連接:HTTP/1.1默認(rèn)使用客戶遇到1個引用對象就發(fā)送請求消息所有引用對象只經(jīng)歷1個RTT2:應(yīng)用層28HTTP報文格式2類HTTP報文:請求報文request,響應(yīng)報文responseHTTP請求報文:ASCII文本(易于人讀格式)GET/somedir/page.htmlHTTP/1.1Host:User-agent:Mozilla/4.0//該代理類型的對象版本Connection:Close//不使用持久連接Accept-language:zh-cn//中文版本(額外的回車換行)
請求行(GET,POST,HEAD)頭部行回車換行指示結(jié)束2:應(yīng)用層29HTTP請求報文:通用格式URI版本spcrlfsp方法值spcrlf首部字段名:值spcrlf首部字段名:crlf請求行首部行空行實體主體注:URI=UniformResourceIdentifiers2:應(yīng)用層30方法類型HTTP/1.0GETPOSTHEAD服務(wù)器收到請求時,用HTTP報文進行響應(yīng),但不返回請求對象HTTP/1.1GET,POST,HEADPUT文件在實體主體中被上載到URL字段指定的路徑DELETE刪除URL字段指定的文件2:應(yīng)用層31上載表單(各字段)輸入值Post方法:網(wǎng)頁時常包含表單輸入輸入值在請求報文的實體主體中被上載到服務(wù)器URL方法:使用GET方法表單(各字段)輸入值被上載,以URL請求行的字段:/animalsearch?monkeys&banana2:應(yīng)用層32HTTP響應(yīng)消息HTTP/1.1200OKConnection:closeDate:Sat,06Aug201112:00:15GMTServer:Apache/1.3.0(Unix)Last-Modified:Thu,22Jun2011…...Content-Length:6821Content-Type:text/html
datadatadatadatadata...狀態(tài)行(版本、狀態(tài)編碼、短語)首部行數(shù)據(jù),e.g.,被請求的HTML文件2:應(yīng)用層33HTTP響應(yīng)的狀態(tài)碼200OK請求成功,所請求信息在響應(yīng)消息中返回301MovedPermanently所請求的對象已永久遷移,新的URL在本響應(yīng)消息的(location:)頭部指出400BadRequest該請求不能被服務(wù)器解讀404NotFound服務(wù)器上不存在所請求文檔505HTTPVersionNotSupported位于服務(wù)器響應(yīng)客戶的響應(yīng)消息的第一行.幾個常見的樣本狀態(tài)碼:2:應(yīng)用層34用戶與服務(wù)器交互:Cookies舉例:李四總是使用同臺PC訪問Internet他首次訪問1個電子商務(wù)網(wǎng)站當(dāng)他最初發(fā)出HTTP請求訪問該站點時,該站點創(chuàng)建一個唯一的ID,并在后端數(shù)據(jù)庫創(chuàng)建一個響應(yīng)于該ID表項2:應(yīng)用層35Cookies:跟蹤用戶(續(xù).)clientserverusualhttprequestmsgusualhttpresponse+Set-cookie:1678usualhttprequestmsgcookie:1678usualhttpresponsemsgusualhttprequestmsgcookie:1678usualhttpresponsemsgcookie-specificactioncookie-spectificactionservercreatesID1678foruserentryinbackenddatabaseaccessaccessCookiefile李四:1678CookiefileCookiefile李四:1678一周后:2:應(yīng)用層36用戶與服務(wù)器交互:CookiesCookies的4個重要方面:1)cookie頭部行在HTTP響應(yīng)消息中2)cookie頭部行在HTTP請求消息中3)cookie文件保存在用戶主機中并被用戶瀏覽器管理4)cookie也保存在Web站點的后端數(shù)據(jù)庫2:應(yīng)用層37Cookies:跟蹤用戶(續(xù).)Cookies可以帶來什么?身份認(rèn)證虛擬購物車(跟蹤用戶購買的物品)推薦廣告用戶會話狀態(tài)(Webe-mail)Cookies和隱私:cookies允許網(wǎng)站更加了解你你可以提供名字和e-mail給網(wǎng)站廣告公司通過網(wǎng)站獲得信息Cookies不適合游動用戶補充2:應(yīng)用層38Web緩存(代理服務(wù)器)目標(biāo):代表起始服務(wù)器滿足HTTP請求。用戶配置瀏覽器:Web訪問經(jīng)由緩存所有HTTP請求指向緩存對象在緩存中:緩存器返回對象否則緩存器向起始服務(wù)器發(fā)出請求,接收對象后轉(zhuǎn)發(fā)給客戶機客戶機代理服務(wù)器客戶機HTTP請求HTTP請求HTTP響應(yīng)HTTP響應(yīng)HTTP請求HTTP響應(yīng)起始服務(wù)器起始服務(wù)器HTTP請求HTTP響應(yīng)2:應(yīng)用層39Web緩存(續(xù))緩存器既是服務(wù)器又是客戶機一般的,Web緩存器既是服務(wù)器又是客戶機典型的緩存器被ISP提供(大學(xué)、公司或居民ISP)為什么需要Web緩存器?減少對客戶機請求的響應(yīng)時間減少內(nèi)部網(wǎng)絡(luò)與接入鏈路上的通信量能從整體上大大降低因特網(wǎng)上的Web流量2:應(yīng)用層40緩存器舉例假設(shè)對象平均長度=100,000bits瀏覽器對對象的平均訪問速率=15/sec因特網(wǎng)時延=2sec結(jié)論局域網(wǎng)上的流量強度=0.15鏈路上的流量強度=1總延時=因特網(wǎng)時延+接入時延+局域網(wǎng)時延=2秒+數(shù)分鐘+數(shù)毫秒起始服務(wù)器公共Internet機構(gòu)網(wǎng)絡(luò)10MbpsLAN1.5Mbps接入鏈路2:應(yīng)用層41緩存器舉例(續(xù))可能的解決辦法增加接入鏈路的速率結(jié)論局域網(wǎng)上的流量強度=15%鏈路上的流量強度=15%總時延=因特網(wǎng)時延+接入時延+局域網(wǎng)時延=2秒+數(shù)毫秒+數(shù)毫秒這種方案需要較大的投資起始服務(wù)器公共Internet機構(gòu)網(wǎng)絡(luò)10MbpsLAN1.5Mbps接入鏈路2:應(yīng)用層42緩存器舉例(續(xù))安裝緩存器假設(shè)緩存器命中率為0.4結(jié)論40%的請求立即會得到響應(yīng)60%的請求通過訪問起始服務(wù)器滿足鏈路上的流量強度減為0.6,可以忽略不計總的平均延時=因特網(wǎng)時延+接入時延+局域網(wǎng)時延=0.6*2秒+數(shù)毫秒<1.4秒起始服務(wù)器公共Internet機構(gòu)網(wǎng)絡(luò)10MbpsLAN1.5Mbps接入鏈路機構(gòu)緩存器2:應(yīng)用層43條件GET方法目的:證實緩存器中的對象是否為最新緩存器:在請求報文中包含對象最后修改時間If-modified-since:<date>服務(wù)器:如果對象是最新的則響應(yīng)報文中不包含對象:HTTP/1.0304NotModifiedcacheserverHTTPrequestmsgIf-modified-since:<date>HTTPresponseHTTP/1.0304NotModifiedobjectnotmodifiedHTTPrequestmsgIf-modified-since:<date>HTTPresponseHTTP/1.0200OK<data>objectmodified2:應(yīng)用層44第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP
2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程*2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層45FTP:文件傳輸協(xié)議
FileTransferProtocol傳輸文件到遠程主機/從遠程主機下載文件client/server模式client:發(fā)起傳輸?shù)囊环絪erver:遠程主機ftp:RFC959ftp服務(wù)器:端口號21文件傳輸FTP服務(wù)器FTP用戶接口FTP客戶機本地文件系統(tǒng)遠程文件系統(tǒng)用戶2:應(yīng)用層46FTP:獨立的控制連接,數(shù)據(jù)連接FTP客戶首先發(fā)起建立1個與FTP服務(wù)器端口號21之間的TCP控制連接,指定TCP作為傳輸層協(xié)議客戶在建立的控制連接上獲得身份認(rèn)證客戶在建立的控制連接上發(fā)送命令來瀏覽遠程主機的目錄.當(dāng)服務(wù)器接收到1個文件傳輸命令時,在服務(wù)器端口號20創(chuàng)建1個與客戶的TCP數(shù)據(jù)連接1個文件傳輸后,服務(wù)器結(jié)束這個TCP數(shù)據(jù)連接.FTP客戶機FTP服務(wù)器TCP控制連接端口21TCP數(shù)據(jù)連接端口20服務(wù)器創(chuàng)建第2個TCP與客戶的數(shù)據(jù)連接來傳輸下一個文件.控制連接:帶外發(fā)送控制信息FTP服務(wù)器要維護用戶狀態(tài)信息:當(dāng)前目錄,先前的身份認(rèn)證2:應(yīng)用層47FTP:文件傳輸協(xié)議控制連接:USER-PI(protocolinterpreter):用戶協(xié)議解釋器SERVER-PI:服務(wù)器協(xié)議解釋器數(shù)據(jù)連接:user-DTP(DataTransferProcess):用戶數(shù)據(jù)傳輸進程server-DTP:服務(wù)器數(shù)據(jù)傳輸進程2:應(yīng)用層48FTP:文件傳輸系統(tǒng)模型一文件系統(tǒng)ServerFTPServerPIServerDTP用戶接口UserPIUserDTP用戶文件系統(tǒng)UserFTP控制連接數(shù)據(jù)連接2:應(yīng)用層49FTP:文件傳輸系統(tǒng)模型二文件系統(tǒng)ServerFTPServerPIServerDTP用戶接口ServerPIServerDTP用戶文件系統(tǒng)ServerFTP控制連接數(shù)據(jù)連接UserPI控制連接2:應(yīng)用層50FTP數(shù)據(jù)連接建立方式主動模式:客戶端發(fā)送PORT命令PORTh1,h2,h3,h4,p1,p2(h1-h4是IP地址,p1-p2是端口號)服務(wù)器根據(jù)PORT命令指定的客戶端地址和端口號發(fā)起數(shù)據(jù)連接被動模式:客戶端發(fā)送PASV命令服務(wù)器返回監(jiān)聽的地址和端口號客戶端發(fā)起數(shù)據(jù)連接2:應(yīng)用層51FTP命令和應(yīng)答常見命令:在控制連接上發(fā)送ASCII文本USERusernamePASSpasswordLIST:返回當(dāng)前遠程目錄的文件列表RETRfilename:獲取遠程主機當(dāng)前目錄下的1個文件(get)
STORfilename:存放1個文件到遠程主機當(dāng)前目錄下(put)常見應(yīng)答:狀態(tài)碼及其相應(yīng)短語(同HTTP)331UsernameOK,passwordrequired125dataconnectionalreadyopen;transferstarting425Can’topendataconnection452Errorwritingfile2:應(yīng)用層52第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層53電子郵件3個主要組成部分:
用戶代理useragents郵件服務(wù)器mailservers簡單郵件傳送協(xié)議和郵件接收協(xié)議用戶代理:允許用戶閱讀,回復(fù),轉(zhuǎn)發(fā),保存,編輯郵件消息例如:Outlook,foxmail等發(fā)送,接收郵件消息到/從服務(wù)器運行郵件協(xié)議用戶郵箱外出報文隊列mailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserveruseragentSMTPSMTPSMTP2:應(yīng)用層54電子郵件:郵件服務(wù)器郵件服務(wù)器
郵箱mailbox存放用戶接收的郵件消息外出報文隊列outgoing
message
queue運行郵件協(xié)議useragentmailserveruseragentuseragentmailserveruseragentuseragentmailserveruseragentSMTPSMTPSMTP2:應(yīng)用層55電子郵件:SMTP[RFC5321]
SimpleMailTransferProtocol客戶使用TCP來可靠傳輸郵件消息到服務(wù)器端口號25直接傳送:發(fā)送服務(wù)器到接收服務(wù)器傳輸?shù)?個階段握手(問候)郵件消息的傳輸結(jié)束命令/應(yīng)答的交互命令:ASCII文本格式應(yīng)答:狀態(tài)碼及其短語郵件消息必須是7-bitASCII2:應(yīng)用層56例子:Alice發(fā)送郵件消息到Bob1)Alice使用用戶代理編寫郵件消息(給bob@的)2)Alice的用戶代理發(fā)送郵件消息到她的郵件服務(wù)器;郵件消息存放在郵件消息隊列3)Alice郵件服務(wù)器的SMTP客戶端發(fā)起建立一個到Bob的郵件服務(wù)器的SMTP服務(wù)器端的TCP連接,經(jīng)過應(yīng)用層握手.4)SMTP客戶在這個TCP連接上發(fā)送Alice的郵件消息5)Bob服務(wù)器存放郵件消息存到Bob的郵箱6)Bob調(diào)用他的用戶代理讀郵件消息useragentmailservermailserveruseragent1234562:應(yīng)用層57SMTP客戶和服務(wù)器的命令交互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:221closingconnection2:應(yīng)用層58SMTP:總結(jié)SMTP使用持久連接SMTP要求郵件消息(header&body)必須是7-bitASCIISMTP服務(wù)器使用CRLF.CRLF
來判斷郵件消息的結(jié)束與HTTP的比較:HTTP:拉協(xié)議SMTP:推協(xié)議都有ASCII命令/應(yīng)答交互,狀態(tài)碼HTTP:每個對象封裝在它各自的HTTP響應(yīng)消息中發(fā)送SMTP:一個郵件內(nèi)各個對象置于同一個郵件消息的多目部分發(fā)送2:應(yīng)用層59郵件消息的格式SMTP:用來交換郵件消息的協(xié)議RFC822:文本郵件消息格式標(biāo)準(zhǔn):信頭-頭部行。如:To:From:Subject:這些頭部不同于SMTP命令!信體郵件消息也必須是ASCII字符headerbodyblankline2:應(yīng)用層60郵件消息的格式:多媒體擴展MIME:MultipurposeInternetmailExtensions多用途因特網(wǎng)郵件擴展,RFC2045,2046增添額外的信頭頭部聲明MIMEcontent-typeFrom: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ù)2:應(yīng)用層61郵件訪問協(xié)議SMTP:遞送/存儲郵件消息到接收者郵件服務(wù)器郵件訪問協(xié)議:從服務(wù)器獲取郵件消息POP:PostOfficeProtocol郵局協(xié)議[RFC1939]110端口號身份認(rèn)證(代理<-->服務(wù)器)并下載郵件消息IMAP:InternetMessageAccessProtocol[RFC3501]143端口更多功能特征(更復(fù)雜!)允許用戶像對待本地郵箱那樣操縱遠程郵箱的郵件HTTP:Hotmail,Yahoo!Mail,etc.useragentsender’smailserveruseragentSMTPSMTPaccessprotocolreceiver’smailserver2:應(yīng)用層62POP3協(xié)議身份認(rèn)證階段authorizationphase客戶命令:userusernamepasspassword服務(wù)器響應(yīng)+OK-ERR傳輸階段transactionphase,client:list:列出郵件編號retr:按編號取郵件dele:刪除quit
C:listS:1498S:2912S:.C:retr1S:<message1contents>S:.C:dele1C:retr2S:<message1contents>S:.C:dele2C:quitS:+OKPOP3serversigningoffS:+OKPOP3serverreadyC:userbobS:+OKC:passhungryS:+OKusersuccessfullyloggedon2:應(yīng)用層63POP3和IMAPPOP3的更多細節(jié)先前例子使用“Download-and-delete”.Bob換客戶端后不能再讀郵件“Download-and-keep”模式:在不同客戶機上的郵件拷貝POP3的會話是無狀態(tài)的IMAP保存所有郵件消息在一個位置:服務(wù)器允許用戶在服務(wù)器的各文件夾中管理郵件消息IMAP跟蹤用戶會話的狀態(tài)信息:文件夾和郵件消息IDs與文件夾名字的映射2:應(yīng)用層64第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層65DNS:域名系統(tǒng)DomainNameSystem人:很多標(biāo)識符:ID,name,passport#Internet主機,路由器:IPaddress(32bit)–用于分組尋址“主機名”,e.g.,–用于人記憶識別Q:可以在IP地址和主機名之間建立映射嗎?DNS服務(wù)器提供的功能:主機名到IP地址的轉(zhuǎn)換主機別名一個主機可以有一個規(guī)范主機名和多個主機別名郵件服務(wù)器別名負載分配DNS實現(xiàn)冗余服務(wù)器:一個IP地址集合可以對應(yīng)于同一個規(guī)范主機名。2:應(yīng)用層66DNS
為什么不集中式DNS?單點故障巨大訪問量遠距離集中式數(shù)據(jù)庫維護不可擴展!DomainNameSystem:域名系統(tǒng)分布式數(shù)據(jù)庫:一個由分層DNS服務(wù)器實現(xiàn)的分布式數(shù)據(jù)庫應(yīng)用層協(xié)議:DNS服務(wù)器實現(xiàn)域名轉(zhuǎn)換(域名/地址轉(zhuǎn)換)2:應(yīng)用層67分布式、層次數(shù)據(jù)庫根DNS服務(wù)器comDNS服務(wù)器orgDNS服務(wù)器eduDNS服務(wù)器DNS服務(wù)器DNS服務(wù)器DNS服務(wù)器DNS服務(wù)器DNS服務(wù)器客戶機怎樣決定主機名的IP地址?客戶機查詢根服務(wù)器得到comDNS服務(wù)器客戶機查詢comDNS服務(wù)器得到DNS服務(wù)器客戶機查詢DNS服務(wù)器得到的IP地址2:應(yīng)用層68DNS:根名字服務(wù)器Rootnameservers
/根名字服務(wù)器負責(zé)記錄頂級域名服務(wù)器的信息bUSC-ISIMarinadelRey,CAlICANNMarinadelRey,CAeNASAMtView,CAfInternetSoftwareC.PaloAlto,CAiNORDUnetStockholmkRIPELondonmWIDETokyoaNSIHerndon,VAcPSInetHerndon,VAdUMarylandCollegePark,MDgDISAVienna,VAhARLAberdeen,MDjNSI(TBD)Herndon,VA13rootnameservers…10個美國,1個英國,1個瑞典,1個日本共254臺服務(wù)器2:應(yīng)用層69頂級域服務(wù)器和權(quán)威DNS服務(wù)器頂級域服務(wù)器:負責(zé)頂級域名com,org,net,edu,etc,和所有國家的頂級域名uk,fr,ca,jp.Networksolutions公司維護com頂級域的TLD服務(wù)器Educause公司維護edu頂級域的TLD服務(wù)器權(quán)威DNS服務(wù)器:在因特網(wǎng)上具有公共可訪問主機(如Web服務(wù)器和郵件服務(wù)器)的每個組織機構(gòu)必須提供公共可訪問的DNS記錄,這些記錄將這些主機的名字映射為IP地址。組織機構(gòu)的權(quán)威DNS服務(wù)器負責(zé)保存這些DNS記錄。多數(shù)大學(xué)和公司維護它們的基本權(quán)威DNS服務(wù)器2:應(yīng)用層70本地DNS服務(wù)器嚴(yán)格來說不屬于該服務(wù)器的層次結(jié)構(gòu)每個ISP(如居民區(qū)ISP、公司、大學(xué))都有一個本地DNS也叫默認(rèn)服務(wù)器當(dāng)主機發(fā)出DNS請求時,該請求被發(fā)往本地DNS服務(wù)器。起著代理的作用,轉(zhuǎn)發(fā)請求到層次結(jié)構(gòu)中。2:應(yīng)用層71DNS查詢方法一遞歸查詢:名字解析的負擔(dān)交給被查詢的名字服務(wù)器被查詢的名字服務(wù)器負載重?requestinghostrootDNSserverlocalDNSserver12456authoritativeDNSserver78TLDDNSserver32:應(yīng)用層72requestinghostrootDNSserverlocalDNSserver123456authoritativeDNSserver78TLDDNSserverDNS查詢方法二迭代查詢:被查詢的名字服務(wù)器回復(fù)可以被查詢的名字服務(wù)器的IP地址“我不知道它的名字,但是可以問服務(wù)器”2:應(yīng)用層73DNS緩存和權(quán)威DNS記錄更新一旦名字服務(wù)器獲得DNS映射,它將緩存該映射到局部內(nèi)存服務(wù)器在一定時間后將丟棄緩存的信息本地DNS服務(wù)器可以緩存TLD服務(wù)器的IP地址因此根DNS服務(wù)器不會被經(jīng)常訪問權(quán)威DNS服務(wù)器記錄更新:IETF動態(tài)更新/通報機制RFC21362:應(yīng)用層74DNS記錄DNS:存儲資源記錄(RR,ResourceRecords)的分布式數(shù)據(jù)庫Type=NS(nameserver)name=域名(如 )value=該域權(quán)威名字服務(wù)器的主機名RR格式:(name,value,type,ttl)Type=A(Adress)name=主機名value=IP地址Type=CNAME(canonical)name=主機別名
的真名為
value=真實的規(guī)范主機名Type=MX(mailexchange)name=郵件服務(wù)器的主機別名value=郵件服務(wù)器的真實規(guī)范主機名
2:應(yīng)用層75DNS協(xié)議,消息DNS協(xié)議:
查詢報文與應(yīng)答報文,但具有同樣的報文格式報文頭部標(biāo)識符:16位,查詢和應(yīng)答報文使用相同的標(biāo)識符標(biāo)志:有若干個標(biāo)志構(gòu)成,分別標(biāo)識不同的功能查詢/應(yīng)答-0/1查詢希望是/非遞歸查詢-1/0應(yīng)答可/否獲得(支持)遞歸查詢-1/0應(yīng)答是/否來自權(quán)威名字服務(wù)器-1/0附加信息(資源記錄的變量數(shù))權(quán)威(資源記錄的變量數(shù))回答(資源記錄的變量數(shù))問題(問題的變量數(shù))附加RR數(shù)權(quán)威RR數(shù)回答RR數(shù)問題數(shù)標(biāo)志標(biāo)識符12字節(jié)2:應(yīng)用層76DNS協(xié)議,消息問題部分查詢的Name,type
回答部分對于查詢,應(yīng)答的資源記錄可以多個資源記錄,由于可以有多個IP地址權(quán)威部分域?qū)?yīng)的權(quán)威名字服務(wù)器的信息附加信息部分權(quán)威名字服務(wù)器的IP地址等其他有幫助的記錄.附加信息(資源記錄的變量數(shù))權(quán)威(資源記錄的變量數(shù))回答(資源記錄的變量數(shù))問題(問題的變量數(shù))附加RR數(shù)權(quán)威RR數(shù)回答RR數(shù)問題數(shù)標(biāo)志標(biāo)識符12字節(jié)2:應(yīng)用層77在DNS數(shù)據(jù)庫中插入記錄例子:剛剛創(chuàng)建一個“網(wǎng)絡(luò)烏托邦”公司如果你想在注冊登記機構(gòu)注冊你的域名,則需要提供你自己的基本權(quán)威DNS服務(wù)器和輔助權(quán)威DNS服務(wù)器的名字和IP地址該注冊登記機構(gòu)將下列兩條資源記錄插入注冊機構(gòu)的DNS系統(tǒng)中:(,,NS)(,,A)如果你想建立一個網(wǎng)站,則可以將網(wǎng)址以類型A的方式記錄到你的權(quán)威DNS服務(wù)器中。如果你想建一個郵件服務(wù)器,則可以將以類型MX的方式記錄到你的權(quán)威DNS服務(wù)器中。人們怎樣得到你的Web站點的IP地址呢?2:應(yīng)用層78第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層79P2P文件共享舉例Alice在家用PC上運行一個P2P文件共享應(yīng)用軟件每次重新連接因特網(wǎng)時,得到新的IP地址尋找“HeyJude”應(yīng)用程序顯示有“HeyJude”拷貝的其他對等方Alice選擇一個對等方Bob.文件從Bob的PC上拷貝在Alice的PC上:HTTP當(dāng)Alice在下載時,其他用戶也在從Alice的PC下載Alice的對等方既是一個Web服務(wù)器,又是一個瞬時Web服務(wù)器所有的對等方都是服務(wù)器=高擴展性2:應(yīng)用層80P2P:集中式目錄“Napster”公司的設(shè)計1)當(dāng)對等方啟動時,它通知目錄服務(wù)器以下信息IP地址可供共享的對象名稱2)Alice查詢文件“HeyJude”3)Alice向Bob請求文件centralizeddirectoryserverpeersAliceBob1111232:應(yīng)用層81P2P:集中式目錄的問題單點故障性能瓶頸侵犯版權(quán)文件傳輸是分散的,但是定位內(nèi)容的過程是高度集中的2:應(yīng)用層82查詢洪泛:Gnutella全分布沒有集中式服務(wù)器公共域協(xié)議許多Gnutella客戶機實現(xiàn)Gnutella協(xié)議覆蓋網(wǎng)絡(luò):graph如果對等方X和Y維護了一條TCP連接,則說X和Y之間有一條邊所有活躍的對等方和邊組成覆蓋網(wǎng)絡(luò)邊不是物理通信鏈路給定對等方連接的覆蓋網(wǎng)絡(luò)路徑中的節(jié)點少于10個,即TTL小于102:應(yīng)用層83Gnutella:協(xié)議QueryQueryHitQueryQueryQueryHitQueryQueryQueryHitFiletransfer:HTTP
查詢報文在已有的TCP連接上發(fā)送對等方轉(zhuǎn)發(fā)報文QueryHit
報文按反向路徑傳送可擴展性:限范圍泛洪2:應(yīng)用層84Gnutella:加入對等方加入對等方X必須發(fā)現(xiàn)在Gnutella網(wǎng)絡(luò)中的其他對等方:使用對等方列表。X試圖與該列表上的對等方建立一條TCP連接,直到與Y創(chuàng)建一條連接。X向Y發(fā)送一個Ping報文;Y轉(zhuǎn)發(fā)該Ping報文。所有的對等方接收Ping報文并響應(yīng)一個Pong報文。X接收到許多Pong報文。然后能同某些其他對等方建立TCP連接。2:應(yīng)用層85Gnutella:對等方離開主動離開:離開接點的所有對等方都會刷新自身的激活對等方列表,并開始與列表中的新的對等方建立連接斷網(wǎng):發(fā)送信息的時候?qū)Φ确經(jīng)]有響應(yīng),則表明對等方離開,節(jié)點刷新自身的激活對等方列表,并開始與列表中的新的對等方建立連接2:應(yīng)用層86KaZaA每個對等方要不被指派為組長,要不被指派給一個組長對等方和組長之間建立TCP連接組長之間建立TCP連接組長維護它的子對等方共享的內(nèi)容2:應(yīng)用層87KaZaA每個文件有文件的散列碼標(biāo)識客戶機送向組長發(fā)送關(guān)鍵詞的查詢組長響應(yīng)匹配逐項匹配:元數(shù)據(jù),散列值,IP地址如果組長轉(zhuǎn)發(fā)查詢給其他組長則其他組長響應(yīng)匹配客戶端選擇要下載的文件2:應(yīng)用層88KaZaA請求排隊:限制對等方并行上載數(shù)量,新的請求進行排隊。激勵優(yōu)先權(quán):根據(jù)不同的上載下載比例優(yōu)先服務(wù)貢獻大者。并行下載:將一個文件分成若干段,從多個對等方并行下載。2:應(yīng)用層89第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層90Socket套接字編程SocketAPI1981提出于BSD4.1UNIX,網(wǎng)絡(luò)應(yīng)用程序明確的創(chuàng)建,使用及釋放套接字client/server模式通過SocketAPI,提供傳輸層的2類傳輸服務(wù):不可靠的數(shù)據(jù)報傳輸可靠的字節(jié)流傳輸1.套接字是一個主機本地應(yīng)用程序所創(chuàng)建的,為操作系統(tǒng)所控制的接口(“門”).2.應(yīng)用進程通過這個接口,使用傳輸層提供的服務(wù),跨網(wǎng)絡(luò)發(fā)送(/接收)消息到(/從)其他應(yīng)用進程。socket目的:學(xué)會如何開發(fā)采用套接字通信的C/S網(wǎng)絡(luò)應(yīng)用程序。
2:應(yīng)用層91用TCP進行套接字編程Socket:應(yīng)用進程和傳輸層協(xié)議(UCPorTCP)之間的門。TCP服務(wù):從1個進程到另1個進程的字節(jié)流的可靠傳輸。processTCPwithbuffers,variablessocketcontrolledbyapplicationdevelopercontrolledbyoperatingsystemhostorserverprocessTCPwithbuffers,variablessocketcontrolledbyapplicationdevelopercontrolledbyoperatingsystemhostorserverinternet2:應(yīng)用層92客戶必須初始聯(lián)系服務(wù)器服務(wù)器進程必須先運行服務(wù)器進程必須創(chuàng)建套接字(門)來迎候客戶的初始聯(lián)系客戶如何初始聯(lián)系服務(wù)器創(chuàng)建客戶本地TCPsocket指定服務(wù)器進程的IP地址,端口號一旦客戶創(chuàng)建套接字,客戶TCP就發(fā)起3次握手并建立與服務(wù)器TCP的連接一旦客戶初始聯(lián)系(敲門)服務(wù)器,服務(wù)器TCP為服務(wù)器進程創(chuàng)建1個新的socket與客戶進程通信允許服務(wù)器與多個客戶通信源端口號被用來區(qū)分客戶
(詳見第三章)TCP為客戶和服務(wù)器提供了可靠的,順序的,字節(jié)流的傳輸(“管道”)。從應(yīng)用程序的角度來看用TCP進行套接字編程(續(xù))2:應(yīng)用層93流(Stream)的概念流是流入或流出一個進程的一串字符.輸入流被加在進程的某個輸入源上,eg,標(biāo)準(zhǔn)輸入(鍵盤)或套接字.輸出流被加在進程的某個輸出源上,eg,標(biāo)準(zhǔn)輸出(顯示器)或套接字.2:應(yīng)用層94客戶機/服務(wù)器應(yīng)用程序示例:1)客戶從它的標(biāo)準(zhǔn)輸入讀入一行(inFromUserstream),將該行發(fā)送到通往服務(wù)器的套接字(outToServerstream)2)服務(wù)器從它的連接套接字讀入一行3)服務(wù)器將該行轉(zhuǎn)換成大寫,然后送回客戶機4)服務(wù)器將修改后的行通過其連接套接字再發(fā)回給客戶機5)客戶從它的套接字中讀取、輸出修改后的行(inFromServerstream)ClientprocessclientTCPsocketTCP套接字編程2:應(yīng)用層95TCP客戶/服務(wù)器套接字交互流程:等待入連接請求connectionSocket=welcomeSocket.accept()對入請求創(chuàng)建套接字,port=xwelcomeSocket=ServerSocket()創(chuàng)建與hostid,port=x連接的套接字clientSocket=Socket()關(guān)閉connectionSocket從clientSocket讀應(yīng)答關(guān)閉clientSocket服務(wù)器(在hostid上運行)客戶機使用clientSocket發(fā)送請求讀請求connectionSocket寫應(yīng)答connectionSocketTCP連接建立2:應(yīng)用層96Java編寫的TCP客戶程序示例importjava.io.*;import.*;classTCPClient{publicstaticvoidmain(Stringargv[])throwsException{Stringsentence;StringmodifiedSentence;BufferedReaderinFromUser=newBufferedReader(newInputStreamReader(System.in));SocketclientSocket=newSocket("hostname",6789);DataOutputStreamoutToServer=newDataOutputStream(clientSocket.getOutputStream());
CreateinputstreamCreateclientsocket,connecttoserverCreateoutputstreamattachedtosocket包含輸入和輸出類程序用到BufferedReader和DataOutputStream類包含網(wǎng)絡(luò)支持類程序用到socket和serversocket類2:應(yīng)用層97
BufferedReaderinFromServer=newBufferedReader(newInputStreamReader(clientSocket.getInputStream()));sentence=inFromUser.readLine();outToServer.writeBytes(sentence+'\n');modifiedSentence=inFromServer.readLine();System.out.println("FROMSERVER:"+modifiedSentence);clientSocket.close();
}}
CreateinputstreamattachedtosocketSendlinetoserverReadlinefromserverJava編寫的TCP客戶程序示例(續(xù))2:應(yīng)用層98Java編寫的服務(wù)程序示例importjava.io.*;import.*;classTCPServer{publicstaticvoidmain(Stringargv[])throwsException{StringclientSentence;StringcapitalizedSentence;ServerSocketwelcomeSocket=newServerSocket(6789);
while(true){
SocketconnectionSocket=welcomeSocket.accept();BufferedReaderinFromClient=newBufferedReader(newInputStreamReader(connectionSocket.getInputStream()));
Createwelcomingsocketatport6789Wait,onwelcomingsocketforcontactbyclientCreateinputstream,attachedtosocket2:應(yīng)用層99Java編寫的服務(wù)程序示例(續(xù))DataOutputStreamoutToClient=newDataOutputStream(connectionSocket.getOutputStream());
clientSentence=inFromClient.readLine();capitalizedSentence=clientSentence.toUpperCase()+'\n';outToClient.writeBytes(capitalizedSentence);connectionSocket.close();}}}
ReadinlinefromsocketCreateoutputstream,attachedtosocketWriteoutlinetosocketEndofwhileloop,loopbackandwaitforanotherclientconnection2:應(yīng)用層100第二章:應(yīng)用層2.1應(yīng)用層協(xié)議原理2.2Web應(yīng)用和HTTP協(xié)議2.3文件傳輸協(xié)議:FTP2.4因特網(wǎng)中的電子郵件SMTP,POP3,IMAP2.5DNS:因特網(wǎng)的目錄服務(wù)2.6P2P文件共享2.7TCP套接字編程2.8UDP套接字編程2.9構(gòu)造一個簡單的Web服務(wù)器2:應(yīng)用層101用UDP進行套接字編程UDP:客戶和服務(wù)器之間沒有連接沒有初始握手階段發(fā)送方明確將接收方的IP地址和端口號加入每個分組(1批字節(jié)+頭部)服務(wù)器必須從接收到的分組中析取發(fā)送方進程的IP地址,端口號UDP:發(fā)送數(shù)據(jù)可能被亂序收到或丟失UDP在客戶和服務(wù)器之間提供一組字節(jié)(“datagrams”)的不可靠傳輸
從應(yīng)用程序的角度來看2:應(yīng)用層102UDP客戶/服務(wù)器套接字交互流程:關(guān)閉clientSocketServer(在hostid上運行)從clientSocket讀應(yīng)答創(chuàng)建套接字clientSocket=DatagramSocket()客戶機創(chuàng)建地址(hostid,port=x)使用clientSocket發(fā)送數(shù)據(jù)報請求對入請求創(chuàng)建套接字port=xserverSocket=DatagramSocket()從serverSocket讀請求向serverSocket寫應(yīng)答指定客戶機主機地址、端口號2:應(yīng)用層103舉例:Java編寫的UDP客戶程序Output:sendspacket(TCPsent“bytestream”)Input:receivespacket(TCPreceived“bytestream”)ClientprocessclientUDPsocket2:應(yīng)用層104舉例:Java編寫的UDP客戶程序importjava.io.*;import.*;
classUDPClient{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();
CreateinputstreamCreateclientsocketTranslatehostnametoIPaddressusingDNS2:應(yīng)用層105舉例:Java編寫的UDP客戶程序(續(xù))DatagramPacketsendPacket=newDatagramPacket(sendData,sendData.length,IPAddress,9876);
clientSocket.send(sendPacket);
DatagramPacketrece
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國鍋爐房綜合運行管理系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- 山東農(nóng)業(yè)大學(xué)《裝飾畫基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東農(nóng)業(yè)大學(xué)《化工計算》2023-2024學(xué)年第一學(xué)期期末試卷
- 味覺課程設(shè)計模板
- 德芙巧克力課程設(shè)計
- 數(shù)字雙向碼課程設(shè)計matlab
- 山東理工大學(xué)《油畫表現(xiàn)語言》2023-2024學(xué)年第一學(xué)期期末試卷
- 微波低通濾波器課程設(shè)計
- 山東經(jīng)貿(mào)職業(yè)學(xué)院《模具設(shè)計基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東交通職業(yè)學(xué)院《遙感原理Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 營胡西山隧道出口二襯臺車拆卸方案
- 電工材料公司年經(jīng)營優(yōu)質(zhì)企劃書
- 醫(yī)囑執(zhí)行查對記錄本
- 道家符圖地結(jié)構(gòu)與原理
- 零星修繕工程合同范本3篇 維修零星工程合同范本
- 新人教版三年級上冊數(shù)學(xué) 總復(fù)習(xí) 教學(xué)課件
- 耳鼻咽喉科臨床診療指南
- (二)防觸電技術(shù)
- 實訓(xùn)報告---配置-Hyper-V-服務(wù)實訓(xùn)
- 場發(fā)射掃描電鏡介紹
- 蘇教版四年級上冊科學(xué)期末試卷(含答案)
評論
0/150
提交評論