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

計算機網路——應用層

1、網路應用模型

客戶/伺服器模型

客戶/伺服器(Client/Server,C/S)模型中,有一個總是開啟的主機稱為伺服器,它服務於許多來自其它稱為客戶機的主機請求

客戶程式必須知道伺服器程式的地址;伺服器程式不需要知道客戶程式的地址

常見的使用C/S模型的應用包括Web、FTP、遠端登入和電子郵件等

P2P模型

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

當前流行的P2P應用如PPlive、Bittorrent和電驢等

據某網際網路調研機構統計,當前P2P程式已經佔據了網際網路50%~90%的流量,使網路變得非常擁塞,因此各大ISP通常都對P2P應用持反對態度

2、DNS系統

域名系統DNS(Domain Name System)是Internet使用的命名系統,用來把便於人們記憶的含有特定含義的主機名轉換為便於機器處理的IP地址

DNS系統採用C/S模型,執行在UDP之上,使用53號埠

從概念上,DNS分為3個部分:層次域名空間、域名伺服器、域名解析器

層次域名空間

Internet採用層次樹狀結構的命名方法。採用這種命名方法,任何一個連線在Intern上的主機或路由器,都有一個唯一的層次結構的名字——域名(Domain Name)

域(Domain)是名字空間中一個可被管理的劃分

域名從右到左(標號之間用.隔開)分別為頂級域、二級域、三級域

頂級域名(Top Level Domain,TLD)分為三類:

  • a、國家頂級域名nTLD。.cn表示中國,.us表示美國,.uk表示英國,.hk表示香港
  • b、通用頂級域名gTLD。.com表示公司企業,.net表示網路服務機構,.org表示非盈利性組織,.gov表示美國的政府部門
  • c、基礎結構域名。這種頂級域名只有一個,arpa,用於反向域名解析

在域名系統中,每個域分別由不同的組織進行管理。每個組織都可以將它的域再分成一定數目的子域,並將這些子域委託給其他組織去管理

域名伺服器

Internet的域名系統被設計成一個聯機分散式的資料庫系統,採用C/S模型。域名到IP地址的解析是由執行在域名伺服器上的程式完成的

一個伺服器所負責管轄的範圍稱為區,每個區設定相應的許可權域名伺服器,用來儲存該區中的所有主機的域名到IP地址的對映。每個域名伺服器不但能進行一些域名到IP地址的解析,而且還必須具有連向其他域名伺服器的資訊。當自己不能進行域名解析時,能夠知道到什麼地方去找別的域名伺服器

DNS使用了大量的域名伺服器,它們以層次方式組織,沒有一臺域名伺服器具有Internet上所有主機的對映,相反,該對映分佈在所有的DNS伺服器上

採用分散式設計的DNS系統,是一個在Internet上實現分散式資料庫的精彩範例

四種類型的域名伺服器:

  • a、根域名伺服器(13個):最高層次的也是最重要的域名伺服器,用來管轄頂級域,它知道所有頂級域名伺服器的IP地址。不管是哪一個本地域名伺服器,若要對Internet上任何一個域名進行解析,只要自己無法解析,就首先要求助於根域名伺服器,但通常它們並不直接把待查詢的域名直接轉換成IP地址,而是告訴本地域名伺服器下一步該去找哪一個頂級域名伺服器進行查詢
  • b、頂級域名伺服器:負責管理在該頂級域名伺服器註冊的所有二級域名
  • c、授權域名伺服器:每一個主機都必須在授權域名伺服器處登記。為了更加可靠地工作,一個主機最好至少有兩個授權域名伺服器。該伺服器總是能夠將其管轄的主機名轉換為該主機的IP地址
  • d、本地域名伺服器:例主機最近的(邏輯上)

域名解析過程

域名解析是指把域名對映成為IP地址(正向解析)或把IP地址對映成為域名(反向解析)的過程。

域名解析有兩種方式:遞迴查詢和遞迴(幾乎不使用)與迭代相結合的查詢(常用的)

為了提供DNS的查詢效率,並減少Internet上的DNS查詢報文數量,在域名伺服器中廣泛地使用了快取記憶體

個人覺得域名伺服器的硬碟中是存有域名和IP地址的對映關係的

3、檔案傳輸協議FTP

FTP的工作原理

檔案傳輸協議FTP(File Transfer Protocol)是Internet上使用得最廣泛的檔案傳送協議。其提供互動式的訪問,允許客戶指明檔案的型別與格式,並允許檔案具有存取許可權。其遮蔽了各種計算機系統的細節,因而適合於在異構網路中任意計算機之間傳送檔案

FTP提供的功能:p250

FTP的工作方式:C/S,TCP。一個FTP伺服器程序(由一個主程序和若干個從屬程序組成)可同時為多個客戶程序提供服務,主程序和從屬程序併發執行。21號埠(控制埠)

FTP伺服器必須在整個會話期間保留使用者的狀態資訊。特別是伺服器必須把指定的使用者賬戶與控制連線聯絡起來,伺服器必須追蹤使用者在遠端目錄樹上的當前位置

控制連線與資料連線

FTP在工作時使用兩個並行的TCP連線,一個是控制連線,一個是資料連線。使用兩個不同的埠號可使協議更加簡單和更容易實現

  • a、控制連線:連線兩個控制程序,傳送控制資訊,控制資訊都是以7位ASCII格式傳送的。控制連線在整個會話期間一直保持開啟狀態
  • b、資料連線:連線兩個資料傳送程序,資料傳送完成後,關閉連線,相關程序結束執行

FTP使用了一個分離的控制連線(FTP的控制資訊是帶外(Out-of-band)傳送的)

FTP和NFS的比較

4、電子郵件

電子郵件系統的組成結構

電子郵件是一種非同步通訊方式,通訊時不需要雙方同時在場。電子郵件把郵件傳送到收件人使用的郵件伺服器,並放在其中的收件人郵箱中,收件人可以隨時上網到自己使用的郵件伺服器進行讀取

電子郵件系統三個主要的組成構件:

  • a、使用者代理(User Agent):使用者與電子郵件系統的介面,UA使使用者能夠通過一個很友好的介面來發送和接收郵件,UA至少應當具有撰寫、顯示和郵件處理的功能。UA就是一個執行在PC上的程式。Outlook、Foxmail、Thunderbird等
  • b、郵件伺服器:電子郵件系統的核心,傳送和接收郵件,同時還要向發信人報告郵件傳送的情況
  • c、電子郵件使用的協議:郵件傳送協議,SMTP(Push的通訊方式);郵件讀取協議,POP3(Pull的通訊方式)

郵件伺服器採用C/S模型,它能夠同時充當客戶和伺服器

電子郵件格式與MIME

電子郵件格式

一個電子郵件分為信封和內容兩大部分,郵件內容又分為首部和主體兩部分

首部有規定的格式,郵件系統自動從首部中提取必要的資訊填到信封上;主體部分讓使用者自由撰寫

郵件內容的首部包含的一些首部行:

  • a、From(必需的關鍵字):郵件系統自動填寫
  • b、To(必須的關鍵字):填入一個或多個收件人的電子郵件地址
  • c、Subject(可選的關鍵字):郵件的主題

電子郵件地址的規定格式:收件人郵箱名@郵箱所在主機的域名

首部和主機之間用一個空行進行分割

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

由於SMTP只能傳送一定長度的ASCII碼,所以會有諸多限制。因此提出了多用途網路郵件擴充(Multipurpose Internet Mail Extensions,MIME)

MIME並沒有改動SMTP或取代它。MIME的意圖是繼續使用目前的格式,但增加了郵件主體的結構,並定義了傳送非ASCII碼的編碼規則。MIME可以在現有的電子郵件程式和協議下傳送

MIME主要包括三部分內容:

  • a、5個新的郵件首部欄位
  • b、定義了許多郵件內容的格式
  • c、定義了傳送編碼

SMTP協議和POP3協議

SMTP協議

簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)是一種提供可靠且有效的電子郵件傳輸的協議,控制兩個相互通訊的SMTP程序交換資訊

SMTP使用C/S模型,TCP連線,埠號為25

SMTP通訊的三個階段:

  • a、建立連線:S發出220 Service ready;C發出HELO命令,附上傳送方的主機名
  • b、郵件傳送:C傳送MAIL命令,後面有發件人的地址;S回答250 OK;C傳送一個或多個RCPT命令;S回答250 OK;C傳送DATA命令;S回答354 Start mail input;C開始傳送資料
  • c、C傳送QUIT命令;S返回221

SMTP不使用中間的郵件伺服器(直連的)

POP3協議

郵局協議(Post Office Protocol,POP)是一個非常簡單,但功能有限的郵件讀取協議

POP3使用C/S模型,TCP協議,埠號110。POP客戶程式,POP伺服器程式

另一個郵件接收協議是網際報文存取協議IMAP,它比POP複雜得多,但目前還只是Internet的建議標準

目前有很多基於全球資訊網的電子郵件,這種電子郵件的UA和電子郵件伺服器之間是用HTTP協議通訊的,電子郵件伺服器之間是用SMTP通訊的

5、全球資訊網WWW

考點很少,針對性看一下就行,沒必要做很詳細的筆記。日後用到的時候,在詳細學習

WWW的概念與組成結構

超文字傳輸協議HTTP