了解Web及網路基礎

2021-08-01 05:18:45 字數 1541 閱讀 5675

在面試中經常會問一些關於tcp/ip和http/https相關的問題,在工作中雖然可以用okhttp之類的庫,但是必須要有基礎才能把庫的實現了解清楚,才能更好的處理網路問題。所以在這系列的博文中記錄下學習的內容。

網路通訊是需要乙個統一的規則的,這樣才可以在不同硬體、作業系統之間通訊,這個規則稱為協議。各種協議集合統稱為tcp/ip。

tcp/ip協議族裡重要的一點就是分層,可以分為4層:應用層、傳輸層、網路層和資料鏈路層。(為什麼要分層呢?這就像程式設計裡的常常說得mvc/mvp模式,把不同的內容分離開,方便日後維護,網路分層也一樣,如果沒有分層,在需要改變設計的時候,就必須把所有部分整體替換掉,而分層之後只需要把變動的層替換掉即可,並且不需要管其它層的實現、是否能確保傳輸送達等問題)。

應用層:有我們熟悉的http、https和ftp、dns等,應用的網路程式設計就是在這一層,所以要重點關注,其中http的職責是生成針對目標web伺服器的http請求報文。

傳輸層:有兩種性質不同的協議tcp/udp,這兩種不同的協議來告訴網路資料傳輸的方式,也需要重點關注下,主要工作原理是把應用層收到的資料(http請求報文)進行分割成多個報文段,並在各報文上打上標記序號及埠號後**給網路層,其中tcp會進行可靠性傳遞(三次握手)。

鏈路層:用來連線網路的硬體部分,網路介面卡、網絡卡等,了解即可。

傳送端在各層之間傳輸資料時,每經過一層時會被打上乙個該層所屬的首部資訊,反之,接收端在層與層傳輸資料時,每經過一層時會把對應的首部消去。

tcp是一種可靠的協議,為了確保可靠,tcp協議採用了三次握手策略,如果在握手的過程中某個階段莫名中斷,tcp協議會再次以相同的順序傳送相同的資料報。

第一次握手:客戶端向服務端傳送乙個syn包

第二次握手:服務端接收到客戶端的syn包進行確認,並傳送ack+syn包

第三次握手:客戶端收到服務端的ack+syn包後向服務端傳送ack包**

dns(domain name system) 位於應用層的協議,提供網域名稱到ip位址之間的解析服務。

從在瀏覽器輸入**到顯示**內容經歷的步驟如下:

1. 客戶端向dns發起網域名稱解析,解析後返回ip給客戶端;

2. http協議生成針對目標web伺服器的http請求報文;

3. tcp協議將http請求報文分割成報文段,按序號分為多個報文段,把每個報文段可靠地傳遞給對方;

4. ip協議層負責搜尋對方的位址,一邊中轉一邊傳送;

5. 伺服器端的tcp層按序號以原來的順序重組請求報文;

6. 伺服器端地http層對請求的內容進行處理;

了解Web及網路基礎

tcp ip協議族按層次分別分為以下幾層 應用層 傳輸層 網路層 資料鏈路層 tcp ip協議各層作用如下 應用層 應用層決定了向使用者提 用服務時通訊的活動。傳輸層 傳輸層對上層應用層,提供處於網路連線中的兩台計算機之間的資料傳輸。網路層 又名網路互聯層 網路層用來處理在網路上流動的資料報。鏈路層...

web及網路基礎

http誕生,規範,為了解決文字傳輸的難題。tcp ip協議族,分層。應用層 傳輸層 網路層 資料鏈路層。分層的好處 不需要整體的修改,分層後,只需要把變動的層替換掉。把每個層介面部分規劃好後,每個層內部設計可以自由改動。模組化 利用tcp ip協議族進行網路通訊,會通過分層順序與對方進行通訊。傳送...

網路基礎了解

osi七層模式 7.應用層 終端裝置 pc 手機 平板等 網路服務與終端使用者的乙個介面。協議有 http ftp tftp smtp snmp dns telnet https pop3 dhcp 6.表示層 presentation 終端裝置 pc 手機 平板等 資料的表示 安全 壓縮。在五層模...