1. 程式人生 > 其它 >計算機網路 應用層

計算機網路 應用層

應用層概述

應用層協議原理

應用層協議的實現,只需要寫出能夠執行在不同的端系統(伺服器、手機、電腦等)和通過網路彼此通訊的程式。因為網路核心裝置(路由器、交換機等,不包括端系統裝置)並不在應用層上起作用,只在網路層及下面層次起作用,所以不需要為網路核心裝置寫對應的應用程式,即 開發應用程式的時候只需要考慮適配端系統,不需要考慮網路核心裝置。

應用層協議定義

  • 應用程序交換的報文型別,請求還是響應?

  • 各種報文型別的語法,如報文中的各個欄位及其詳細描述。

  • 欄位的語義,即包含在欄位中的資訊的含義。

  • 程序何時、如何傳送報文,以及對報文進行響應的規則。

應用層的功能及重要協議

  • 檔案傳輸、訪問和管理 ( FTP

  • 電子郵件 ( SMTP、POP3、IMAP

  • 虛擬終端 ( HTTP

  • 查詢服務和遠端作業登入 ( DNS

網路應用模型

客戶/伺服器模型(Client/ Server)

伺服器 :提供計算服務的裝置。

  1. 永久提供服務

  2. 永久性訪問地址/域名

客戶機 :請求計算服務的主機。

  1. 與伺服器通訊,使用伺服器提供的服務

  2. 間歇性接入網路

  3. 可能使用動態|P地址

  4. 不與其他客戶機直接通訊

工作流程

  1. 伺服器處於接收請求的狀態。

  2. 客戶機發出服務網請求,並等待接收結果。

  3. 伺服器收到請求後,分析請求,進行必要的處理,得到結果併發送給客戶機。

應用 :Web, 檔案傳輸FTP, 遠端登入, 電子郵件

P2P模型(Peer-to-peer )

思想 :整個網路中傳輸的內容不再儲存在中心伺服器上,每個結點都同時具有下載、上傳的功能,其權力和義務都是大體對等的。

特點

  • 不存在永遠線上的伺服器

  • 每個主機既可以提供服務,也可以請求服務

  • 任意端系統/節點之間可以直接通訊

  • 節點間歇性接入網路

  • 節點可能改變P地址

  • 可擴充套件性好

  • 網路健壯性強

應用 :PPlive,Bittorrent,電驢

DNS協議

DNS協議概述

  • DNS協議就是用來將域名解析到IP地址 的一種協議

  • DNS協議基於UDP協議的,埠號53

  • 採用客戶/服務端模式(C/S) 執行在通訊的端系統之間

  • 可以輸入 nslookup 命令來查詢域名對應的IP地址

域名組成

域名組成概述

  • 如"www.sIna.com.cn"是一個域名,從嚴格意義上講,"sina.com.cn"才被稱為域名(全球唯一),而"www"是主機名,"主機名.域名" 稱為完全限定域名(FQDN) 。一個域名下可以有多個主機,域名全球唯一,那麼"主機名.域名"肯定也是全球唯一的

  • 舉例:以" sina. com. cn”域名為例,一般管理員在命名其主機的時候會根據其主機的功能去命名

DNS樹狀結構圖

  • 根域 .

  • 頂級域名 :cn, us, jp, hk, uk

  • 商業頂級域 :com商業機構,gov政府機構, mil軍事機構, edu教育機構 ,org民間組織架構, net網際網路

  • **一級域名 ** 自定義域名(全球唯一)

  • 二級域名 自定義域名(全球唯一)

  • 三級域名 自定義域名(全球唯一)

  • ......

  • 舉例 :www.baidu.com。其中:.為根域,com為頂級域,baidu為一級域名,www為主機名

DNS解析

  • 按照查詢方式 分類

  • 遞迴查詢 :客戶機向本地DNS伺服器査詢發起的為遞迴査詢

  • 迭代查詢 :本地DNS伺服器與根等其他DNS伺服器的解析過程

  • 按照查詢內容 分類

  • 正向解析:已知域名,解析IP地址

  • 反向解析:已知IP地址,解析域名

  • 舉例 :解析www.baidu.com的IP地址

DNS伺服器

DNS伺服器主要有4種類型的域名伺服器,分別是 根域名伺服器頂級域名伺服器許可權域名伺服器本地域名伺服器

根域名伺服器 :最高層次的域名伺服器。全世界一共有13 個根域名伺服器,每個根域名伺服器並不是單個伺服器,而是伺服器叢集

頂級域名伺服器 :管理在該頂級域名伺服器註冊的所有二級域名。收到DNS查詢請求時,給出相應回答(可能是最後的結果,也可能是下一步應當查詢的域名伺服器的IP地址 )。

許可權域名伺服器 :負責一個區的域名伺服器。

本地域名伺服器 :不算層次結構,特點是裡主機比較近,當主機和另一臺比較近的主機通訊時,就不用走那些更高階的伺服器了。

快取記憶體

為了提高DNS的查詢效率並減少因特網上的DNS查詢報文數量,在域名伺服器中廣泛的的使用了快取記憶體。當一個DNS伺服器接收到DNS查詢結果時, 它能將該DNS資訊快取在快取記憶體中。這樣, 當另一個相同的域名查詢到達該DNS伺服器時, 該伺服器就能夠直接提供所要求的IP地址, 而不需要再去向其他DNS伺服器詢問。因為主機名和IP地址之間的對映不是永久的,所以DNS伺服器將在一段時間後丟棄快取記憶體中的資訊。

DNS解析一般流程

  1. 瀏覽器輸入我們我們需要訪問的域名 例如:www.baidu.com

  2. 查詢瀏覽器快取,看是否有之前訪問的記錄,例如IP地址等資訊。若有,直接訪問此IP;若無,執行下一步

  3. 查詢本機快取,查本機的Host檔案,看是否有記錄,例如IP地址等資訊。若有,直接訪問此IP;若無,執行下一步

  4. 客戶機向其本地域名伺服器發出DNS請求報文(遞迴查詢)。

  5. 本地DNS伺服器收到請求後,查詢本地快取,若沒有該記錄, 則以DNS客戶的身份向根域名伺服器發出解析請求報文(迭代查詢),這裡的本地DNS伺服器一般是接入網路的運營商的伺服器。

  6. 根域名伺服器收到請求後,判斷該域名屬於 .com 域,將對應的頂級域名伺服器 dns.com 的IP地址返回給本地DNS伺服器。

  7. 本地域名伺服器向頂級域名伺服器 dns.com 發出解析請求報文(迭代查詢)。

  8. 頂級域名伺服器 dns.com 收到請求後,判斷該域名屬於 baidu.com 域,,因此將對應的授權域名伺服器 dns.baidu.com 的IP地址返回給本地DNS伺服器。

  9. 本地DNS伺服器向授權域名伺服器 dns.baidu.com 發起解析請求報文(迭代查詢)。

  10. 授權域名伺服器 dns.baidu.com 收到請求後,將查詢結果返回給本地DNS伺服器。

  11. 本地DNS伺服器將查詢結果儲存到本地快取,同時返回給客戶端。

DHCP協議

DHCP協議概述

  • DHCP(動態主機配置協議) ,是簡化主機IP地址配置管理的TCP/IP標準協議

  • 協議埠:UDP 67/68

  • 作用:自動分配 IP地址,並提供安全、可靠、簡單的TCP/IP網路配置

  • DHCP優點:減少工作量、避免IP衝突、提高地址利用率

  • DHCP工作模型:客戶機/伺服器

DHCP工作

  • 工作模型:C/S結構

  • 使用的埠:67/68

  • 使用的傳輸層協議:UDP

DHCP原理

  • 也稱為DHCP的租約過程 ,分為4個步驟
  1. 客戶機發送 DHCP Discovery廣播包
  • 客戶機廣播請求IP地址 (包含客戶機的MAC地址)
  1. 伺服器響應 DHCP Offer廣播包
  • 伺服器響應 提供的IP地址(但無子網掩碼、閘道器等引數)
  1. 客戶急傳送 DHCP Request廣播包
  • 客戶機選擇IP (也可以理解為:確認使用哪個IP)
  1. 伺服器傳送 DHCP ACK廣播包
  • 伺服器確定了租約 ,並提供網絡卡詳細引數 、IP、掩碼、閘道器、DNS、租期等

主機新加入網路時,獲取IP的流程

  1. 新的機器加入網路時,會使用0.0.0.0作為源地址,傳送廣播 discover報文,查詢網路上有哪些 DHCP server

  2. DHCP伺服器接收到 DHCP Discover報文後,迴應offer報文,提供IP地址(可能包含DNS等其他資訊)給請求方

  3. 請求方根據收到的offer報文,選擇一個 DHCP server,並選擇它提供的IP地址。然後廣播 Request報文,向 DHCP Server請求該IP地址,同時向本地網路(尤其是其他 DHCP Server)公告自己已經選擇了某個 DHCP Server的某個IP地址

  4. DHCP Server迴應ACK報文,將IP地址分配給 Client端(特殊情況: DHCP Server在傳送Offer報文和接收到 Request的短暫時間內把IP分配給了其他主機)

DHCP續約

  • 續約過程 :當50% 租期過後,客戶機會再次傳送 DHCP Request 包進行續約,如果伺服器無響應則繼續使用,並在87.5% 租期過後再次傳送 DHCP Request 包進行續約,如果仍然無響應釋放IP地址 。之後,重新發送 DHCP Discovery 廣播包來獲取IP地址,當無任何伺服器響應時 ,自動給自己分配—個IP169.254.x.x/16,屬於全球統一無效地址,用於臨時的內網通訊

客戶機命令

ipconfig /release 釋放IP(取消租約,或者改為手動配置P,也可以釋放租約)
ipconfig /renew   重新獲取IP(有IP時,傳送 request續約,無IP時傳送 Discovery重新獲取P)

FTP協議

FTP協議概述

  • 檔案傳輸協議FTP(File transfer protocol)提供不同種類主機系統(硬、軟體體系等都可以不同)之間的檔案傳輸能力

  • 簡單檔案傳送協議TFTP(Trivial File Transfer Protocol):使用UDP協議實現,用來在客戶機與伺服器之間進行簡單檔案傳輸的協議,提供不復雜、開銷不大檔案傳輸服務。(瞭解

FTP伺服器和使用者端

  • FTP是基於 **客戶/伺服器(C/S) ** 的協議。使用者通過一個客戶機程式連線至在遠端計算機上執行的伺服器程式。

  • FTP伺服器 :依照FTP協議提供服務,進行檔案傳送的計算機就是FTP伺服器。

  • FTP客戶端 :連線FTP伺服器, 遵循FTP協議與伺服器傳送檔案的電腦就是FTP客戶端。

FTP工作原理

FTP在工作時使用兩個並行的TCP連線:一個是 控制連線 (埠號21 ),一個是 資料連線 (埠號20 )。

控制連線 :用來傳輸控制資訊(如連線請求、傳送請求等)。在整個會話期間一直保持開啟狀態

資料連線 :用來完成檔案的傳輸。在檔案傳輸結束時關閉連線

資料連線有兩種傳輸模式:

主動模式 (PORT):“伺服器”的20埠 連線“客戶端”隨機開放的埠。

被動模式 (PASV):“客戶端”連線“伺服器”隨機開放的埠 ,具體埠自行協商而定(一般埠>1024)

FTP傳輸模式

文字模式 :ASC模式,以文字序列傳輸資料;

二進位制模式 :Binary模式,以二進位制序列傳輸資料。

電子郵件相關協議

電子郵件的資訊格式

電子郵件系統的組成結構

下面簡單介紹電子郵件的收發過程。

  1. 發信人呼叫使用者代理來撰寫和編輯要傳送的郵件。使用者代理用SMTP把郵件傳送給傳送端郵件伺服器。

  2. 傳送端郵件伺服器將郵件放入郵件快取佇列中, 等待發送。

  3. 執行在傳送端郵件伺服器的SMTP客戶程序, 發現郵件快取中有待發送的郵件, 就向執行在接收端郵件伺服器的SMTP伺服器程序發起建立TCP連線。

  4. TCP連線建立後, SMTP客戶程序開始向遠端SMTP伺服器程序傳送郵件。當所有待發送郵件發完後, SMTP就關閉所建立的TCP連線。

  5. 執行在接收端郵件伺服器中的SMTP伺服器程序收到郵件後, 將郵件放入收信人的使用者郵箱, 等待收信人在方便時進行讀取。

  6. 收信人打算收信時,呼叫使用者代理,使用POP3(或MAP)協議將自己的郵件從接收端郵件伺服器的使用者郵箱中取回(如果郵箱中有來信的話)。

簡單郵件傳送協議(SMTP)

SMTP 規定了在兩個相互通訊的SMTP程序 之間應如何交換資訊負責傳送郵件的SMTP程序就是SMTP客戶 , 負責接收郵件的程序就是SMTP伺服器 SMTP規定了14條命令(幾個字母)和21種應答資訊(三位數字程式碼+簡單文字說明)SMTP 使用 TCP連線 , 埠號是25C/S

  • 缺點

  • SMTP不能傳送可執行檔案或者其他二進位制物件。

  • SMTP僅限於傳送7位ASCll碼, 不能傳送其他非英語國家的文字。

  • SMTP伺服器會拒絕超過一定長度的郵件。

多用途網際郵件擴充(MIME)

使電子郵件系統可以支援聲音、影象、視訊多種國家語言等等。使得傳輸內容豐富多彩。

郵局協議(POP3)

郵局協議 POP,是一個非常簡單且功能有限的郵件讀取協議。現在使用的是它的第三個版本POP3。POP3採用的是“ ”(Pull)的通訊方式,當用戶讀取郵件時,使用者代理向郵件伺服器發出請求,“拉”取使用者郵箱中的郵件。

POP 使用C/S 的工作方式,使用TCP連線 ,埠號為110

POP3的工作方式 :1.下載並保留(在伺服器上) 2.下載並刪除容

網際報文存取協議(IMAP)

IMAP協議比POP協議複雜。當用戶PC上的IMAP客戶程式開啟IMAP伺服器的郵箱時,使用者可以看到郵箱的首部,若使用者需要開啟某個郵件,該郵件才上傳到使用者的計算機上。

IMAP可以讓使用者在不同的地方使用不同的計算機隨時上網閱讀處理郵件 , 還允許只讀取郵件中的某一個部分 (先看正文,有WF的時候再下載附件)。

基於全球資訊網的電子郵件

只要與使用者代理接觸的環節使用 HTTP 協議

HTTP協議

全球資訊網概述

  • 全球資訊網 www(World Wide Web)是一個大規模的、聯機式的資訊儲存空間, 是無數個網路站點和網頁的集合。在這個空間中,一個有用的事物稱為一個 “資源”,並由一個全域“統一資源定位符 ”(URL )唯一標識資源(文字、視訊、音訊等)。

  • URL一般形式:

<協議>://<主機>:<埠>/<路徑> 例:http://www.pku.edu.cn

http 域名

ftp IP地址

URL不區分大小寫

  • 使用者通過點選超連結 (http://www.baidu.com) 獲取資源, 這些資濾通過 **超文字傳輸協議(HTTP) ** 傳送給使用者。

  • 全球資訊網以 客戶/伺服器(C/S) 方式工作, 使用者使用的瀏覽器就是全球資訊網客戶程式, 全球資訊網文件所駐留的主機執行伺服器程式。

  • 全球資訊網使用超文字標記語言HTML , 使得全球資訊網頁面設計者可以很方便地從一個介面的連結轉到另一個介面, 並能夠在自己的螢幕上顯示出來。

HTTP協議概述

  • **超文字傳輸協議(HTTP) **

  • HTTP協議定義了瀏覽器(全球資訊網客戶程序)怎樣向全球資訊網伺服器請求全球資訊網文件, 以及伺服器怎樣把文件傳送給瀏覽器。

注:瀏覽器可以只下載文字部分。若使用者點選影象、聲音、視訊等資源請求按鈕時再進行下載相應資源。

使用者單擊滑鼠後所發生的事件按順序如下(以訪問清華大學的網站為例)

  1. 瀏覽器分析連結指向頁面的URL(http:/www.tsinghua.edu.cn/chn/index.html)

  2. 瀏覽器向DNS請求解析www.tsinghua.edu.cn的IP地址。

  3. 域名系統DNS解析出清華大學伺服器的IP地址。

  4. 瀏覽器與該伺服器建立TCP連線(預設埠號為80)。

  5. 瀏覽器發出HTTP請求:GET/chn/index.html。

  6. 伺服器通過HTTP響應把檔案 index html 傳送給瀏覽器。

  7. 釋放TCP連線。

  8. 瀏覽器解釋檔案 index. html, 並將Web頁顯示給使用者。

HTTP協議特點

HTTP協議是無狀態 的。但是在際工作中,一些全球資訊網站點常常希望能夠識別使用者, 使用 Cookie 實現(Cookie是儲存在使用者主機中的文字檔案,記錄一段時間內某使用者(使用識別碼識別,如“123456”)的訪問記錄)從而提供個性化服務。

HTTP採用TCP 作為運輸層協議,但HTTP協議本身是無連線 的(通訊雙方在交換HTTP報文之前不需要先建立HTTP連線)。

HTTP協議的連線方式

  • 非持久連線每個網頁元素物件(如JPEG圖形、Fash等)的傳輸都需要單獨建立一個TCP連線 。也就是說請求一個全球資訊網文件所需的時間是該文件的傳輸時間(與文件大小成正比)加上兩倍往返時間RTT (一個RTT用於TCP連線, 另一個RTT用於請求和接收文件)。每個物件引用都導致2×RTT的開銷, 此外每次建立新的TCP連線都要分配快取和變數, 使全球資訊網伺服器的負擔很重

  • 持久連線全球資訊網伺服器在傳送響應後仍然保持這條連線接 ,使同一個客戶(瀏覽器)和該伺服器可以繼續在這條連線上傳送後續的HTTP請求和響應報文。

  • 持久連線 又分為非流水線流水線 兩種方式。對於非流水線方式, 客戶在收到前一個響應後才能發出下一個請求 , 伺服器傳送完一個物件後,其TCP連線就處於空閒狀態, 浪費了伺服器資源。HTTP/1.1的預設方式是使用流水線的持久連線 。這種情況下, 客戶每遇到一個物件引用就立即發出一個請求, 因而客戶可以逐個地連續發出對各個引用物件的請求 。如果所有的請求和響應都是連續傳送的, 那麼所有引用的物件共計經歷1個RTT延遲, 而不是像非流水線方式那樣,每個引用都必須有1個RTT延遲。這種方式減少了TCP連線中的空閒時間, 提高了效率

  1. 非流水線 : 客戶發出一個物件請求後,等收到響應後才能發出下一個物件請求。

  2. 流水線 :客戶可以同時發出多個物件的請求。

HTTP協議的報文結構

HTTP報文 分為 請求報文響應報文

HTTP報文是面向文字 的, 因此在報文中的每一個欄位都是一些ASCll碼串。

附錄

本章常用中英文對照

  • Server farm 伺服器叢集

  • Infrastructure 基礎設施,或基礎架構

  • Self-scalability 自擴充套件性

  • Timing 實時性

  • Connection-oriented service 面向連線的服務

  • Base HTML file 基本HTML檔案

  • Stateless protocol 無狀態協議

  • RTT (round-trip time ) 往返時間

  • User agents 使用者代理

  • Mail servers 郵件伺服器

  • Top-level domain (TLD) servers 頂級域名伺服器

  • Authoritative DNS servers P161 權威域名伺服器

  • Iterative queries 迭代查詢

  • Resource records (RRs) 資源記錄

  • Nonpersistent HTTP 非持久HTTP,或非堅持HTTP

  • Persistent HTTP 永續性HTTP,或堅持的HTTP

  • Peer-to-Peer (P2P) Network 對等網路

  • Socket programming 套接字程式設計