1. 程式人生 > >計算機網路知識總結之應用層

計算機網路知識總結之應用層

計算機網路基礎總結之應用層

一、域名系統DNS

把域名(主機名)解析為IP地址。被設計為分散式系統

1.1、層次結構

一個域名有多個層次構成,從上到下分為頂級域名、二級域名、三級域名以及四級域名。所有域名可以畫成一個域名樹。

因此、域名伺服器可以分為以下四類
- 根域名伺服器:解析頂級域名
- 頂級域名伺服器:解析二級域名
- 許可權域名伺服器:解析區內域名
- 本地域名伺服器:也稱為預設域名伺服器。

區和域的概念不同,可以在一個域中劃分多個區。例如在域abc.com中劃分了兩個區abc.com和y.abc.com。

因此就需要兩個域名伺服器:

1.2、解析過程

主機向本地域名伺服器解析過程採用遞迴,而本地域名伺服器向其他域名伺服器可以使用遞迴和迭代兩種方式。

  • 迭代方式:本地域名伺服器向一個域名伺服器請求解析之後,結果返回到本地域名伺服器,如果沒找到對應的ip地址,本地域名伺服器繼續向其他域名伺服器請求解析。
  • 遞迴方式:結果不是直接返回,而是繼續向前請求解析,最後結果才返回。

1.3、使用的運輸層協議

DNS在解析的過程中使用的是UDP進行傳輸,因為UDP最大隻支援512位元組的資料,如果超過的話就需要使用TCP傳輸。

二、檔案傳輸協議

FTP在運輸層使用的TCP協議,並且需要建立兩個並行的TCP連線:控制連線和資料連線

  • 控制連線:在整個回話期間一直開啟,使用的埠是21
  • 資料連線:在資料傳送完畢之後進行關閉,使用的連線埠是20、

三、遠端終端協議TELNET

遠端終端協議用於登陸遠端主機,並且遠端主機上的輸出也返回。使用的TCP協議。TELNET可以適應許多計算機和作業系統的差異,例如不同作業系統的換行符定義。

四、電子郵件協議

一個電子郵件系統由三部分組成:使用者代理、郵件伺服器、以及郵件傳送協議和讀取協議。
其中傳送協議常用SMTP,讀取協議常用的是POP3和IMAP。

4.1、POP3

POP3的特點是隻要使用者從伺服器上讀取了郵件,就把該郵件刪除。

4.2、IMAP

IMAP協議中客戶端和伺服器上的郵件保持同步,如果不手動刪除郵件,那麼伺服器上的郵件也不會被刪除,IMAP這種做法可以讓使用者隨時隨地的去訪問伺服器上的郵件。IMAP協議也支援建立自定義的資料夾。

4.3、SMTP

SMTP只能傳送ASCII碼,而網際網路郵件擴充MIME可以傳送二進位制檔案。MIME並沒有改動或者取代SMTP,而是增加郵件主題的結構,定義了非ASCII碼的編碼規則。

五、動態主機配置協議DHCP

DHCP提供了即插即用的聯網方式,永不不需要去手動配置IP地址等資訊。

DHCP配置的內容不僅是IP地址、還包含預設路由IP地址、域名伺服器IP地址。

DHCP的工作流程

  • 發現階段:即DHCP客戶機尋找DHCP伺服器的階段。DHCP客戶機以廣播方式(因為DHCP伺服器的IP地址對於客戶機來說是未知的)傳送DHCP discover發現資訊來尋找DHCP伺服器,即向地址255.255.255.255傳送特定的廣播資訊,源IP地址為 0.0.0.0 。網路上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播資訊,但只有DHCP伺服器才會做出響應。
  • 提供階段:即DHCP伺服器提供IP地址的階段。在網路中接收到DHCP discover發現資訊的DHCP伺服器都會做出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設定的DHCP offer提供資訊。
  • 選擇階段:即DHCP客戶機選擇某臺DHCP伺服器提供的IP地址的階段。如果有多臺DHCP伺服器向DHCP客戶機發來的DHCP offer提供資訊,則DHCP客戶機只接受第一個收到的DHCP offer提供資訊,然後它就以廣播方式回答一個DHCP request請求資訊,該資訊中包含向它所選定的DHCP伺服器請求IP地址的內容。之所以要以廣播方式回答,是為了通知所有的DHCP伺服器,他將選擇某臺DHCP伺服器所提供的IP地址。
  • 確認階段:即DHCP伺服器確認所提供的IP地址的階段。當DHCP伺服器收到DHCP客戶機回答的DHCP request請求資訊之後,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設定的DHCP ack確認資訊,告訴DHCP客戶機可以使用它所提供的IP地址。然後DHCP客戶機便將其TCP/IP協議與網絡卡繫結,另外,除DHCP客戶機選中的伺服器外,其他的DHCP伺服器都將收回曾提供的IP地址。
  • 重新登入:以後DHCP客戶機每次重新登入網路時,就不需要再發送DHCP discover發現資訊了,而是直接傳送包含前一次所分配的IP地址的DHCP request請求資訊。當DHCP伺服器收到這一資訊後,它會嘗試讓DHCP客戶機繼續使用原來的IP地址,並回答一個DHCP ack確認資訊。如果此IP地址已無法再分配給原來的DHCP客戶機使用時(比如此IP地址已分配給其它DHCP客戶機使用),則DHCP伺服器給DHCP客戶機回答一個DHCP nack否認資訊。當原來的DHCP客戶機收到此DHCP nack否認資訊後,它就必須重新發送DHCP discover發現資訊來請求新的IP地址。

六、WEB頁面請求過程

假設在學校網路中的一臺主機mac地址為00:16:D3:23:68:8A,它與一個交換機相連,交換機與一個路由去相連。路由器與一個ISP相連,如上圖ISP是comcast.net,在comcast.net中為學校提供了DNS服務,所以DNS伺服器駐留在Comcast網路中而不是學校網路中。

6.1、DHCP配置主機資訊

  • 1、主機最開始沒有IP地址以及其其他資訊只有一個mac地址,那麼就需要使用DHCP來獲取IP地址。
  • 2、主機生成DHCP請求報文,並將這個報文放入到目的埠為67,源埠為68的UDP報文段中。
  • 3、該報文被放入到一個具有廣播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP資料報中。
  • 4、該資料被放入到MAC幀中,該幀具有目的地址 FF:FF:FF:FF:FF:FF,將廣播到與交換機相連的所有裝置(其他埠連線的電腦和交換機相連線的路由器)。

  • 5、連線在交換機的DHCP伺服器(與交換機相連的路由器)接收到廣播幀之後,不斷的向上分解到IP資料報、UDP報文段、DHCP請求報文,之後生成DHCP ACK報文,該報文包含如下資訊:IP地址、DNS伺服器的IP地址、預設閘道器路由器的IP地址、子網掩碼。該報文被放入到UDP報文段中,UDP報文段被放入到IP資料報中,IP資料報被放入到Mac幀中。

  • 6、該幀的目的地址是請求主機的 MAC 地址,因為交換機具有自學習能力,之前主機發送了廣播幀之後就記錄了 MAC 地址到其轉發介面的交換表項,因此現在交換機就可以直接知道應該向哪個介面傳送該幀。

  • 7、主機收到該幀後不斷向上分解得到DHCP ACK報文,之後就配置它的IP地址,子網掩碼和DNS伺服器的IP地址,並在其 IP 轉發表中安裝預設閘道器。

6.2、ARP 解析 MAC 地址

  • 1、主機通過瀏覽器生成一個TCP套接字,套接字向HTTP伺服器傳送HTTP請求,為了生成該套接字,主機需要知道網站域名對用的IP地址。
  • 2、主機生成了一個DNS查詢報文,查詢報文具有53號埠,因為DNS伺服器的埠號是53,生成UDP報文段.
  • 3、該報文段被放入到目的地址為DNS伺服器IP地址的IP資料報中。
  • 4、該IP資料報被放入到一個乙太網幀中,該幀傳送到預設閘道器路由器。
  • 5、但是DHCP 過程只知道閘道器路由器的IP地址,為了獲得閘道器路由器的MAC地址,需要使用ARP地址解析協議,把IP地址轉換成為MAC地址。
  • 6、主機生成一個包含目的地址為閘道器路由器IP地址的ARP查詢報文,將該 ARP 查詢報文放入一個具有廣播目的地址(FF:FF:FF:FF:FF:FF)的乙太網幀中,並向交換機發送該乙太網幀,交換機將該幀轉發給所有的連線裝置,包括閘道器路由器。
  • 7、閘道器路由器接收到該幀後,不斷向上分解得到 ARP 報文,發現其中的 IP 地址與其介面的 IP 地址匹配,因此就傳送一個 ARP 回答報文,包含了它的 MAC 地址,發回給主機。

6.3、DNS域名解析

  • 1、知道了閘道器路由器的 MAC 地址之後,就可以繼續 DNS 的解析過程了。
  • 2、閘道器路由器接收到包含DNS查詢報文的乙太網幀後,抽取出IP地址,並根據轉發表決定IP資料報應該轉發的路由器。
  • 3、因為路由器具有內部閘道器協議(RIP、OSPF)和外部閘道器協議(BGP)這兩種路由選擇協議,因此路由表中已經配置了閘道器路由器到達DNS伺服器的路由表項。
  • 4、到達DNS伺服器後,DNS伺服器向上分解抽取出DNS查詢報文,並在DNS資料庫中查詢帶解析的域名。
  • 5、找到DNS記錄後傳送DNS回答報文,將該報文放入UDP報文段中,然後放入IP資料報中,通過路由反向轉發回到閘道器路由器,並經過乙太網交換機到達主機。

6.4 HTTP 請求頁面

  • 1、有了 HTTP 伺服器的 IP 地址之後,主機就能夠生成 TCP 套接字,該套接字將用於向 Web 伺服器傳送 HTTP GET 報文。
  • 2、在生成 TCP 套接字之前,必須先與 HTTP 伺服器進行三次握手來建立連線。生成一個具有目的埠 80 的 TCP SYN 報文段,並向 HTTP 伺服器傳送該報文段。(詳見計算機網路知識總結之運輸層
  • 3、HTTP 伺服器收到該報文段之後,生成 TCP SYNACK 報文段,發回給主機。
  • 4、連線建立之後,瀏覽器生成 HTTP GET 報文,並交付給 HTTP 伺服器。
  • 5、HTTP 伺服器從 TCP 套接字讀取 HTTP GET 報文,生成一個 HTTP 響應報文,將 Web 頁面內容放入報文主體中,發回給主機。
  • 6、瀏覽器收到 HTTP 響應報文後,抽取出 Web 頁面內容,之後進行渲染,顯示 Web 頁面。

7、常用埠