計算機網絡的一點點點筆記(TCP,UDP,DNS,HTTP,URL,應用層)

以下內容基本全部l來自謝希仁編著《計算機網絡》(第七版)

(1)計算機網絡體系結構

協議:爲進行網絡中的數據交換而建立的規則,標準或約定成爲網絡協議,簡稱爲協議;

協議有三個要素構成:語法,即數據與控制信息的結構或格式;語義,即需要發出何種控制信息,完成何種動作以及做出何種響應;同步,及事件實現順序的詳細說明。

  • OSI/RM 開放系統互聯基本參考模型,OSI的七層協議;
  • TCP/IP的體系結構;四層協議;
  • 五層協議的體系結構;五層協議;
OSI的七層協議 TCP/IP的四層協議 五層協議
7應用層 應用層(各種應用層協議如TELNET,FTP,SMTP等) 5應用層
6表示層
5會話層
4運輸層 運輸層(TCP/UDP) 4運輸層
3網絡層 網際層IP 3網絡層
2數據鏈路層 網絡接口層 2數據鏈路層
1物理層 1物理層
  1. 應用層:任務是 通過應用進程間的交互來完成特定網絡應用。應用層協議定義的是 應用進程間的通信和交互的規則(例如域名系統DNS,支持萬維網應用的HTTP協議,支持電子郵件的SMTP協議等等)。應用層交互的數據單元成爲報文
  2. 運輸層:任務是 負責向兩臺主機中進程之間的通信提供通用(多種應用都可使用)的數據傳輸服務。運輸層主要使用的協議是TCP和UDP協議
  3. 網絡層:負責爲分組交換網上的不同主機提供通信服務。在發送數據時,網絡層把運輸層產生的報文段或用戶數據報封裝成分組或包進行傳送。在TCP/IP體系中,由於網絡層使用IP協議,因此分組也叫做IP數據報
  4. 數據鏈路層:將網絡層交下來的IP數據報組裝成幀,並且在接收數據時還要由數據鏈路層來檢錯,糾錯。
  5. 物理層:傳輸的數據單位是比特

(2)IP,TCP,UDP

  • 許多計算機網絡通過路由器進行互聯,參加互聯的計算機網絡都使用網際協議IP,一次可以把互聯之後的計算機網絡看成一個虛擬互聯網絡。所謂虛擬互聯網絡也就是邏輯互聯網絡,它的意思是互連起來的各種物理網絡的異構性本來是客觀存在的,但是我們利用IP協議就可以使這些性能各異的網站在網絡層上看起來好像是一個統一的網絡。這樣的網絡簡稱IP網,如果在這種IP網的上層使用TCP協議,就成了互聯網。整個互聯網是一個單一的,抽象的網絡。IP地址就是給互聯網上的每一臺主機(或路由器)的每一個接口分配一個在全世界範圍內是唯一的32位標識符,是網絡層和以上各層使用的地址,是一種邏輯地址
  • 雖然IP數據報的首部明確的標誌了兩臺通信的主機的IP地址,但是真正通信的實體是主機中的進程,然而IP協議只能把分組送到目的主機,但是這個分組還在網絡層並沒有真的交付到主機中的應用進程。所以,從運輸層的角度來看,通信的真正端點不是主機而是主機中的進程,也就是說,應用進程之間的通信是端到端的通信
  • 在網絡層中,IP數據報首部中的檢驗和字段,只檢驗首部是否出現差錯而不檢查數據部分,所以運輸層還要對收到的報文進行差錯檢測。所以根據應用程序的不同需求,運輸層需要有兩種不同的運輸協議,即面向連接的TCP和麪向無連接的UDP。爲了識別主機中的進程,運輸層使用了協議端口號,簡稱端口。只要把所傳送的報文交到目的主機的某個合適的目的端口,剩下的工作(即最後交付目的進程)就交給TCP/UDP來完成。
  • 用戶數據報協議UDP——提供無連接的,盡最大努力的數據傳輸服務(不保證數據傳輸的可靠性),其數據傳輸的單位是用戶數據報。主要特點是:
  1. UDP是無連接的。
  2. UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連接狀態表。
  3. UDP是面向報文的。
  4. UDP沒有擁塞控制。
  5. UDP支持一對一,一對多,多對一,多對多的交互通信。
  6. UDP的首部開銷小。
  • 傳輸控制協議TCP——提供面向連接的,可靠的數據傳輸服務,其數據傳輸的單位是報文段。主要特點有:
  1. TCP是面向連接的運輸層協議。
  2. 每一條TCP連接只能由兩個端點,每一條TCP連接只能是點對點的(一對一)。
  3. TCP提供可靠交付的服務。
  4. TCP提供雙全工通信。
  5. 面向字節流。
  • TCP建立連接的過程叫做握手,握手需要在客戶和服務器之間交換三個TCP報文段。三報文握手建立TCP連接的過程,四報文握手釋放TCP連接的過程。

(3)網絡層總結

域名系統DNS

  • 域名系統DNS:主機的IP地址不便於用戶記憶,所以採用層次樹狀結構的命名方式,並使用分佈式的域名系統DNS。
  • 域名到IP地址的解析是由分佈在互聯網上的許多域名服務器程序(可簡稱爲域名服務器)共同完成的。域名服務器程序在專設的節點上運行,運行域名服務器程序的機器叫做域名服務器
  • 域名到IP的解析過程:當某一個應用進程需要把主機名解析爲IP地址時,該應用進程就調到解析程序,併成爲DNS的一個客戶,把待解析的域名放在DNS請求報文中,以UDP用戶數據報的方式發給本地域名服務器。本地域名服務器在查找域名後,把對應的IP地址放在回答報文中返回。應用進程獲得目的主機的IP地址後即可進行通信。
  • 域名結構:任何一個連接在互聯網的主機或路由器,都有一個唯一的層次結構的名字,即域名。"域"是名字空間中一個可被管理的劃分。域還可以劃分爲子域,而子域還可以繼續劃分爲子域的子域,這樣就形成了頂級域,二級域,三級域,等等。DNS規定,域名中的標號都由英文字母和數字組成,每一個標號不超過63個字符(爲了便於記憶,最好不超過12個字符),也不區分大小寫字母。標號中除了連字符-外不能使用其他的標點符號。級別最低的域名寫在最左邊,而級別最高的頂級域名則寫在最右邊。有多個標號組成的完整域名總共不超過255個字符。
  • DNS各級域名由上一級的域名管理機構管理,而最高的頂級域名則由ICANN進行管理。域名只是一個邏輯概念,並不代表計算機的物理地點。
  • 我國把二級域名劃分爲“類別域名”和“行政區域名”兩大類,“類別域名”共7個,分別爲:ac(科研機構),com(工,商,金融等企業),gov(中國的政府機構),mil(中國的國防機構),net(提供互聯網絡服務的機構),org(非營利的組織);“行政區域名”共34個,適用於我國的各省,自治區,直轄市。例如:bj(北京市),js(江蘇省),等等。
  • 域名服務器:一個服務器所負責管轄的(或有權限的)範圍叫做區(區可能小於或等於域,但一定不大於域)。每一個區設置相應的權限域名服務器,用來保存該區中所有主機的域名到IP地址的映射
  • 域名服務器有四種類型:根域名服務器,頂級域名服務器,權限域名服務器,本地域名服務器(有時也叫默認域名服務器)。

 萬維網WWW

  • 萬維網是一個大規模的,聯機式的信息儲藏所,簡稱Web。萬維網是一個分佈式的超媒體系統,它是超文本系統的擴充,超文本是指包含指向其他文檔的鏈接的文本。萬維網以客戶服務器方式工作,瀏覽器就是在用戶主機上的萬維網客戶程序。萬維網所駐留的主機則運行服務器程序,因此這臺主機也成爲萬維網服務器。客戶程序向服務器程序發出請求,服務器程序向客戶程序送回客戶所要的萬維網文檔。
  • 爲了能夠標誌互聯網上的萬維網文檔,萬維網使用統一資源定位符(URL)來標誌,並使每一個文檔在整個互聯網的範圍內具有唯一的標識符URL。
  • 爲了實現萬維網上的各種連接採用了超文本傳送協議HTTP。HTTP是應用層的協議,它使用TCP連接進行可靠的傳送。
  • 統一資源定位符URL:用來表示從互聯網上得到的資源位置和訪問這些資源的方法。URL給資源的位置提供了一種抽象的識別方法,並用這種方式給資源定位。只要能夠對資源定位,系統就可以對資源進行各種操作,如存取,更新,替換和查找其屬性。URL相當於一個文件名在網絡範圍的擴展。因此,URL是與互聯網相連的機器上的任何可訪問對象的一個指針,由於訪問對象所使用的協議不同,所以URL還指出讀取某個對象時所使用的協議。URL的一般心事有以下四個部分組成:

                                         <協議>://<主機>:<端口>/<路徑>

  • URL的第一部分是最左邊的協議,這裏的協議指出是用什麼協議來獲取該萬維網文檔。現在最常用的協議就是http,其次是ftp(文件傳輸協議)。"://”是規定的格式。<主機>指的是主機的域名。<端口>和<路徑>有時可以省略
  • 超文本傳輸協議HTTP:HTTP是面向事務的應用層協議。它不僅傳送完成超文本跳轉所必須的信息,而且也傳送任何可從互聯網上得到的信息
  • 萬維網的大致工作過程:每個萬維網網點都有一個服務器進程,它不斷的監聽TCP的端口80,以便發現是否有瀏覽器向它發出連接建立請求。一旦監聽到連接建立請求並建立TCP連接之後,瀏覽器就向萬維網服務器發出瀏覽器某個頁面的請求,服務器接着就返回所請求的頁面作爲響應。最後TCP連接就被釋放了。
  • HTTP報文通常都使用TCP連接傳達,保證數據的可靠傳輸。HTTP不必考慮數據在傳輸過成中被丟棄後又怎樣被重傳。但是HTTP協議本身是無連接的。這就是說,雖然HTTP使用了TCP連接,但是通信的雙方在交換HTTP報文之前不需要先建立HTTP連接
  • HTTP連接是無狀態的,也就是說,同一個客戶第二次訪問同一個服務器上的頁面時,服務器的響應與第一次的響應相同,因爲服務器不記得曾經訪問過這個客戶,也不記得爲這個客戶曾經服務過多少次。HTTP的無狀態簡化了服務器的設計,使服務器更容易支持大量併發的HTTP請求
  • 當用戶點擊某個萬維網連接時,HTTP協議首先要和服務器通過三報文握手建立TCP連接。當建立連接的三報文握手的前兩部分完成後,萬維網客戶就把HTTP請求報文,作爲建立TCP連接的三報文握手中的第三個報文中的數據,發送給萬維網服務器。服務器收到HTTP請求報文後,就把所請求的文檔作爲響應的報文返回給客戶。
  • HTTP/1.0的主要缺點就是每請求一個文檔就要有兩倍RTT的開銷,萬維網客戶每一次建立新的TCP連接都要重新分配緩存和變量,當萬維網服務器同時服務於大量客戶的請求時,這種非持續連接會使萬維網服務器負擔很重,要使用並行TCP連接可以縮短響應時間。而HTTP/1.1 協議使用了持續連接萬維網服務器在發送響應後的一段時間內保持這條連接,使同一個客戶(瀏覽器)和該服務器可以繼續在這條連接上傳送後續的HTTP請求報文和響應報文
  • HTTP/1.1協議的持續連接有兩種工作方式:非流水線方式和流水線方式,非流水線方式:客戶在收到前一個響應後才能發出下一個請求;流水線方式:客戶收到HTTP的響應報文之前就能夠接着發送新的請求報文。流水線工作方式時TCP連接中的空閒時間減少,提高了下載文檔效率。
  • HTTP有兩類報文:請求報文和響應報文。請求報文——從客戶向服務器發送請求報文。響應報文——從服務器到客戶的回答。兩種報文都由三部分組成:開始行,首部行,實體主體。兩類報文區別是開始行不同。
  • HTTP的報文結構圖:略~
  1. 開始行:用於區分是請求報文還是響應報文。在請求報文中開始行叫請求行,響應報文中開始行叫做狀態行。
  2. 首部行:用來說明瀏覽器,服務器或報文主體的一些信息,首部有好幾行,也可以不使用
  3. 實體主體:在請求報文中一般都不用這個字段,而在響應報文中也可能沒有
  • HTTP請求報文的特點:請求行只有三個內容:即方法,請求資源的URL,HTTP的版本
方法(操作) 意義
OPTION 請求一些選項的信息
GET 請求讀取有URL所標誌的信息
HEAD 請求讀取有URL所標誌的信息的首部
POST 給服務器添加信息(例如:註釋)
PUT 在指明的URL下存儲一個文檔
DELETE 刪除指明的URL所標誌的資源
TRACE 用來進行環回測試的請求報文
CONNECT 用於代理服務器
  • HTTP響應報文的特點:狀態行的三個內容:即HTTP的版本,狀態碼,以及解釋狀態碼的簡單短語
  • 狀態碼都是三位數字的,分五大類:
  1. 1XX 表示通知信息,如請求收到了或正在處理。
  2. 2XX 表示成功,如接受或知道了。
  3. 3XX 表示重定向,如要完成請求還必須採取進一步的行動。
  4. 4XX 表示客戶的差錯,如請求中有錯誤的語法或不能完成。
  5. 5XX 表示服務器的差錯,如服務器失效無法完成請求。
  6. 常見的 202:接受;400:錯誤的請求;404:找不到:
  • Cookie:HTTP是無狀態的,雖然簡化了服務器的設計,但有些萬維網站點需要識別用戶。所以在HTTP中使用Cookie。Cookie表示在HTTP服務器和客戶之間的傳遞信息。
  • Cookie工作方式:當用戶A瀏覽某個使用Cookie的網站時,該網站的服務器就爲A產生一個唯一的識別碼,並以此作爲索引在服務器的後端數據庫中產生一個項目。接着在A的HTTP響應報文中添加一個叫做Set-cookie的首部行“首部字段名”是“Set-cookie”,後面的”值“就是賦予該用戶的識別碼。當A收到這個響應時,其瀏覽器就在他管理的特定的Cookie文件中添加一行,其中包括這個服務器的主機名和Set-cookie後面給出的識別碼。當A繼續瀏覽這個網站時,每發送一個HTTP請求報文,其瀏覽器就會從其Cookie文件中取出這個網站的識別碼,並放到HTTP請求報文Cookie首部行中:Cookie:xxxxxxx;於是,這個網站就能夠跟蹤用戶在該網站的活動,而服務器並不需要知道這個用戶的真實姓名和其他信息,但可以知道用戶什麼時間訪問哪些頁面,以及訪問順序。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章