




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章應用層
網絡應用是計算機網絡的重要功能之一。20世紀80年代:基于文本的電子郵件、文件傳輸、文本聊天等等。20世紀90年代:Web應用、IP電話、視頻會議等。20世紀末:即時訊息、P2P對等文件共享。1學習目標和主要內容學習目標網絡應用的原理和實現方面的知識。主要內容應用層概念:應用層協議、客戶機與服務器、進程、套接字和運輸層接口。應用程序:Web、電子郵件、域名系統DNS及P2P對等文件共享。開發網絡應用程序的方法:套接字API編程。2本章內容2.1應用層協議原理2.2Web和HTTP2.3FTP2.4電子郵件2.5DNS2.6P2P文件共享2.7TCP的套接字編程2.8UDP的套接字編程2.9構建一個Web服務器2.10小結3流行的網絡應用程序E-mailWeb即時訊息遠程注冊P2P文件共享多用戶網絡游戲流式存儲視頻片段因特網電話實時視頻會議大規模并行計算編制應用程序4網絡應用程序的研發要點寫出能夠分別在不同端系統運行,并通過網絡相互通信的程序。如Web應用程序,由兩個可以相互通信的程序組成瀏覽器程序:運行在用戶主機上;Web服務器程序:運行在Web服務器主機上。應用程序軟件只在端系統運行,不需在網絡核心設備上運行。網絡核心設備無應用層,只有較低層。
如圖2-1。5本節內容2.1.1網絡應用程序體系結構2.1.2進程通信2.1.3應用層協議2.1.4應用所需要的服務2.1.5因特網運輸協議提供的服務2.1.6本書介紹的網絡應用Web、文件傳輸、電子郵件、目錄服務、對等文件共享等五個。62.1.1網絡應用程序體系結構應用程序體系結構:規定如何在各種端系統上組織應用程序,由研發者設計。
三種類型:客戶機/服務器對等(P2P)客戶機/服務器與P2P的混合71、客戶機/服務器體系結構服務器:
總是打開為多個客戶機請求提供服務永久的IP地址可擴展為服務器場(主機群集)客戶機:總是打開或間歇打開向服務器發出請求具有動態的IP地址彼此之間不直接通信
如Web應用程序:總是打開的Web服務器為運行在客戶機主機上的瀏覽器的請求提供服務(接收客戶機請求,并發送響應結果)。
服務器響應客戶請求82、純P2P體系結構(peer-to-peer)
無(最少)打開的服務器任意端系統(對等方)可以直接通信對等方間歇地連接,IP地址不固定例:文件分發、因特網電話等。可擴展度高、難以管理93、客戶機/服務器與P2P的混合Napster:MP3文件共享應用程序。
P2P:對等方直接交換MP3文件服務器注冊/定位:對等方在中心服務器上注冊內容對等方查詢相同的中心服務器以定位內容即時訊息:P2P:兩個用戶直接聊天服務器檢測/定位:用戶在線時,向中心服務器注冊其IP地址用戶聯系中心服務器以找到聊天伙伴的IP地址102.1.2進程通信進程(process):在主機上運行的程序。進程通信:同一主機中兩個進程間的通信:由操作系統控制;不同主機中進程間的通信:通過網絡交換報文進行。
發送進程:產生報文并向網絡發送;
接收進程:接收報文,并回送報文。如圖2-1。111、客戶機和服務器進程網絡應用程序由成對的進程組成,并通過網絡相互發送報文。如圖2-1
根據功能分別標示為客戶機和服務器客戶機進程:發起通信的進程。
服務器進程:等待其他進程聯系的進程。如Web應用程序中,一個客戶機瀏覽器進程向某個Web服務器進程發起聯系,交換報文。12說明:
P2P結構的應用程序也可分別看成是客戶機進程或服務器進程。如,對等方A(客戶機)請求對等方B(服務器)發送某個文件。132、套接字(socket)套接字:同一臺主機內應用層與運輸層之間的接口。也叫應用程序和網絡之間的應用程序接口API
,是在網絡上建立網絡應用程序的可編程接口。進程具有緩存、變量的TCP套接字主機或服務器進程具有緩存、變量的TCP套接字主機或服務器因特網由操作系統控制由應用研發者控制應用層運輸層14進程與套接字關系進程類似房子,套接字是進程的門。進程通過套接字在網絡上發送和接收報文。進程具有緩存、變量的TCP套接字主機或服務器進程具有緩存、變量的TCP套接字主機或服務器因特網由操作系統控制由應用研發者控制發送進程:把報文推出門(套接字)。傳送報文:通過下面網絡把報文傳送到目的進程門口。接收進程:通過其門(套接字)接收報文15說明應用程序開發者可以控制套接字應用層端的全部;對套接字的運輸層端幾乎不能控制(只能選擇運輸層協議、設定幾個運輸層參數等)。應用程序開發者選擇了一個運輸層協議,則應用程序就建立在由該協議提供的運輸層服務之上。如TCP協議。進程具有緩存、變量的TCP套接字主機或服務器進程具有緩存、變量的TCP套接字主機或服務器因特網由操作系統控制由應用研發者控制163、進程尋址主機上的進程可以有多個。網絡中有多個主機,每個主機上有多個進程。進程識別信息:表示哪臺主機上的哪一個進程。源主機上的進程向目的主機上的進程發送報文時,應帶有接收進程的識別信息(標識)。進程尋址:根據進程識別信息找到相應進程。如何識別進程?確定主機確定進程17進程識別信息(兩部分)主機名稱或地址:網絡中的哪一個主機。因特網中,用IP地址標識(32位,全球惟一)。進程的標識:主機中的哪一個進程。因特網中,采用端口號標識(portnumber)。常用的應用程序被指派固定的端口號(周知端口)。如,Web服務進程(HTTP協議):80郵件服務進程(SMTP協議):25創建一個新的網絡應用程序時,必須分配一個新的端口號。不重復。184、用戶代理(useragent)是用戶與網絡應用程序之間的接口。如:Web應用的用戶代理:是一些瀏覽器軟件。一個通過套接字收發報文,并提供用戶接口的進程。電子郵件應用程序用戶代理:是“郵件閱讀器”。允許用戶進行郵件的撰寫和閱讀。192.1.3應用層協議定義了運行在不同端系統上的應用程序進程間傳遞報文的格式和方式。具體內容:
交換的報文類型:如請求報文和響應報文;各種報文類型的語法:報文中的各個字段及描述;字段的語義:字段包含信息的含義;進程何時、如何發送報文及對報文進行響應的規則。20說明公共領域協議:由標準文檔RFC定義,如HTTP。
專用層協議:如P2P使用的協議。應用層協議是網絡應用的一部分。如Web應用,客戶機從Web服務器獲得“文檔”。組成:HTML、Web瀏覽器、Web服務器程序,以及一個應用層協議HTTP(超文本傳輸協議)等。HTTP定義了在瀏覽器程序和Web服務器程序間傳輸的報文格式和序列。其他協議:電子郵件協議SMTP等等212.1.4應用程序所需要的服務應用程序間通信:由運輸協議跨越網絡將發送進程的報文傳輸到接收進程的門戶
。需要使用運輸協議所提供的服務。運輸協議有多種,提供的服務不同。進程具有緩存、變量的TCP套接字主機或服務器進程具有緩存、變量的TCP套接字主機或服務器因特網由操作系統控制由應用研發者控制22應用程序需要什么樣的運輸服務?可靠的數據傳輸(無數據丟失)數據不能丟失的應用:如文件傳輸、金融事務等。能容忍數據丟失的應用:如多媒體應用。帶寬(數據傳輸率)帶寬敏感的應用:需要特定的帶寬才能正常工作。如,因特網電話、其他多媒體應用。彈性應用:使用的帶寬多或少影響不大。如電子郵件、文件傳輸以及Web傳輸。定時(數據傳輸的時間限制)交互式實時應用:對時間敏感,要求時延小。如,因特網電話、視頻會議以及多方游戲等。非實時應用:時延無限制,低更好。23典型應用的運輸服務要求應用程序文件傳輸電子郵件Web文檔實時音頻/視頻(因特網電話/視頻會議)存儲音頻/視頻交互式游戲即時訊息數據丟失不能丟失
不能丟失不能丟失容忍丟失容忍丟失容忍丟失不能丟失
帶寬彈性彈性彈性音頻:5kbps-1Mbps視頻:10kbps-5Mbps同上幾kbps以上彈性時間敏感不不不是,100ms是,幾秒是,100ms是和不是242.1.5因特網運輸協議提供的服務兩個運輸層協議:用戶數據報協議UDP傳輸控制協議TCP每個協議為調用它們的應用程序提供不同的服務模型。在創建一個新的因特網應用時,要選擇其中一個。251、TCP服務兩個方面:面向連接的服務:可靠的傳輸服務:26面向連接的服務劃分三階段建立連接(握手過程):客戶機程序和服務器程序之間互相交換控制信息,在兩個進程的套接字之間建立一個TCP連接。傳輸報文:連接是全雙工的,即連接雙方的進程可以在此連接上同時進行報文收發。拆除連接:應用程序報文發送結束。27可靠的傳輸服務通信進程可以無差錯、按適當順序交付發送的數據。沒有數據丟失和重復。28擁塞控制當發送方和接收方之間的網絡出現擁塞時,會抑制發送進程速率。對整個網絡有益。29未提供的服務不確保最小傳輸速率:發送進程受擁塞控制機制制約;不提供時延保證:數據傳輸的時間不確定。
TCP協議能保證交付所有的數據,但并不保證這些數據傳輸的速率以及期待的傳輸時延。TCP協議不適合實時應用。302、UDP服務提供最小服務模式運行。無連接:兩個進程通信前沒有握手過程;不可靠數據傳輸:不保證報文能夠被接收,或收到的報文是亂序到達。沒有擁塞控制機制:發送進程可以任何速率發送數據不提供時延保證:適于實時應用。31因特網應用、應用協議與運輸協議
應用 應用層協議 傳輸協議電子郵件 SMTP TCP遠程終端訪問Telnet TCPWeb HTTP TCP文件傳輸 FTP TCP遠程文件服務器NFS UDP或TCP流媒體 HTTP、RTPUDP或TCP因特網電話 SIP、RTP 典型用UDP322.2Web應用和HTTP協議產生于20世紀90年代初期。改變了人們與工作環境內外的交流方式;提升因特網地位;生活和工作發生變化;方便、快捷得到所需要的信息(按需操作);任何人在Web上發布信息;超鏈接和搜索引擎幫助人們瀏覽Web站點。33本節內容2.2.1HTTP概況2.2.2HTTP連接2.2.3HTTP報文格式2.2.4用戶與服務器交互:Cookie2.2.5HTTP內容2.2.6Web緩存2.2.7條件GET方法342.2.1HTTP概況HTTP(超文本傳輸協議):應用層協議,Web的核心。包括兩部分:客戶機程序服務器程序分別運行在不同的端系統中,通過交換HTTP報文進行會話。HTTP協議定義了報文的格式以及客戶機和服務器交換報文的方式。
35Web常用術語Web頁(文檔):由若干對象組成。
對象:是文件。通過一個URL地址來尋址。如HTML文件、JPEG圖形文件、Java小程序等。
Web頁含有一個基本的HTML文件及幾個引用對象。例如,一個Web頁包含HTML文本和5個JPEG圖形文件(即有6個對象)。在基本的HTML文件中,每個對象可由URL來尋址。
超文本標記語言統一資源定位符36Web常用術語URL:UniformResourceLocator。統一資源定位符。標識萬維網WWW上的各種文檔,全網范圍唯一。URL地址組成:存放對象的服務器主機名和對象的路徑名。如
http://www.someS/somedepartment/picture.gif
主機名路徑名37Web常用術語瀏覽器(客戶機):是Web應用的用戶代理,用于顯示所請求的Web頁,提供導航功能和配置屬性。
實現了HTTP協議的客戶機端。Web服務器:用于存貯Web對象(由URL尋址)。實現HTTP協議的服務器端。
HTTP協議定義了Web客戶機(瀏覽器)如何向Web站點請求Web頁,以及服務器如何將Web頁傳送給客戶機。38客戶機和服務器之間交互過程PC運行Explorer服務器運行ApacheWeb服務器Mac運行NavigatorHTTP請求HTTP請求HTTP響應HTTP響應客戶機:用戶請求一個Web頁(如點擊一個超鏈接),瀏覽器向服務器發出對該頁所含對象的“HTTP請求報文”。服務器:接受請求,回發包含請求對象的“HTTP響應報文”39說明HTTP協議使用的底層運輸協議是TCP。工作過程:
創建TCP連接交換報文關閉TCP連接客戶機先與服務器建立TCP連接,然后,瀏覽器和服務器進程通過套接字訪問TCP:如圖2-3客戶機:從其套接字接口發送“HTTP請求報文”和接收“響應報文”;服務器:從其套接字口接收“HTTP請求報文”和發送“響應報文”。40說明TCP提供可靠的數據傳輸服務:客戶機進程和服務器進程發出的每個HTTP報文能完整地到達對方。HTTP是無狀態協議:服務器不保存關于客戶機的任何信息。Web使用客戶機/服務器結構,Web服務器總是打開,有一個固定IP地址,為多個瀏覽器服務。412.2.2HTTP連接持久HTTP連接一個TCP連接上可以傳送多個Web對象傳送多個請求/相應對非持久HTTP連接每個TCP連接上只傳送一個Web對象只傳送一個請求/相應對默認方式下使用持久連接421、非持久連接例,客戶機向服務器請求傳送一個Web頁:含有一個基本HTML文件和10個JPEG圖形,11個對象位于同一個服務器上。HTML文件的URL為:http://www.someS/someDepartment/home.index43工作過程1a.
HTTP客戶初始化一個與服務器主機www.someS中HTTP服務器進程的TCP連接
2.
HTTP客戶發送一個HTTP請求報文(包含URL)到TCP連接套接字,
報文指明客戶需要的Web對象-someDepartment/home.index1b.
www.someS服務器主機中的HTTP服務器在80端口監聽來自HTTP客戶的TCP連接請求,收到連接請求,接受,建立連接,通知客戶。3.
HTTP服務器接收請求報文,產生一個響應報文(包含被請求對象),并發送到其TCP連接套接字timeTCP連接報文傳輸445.
HTTP客戶機接收包含HTML文件的響應報文,顯示并解析HTML文件,發現10個引用的jpeg對象6.
對10個jpeg對象重復步驟1~54.
HTTP服務器關閉TCP連接time45說明:每個TCP連接在服務器返回對象后關閉(非持久)。每個TCP連接只傳輸一個請求報文和一個響應報文;上例中,要建立11個TCP連接。瀏覽器可同時打開多個連接:并行的TCP連接:并行數大于1。默認打開5~10個。串行的TCP連接:最大并行數為1。46請求一個HTML文件所需時間即從客戶機請求基本HTML文件開始,到用戶收到整個文件為止所花時間。往返時延RTT:一個小分組從客戶機到服務器,再回到客戶機所花時間。包括傳播時延、排隊時延以及處理時延。47TCP連接的“三次握手”過程客戶機發送一個TCP連接請求報文服務器回送一個TCP確認響應報文客戶機向服務器發送一個包含“
HTTP請求”與“TCP確認”的報文總響應時間:兩個RTT時延加上服務器發送文件的時間總計=2RTT+文件傳輸時間傳輸文件的時間發起TCP連接RTT請求文件RTT接收文件時間時間三次握手建立TCP連接交換報文48非持久連接缺點服務器負擔重:每一個請求對象建立和維護一個新的連接。每一個對象的傳輸時延長:包含兩個RTT時延,一個用于TCP建立,一個用于請求和接收對象。492、持久連接服務器在發送響應后保持該TCP連接:相同客戶機與服務器之間的后續請求和響應報文通過相同的連接進行傳送。如,一個Web頁的所有對象可以通過一個持久TCP連接傳送。或同一服務器上的多個Web頁也可以通過一個持久TCP連接傳送給同一個客戶機。連接經一定時間間隔(超時間隔)未被使用,服務器就關閉該連接。50持久連接兩種方式非流水線方式:客戶機只能在前一個響應接收到之后才能發出新的請求。客戶機為每一個引用對象的請求和接收都使用一個RTT時延。會浪費一些服務器資源:服務器在發送完一個對象,等待下一個請求時,會出現空閑狀態。51持久連接兩種方式流水線方式:客戶機可一個接一個連續產生請求(只要有引用就產生),即在前一個請求接收到響應之前可以產生新的請求。服務器一個接一個連續發送相應對象。特點:節省RTT時延,可能所有引用對象只花費一個。TCP連接空閑時間很短。
默認方式:流水線方式的持久連接。521、HTTP請求報文客戶機向服務器發送。ASCII文本形式,易讀。
例:GET/somedir/page.htmlHTTP/1.1Host:User-agent:Mozilla/4.0Connection:closeAccept-language:fr(另外的回車,換行)
請求行(GET,POST,HEAD命令)首部行回車,換行指示報文的結束對象URL路徑名版本對象主機瀏覽器類型非持久方法(命令)——GET:請求一個對象。POST:提交表單(添加信息)。HEAD:請求返回對象響應報文首部返回對象的語言53HTTP請求報文通用格式請求行首部行實體主體方法版本首部字段名首部字段名值值542、HTTP響應報文HTTP/1.1200OKConnectioncloseDate:Thu,06Aug199812:00:15GMT服務器:Apache/1.3.0(Unix)Last-Modified:Mon,22Jun1998…...Content-Length:6821Content-Type:text/html
datadatadatadatadata...
狀態行(版本、狀態碼、狀態短語)首部行實體:數據,如請求的HTML文件請求成功關閉連接發送日期對象創建或修改日期對象長度服務器到客戶機的回答55HTTP響應狀態碼200OK請求成功,請求的對象在這個報文后面301MovedPermanently請求的對象已轉移,新的URL在響應報文的Location:首部行中指定400BadRequest請求報文不為服務器理解404NotFound請求的文檔沒有在該服務器上發現505HTTPVersionNotSupported服務器不支持請求報文使用的HTTP版本在服務器到客戶機響應報文中的首行。56自行試驗HTTP(客戶機側)1.Telnet到某個Web服務器上:打開到位于的端口80(默認的HTTP服務器端口).鍵入的任何東西將發送到位于的80端口telnet802.鍵入一個GETHTTP請求:GET/~ross/HTTP/1.1Host:向HTTP服務器發送最小的GET請求3.得到由HTTP服務器發送的響應報文!572.2.4用戶與服務器交互:Cookie
HTTP服務器是無狀態的,不保存客戶信息。Cookie:允許Web站點跟蹤、識別用戶;服務器可以限制用戶訪問,或把內容與用戶身份關聯。
許多重要的Web站點使用cookies。包括四個部分1)在HTTP響應報文中有一個cookie首部行2)在HTTP請求報文中有一個cookie首部行3)用戶主機中保留有一個cookie文件并由瀏覽器管理4)Web站點的后端數據庫保存cookie58例Susan總是從相同的PC訪問因特網她首次訪問一個特定的電子商務站點當起始HTTP請求到達站點時,站點產生一個獨特的ID,并為ID在后端數據庫中生成一個表項59工作過程客戶機服務器普通HTTP請求報文普通HTTP響應+Set-cookie:1678普通HTTP請求報文cookie:1678普通HTTP響應報文普通HTTP請求報文cookie:1678普通HTTP響應報文特定cookie動作特定cookie動作服務器為用戶生成ID1678后端數據庫中的表項訪問訪問Cookiefile識別碼1678Cookiefile保存1678Cookiefile識別碼1678一個星期以后:60Cookie用途身份認證虛擬購物車(跟蹤用戶購買的物品)推薦廣告用戶會話狀態(Webe-mail)Cookie缺陷站點可以知道用戶許多信息不利用戶隱私保護612.2.5HTTP內容傳輸Web頁面所含對象:如HTML文件、JPEG文件、Java小應用程序等等。可以傳輸其他類型的文件:如傳輸XML(可擴充的標識語言)文件。P2P文件共享中:作為文件傳輸協議使用。用于流式存儲的音頻和視頻。622.2.6Web緩存Web緩存器(Webcache):也叫代理服務器。能夠代表起始服務器來滿足HTTP請求的網絡實體。保存最近請求過的對象的副本。可在客戶機或服務器工作,也可在中間系統工作。起始(原始)服務器(originserver):對象最初存放并始終保持其拷貝的服務器。目標:
代替原始服務器滿足HTTP請求。63使用Web緩存器用戶配置瀏覽器:
所有Web訪問經由緩存瀏覽器向緩存發送所有HTTP請求對象在緩存中:緩存器返回對象不在:緩存向原始服務器發出請求,接收對象后轉發給客戶機客戶機代理服務器客戶機HTTP請求HTTP請求HTTP響應HTTP響應HTTP請求HTTP響應起始服務器起始服務器客戶機通過Web緩存器請求對象。64具體操作過程瀏覽器:建立一個到緩存的TCP連接,并向緩存發送一個對該對象HTTP請求Web緩存器:檢查本地是否有該對象的拷貝。有:就用HTTP響應報文向瀏覽器轉發該對象例:假設瀏覽器請求對象/campus.gif客戶機代理服務器客戶機HTTP請求HTTP請求HTTP響應HTTP響應HTTP請求HTTP響應起始服務器起始服務器65緩存在TCP連接上發送獲取該對象的請求。起始服務器收到請求,向緩存發送該對象的HTTP響應緩存接收該對象,存儲一份在本地中,并通過HTTP響應報文向瀏覽器轉發該對象(通過已經建立的TCP連接)。客戶機代理服務器客戶機HTTP請求HTTP請求HTTP響應HTTP響應HTTP請求HTTP響應起始服務器起始服務器沒有:與該對象的起始服務器打開一個TCP連接。客戶機
Web緩存器起始服務器66說明Web緩存器既可以是服務器也可以是客戶機:當它接收瀏覽器請求并發回響應時,是服務器;當它向起始服務器發出請求并接收響應時,是客戶機67Web緩存優點減少客戶機請求的響應時間:客戶機
Web緩存器起始服務器
高速鏈路
減少機構內部網絡與因特網連接鏈路上的通信量:降低開銷,改善各種應用的性能。68例1,無Web緩存包括兩個網絡:機構的內部網絡和因特網。
機構內部網絡:是一個高速的局域網。其路由器與因特網上的路由器通過一條1.5Mbps的鏈路連接。起始服務器:與因特網相連,遍布全球。起始服務器公共因特網機構網絡10MbpsLAN1.5Mbps訪問鏈路69假設平均對象長度為100kb機構內瀏覽器對原始服務器上對象的平均請求率=15/sec機構內的HTTP報文小,忽略從因特網路由器轉發HTTP請求報文,到收到其響應報文的時間平均=2s(因特網時延)
起始服務器公共因特網機構網絡10MbpsLAN1.5Mbps訪問鏈路70總的響應時間
瀏覽器從請求一個對象到接收到的時間:三部分和局域網時延接入鏈路時延(兩個路由器間)因特網時延起始服務器公共因特網機構網絡10MbpsLAN1.5Mbps訪問鏈路71局域網時延:與流量強度有關(比特到達率/推出率)
(15請求/s)×(100kb/請求)/(10Mbit/s)=0.15強度為0.15的通信量最多數十毫秒的時延,可忽略接入鏈路時延:與接入流量強度
(路由器之間)有關(15請求/s)×(100kb/請求)/(1.5Mbit/s)=1強度接近1,鏈路時延非常大或無限增長。總響應時間=接入鏈路時延+因特網時延=(分鐘+2sec)請求時間長,用戶難接受。72改進方法一增加接入鏈路的速率:如從1.5Mbps增加到10Mbps,使鏈路上的流量強度減少到0.15,鏈路時延也可以忽略了。
總響應時間=因特網時延=2秒鐘投資較大,成本昂貴。73改進方法二
在機構網絡中安裝一個Web緩存器。起始服務器公共因特網機構網絡10MbpsLAN1.5Mbps訪問鏈路機構緩存器Web緩存器的命中率:緩存器滿足請求的比率(0.2~0.7)。設命中率為0.4。74改進方法二起始服務器公共因特網機構網絡10MbpsLAN1.5Mbps訪問鏈路機構緩存器局域網時延:客戶機和緩存器位于同一局域網,40%的請求幾乎會立即得到響應,時延約10ms。
剩下的60%請求需要通過訪問起始服務器才能滿足。100kb/10Mbps75接入鏈路時延:
只有60%的請求對象通過接入鏈路傳送,流量強度從1.0減小到0.6。通常,在1.5Mbps鏈路上,當流量強度小于0.8時,時延很小,可忽略。起始服務器公共因特網機構網絡10MbpsLAN1.5Mbps訪問鏈路機構緩存器Web緩存器減少響應時延,成本低
平均時延為:
0.4×(0.01s)+0.6×(0.01s+2s)=1.21s0.01s2s762.2.7條件GET方法高速緩存:減少響應時間;存放在緩存中的對象拷貝可能是舊的。即保存在起始Web服務器中的對象可能已經被修改。條件GET方法:使緩存器能夠證實其保存的對象是否為最新。如果緩存中是最新對象版本,可繼續使用,起始Web服務器就不需重新發送該對象。77條件GET方法使用Web服務器回發響應報文:包括對象的最后修改時間Last-modified:date1緩存檢查Web服務器中的該對象是否已被修改,發送一個條件GET請求報文:
If-modified-since:date1告訴服務器,僅當自指定日期之后該對象被修改過,才發送該對象。若Web服務器中的該對象未被修改,則響應報文含有304NotModified,并且實體為空。78例緩存器服務器304NotModified實體為空對象未修改GET/fruit/kiwi.gifHTTP/l.1Host:
HTTP/1.0200OKLast-modified:date1<data>緩存器將對象轉發到瀏覽器,并保存對象到本地(包括對象的最后修改時間)。一周后,用戶再次請求該對象(仍保留在緩存中),緩存發送一個條件GET,檢查該對象是否已被修改GET/fruit/kiwi.gifHTTP/l.1Host:
If-modified-since:date1對象未修改,緩存可以繼續使用該對象的拷貝,并轉發給用戶瀏覽器。792.3文件傳輸協議:FTP
本地主機上的用戶,向遠程主機上傳或者下載文件。用戶通過一個FTP用戶代理與FTP服務器交互。文件傳輸FTP服務器FTP用戶接口FTP客戶機本地文件系統遠程文件系統主機上的用戶上傳下載80文件傳輸過程用戶提供遠程主機的主機名:在本地主機的FTP客戶機進程與遠程主機FTP服務器進程之間建立TCP連接;提供用戶標識和口令:在該TCP連接上向服務器傳送。服務器驗證通過后,進行文件傳送(雙向):將本地文件系統中的文件傳送到遠程文件系統(上傳)或從遠程文件系統中得到文件(下載)文件傳輸FTP服務器FTP用戶接口FTP客戶機本地文件系統遠程文件系統主機上的用戶81FTP與HTTP比較
都是文件傳輸協議,并運行在TCP上。
FTP使用了兩個并行的TCP連接:控制連接:數據連接:FTP客戶機FTP服務器TCP控制連接端口21TCP數據連接端口2082控制連接用于在兩主機間傳輸控制信息(如用戶標識、口令等)FTP會話開始前,FTP的客戶機與服務器在21號端口上建立。FTP的客戶機通過該連接發送用戶標識和口令,或改變遠程目錄的命令。FTP客戶機FTP服務器TCP控制連接端口21TCP數據連接端口2083數據連接
用于準確傳輸文件。當服務器收到一個文件傳輸的命令后(從遠程主機上讀或寫),在20端口發起一個到客戶機的數據連接。在該數據連接上傳送一個文件并關閉連接。控制連接是持久的:在整個用戶會話期間一直保持;數據連接是非持久的:會話中每進行一次文件傳輸,都需要建立一個新的數據連接。FTP客戶機FTP服務器TCP控制連接端口21TCP數據連接端口2084
FTP的控制信息是帶外傳送(out-of-band):使用分離的控制連接;
HTTP的控制信息是帶內傳輸(in-band):請求和響應都是在傳輸文件的TCP連接中發送。FTP協議是有狀態的:FTP服務器對每個活動用戶會話的狀態進行追蹤,并保留;限制同時會話的總數。
HTTP協議是無狀態的:不對用戶狀態進行追蹤。85FTP命令,響應命令示例:經控制信道以ASCII文本發送USERusernamePASSpasswordLIST返回當前目錄中的文件列表RETRfilename獲取(get)文件STORfilename
存儲(puts)文件到遠程主機返回碼示例:狀態碼和短語(如在HTTP中的那樣)331UsernameOK,passwordrequired125dataconnectionalreadyopen;transferstarting425Can’topendataconnection452Errorwritingfile862.4因特網中的電子郵件電子郵件快速、多方接收,包含附件、超鏈接、圖像、聲音、視頻等等。本節討論電子郵件的核心,即應用層協議。87因特網電子郵件系統的總體結構三部分:用戶代理郵件服務器簡單郵件傳輸協議SMTP用戶郵箱輸出報文隊列郵件服務器用戶代理用戶代理用戶代理郵件服務器用戶代理用戶代理郵件服務器用戶代理SMTPSMTPSMTP電子郵件地址用戶郵箱名@主機名881、用戶代理(user
agent)當用戶完成郵件撰寫時,郵件代理向其郵件服務器發送郵件,并存放在發送隊列中。當用戶想讀取一條報文時,郵件代理從其郵件服務器的郵箱中獲取該報文。用戶郵箱輸出報文隊列郵件服務器用戶代理用戶代理用戶代理郵件服務器用戶代理SMTP郵件閱讀器。允許用戶閱讀、回復、發送、保存和撰寫報文。種類:GUI(圖形用戶接口):閱讀和編寫多媒體郵件。如Outlook、Foxmail等。892、郵件服務器(mailserver)郵箱:發送給用戶的報文。報文隊列:用戶要發出的郵件報文。用戶郵箱輸出報文隊列郵件服務器用戶代理用戶代理用戶代理郵件服務器用戶代理SMTP郵件發送主要過程:郵件保存到發送方報文隊列通過SMTP協議轉發到接收方郵件服務器,保存到相應郵箱中若投遞失敗,發送方將其保存在一個報文隊列中,以后每30分鐘發送一次,若幾天后仍未成功,將該報文刪除,并通知發送方。用戶訪問自己郵箱時,郵件服務器對其身份進行驗證(用戶名和口令)。903、簡單郵件傳送協議SMTP
從發送方的郵件服務器向接收方的郵件服務器發送郵件。應用層協議。使用TCP可靠數據傳輸服務。包括兩部分:客戶機端:在發送方郵件服務器上運行;服務器端:在接收方郵件服務器上運行。每個郵件服務器上都有SMTP的客戶機端和服務器端。91本節內容2.4.1SMTP2.4.2SMTP與HTTP比較 2.4.3郵件報文格式和MIME2.4.4郵件訪問協議922.4.1
SMTP1)Alice啟動郵件代理,提供接收方的郵件地址,撰寫郵件2)用戶代理把報文發給其郵件服務器,放在發送隊列中
3)SMTP的客戶機側創建與Bob的郵件服務器的TCP連接4)SMTP通過TCP連接發送報文5)Bob的郵件服務器接收并將該報文放入Bob的郵箱6)Bob調用其用戶代理來讀報文用戶代理郵件服務器郵件服務器用戶代理123456把一封郵件從發送郵件服務器傳送到接收郵件服務器的過程:如Alice向Bob發送報文SMTPBobAlice932.4.1
SMTP1)Alice啟動郵件代理,提供接收方的郵件地址,撰寫郵件2)用戶代理把報文發給其郵件服務器,放在發送隊列中
3)SMTP的客戶機側創建與Bob的郵件服務器的TCP連接4)SMTP通過TCP連接發送報文5)Bob的郵件服務器接收并將該報文放入Bob的郵箱6)Bob調用其用戶代理來讀報文用戶代理郵件服務器郵件服務器用戶代理123456把一封郵件從發送郵件服務器傳送到接收郵件服務器的過程:如Alice向Bob發送報文SMTPBobAlice94說明客戶使用TCP來可靠傳輸郵件報文到服務器端口號25。建立TCP連接:握手:指明收發雙方的郵件地址郵件報文的傳輸結束:關閉TCP連接95SMTP不使用中間郵件服務器發送郵件,即TCP連接是從發送方到接收方的直接相連。如果接收方的郵件服務器沒有開機,該郵件仍保留在發送方郵件服務器上,并在以后進行再次傳送。郵件不會在某個中間郵件服務器停留。96共同點都用于從一臺主機向另一臺主機傳送文件
?
HTTP用于從Web服務器向Web客戶機(瀏覽器)傳送文件(對象);
?
SMTP用于從一個郵件服務器向另一個郵件服務器傳送文件(電子郵件報文)。
持久HTTP和SMTP都使用持久連接。97區別HTTP是拉協議:用戶使用HTTP從服務器拉取信息。其TCP連接是由想獲取文件的機器發起。
SMTP是推協議:發送郵件服務器把文件推向接收郵件服務器,其TCP連接是由要發送文件的機器發起。
98區別
SMTP使用7位ASCII碼格式:對一些包含了非7位ASCII字符的報文或二進制數據(如圖片、聲音),需要按照7位ASCII碼進行編碼,再傳送。在接收方需要解碼還原為原有報文。
HTTP數據沒有該限制。對含有文本和圖形(或其他媒體類型)的文檔:HTTP把每個對象封裝在它各自的HTTP響應報文中發送電子郵件則把所有報文對象放在一個報文中。99郵件報文格式首部行(收發人、主題)To:From:Subject:主體“報文”,
均為ASCII字符首部主體空行100
MIME(多用途因特網郵件擴展)
SMTP只傳送7位的ASCII碼。SMTP不能傳送可執行文件或其他的二進制對象。
MIME:用于非ASCII數據傳輸。將非ASCII數據編碼后傳輸,接收方再解碼還原。增加新的MIME郵件首部采用某種編碼101
例:傳輸一個jpeg圖形
From:alice@crepes.frTo:bob@Subject:Pictureofyummycrepe.MIME-Version:1.0Content-Transfer-Encoding:base64Content-Type:image/jpegbase64encodeddata
base64encodeddata
多媒體數據類型,子類型,聲明參數使用數據編碼的方法MIME版本編碼數據base64編碼:用于二進制文件jpeg格式的靜止圖像102
接收的報文
From:alice@crepes.frTo:bob@Subject:Pictureofyummycrepe.MIME-Version:1.0Content-Transfer-Encoding:base64Content-Type:image/jpegbase64encodeddata
base64encodeddata
Received:fromcress.frby;12oct9815:27:39GMT添加一個Received:首部行1032.4.4郵件訪問協議發送方:用戶代理用SMTP將郵件推入其郵件服務器郵件服務器再用SMTP將郵件轉發到接收方的郵件服務器接收方:通過其用戶代理使用一個郵件訪問協議(不是SMTP),從其郵件服務器上取回郵件。
取郵件是一個拉操作,而SMTP協議是一個推協議。
用戶代理發送方郵件服務器用戶代理SMTP訪問協議接收方郵件服務器SMTP104郵件訪問協議:從服務器獲取郵件。種類:POP3(第三版的郵局協議)IMAP(因特網郵件訪問協議)HTTP1051、POP3簡單、功能有限。在用戶代理打開了一個到郵件服務器(服務器)端口110上的TCP連接后,開始工作。106工作步驟(三階段):特許階段:用戶代理發送用戶名和口令獲得下載郵件的特許。(身份認證)事務處理階段:用戶代理取回報文,可對郵件進行某些操作。如做刪除標記、取消刪除標記、獲取統計信息等。更新階段:郵件服務器刪除帶有刪除標記的報文,結束POP會話。1072、IMAPPOP3缺陷:用戶讀取郵件后,服務器不再保存。IMAP:功能強在用戶的PC機上運行IMAP客戶程序,然后與ISP的郵件服務器上的IMAP服務器程序建立TCP連接。用戶在自己的PC機上就可以操縱郵件服務器的郵箱,就像在本地操縱一樣,是一個聯機協議。未發出刪除命令前,一直保存在郵件服務器實現起來復雜。1083、基于web的電子郵件
1995年12月Hotmail引入該技術。用戶使用瀏覽器收發電子郵件。用戶代理是普通的瀏覽器,用戶和其遠程郵箱之間的通信通過HTTP進行:發件人使用HTTP將電子郵件報文從其瀏覽器發送到其郵件服務器上;收件人使用HTTP從其郵箱中取一個報文到瀏覽器;郵件服務器之間發送和接收郵件時,使用SMTP。用戶可以在遠程服務器上以層次目錄方式組織報文。如,Hotmail、Yahoo、Mail等。1092.5DNS:因特網的目錄服務標識主機的兩種方式:主機名:由不定長的字母和數字組成。便于記憶。如
路由器處理困難。IP地址:由4個字節組成,有著嚴格的層次結構。路由器容易處理。如IP地址(點分十進制):3
網絡號主機號1102.5.1DNS提供的服務報文在網絡中傳輸,使用IP地址。域名系統DNS(DomainNameSystem):進行主機名到IP地址的轉換。一個由分層的DNS服務器實現的分布式數據庫允許主機查詢分布式數據庫的應用層協議;111說明運行BIND軟件的UNIX機器;DNS協議運行在UDP之上,使用53號端口。DNS通常直接由其他的應用層協議(包括HTTP、SMTP和FTP)使用,以將用戶提供的主機名解析為IP地址。用戶只是間接使用。112例,某個用戶主機上的一個瀏覽器訪問某個Web頁,/index.html用戶主機要將一個HTTP請求報文發送到Web服務器,需先得到相應的IP地址。過程如下:用戶主機上運行DNS應用的客戶機端。瀏覽器從URL中解析出主機地址,傳給DNS客戶機端。DNS客戶機向DNS服務器發送一個包含主機名的請求;DNS客戶機收到含有對應主機名的IP地址的回答報文;瀏覽器向該IP地址指定的HTTP服務器發起一個TCP連接。增加一定時延。113DNS服務主機名到IP地址的轉換主機別名規范名和別名:通過DNS可以得到主機別名對應的規范主機名及IP地址。郵件服務器別名負載分配1142.6P2P文件共享
位于網絡邊緣的PC機(對等方peer)互相之間可以直接獲取對象。例,用戶Alice使用P2P文件共享應用程序下載MP3。說明:每個參與的對等方既是內容的消費者也是內容的發布者(下載同時也向其他用戶上載)。115過程
在PC機上運行一個P2P文件共享應用軟件(對等方);通過ADSL間歇地與接入因特網(無固定IP地址)使用該應用程序搜索一首MP3歌曲;顯示一張有該首歌曲的對等方列表:所有在線對等方,并愿意共享該首音樂的MP3拷貝對等方都是普通的PC,是因特網用戶。列表中提供一些附加信息,如接入帶寬和下載時間。選擇一個對等方(Bob)并向其請求該MP3文件;兩個用戶之間建立一個直接的TCP連接;
MP3文件從Bob的PC機向Alice的PC發送;下載期間若偶然斷開,可從其他對等方繼續下載。116P2P文件共享特點直接在對等方間傳輸:所有內容不經過第三方服務器高度的可擴展能力:利用眾多對等方集合中的資源去分發內容使用客戶機/服務器模式:請求的對等方是客戶機,被選中的對等方是服務器。服務器對等方使用文件傳輸協議向客戶機對等方傳送。?通過傳送“HTTP請求”和“HTTP響應”報文進行。所有的對等方必須既能運行文件傳輸協議的客戶機端程序,又能運行服務器端程序。?對等方既是一個客戶機,又是一個瞬時Web服務器。117內容定位體系結構
一個對等方如何確定哪個對等方有所需要的內容。(1)集中式目錄(2)查詢洪泛(3)利用不均勻性(KaZaA)118(1)集中式目錄目錄服務器(大型服務器或服務器場):提供目錄服務。收集可共享的對象,建立集中式的動態數據庫(對象名稱到IP地址的映射)。集中式目錄服務器對等方AliceBob111123源于Napster公司(第一家世界范圍內從事MP3對等應用程序)設計。119主要工作通知:對等方啟動時,將其IP地址及可共享內容通知目錄服務器;查詢內容:用戶查詢需要共享的對象。如,Alice查詢某首歌。獲取內容:來自Bob。更新:當對等方獲得新對象或刪除對象時,通知目錄服務器更新。對等方AliceBob111123通知和更新集中式目錄服務器查詢文件傳輸屬于客戶機/服務器與P2P的混合結構。120
集中式目錄存在的問題單點故障性能瓶頸侵犯版權可靠性:文件傳輸是分散的,但定位內容的過程是高度集中的。121(2)查詢洪泛:Gnutella是一個公共域文件共享應用程序。全分布方式:無中心服務器許多Gnutella客戶機實現協議:運行在對等方。實現:對等方先形成一個抽象的邏輯網絡(覆蓋網絡):通過洪泛查詢,找到所需對象:如,某個對等方Alice想得到一個對象。122特點設計簡單。擴展性差。“查詢報文”在網絡中產生很大的流量。限范圍的洪泛查詢:在“查詢報文”中設置一個計數字段,并給定一個特定值。可能減少對等方數量。123覆蓋網絡如果對等方X和Y間有一條TCP連接,則存在一條邊所有活動對等方和邊形成覆蓋網絡邊不是物理鏈路一個對等方所連接的節點少于10個。124洪泛查詢查詢查詢命中查詢查詢查詢命中查詢查詢查詢命中文件傳輸:HTTP向覆蓋網絡中的每個鄰居發送“查詢報文”;每個鄰居再向鄰居轉發,使覆蓋網絡上的每個對等方都能收到該查詢;如果收到查詢的對等方中有被請求對象,沿反向路徑回發“查詢命中”報文;可能收到多個對等方發回的“查詢命中”報文選擇一個對等方,雙方建立一條直接的TCP連接,并通過HTTP報文得到內容。125
對等方X加入對等方X維持一張對等方列表(IP地址)X試圖與列表上的對等方建立TCP,直到與Y建立連接X向Y發送Ping報文;Y向鄰居轉發Ping報文所有收到Ping報文的對等方Z用Pong報文響應(IP地址)X收到多個Pong報文,建立多個TCP連接,即多個邊126KaZaA
與Gnutella類似,無專用服務器,但對等方地位不平等。實現:對等方先形成一個層次的覆蓋網絡通過查詢,找到所需對象。
127層次覆蓋網絡每組包括若干個組員,一個組長組員與其組長有一個TCP連接,將共享內容告訴組長。組長維護一個數據庫,該組的共享內容及相關對等方的IP地址。相關組長之間建立TCP連接組長追蹤其所有子節點上的內容普通對等方組長對等方在覆蓋網絡中的鄰居關系對等方根據通信關系劃分若干組,組成層次結構。128KaZaA:查詢對等方確定到某個特定對象的方法:向組長發出查詢,組長用本組中具有該對象的對等方列表響應;或與其他組長聯系,請它們向該對等方發送具有該對象的對等方列表。129KaZaA特點層次覆蓋網絡查詢流量不大設計技巧請求排隊:限制并行上載數量激勵優先權:上載文件比下載文件多的用戶優先。并行下載:從多個對等方請求并下載同一個文件的不同部分。1302.7TCP套接字編程網絡應用程序的核心:客戶機程序和服務器程序。運行時,分別創建一個客戶機進程和一個服務器進程,相互之間通過套接字讀寫數據進行通信。網絡應用程序類型:通用應用程序:通過RFC文檔所定義的標準協議來實現程序必須滿足該RFC所規定的規則;使用與協議相關的端口號。如Web應用專用的應用程序:程序不必符合RFC規則;開發者根據實際應用設計;不能使用RFC中定義的周知端口號。131說明
研發初期,先選擇運輸層協議:TCP:面向連接的,為兩個端系統之間的數據流動提供可靠的字節流通道。UDP:無連接的,從一個端系統向另一個端系統發送獨立的數據分組,不對交付提供任何保證。1322.7.1TCP套接字編程
運行在不同機器上的進程彼此通過套接字傳遞報文來進行通信。進程/套接字:房子/門戶,即套接字是應用進程和TCP之間的門戶。程序開發者可以控制應用層端所有東西;不能控制運輸層端。
TCP服務:
從一個進程到另一個進程的可靠字節傳輸由操作系統控制進程具有緩存,變量的TCP套接字由應用程序研發者控制主機或服務器進程具有緩存,變量的TCP套接字由操作系統控制主機或服務器internet由應用程序研發者控制133客戶機和服務器程序之間的交互
先建立TCP連接,再進行數據傳輸。客戶機程序是連接的發起方;服務器必須先準備好,對客戶機程序發起的連接做出響應:·服務器程序事先已經在系統中運行;·服務器程序的一個套接字(歡迎套接字)已經打開,準備接收客戶機程序發起的連接(敲門)。具體過程:134建立TCP連接客戶機進程向服務器發起一個TCP連接:
創建一個本地套接字,指定相應服務器進程的地址(IP地址和端口號)。建立一個TCP連接:當服務器聽到客戶機的連接請求(敲門)時,創建一個新套接字,經過“三次握手”,客戶機套接字和服務器套接字之間建立一個TCP連接(直接的虛擬管道)。135傳送數據TCP連接為客戶機和服務器了一個直接的傳輸管道。可靠的,順序的,字節流的傳輸136術語流:流入或流出某進程的一串字符序列。輸入流:來自某個輸入源(如鍵盤)、或某個套接字(因特網的數據流入套接字)。輸出流:到某個輸出源(如顯示器)、或某個套接字(數據通過套接字流向因特網)。1372.7.2Java應用程序示例
客戶機和服務器經TCP連接進行通信。客戶機從鍵盤讀一行字符,通過套接字向服務器發送服務器從套接字讀取數據; 將該行字符轉換成大寫;將修改的行通過其連接套接字再回發給客戶機。客戶機從其套接字中讀取修改的行,并將該行在顯示器上顯示。138客戶機/服務器程序交互等待入連接請求connectionSocket=welcomeSocket.accept()生成歡迎套接字,port=xwelcomeSocket=ServerSocket()生成套接字,與hostid連接,port=xClientSocket=Socket()關閉connectionSocket讀回答ClientSocket關閉ClientSocket服務器
(運行在hostid上)客戶機發送請求ClientSocket讀請求connectionSocket寫回答connectionSocketTCPconnectionsetup139客戶機端創建了三個流和一個套接字,如圖所示。套接字:clientSocket;InFromUser輸入流:連接到鍵盤;InFromServers輸入流:與套接字連接。從網絡來的字符outToServers輸出流:與套接字連接,客戶機發送到網絡的字符。客戶機processoutToServer到網絡來自網絡inFromServerinFromUser鍵盤顯示器進程clientSocket輸入流輸入流輸出流TCP套接字套接字140客戶機:(TCPClient.java)importjava.io.*;import.*;classTCPClient{publicstaticvoidmain(Stringargv[])throwsException{Stringsentence;StringmodifiedSentence;BufferedReaderinFromUser=newBufferedReader(newInputStreamReader(System.in));SocketClientSocket=newSocket("hostname",6789);DataOutputStreamoutToServer=newDataOutputStream(ClientSocket.getOutputStream());
產生輸入流產生客戶機套接字,與服務器連接生成輸出流與套接字聯系產生輸入流、輸出流、套接字輸入發送接收顯示141
BufferedReaderinFromServer=newBufferedReader(newInputStreamReader(ClientSocket.getInputStream()));sentence=inFromUser.readLine();
outToServer.writeBytes(sentence+'\n');modifiedSentence=inFromServer.readLine();System.out.println("FROMServer:"+modifiedSentence);
ClientSocket.close();
}}
產生與套接字聯系的輸入流向服務器發送行從服務器讀行顯示內容鍵盤輸入142服務器:(TCPServer.java)importjava.io.*;import.*;classTCPServer{publicstaticvoidmain(Stringargv[])throwsException{StringClientSentence;StringcapitalizedSentence;ServerSocket
welcomeSocket=newServerSocket(6789);
while(true){
SocketconnectionSocket=welcomeSocket.accept();BufferedReaderinFromClient
=newBufferedReader(newInputStreamReader(connectionSocket.getInputStream()));在端口6789生成歡迎套接字,監聽創建一個連接套接字
生成輸入流,與套接字聯系產生輸入流、輸出流、套接字接收發送143
DataOutputStreamoutToClient
=newDataOutputStream(connectionSocket.getOutputStream());
ClientSentence=inFromClient.readLine();
capitalizedSentence=ClientSentence.toUpperCase()+'\n';
outToClient.writeBytes(capitalizedSentence);}}}
從套接字讀入客戶機來的數據
生成輸出流,與套接字聯系向套接字輸出數據到客戶機循環結束,返回并等待另一個客戶機連接1442.8UDP套接字編程UDP是一種無連接的服務,即在兩個進程之間沒有創建管道時所需的初始握手階段。進程之間的數據傳遞以分組為單位進行。分組中含目的進程地址(主機IP地址和端口號)。提供不可靠的傳輸服務。145編程說明:通信進程之間沒有初始握手,不需要歡迎套接字;沒有流與套接字相聯系;發送主機將信息字節封裝生成分組,再發送;接收進程解封收到的分組,獲得信息字節。146客戶機/服務器程序交互關閉ClientSocket服務器(運行在hostid上)從ClientSocket讀應答創建套接字Cli
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 12家鄉的喜與憂 第二課時 教學設計-2023-2024學年道德與法治四年級下冊統編版
- Module4 單元整體(教學設計)-2024-2025學年外研版(三起)英語五年級上冊
- 9《知法守法依法維護》(第2課時)教學設計-2024-2025學年道德與法治六年級上冊統編版
- 20《金字塔:不可思議的金字塔》教學設計-2023-2024學年統編版語文五年級下冊
- 19 只有一個地球 教學設計-2024-2025學年語文六年級上冊統編版
- 造瘺袋更換的護理
- 診斷業務趨勢
- 2023六年級英語下冊 Unit 2 Good habits Period 1教學設計 譯林牛津版
- 訊飛智文導出
- 2023九年級物理下冊 第九章 家庭用電9.2家庭電路第1課時 認識家庭電路教學設計 (新版)教科版
- AFC系統介紹教學課件
- 雙流中學初一新生入學考試語文試題
- 二年級體育迎面接力跑與游戲教案 通用版
- 無人機航拍技術理論考核試題題庫及答案
- 高填方路基施工質量控制培訓二
- 金陵十二釵判詞欣賞
- 500噸每日小區生活污水處理工程設計大學本科畢業論文
- 耶路撒冷問題
- 《結業證書》模板范本
- 密度計法顆粒分析試驗記錄(自動和計算)
- 五腧穴、原穴、郄穴、募穴、背俞穴、絡穴、八脈交會穴、八會穴、下合穴
評論
0/150
提交評論