你們好, 我是公衆號:java小杰要加油,
今天來分享一個關於計算機網絡的知識點—— 網絡究竟是怎麼鏈接的?
舉個栗子,當咱們在瀏覽器輸入https://www.jdl.cn/img/servic...網絡地址的時候java
瀏覽器首先會對URL進行解析web
而後就要生成HTTP消息了,它大概長這樣瀏覽器
這些字段具體內容是什麼能夠參考這篇文章五千來字小做文,是的,咱們是有個HTTP。緩存
瀏覽器生成了這個HTTP消息後,它要往哪裏發送呢?固然是服務器啦,因此就要解析這個域名對應的是哪臺服務器,IP地址是什麼,由於IP地址很差記,因此纔有了對應的域名,便於咱們人類記憶。服務器
DNS服務器接受來自客戶端的查詢,包括如下三個內容網絡
記錄類型: 表示域名對應何種記錄類型框架
對於不一樣的記錄類型,響應數據也不同spa
客戶端和DNS服務器交互流程大概以下操作系統
具體交互就是下面這樣計算機網絡
可是一臺服務器存不下這麼多,因此通常都是DNS服務器大接力來尋找這個ip地址,圖以下
客戶端找到最近的DNS服務器,查找www.jdl.cn的信息,但是最近的DNS服務器沒有這個信息,就轉發到了根域服務器下,通過判斷髮現是cn的頂級域名的,因而根域DNS服務器會返回它所管理的cn域中的DNS服務器的ip地址,接下來,最近的這個DNS服務器又回去訪問com域名的服務器,以此類推,最終會找到 www.jdl.cn這個服務器的IP地址
知道了IP地址後,就能夠委託操做系統內部的協議棧向這個目標IP地址發送消息了
開放式系統互聯通訊參考模型(英語:Open System Interconnection Reference Model,縮寫爲 OSI),簡稱爲OSI模型(OSI model),一種概念模型,由國際標準化組織提出,一個試圖使各類計算機在世界範圍內互連爲網絡的標準框架。定義於ISO/IEC 7498-1。
TCP/IP四次模型
TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際協議)TCP/IP協議不只僅指的是TCP 和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等協議構成的協議簇, 只是由於在TCP/IP協議中TCP協議和IP協議最具表明性,因此被稱爲TCP/IP協議
當兩臺計算機要傳遞數據的時候,必定要先鏈接,得通過TCP三次握手吧(僅僅指指走TCP協議須要鏈接的),咱們日常都說TCP鏈接要通過三次握手,咱們就來看一下到底什麼是TCP三次握手,如圖所示
- 三次握手經過後,就表明客戶端和服務端能夠傳遞數據包進行交互啦
- 咱們說到SYN,ACK,seq,ack這些又是什麼呢?這些實際上是TCP數據包裏的屬性,咱們接着往下看(在傳輸層中有解釋)
- MTU(Maximum Transmission Unit): 一個網絡包的最大長度,以太網中通常是1500字節
- MSS(Maximum Segment Size): 除去頭部以後,一個網絡包所容納的TCP數據的最大長度
- 而後上面應用層的這個網絡包再加上TCP頭部
控制位(6位): 該字段中的每一個比特位分別表示如下通訊控制的含義
還記得三次握手提到過的各類序號嗎,就是這個報文裏的屬性
- 而後上面這個網絡包再加上IP頭部
協議號(8比特): 協議號表示協議的類型(如下均爲16進制)
- 而後這個網絡包再加上MAC頭部
以太類型(16比特): 使用的協議類型。下面是一些常見的類型,通常在TCP/IP通訊中只是用0800和0806這兩種。
發送方的MAC地址還比較容易獲取到,可是接收方的MAC地址就不太容易獲取到了
當目的地的IP地址對應的MAC地址變了的話,那麼這個MAC緩存就會出問題,因此爲了不這種問題發生,這個緩存幾分鐘後會被刪除,很是簡單粗暴。
IP 模塊負責添加以下兩個頭部:
- MAC頭部: 以太網用的頭部,包含MAC地址
- IP頭部: IP用的頭部,包含IP地址
這個時候的數據包變成了這個樣子
兩臺計算機最後鏈接結束後要斷開鏈接,進行四次揮手
其實 三次握手, 四次揮手還有好多好多知識點要說,像什麼爲何握手須要三次,而揮手須要四次啦這些問題,之後我會單獨和你們聊這個,記得收看呀