1. 程式人生 > >學習筆記之計算機網路(王道考研) 第六章 應用層

學習筆記之計算機網路(王道考研) 第六章 應用層

  • 在C/S模型中,伺服器總是處於開啟狀態(除非某人把它關了)
  • 常見的使用C/S模型的英應用包括Web、檔案傳輸(FTP)、遠端登入和電子郵件等 
  • C/S模型的主要特點:
  1. 網路中各計算機的地位不平等,伺服器可以通過對使用者許可權的限制來達到管理客戶機的目的
  2. 客戶機相互之間不能通訊
  3. 可擴充套件性不佳。受伺服器硬體和網路頻寬的限制,伺服器支援的客戶機數有限
  • P2P模型:整個網路中的傳輸內容不再被儲存在中心伺服器上,每個節點都同時具有下載、上傳的功能,其權利和義務都是大體對等的
  • 在P2P模型中,各計算機沒有固定的客戶機和伺服器的劃分。任意一對計算機稱為對等方,直接相互通訊。
  • 實際上,P2P本質上仍然是使用C/S模式,每個節點既作為客戶機去訪問其他節點的資源,也作為伺服器去提供資源給其他節點訪問。
  • 當前比較流行的P2P應用有PPLive、Bittorrent、電驢等
  • 與C/S模型相比,P2P模型的優點主要體現在:
  1. 減輕了伺服器的計算壓力
  2. 多個客戶機之間可直接共享文件
  3. 可擴充套件性好
  4. 網路健壯性強
  • P2P模型的缺點:在獲取服務的同時,還要給其他節點提供服務,因此會佔用較多的記憶體,影響整機執行速度
  • DNS系統採用C/S模型,其協議執行在UDP之上,使用53號埠
  • 級別最低的域名寫在最左邊,級別最高的頂級域名寫在最右邊。比如:www.cskaoyan.com,其中,頂級域名為com,二級域名為cskaoyan,三級域名為www
  • 頂級域名(Top Level Domain,TLD)包括以下三類:
  1. 國際頂級域名nTLD。如“cn”、“us”、“uk”、“hk”等
  2. 通用頂級域名gTLD。如“com”、“net”、“org”和“gov”等
  3. 基礎結構域名。這種頂級域名只有一個,為“arpa”
  • 因特網的域名系統被設計成一個聯機分散式的資料庫系統,並採用C/S模型
  • 根域名伺服器:用來管轄頂級域,通常它並不直接把待查詢的域名直接轉換成IP地址,而是告訴本地域名伺服器下一步應當找哪一個頂級域名伺服器進行查詢
  • 頂級域名伺服器:負責管理在該頂級域名伺服器註冊的所有二級域名
  • 授權域名伺服器(許可權域名伺服器):每一個主機都必須在授權域名伺服器處登記。為了更加可靠地工作,一個主機最好至少有兩個授權域名伺服器。實際上,許多域名伺服器都同時充當本地域名伺服器和授權域名伺服器。授權域名伺服器總是能夠將其管轄的主機名轉換為該主機的IP地址
  • 本地域名伺服器:當一個主機發出DNS查詢請求時,這個查詢請求報文就傳送給該主機的本地域名伺服器。
  • 域名解析是指把域名對映成IP地址或把IP地址對映稱為域名的過程。前者稱為正向解析,後者稱為反向解析
  • 域名解析的兩種方式:遞迴查詢遞迴與迭代相結合的查詢
  • 兩種域名解析方式工作原理圖:

  • 遞迴與迭代相結合方式圖解:
  1. 主機向本地域名伺服器的查詢採用的是遞迴查詢。即如果本地主機所詢問的本地伺服器不知道被查詢域名的IP地址,那麼本地域名伺服器就以DNS客戶的身份,向根域名伺服器繼續發出請求報文(即替該主機繼續查詢),而不是讓該主機自己進行下一步的查詢
  2. 本地域名伺服器向根域名伺服器的查詢採用迭代查詢。當根域名伺服器收到本地域名伺服器發出的迭代查詢請求報文時,要麼給出所要查詢的IP地址,要麼告訴本地域名伺服器,“你下一步應該想哪一個頂級域名伺服器進行查詢”
  • 為了提高DNS的查詢效率,並減少因特網上的DNS查詢報文數量,在域名伺服器中廣泛地使用了快取記憶體。當一個DNS伺服器接收到DNS結果時,它能將該DNS資訊快取在快取記憶體中。
  • 主機名和IP地址之間的對映不是永久的,所以DNS伺服器在一段時間後丟棄快取記憶體中的資訊
  • 主機、域名、IP之間並不具有一 一對應的關係
  • FTP採用C/S的工作方式,使用TCP可靠地傳輸服務。
  • FTP的伺服器程序由兩大部分組成:一個主程序,負責接收新的請求;另外有若干個從屬程序,負責處理單個請求
  • FTP在工作時使用兩個並行的TCP連線,一個是控制連線(埠號21),一個是資料連線(埠號20)。使用兩個不同的埠號可使協議更加簡單和更容易實現
  • 控制連線用來傳輸控制資訊(如連線請求,傳送請求等)。在傳輸檔案時還可以使用控制連線(例如,客戶在傳輸中途發一個終止傳輸的命令),因此控制連線在整個會話期間一直保持開啟狀態
  • 資料連線在檔案傳輸完畢後關閉
  • 一個電子郵件系統的三個最主要的組成構件:使用者代理、郵件伺服器和電子郵件使用的協議,如SMTP、POP3(或IMAP)。注意:三段TCP連線

  • 使用者代理:使用者與電子郵件系統的介面,實際上就是一個執行在PC上的程式
  • 郵件傳送協議:用於使用者代理向郵件伺服器傳送郵件或在郵件伺服器之間傳送郵件,通常使用的是SMTP
  • 郵件讀取協議:用於使用者代理從郵件伺服器讀取郵件,如POP3
  • MIME(多用途網際郵件擴充):解決了SMTP無法傳送其他非英語國家文字的問題
  • SMTP採用TCP連線,使用25號埠。SMTP不使用中間的郵件伺服器,TCP連線總是在傳送方和接收方這兩個郵件伺服器之間直接建立
  • POP也是採用TCP連線,使用110號埠
  • 以上的埠號指的都是伺服器端的埠號,客戶端埠號隨機分配
  • 很多基於全球資訊網的電子郵件的特點:使用者瀏覽器與這些電子郵件伺服器之間的傳送或接收郵件是使用HTTP協議(指的是你登入郵件伺服器是使用http協議,比如登入mail.qq.com),而僅在不同郵件伺服器之間傳送郵件才使用SMTP協議(登錄之後傳送郵件仍然是使用SMTP+POP/IMAP
  • 全球資訊網的核心部分由以下三個部分構成:
  1. 統一資源定位符(URL)
  2. 超文字傳輸協議(HTTP)
  3. 超文字標記語言(HTML)
  • URL的一般形式為:<協議>://<主機>:<埠>/<路徑>。常見的協議有http,ftp等。<主機>是存放資源的主機在因特網中的域名,也可以是IP地址;<埠>和<路徑>可以省略,URL中不區分大小寫
  • HTTP包含兩類報文:請求報文和響應報文
  • HTTP協議是無狀態的。即同一個客戶第二次訪問同一個伺服器上的頁面時,伺服器的響應與第一次被訪問時的相同
  • Cookie存在與使用者主機,Session存在於伺服器
  • HTTP協議本身是無連線的,即雖然HTTP使用了TCP連線,但通訊的雙方在交換HTTP報文之前不需要先建立HTTP連線
  • HTTP1.0為非持久連線,HTTP1.1為持久連線
  • 對於非持久連線,每一個網頁元素物件(比如一個JPEG圖、FLASH等)的傳輸都需要建立一個TCP連接。在TCP連線建立時,可以在第三次握手的報文段中捎帶客戶對全球資訊網文件的請求。也就是說,請求一個全球資訊網文件的時間是該文件的傳輸時間(伺服器將該文件完全傳送至鏈路)加上兩倍RTT(前一個RTT對應於TCP連線建立的前兩次握手,另一個RTT對應於請求(TCP建立連線第三次握手)和接收文件
  • 所謂持久連線就是全球資訊網伺服器在傳送響應後仍然保持這條連線,使同一個客戶和伺服器可繼續在這條連線上傳送後續的HTTP請求和響應報文
  • 持久連線又分為非流水線流水線兩種方式。
  • 對於非流水線方式,客戶在收到一個響應後才能發出下一個請求。
  • HTTP1.1的預設模式是使用流水線的持久連線,這種情況下客戶每遇到一個物件引用就立即發出一個請求,因而客戶可以一個接一個地連續發出對各個引用物件的請求。如果所有的請求和響應都是連續傳送的,那麼所有引用到的物件共計經歷1個RTT延遲,而不是像非流水線版本那樣,每個引用都必須有一個RTT延遲
  • HTTP是面向文字的
  • 常見應用層協議總結:
應用程式 FTP資料連線 FTP控制連線 TELNET SMTP DNS TFTP HTTP POP3 SNMP
使用協議 TCP TCP TCP TCP UDP UDP TCP TCP UDP
熟知埠號 20 21 23 25 53 69 80 110 161
  • 當客戶端使用非持續連線向伺服器傳送HTTP請求報文時,第一個獲得的物件是HTML基本檔案,然後才會獲得自己實際想要的物件