Chapter-6-北航本科計算機網絡課件-劉軼_第1頁
Chapter-6-北航本科計算機網絡課件-劉軼_第2頁
Chapter-6-北航本科計算機網絡課件-劉軼_第3頁
Chapter-6-北航本科計算機網絡課件-劉軼_第4頁
Chapter-6-北航本科計算機網絡課件-劉軼_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第六章應用層劉軼北京航空航天大學計算機學院

本章內容

6.1套接字編程接口

6.2域名系統DNS

6.3文件傳送協議

6.4萬維網WWW

6.5電子郵件

應用層協議特點應用層協議是為了解決某一類應用問題由于網絡應用的多樣性,應用層的協議也種類繁多應用層的許多協議都是基于客戶/服務器方式客戶(client)和服務器(server)都是指通信中所涉及的兩個應用進程客戶/服務器方式所描述的是進程之間服務和被服務的關系客戶是服務請求方,服務器是服務提供方6.1套接字編程接口6.1套接字編程接口網絡子系統作為操作系統的一部分,以應用編程接口(API—ApplicationProgrammingInterface)的形式向應用程序提供調用接口套接字(socket)是最常用的應用層編程接口名稱起源于BerkeleyUNIX操作系統經典的socket編程接口采用同步調用方式(又稱阻塞式)例:調用recv()時,調用進程將被阻塞,直到收到數據為止Windows這種基于事件驅動的系統中,程序的執行由事件驅動,需要異步事件驅動方式的套接字編程接口Microsoft推出WinSock編程接口,在阻塞式調用基礎上,增加了異步調用方式在阻塞式調用模式下,WinSock與經典的socket兼容6.1套接字編程接口應用進程通過套接字接入到網絡應用進程TCPUDP由應用程序控制因特網由操作系統控制客戶服務器套接字TCPUDP應用進程套接字6.1套接字編程接口調用socket()創建套接字套接字描述符表(每一個進程一個描述符)0:1:2:3:4:操作系統套接字的數據結構協議族:PF_INET服務:SOCK_STREAM本地IP地址:遠地IP地址:本地端口:遠地端口:接口函數功能SOCKETsocket(intaf,inttype,intprotocol)創建一個socketintbind(SOCKETs,structsockaddr*name,intnamelen)將本地地址與socket綁定intlisten(SOCKETs,intbacklog)在套接字上監聽連接請求intconnect(SOCKETs,structsockaddr*name,intnamelen)與name指定的地址建立連接SOCKETaccept(SOCKETs,structsockaddr*addr,int*addrlen)接受與本socket的連接請求intsend(SOCKETs,char*buf,intlen,intflags)在連接的socket上發送數據intrecv(SOCKETs,char*buf,intlen,intflags)在連接的或綁定的socket上接收數據intsendto(SOCKETs,char*buf,intlen,intflags,structsockaddr*to,inttolen);向指定的目標地址發送數據intrecvfrom(SOCKETs,char*buf,intlen,intflags,structsockaddr*from,int*fromlen);在socket上接收數據并記錄源地址常用socket接口函數6.1套接字編程接口基于UDP的系統調用流程服務器端socketbindrecvfromsendtoclose客戶端socketrecvfromsendtoclosebindSOCKETsocket(intaf,inttype,intprotocol);6.1套接字編程接口基于TCP的系統調用流程服務器端socketbindlistenacceptrecvsendclose客戶端socketrecvsendcloseconnect連接建立請求6.2域名系統DNS6.2域名系統DNS一、域名系統概述域名系統DNS(DomainNameSystem)是Internet使用的命名系統RFC1034:DomainNames-ConceptsandFacilitiesRFC1035:DomainNames–ImplementationandSpecificationInternet采用層次結構的命名樹作為主機的名字,并使用分布式的域名系統DNS多個域名服務器上運行專門的域名服務器程序,完成域名IP地址的解析(resolve)DNS基于UDP協議實現應用進程需要進行域名解析時,就調用域名解析程序(resolver),它成為DNS的一個客戶向本地域名服務器發送域名解析請求(UDP報文),其中包含待解析的域名本地域名服務器在查找域名后,返回應答報文,其中包含對應的IP地址6.2域名系統DNS二、Internet的域名結構Internet采用層次樹狀結構的命名方法

….三級域名.二級域名.頂級域名頂級域名TLD(TopLevelDomain)國家頂級域名:如:.cn表示中國,.us表示美國,.uk表示英國,等等通用頂級域名:最早的頂級域名是:域名含義

.com公司和企業

.net網絡服務機構

.org非贏利性組織

.edu美國專用的教育機構

.gov美國專用的政府部門

.mil美國專用的軍事部門

.int國際組織6.2域名系統DNS新增的通用頂級域名域名含義

.aero航空運輸企業

.biz公司和企業

.cat加泰隆人的語言和文化團體

.coop合作團體

.info各種情況

.jobs人力資源管理者

.mobi移動產品與服務的用戶和提供者

.museum博物館

.name個人

.pro有證書的專業人員

.travel旅游業注意:域名不區分大小寫域名長度不超過255字符6.2域名系統DNS根四級域名mail…www…bjeducom…cctvibmhp二級域名pkubuaa…三級域名mailwww…comnetorgedugovaerocnuk…頂級域名……Internet的域名空間6.2域名系統DNS三、域名服務器域名服務器分為四類根域名服務器根域名服務器知道所有的頂級域名服務器的域名和IP地址當本地域名服務器無法解析域名時,就求助于根域名服務器頂級域名服務器負責管理在該頂級域名服務器注冊的所有二級域名權限域名服務器負責一個區(zone)的域名服務器本地域名服務器有時也稱為默認域名服務器域名服務器定期把數據復制到幾個域名服務器來保存,其中的一個是主域名服務器,其他的是輔助域名服務器6.2域名系統DNS三、域名服務器樹狀結構的DNS域名服務器根域名服務器org域名服務器com域名服務器edu

域名服務器…域名服務器abc

公司有兩個權限域名服務器權限域名服務器根域名服務器頂級域名服務器域名服務器6.2域名系統DNS三、域名服務器主機向本地域名服務器的查詢一般采用遞歸查詢如果本地域名服務器不知道被查詢域名的IP地址,那么它就以DNS客戶的身份,向根域名服務器繼續發出查詢請求報文本地域名服務器向根域名服務器的查詢通常是采用迭代查詢當根域名服務器收到本地域名服務器的迭代查詢請求報文時要么給出所要查詢的IP地址要么告訴本地域名服務器下一步應向哪一個域名服務器查詢本地域名服務器進行后續的查詢6.2域名系統DNS本地域名服務器采用迭代查詢頂級域名服務器權限域名服務本地域名服務器根域名服務器迭代查詢

IP

地址

遞歸查詢需要查找

的IP地址域名服務端口號:53為提高域名查詢效率,域名服務器上通常設置高速緩存6.2域名系統DNS本地域名服務器采用遞歸查詢(較少采用)頂級域名服務器權限域名服務本地域名服務器

根域名服務器遞歸查詢遞歸查詢

IP

地址需要查找

的IP地址6.3文件傳送協議6.3文件傳送協議RFC959:FileTransferProtocol(FTP)FTP使用客戶/服務器方式一個FTP服務器進程可同時為多個客戶進程提供服務FTP的服務器進程由兩大部分組成一個主進程,負責接受新的請求若干個從屬進程,負責處理單個請求主進程的工作步驟打開熟知端口(端口號為21),使客戶進程能夠連接上等待客戶進程發出連接請求啟動從屬進程處理客戶進程發來的請求從屬進程對客戶進程的請求處理完畢后即終止從屬進程在運行期間根據需要還可能創建其他一些子進程回到等待狀態,繼續接受其他客戶進程發來的請求主進程與從屬進程的處理是并發地進行FTP使用2個TCP連接:控制連接和數據連接控制連接在整個會話期間一直保持打開FTP客戶發出的傳送請求通過控制連接發送給服務器端的控制進程,但控制連接不用來傳送文件數據連接收到FTP客戶發送來的文件傳輸請求后,服務器端的控制進程創建“數據傳送進程”和“數據連接”數據傳送進程實際完成文件的傳送,傳送完畢后關閉“數據傳送連接”并結束運行控制進程FTP客戶端FTP服務器端InternetTCP控制連接TCP數據連接用戶界面控制進程數據傳送進程數據傳送進程6.4萬維網WWW6.4萬維網WWW一、萬維網概述WWWWorldWideWeb1989年,歐洲核子研究中心提出WWW1993年,第一個瀏覽器Mosaic1995年,NetscapeNavagitor上市萬維網是分布式超媒體(hypermedia)系統,它是超文本(hypertext)系統的擴充要解決的幾個問題怎樣標識分布在整個因特網上的萬維網文檔?URL用什么協議實現萬維網上各種超鏈的鏈接?HTTP如何存儲和表示萬維網文檔?HTML6.4萬維網WWW一、萬維網概述萬維網站點A萬維網站點C萬維網站點E萬維網站點D萬維網站點B鏈接到鏈接到鏈接到鏈接到鏈接到鏈接到搜索引擎即根據網頁中的鏈接在網絡中獲取信息6.4萬維網WWW二、統一資源定位符URL(UniformResourceLocator)URL是對Internet上資源位置和訪問方法的一種簡潔表示URL的一般形式:<協議>://<主機>:<端口>/<路徑>ftp——文件傳送協議FTPhttp——超文本傳送協議HTTPNews——USENET新聞<主機>為存放資源的主機在Internet中的域名<端口>和<路徑>有時可省略。使用http協議時,如省略<端口>,則使用熟知端口號80;如省略<路徑>,則指主頁(homepage)URL不區分大小寫6.4萬維網WWW三、超文本傳送協議HTTPHTTPHyperTextTransferProtocol基于TCP協議,是萬維網上可靠地交換文件的重要基礎HTTP是面向事務的客戶/服務器協議HTTP是無狀態的(stateless)服務器不記錄客戶端的訪問狀態基本工作原理Web服務的熟知端口號是80,服務器通常在該端口上監聽客戶端需要請求某個頁面時,與服務器建立TCP鏈接,之后請求傳送文件,并進行文件的傳送,傳送完畢后釋放TCP連接萬維網的工作過程

Internet服務器客戶清華大學院系設置瀏覽器程序服務器程序HTTP使用此TCP連接HTTP鏈接到URL的超鏈建立TCP連接釋放TCP連接HTTP響應報文響應文檔HTTP請求報文請求文檔6.4萬維網WWW鼠標點擊超鏈接后發生的事件(1)瀏覽器分析超鏈指向頁面的URL(2)瀏覽器向DNS請求解析

的IP地址(3)域名系統DNS解析出清華大學Web服務器的IP地址(4)瀏覽器與服務器建立TCP連接(5)瀏覽器發出取文件命令:

GET/chn/yxsz/index.htm(6)服務器給出響應,把文件index.htm發給瀏覽器(7)TCP連接釋放(8)瀏覽器顯示“清華大學院系設置”文件index.htm中的所有文本請求一個萬維網文檔所需的時間萬維網服務器萬維網客戶HTTP請求報文發起TCP連接RTTRTT整個文檔收到時間時間首先建立TCP連接,需3次握手在2次握手后,第3次握手報文的數據部分可傳送HTTP請求報文請求文檔所需時間文檔傳輸時間

+2倍RTT時間HTTP/1.0的主要缺點每請求一個文檔都需要建立一次TCP連接一個Web頁面常常包含數量眾多的文件文檔傳輸時間HTTP響應報文6.4萬維網WWW三、超文本傳送協議HTTPHTTP/1.1協議使用持續連接(persistentconnection)服務器發送響應后,在一段時間內保持連接,使客戶與服務器可以繼續傳送后續的HTTP請求報文和響應報文這并不局限于傳送同一個頁面上鏈接的文檔,而是只要這些文檔都在同一個服務器上就行目前主流的瀏覽器都默認支持HTTP/1.1HTTP的報文類型:兩類報文請求報文——從客戶向服務器發送請求報文響應報文——從服務器到客戶的回答HTTP是面向正文的(text-oriented),報文中的字段都是ASCII碼串,因而每個字段的長度都是不確定的6.4萬維網WWW報文由三個部分組成,即開始行、首部行和實體主體在請求報文中,開始行就是請求行方法是面向對象技術中使用的專門名詞方法實際上就是一些命令URL:所請求的資源的URL版本:HTTP的版本方法URL版本首部字段名首部行:值首部字段名值:…實體主體(通常不用)空格回車換行:CRLFCRLFCRLFCRLF開始行(請求行)HTTP請求報文6.4萬維網WWWHTTP請求報文的一些方法方法(操作)意義OPTION請求一些選項的信息GET請求讀取由URL所標志的信息HEAD請求讀取由URL所標志的信息的首部POST給服務器添加信息(例如,注釋)PUT在指明的URL下存儲一個文檔DELETE刪除指明的URL所標志的資源TRACE用來進行環回測試的請求報文CONNECT用于代理服務器6.4萬維網WWWHTTP應答報文的開始行是狀態行狀態行包括三項內容:HTTP的版本、狀態碼、解釋狀態碼的簡單短語狀態碼都是三位數字

1xx:表示通知信息的,如請求收到了或正在進行處理2xx:表示成功,如接受或知道了3xx:表示重定向,表示要完成請求還必須采取進一步的行動4xx:表示客戶的差錯,如請求中有錯誤的語法或不能完成5xx:表示服務器的差錯,如服務器失效無法完成請求HTTP應答報文版本狀態碼短語首部字段名首部行:值首部字段名值:…實體主體(有些響應報文不用)空格回車換行:CRLFCRLFCRLFCRLF開始行(狀態行)6.4萬維網WWW四、萬維網的文檔HTMLHyperTextMarkupLanguageRFC1866:HypertextMarkupLanguage-2.0HTML定義了許多用于排版的命令,即標簽(tag)如:<I>表示后面開始用斜體排版,</I>表示斜體結束HTML把各種標簽嵌入到萬維網的頁面中,構成HTML文檔HTML文檔為文本格式瀏覽器從服務器讀取HTML文檔后,按照其中嵌入的各種標簽,根據顯示器尺寸和分辨率顯示頁面僅當HTML文檔是以.html或.htm為后綴時,瀏覽器才對此文檔的各種標簽進行解釋<HTML><HEAD>

<TITLE>一個HTML的例子</TITLE></HEAD><BODY><H1>HTML很容易掌握</H1><P>這是第一個段落。雖然很短,但它仍是一個段落。</P><P>這是第二個段落。</P></BODY></HTML>HTML文檔中標簽的用法<HTML><HEAD>

<TITLE>一個HTML的例子</TITLE></HEAD><BODY><H1>HTML很容易掌握</H1><P>這是第一個段落。雖然很短,但它仍是一個段落。</P><P>這是第二個段落。</P></BODY></HTML>HTML文檔開始首部開始首部結束主體開始標題第一個段落1級標題第二個段落主體結束文檔結束HTML文檔中標簽的用法6.5電子郵件6.5電子郵件一、概述發送郵件的協議:SMTPRFC2821(RFC821):SimpleMailTransferProtocolRFC2822(RFC822):InternetMessageFormat早期郵件只支持7bitASCII編碼,1993年提出了MIME標準RFC20452049在郵件首部中說明了數據類型(如文本、聲音、圖像、視像等),可在郵件中多種類型的數據讀取郵件的協議:POP3和IMAPPOP3PostOfficeProtocolIMAPInternetMessageAccessProtocol電子郵件的最主要的組成構件發送方郵件緩存接收端郵件服務器用戶代理SMTPSMTPPOP3發送端郵件服務器用戶代理用戶郵箱接收方(發送郵件)(發送郵件)(讀取郵件)因特網SMTPPOP3發送郵件發送郵件SMTP讀取郵件TCP連接TCP連接發送方郵件服務器SMTP客戶POP3客戶發件人用戶代理接收方郵件服務器SMTP服務器POP3服務器SMTP服務器SMTP客戶收件人用戶代理TCP連接6.5電子郵件電子郵件系統的兩種實體用戶代理UA(UserAgent)是用戶與電子郵件系統的接口,即電子郵件客戶端軟件用戶代理的功能:撰寫、顯示、處理和通信郵件服務器用于發送和接收郵件,并向發信人報告傳送結果(已交付、被拒絕、丟失等)郵件服務器按照客戶/服務器方式工作使用發送和讀取兩個不同的協議,即發送郵件的SMTP協議和客戶端讀取郵件的POP3協議一個郵件服務器既可以作為客戶,也可以作為服務器6.5電子郵件發送電子郵件的主要步驟:發件人運行自己主機中的用戶代理,撰寫和編輯郵件發件人使用用戶代理把郵件用SMTP協議發給發送方郵件服務器郵件服務器把郵件臨時存放在郵件緩存隊列中,等待發送發送方郵件服務器處理緩存隊列中的郵件,由SMTP客戶與接收方郵件服務器的SMTP服務器建立TCP連接,并將郵件發送出去運行在接收方郵件服務器中的SMTP服務器收到郵件后,把郵件放入收件人的用戶郵箱中,等待收件人讀取收件人在收信時,運行自己主機中的用戶代理,使用POP3(或IMAP)協議讀取郵件6.5電子郵件二、簡單郵件傳送協議SMTP簡介SMTP規定了兩個相互通信的SMTP進程之間應如何交換信息SMTP使用客戶/服務器方式

溫馨提示

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

評論

0/150

提交評論