1. 程式人生 > >計算機網路應用層-計網(2)

計算機網路應用層-計網(2)

前言

接著學習計算機網路

正文

主要學習應用層涉及到的幾個協議。

基本概念

  • 通訊雙方在應用層交換的協議資料單元是報文(Message).
  • client-server架構:中央伺服器一直線上,並且有永久的ip地址。
  • p2p架構:沒有一直線上的中央伺服器,任意兩個使用者之間可以進行通訊。
  • 混合架構:client-server和p2p混合架構,集合二者的特點。

協議定義

  • 交換的報文型別
  • 報文的語法格式
  • 報文中欄位的語意
  • 各種型別的報文的傳送規則

http協議

全球資訊網

全球資訊網是一個超媒體系統。web文件分佈在各個主機上,採用超連結的方法,講一個web文件連結到另一個web文件,甚至是其他主機上的web文件。使用超文字標記語言(html)來組織web文件資訊,使用超文字傳輸協議(http)來傳輸web文件。

超文字標記語言

html語言用來編寫web文件,由特定標籤定義內容。
html標籤

統一資源定位符

URL是一種統一格式的資訊資源地址的標識方法。最常見的就是http協議的url了。
其格式如下

<協議>://<主機>:<埠>/<路徑>

url不分大小寫
常見url

超文字傳輸協議

http是用來傳輸web資訊的協議。廣泛用來瀏覽器-伺服器傳輸內容。其在運輸層的協議是tcp。
RTT的定義:client端傳送資料報至接收到server端迴應的時間。

分類

  • 非持久連線
    http1.0,一個tcp連線傳送一個object
  • 持久連線
    http2.0,一個tcp連線傳送多個object

連線過程

http在傳輸層是基於tcp的,所以必定要進行tcp連線,而http連線幾次就要看一次可以傳送接收多少個object。

  • 非持久連線
    client首先發送tcp資料報至server—>server accept了client的連線,併發出迴應—>client得到server的tcp迴應傳送http請求報文—>server收到請求報文並且傳送響應報文—>server關閉tcp連線—>client接收響應報文並做響應解析。
    一個object傳輸總時間為:2RTT+object傳輸時間

  • 持久連線
    持久連線的不同之處在於,傳送了響應報文,server並不馬上關閉tcp連線,之後可以再次傳送object

報文

報文分為請求報文和響應報文。

  • 請求報文
    格式
請求行: 方法 路徑 httpversion
首部行: Host:value
		·
		·
		·

GET /test/test http1.1
Host:www.host.com
User-agent: Mozilla/4.0
Connection:close
Accept-language:fr
  • 響應報文
    比如
HTTP1.1 200 OK
Connection:close
Date:
伺服器:Apache/1.3.0 (Unix)
Last-Modified:
Content-Length:
Content-Type:
data....

一些狀態碼和狀態短語

  • 200 OK
    請求成功,請求物件在報文後面
  • 301 moved permanently
    資源已經轉移,新的url的location在首部行指定
  • 400 Bad Request
    不符合請求報文規則,請求報文不為伺服器理解
  • 404 Not found
    資源不存在
  • 500 Http version not supported
    伺服器錯誤

ftp協議

ftp使用20和21埠,可以在自己伺服器配置ftp。詳情
ftp常用的命令列

命令 作用
檢視所有命令使用幫助
open 開啟一個ftp伺服器
user 切換ftp使用者
put 上傳本地檔案至ftp伺服器
get 下載ftp伺服器檔案至本地

郵件協議

電子郵件由四部門組成

  • 使用者代理
  • 郵件伺服器
  • 郵件傳輸協議
  • 郵件訪問協議
    郵件過程
  • smtp
    標準文字格式為
    文字格式
    終端smtp互動例項,可以看這個smtp互動
  • pop3
    分為兩個階段
  1. 認證階段
    使用者密碼的驗證
  2. 事物階段
    對一些郵件的基本操作
    終端pop3互動例項,可以看這個pop3互動

dns系統

dns系統完成域名-ip地址的對映。

域名伺服器

  • 跟域名伺服器
    是最高層次的域名伺服器,internet上有13套跟域名伺服器。跟域名伺服器上面儲存了頂級域名伺服器的IP。
  • 頂級域名伺服器
    跟域名之下是頂級域名,負責管理的是在該頂級域名註冊的所有權威域名。儲存著下一步要查詢的域名伺服器的ip地址。
  • 權威域名伺服器
    權威域名伺服器中儲存著具體要訪問伺服器ip
  • 本地域名伺服器
    本地域名伺服器存在域名快取,如果有要找的記錄,則直接返回給本地電腦。

域名解析過程

以訪問www.amazon.com為例

  1. 訪問本地域名伺服器,查詢本地的域名快取,存在直接返回,不存在就轉為查詢跟域名伺服器。
  2. 查詢跟域名伺服器,得到.com的頂級域名的IP地址。
  3. 查詢得到的頂級域名伺服器,獲得amazon.com的IP地址。
  4. 查詢amazon.com域名伺服器,得到IP地址。
  5. 本地域名伺服器將查詢到的IP地址返回給電腦。

dns記錄格式

Name Value Type TTL

Name一般是節點主機的域名,Value是對應Name的名字,Type指出記錄的型別,TTL是本記錄的生存時間,一般是24hours。

Type Name Value
A 主機域名 對應的IP地址
NS 本域的伺服器名稱
CNAME 別名對應的規範主機名 域名
MX 郵件伺服器的規範主機名 對應郵件伺服器的名稱
TXT 文字 未解釋的ASCII碼文字

dns報文

報文

  1. 首部區
    標識該次域名解析是查詢還是應答。
  2. 詢問區
    包括被查詢的主機域名以及查詢型別
  3. 應答區
    對域名查詢報文解析出的域名和資源記錄
  4. 管理機構區
    其他權威域名伺服器的記錄
  5. 附加記錄區
    另外包含一些其他有用的記錄來配合資源記錄的使用