趣談網絡協議學習筆記(劉超):通信協議綜述(1)


一、發起請求

1、應用層

瀏覽器輸入:https://www.kaola.com

DNS、HTTP、HTTPS 所在的層我們稱為應用層

2、傳輸層

經過應用層封裝后,瀏覽器會將應用層的包交給下一層去完成,通過 socket 編程來實現。下一層是傳輸層

傳輸層有兩種協議,一種是無連接的協議UDP,一種是面向連接的協議TCP。對於支付來講,往往使用 TCP 協議。
所謂的面向連接就是,TCP 會保證這個包能夠到達目的地。如果不能到達,就會重新發送,直至到達。

3、網絡層

4、MAC 層

城關往往是知道這些“知識”的,因為城關和臨近的城關也會經常溝通。到哪里應該怎么走,這種溝通的協議稱為路由協議,常用的有OSPF和BGP。

5、網關

於是操作系統將 IP 包交給了下一層,也就是MAC 層。網卡再將包發出去。由於這個包里面是有 MAC 地址的,因而它能夠到達網關。

網關收到包之后,會根據自己的知識,判斷下一步應該怎么走。網關往往是一個路由器,到某個 IP 地址應該怎么走,這個叫作路由表。

6、路由器路由表

路由器有點像玄奘西行路過的一個個國家的一個個城關。每個城關都連着兩個國家,每個國家相當於一個局域網,在每個國家內部,都可以使用本地的地址 MAC 進行通信。

一旦跨越城關,就需要拿出 IP 頭來,里面寫着貧僧來自東土大唐(就是源 IP 地址),欲往西天拜佛求經(指的是目標 IP 地址)。路過寶地,借宿一晚,明日啟行,請問接下來該怎么走啊?

7、路由協議

城關往往是知道這些“知識”的,因為城關和臨近的城關也會經常溝通。到哪里應該怎么走,這種溝通的協議稱為路由協議,常用的有OSPF和BGP。

二、目標服務器

1、目標服務如何處理

目標服務器發現 MAC 地址對上了,取下 MAC 頭來,發送給操作系統的網絡層。發現 IP 也對上了,就取下 IP 頭。IP 頭里會寫上一層封裝的是 TCP 協議,然后將其交給傳輸層,即TCP 層。

在這一層里,對於收到的每個包,都會有一個回復的包說明收到了。這個回復的包絕非這次下單請求的結果,例如購物是否成功,扣了多少錢等,而僅僅是 TCP 層的一個說明,

即收到之后的回復。當然這個回復,會沿着剛才來的方向走回去,報個平安。


因為一旦出了國門,西行路上千難萬險,如果在這個過程中,網絡包走丟了,例如進了大沙漠,或者被強盜搶劫殺害怎么辦呢?因而到了要報個平安。

2、什么是瀏覽器重試

如果過一段時間還是沒到,發送端的 TCP 層會重新發送這個包,還是上面的過程,直到有一天收到平安到達的回復。這個重試絕非你的瀏覽器重新將下單這個動作重新請求一次。對於瀏覽器來講,
就發送了一次下單請求,TCP 層不斷自己悶頭重試。除非 TCP 這一層出了問題,例如連接斷了,才輪到瀏覽器的應用層重新發送下單請求。

當網絡包平安到達 TCP 層之后,TCP 頭中有目標端口號,通過這個端口號,可以找到電商網站的進程正在監聽這個端口號,假設一個 Tomcat,將這個包發給電商網站。

3、接待員

電商網站的進程得到 HTTP 請求的內容,知道了要買東西,買多少。往往一個電商網站最初接待請求的這個 Tomcat 只是個接待員,負責統籌處理這個請求,而不是所有的事情都自己做。

例如,這個接待員要告訴專門管理訂單的進程,登記要買某個商品,買多少,要告訴管理庫存的進程,庫存要減少多少,要告訴支付的進程,應該付多少錢,等等。

4、如何告訴相關的進程呢?

如何告訴相關的進程呢?往往通過 RPC 調用,即遠程過程調用的方式來實現。遠程過程調用就是當告訴管理訂單進程的時候,接待員不用關心中間的網絡互連問題,

會由 RPC 框架統一處理。RPC 框架有很多種,有基於 HTTP 協議放在 HTTP 的報文里面的,有直接封裝在 TCP 報文里面的。

當接待員發現相應的部門都處理完畢,就回復一個 HTTPS 的包,告知下單成功。這個 HTTPS 的包,會像來的時候一樣,經過千難萬險到達你的個人電腦,最終進入瀏覽器,顯示支付成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM