目錄
1.4.1 資料收發操作概覽
1.4.2 創建套接字階段
1.4.3 連接階段:把管道接上去
1.4.4 通信階段:傳遞訊息
1.4.5 斷開階段:收發資料結束
本章測驗
1.4.1 資料收發操作概覽
委托作業系統內部的協議堆疊向web服務器發訊息,發的HTTP訊息是數字資訊,不僅對于瀏覽器,對于使用網路的應用程式也一樣,都需要使用Socket 庫中的程式組件,
收發資料操作的基本思路:
收發資料的兩臺計算機之間連接一條資料通道,資料沿著這條通道雙向流動,

(圖中顯示的是TCP協議,還有一種UDP(User Datagram Protocol,用戶資料報協議))
收發資料操作之前,雙方需要先建立管道,關鍵在于管道兩端的資料出入口,這些出入口稱為套接字,因此要先創建套接字,然后再將套接字連接起來形成管道,服務器一方先創建套接字,然后等待客戶端創建套接字,延伸出管道,向服務器套接字連接管道,資料全部發送完畢,連接的管道斷開,套接字洗掉,
因此一共是四個階段:創建套接字、連接管道、收發資料、斷開管道并洗掉套接字,下面逐一介紹,

1.4.2 創建套接字階段
呼叫 Socket 庫中的 socket 程式組件即可,第二章會詳細介紹,
套接字創建完成后,協議堆疊會回傳一個描述符,用來識別不同的套接字,因為可能同時打開多個網頁或多個聯網程式,類似于坐飛機托運行李,行李上貼的標簽,
1.4.3 連接階段:把管道接上去
呼叫Socket 庫中 connect 程式組件實作,呼叫時需要:描述符、服務器 IP 地址和埠號3個引數,
描述符:上文的描述符,判斷使用哪一個套接字去和服務器端的套接字進行連接,并執行連接的操作,
IP地址:1.3里講的服務器的IP地址,
埠號:這個在1.1里也講過,IP地址只能確定網路中的計算機,沒法具體到某個套接字,因此需要埠號,不能使用描述符代替,描述符是計算機內部應用程式識別套接字的機制,埠號是客戶端和服務器之間用來識別對方套接字的機制,另外,服務器上所使用的埠號是根據應用的種類事先規定好的,比如web是80,電子郵件是25.
埠號的規則是全球統一的,為了避免重復和沖突,埠號和 IP 地址一樣都是由 IANA(Internet Assigned Number Authority,互聯網編號管
理局)這一組織來統一管理的,
1.4.4 通信階段:傳遞訊息
發送訊息由Socket 庫中 write 程式組件實作,應用程式在記憶體中準備好要發送的資料(HTTP 請求訊息),呼叫 write 時,需要指定描述符和發送資料,協議堆疊進行發送,服務器,決議收到的資料內容并執行相應的操作,向客戶端回傳回應訊息,
接受訊息由read 程式組件實作,呼叫 read 時需要指定用于存放接收到的回應訊息的記憶體地址(即接識訓沖區),訊息存放到緩沖區也就轉交給了應用程式,
1.4.5 斷開階段:收發資料結束
close 程式組件實作,
客戶端和服務器哪一方先執行 close 都有可能,當瀏覽器呼叫 read 執行接收資料操作時,read 會告知瀏覽器收發資料操作已結束,連接已經斷開,瀏覽器得知后,也會呼叫 close 進入斷開階段,
在HTTP協議中,如果一個網頁有3張圖片,則需要4次請求,也就需要4次重復的執行以上程序,效率很低,因此在 HTTP 版本 1.1 中可以在一次連接中收發多個請求和回應,所有資料都請求完成后,瀏覽器會主動觸發斷開連接的操作,
本章測驗
1.http://www.nikkeibp.co.jp/ 中的 http 代表什么意思?
答案:HTTP協議
2. 下面兩個網址有什么不同?
- a. http://www.nikkeibp.co.jp/sample
- b. http://www.nikkeibp.co.jp/sample/
答案:a中的sample代表檔案名,b中的sample代表目錄名,b會訪問這個目錄下已經設定好的默認檔案,
3. 用來識別連接在互聯網上的計算機和服務器的地址叫什么?
答案:IP,
4. 根據 Web 服務器的域名來查詢 IP 地址時所使用的服務器叫什么?
答案:DNS服務器,
5. 向 DNS 服務器發送請求訊息的程式叫什么?
答案:決議器,
本章完,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/297442.html
標籤:其他
上一篇:01-為什么要學習網路協議
下一篇:VLAN和埠
