第7章 應用層

第7章 應用層

什麼是應用層

應用層位於TCP/IP協議簇的最高層,在這一層中,網絡應用程序和服務經過TCP和UDP端口與低層協議進行通訊。也許有人會問,TCP和UDP端口已經構成了定義零號的網路接口,爲何還要把應用層算在協議棧中呢?須要指明的是,在像TCP/IP這樣的分層體系中,每一層都是通向網絡的一個接口。應用層必須像傳輸層同樣瞭解TCP和UDP端口,並且必須相應地傳遞數據web

TCP/IP的應用層是一些可以意識到網絡的軟件組件,向TCP和UDP端口發送和接收數據。這些組件從邏輯類似性來說並不太相同,有些只是收集網絡配置的簡單工具,而有些則多是支持桌面操做系統的用戶界面系統或應用編程接口。有些組件爲網絡提供服務,好比文件和打印服務或名稱解析服務。本章將介紹應用層中常見的服務和程序。這些組件的具體實現取決於編程和軟件設計的細節。shell

TCP/IP應用層與OSI

應用層存在於不少不一樣的操做系統和網絡環境,而在這些環境中,OSI模型是定義和描述網絡系統的重要工具。OSI模型可以幫助咱們理解TCP/IP應用層中發生的過程。編程

TCP/IP應用層對應於OSI模型的應用層、表示層和會話層。瀏覽器

  • 應用層:OSI的應用層(不要與TCP/IP的應用層混淆)包含的組件爲用戶應用程序提供服務並支持網絡訪問
  • 表示層:表示層把數據轉化爲與平臺無關的格式,並處理加密和數據壓縮
  • 會話層:負責管理聯網計算機上應用程序之間的通訊,提供了一些傳輸層不具有、與鏈接相關的功能,好比名稱識別和安全

這些服務對於應用程序和實現來講並非必需的。在TCP/IP模型中,各類實現都沒必要遵循這些OSI細分的層次。但從總體來講,OSI模型中應用層、表示層和會話層的功能都屬於TCP/IP應用層的職責。緩存

網絡服務

應用層的不少組件都是網絡服務。前面章節中講到,協議系統中的任何一層都爲系統中的其餘層提供服務。在大多數狀況下,這些服務是定義明確的、屬於協議系統的一部分。然而在應用層中,這些服務對於協議軟件的運行並非必需的,更多的是爲用戶提供方便,或是讓本地操做系統鏈接到網絡。安全

客觀地說,協議棧中的低層協議與通訊機制有關,與平常用戶的關係就不明顯了。而從另外一個方面來講,應用層包含的大量網絡服務倒是爲用戶提供的:文件服務、遠程訪問服務、E-mail和HTTP Web服務協議。服務器

下表列出了最重要的一些應用層協議和服務。網絡

協議 描述
BitTorrent 點對點文件共享協議,一般用於從Internet中快速下載大型文件
通用Internet文件系統(CIFS) SMB文件服務協議加強版本
域名系統(DNS) 把Internet名稱映射爲IP地址的一種分層系統
動態主機配置協議(DHCP) 用於動態分配IP地址和其餘網絡配置參數的協議
文件傳輸協議(FTP) 一種上傳和下載文件的流行協議
Finger 查看和請求用戶信息的協議
超文本傳輸協議(HTTP) 萬維網的通訊協議
Internet消息訪問協議(IMAP) 訪問郵件消息的通用協議
輕量級目錄訪問協議(LDAP) 用於實現和管理信息目錄服務的協議
網絡文件系統(NFS) 讓遠程用戶可以訪問文件資源的協議
網絡時間協議(NTP) 在TCP/IP網絡同步時鐘和其餘時間資源的協議
郵局協議(POP) 從郵件服務器下載E-mail協議
遠程過程調用(RCP) 每一個協議可以讓一臺計算機上的程序調用另外一個計算機上的子程序或過程
服務器信息塊(SMB) 文件和打印服務協議
簡單網絡管理協議(SNMP) 管理網絡設備的協議
  • 文件和打印服務
  • 名稱解析服務
  • 遠程訪問服務
  • Web服務

文件和打印服務

打印服務器負責操做打印機,知足針對這臺打印機的所有打印請求。文件服務器操做數據存儲設備(好比硬盤),知足對設備內數據讀取和寫入的請求。併發

因爲文件服務和打印服務太經常使用了,它們常常會被統一考慮。也就是常常會用一臺計算機(有時甚至是同一個服務)來提供文件和打印服務功能。不管這2個服務是否在同一臺計算機上,它們的原理是同樣的。一個文件服務先對文件的請求通過網絡傳遞到傳輸層,後者經過適當的接口把請求路由到發文件服務器的服務程序。tcp

文件服務系統,好比UNIX/Linux的網絡文件系統(NFS)和Microsoft的通用Internet文件系統(CIFS)與服務器信息塊(SMB),都工做於應用層,經典的文件傳輸工具文件傳輸協議(FTP)和簡單文件傳輸協議(TFTP)亦是如此。

名稱解析服務

名稱解析就是把預約義的、方便用戶使用的名稱映射爲IP地址的過程。域名系統(DNS)服務爲Internet提供了名稱解析,也能爲獨立的TCP/IP網絡提供名稱解析。DNS使用名稱服務器解決DNS名稱查詢。名稱服務運行於服務器的應用層,而且與其餘名稱服務器交換名稱解析信息。其餘常見的名稱解析系統有網絡信息服務(NIS)、NetBIOS名稱解析,還有一些名稱服務利用了輕量級目錄訪問協議(LDAP)

遠程訪問

讓用戶從一臺計算機向另一臺計算機發起交互式鏈接請求的技術大多集中在應用層。好比Telnet和SSH就可讓用戶經過網絡登陸到遠程系統併發送命令,而現代的屏幕共享工具爲桌面GUI系統實現了相似的效果。

爲了把本地環境與網絡集成在一塊兒,有些網絡操做系統使用名爲重定向器的服務。重定向器有時被稱爲請求者。重定向截獲本地計算機上的服務請求,查看這個請求是否能夠在本地實現,仍是轉發到網絡中的其餘計算機。若是請求針對其餘計算機中的服務,重定向器就把請求轉發到網絡上。

重定向器爲須要訪問網絡資源的用戶提供了通用的解決方案,就好像這些服務位於本地環境同樣。例如,對一個遠程硬盤的操做與對客戶端計算機上本地硬盤上的操做是同樣的。

Web服務

超文本輸出協議(HTTP)是應用層的一個協議,是萬維網生態系統的核心。HTTP最初的用途是傳輸文本和圖像,但Web服務模型的發展須要大量與Web相關的協議和組件來創建與運行Web瀏覽器中的工具。

TCP/IP工具

應用層還包含一些TCP/IP工具。這些工具最初是圍繞Internet和早期的UNIX開發的,如今用於配置、管理和診斷全世界的TCP/IP網絡。

工具 描述
鏈接工具
IPConfig 一個Window工具,顯示TCP/IP配置信息(相應的UNIX工具是ifconfig)
Ping 測試網絡連通性的工具
Arp 查看並可能修改本地或遠程計算機的ARP緩存的工具。ARP緩存包含物理地址與IP地址之間的映射
Traceroute 追逐數據報通過Internet路徑的工具
Route 查看、添加或編輯路由表條目的工具
Netstat 顯示IP、UDP、TCP和ICMP統計數據的工具
NBTstat 顯示NetBIOS和NBT統計數據的工具
Hostname 返回本地主機名稱的工具
文件傳輸工具
FTP 使用TCP的基本文件傳輸工具
Tftp 使用UDP的基本文件傳輸工具,通常用於給網絡設備下載代碼這樣的任務
Rcp 簡單的遠程文件傳輸工具
遠程工具
Telnet 遠程終端工具
Rexec 經過rexecd daemon在遠程計算機上運行命令的工具
Rsh 調用遠程計算機上的shell來執行命令的工具
Finger 顯示用戶信息的工具
Internet工具
瀏覽器 可以訪問萬維網HTML內容的工具
新聞瀏覽器 與Internet新聞組鏈接的工具
E-mail閱讀器 提供收發E-mail功能的工具
Archie 可以訪問匿名FTP站點索引的工具,曾經很流行,但萬維網及其搜索引擎下降了Archie的重要性
Gopher 基於菜單的Internet信息工具。與萬維網相比,它像Archie同樣已通過時了
Whois 可以訪問我的聯繫信息目錄(相似於Internet白頁)的工具

問與答:

  1. 問:做爲文件服務器的計算機處於運行狀態,並且也鏈接到了網絡,但用戶不能訪問文件,會是什麼問題呢?

答:首先咱們要檢查文件服務器的服務程序是否在運行。文件服務器並不只僅是一臺計算機,它是運行於計算機上的一個服務,用於知足文件請求。

  1. 問:OSI模型爲何把應用層的功能進一步劃分爲3個單獨的層(會話層、表示層和應用層)?

答:應用層提供了普遍的服務,OSI模型對應用層的細分爲軟件開發人員更好地組織其中的部件提供了一種模塊化結構,也爲應用程序與協議棧之間的交互提供了更多的選擇。

問題

  1. 使用什麼網絡工具能夠檢測網絡的連通性?
    答:ping工具用來檢測網絡連通性

  2. 什麼應用層協議用來載入Web頁面?
    答:HTTP超文本傳輸協議

  3. 哪兩種應用層協議用來接收郵件?
    答:POP3(郵局協議版本3)和IMAP(Internet消息訪問協議)。

  4. 哪一個協議將主機名稱映射爲IP地址?
    答:DNS,域名服務器。

  5. 哪一個協議用來同步計算機時鐘? 答:NIP,網絡時間協議。