簡單聊聊四層 七層模型到HTTP

2022-05-31 16:57:16 字數 2848 閱讀 3021

本文內容借鑑這篇部落格:

話說國際標準化組織iso搞了個《osi七層網路模型》,但是因為實在太過複雜與繁瑣,基本上沒人執行它,但是又有乙個五層模型和四層模型卻比較常見,尤其是四層模型。

作為乙個程式設計師,了解四層模型是十分有比較的,但是大學《計算機網路》這門課沒有好好學,所以在這裡重新記一下。

tcp/ip是乙個協議簇,由許多協議組成。 而http(超文字傳輸協議)屬於tcp/ip協議簇。

七層、四層模型及其協議:

作為乙個程式設計師,我們來說說tcp/ip四層概念模型:

應用層:

應用層決定了在向使用者提**用服務時通訊的活動,tcp/ip協議簇中有各類通用的應用服務。如ftp(檔案傳輸協議)、dns(網域名稱解析協議),

當然還有http(超文字傳輸協議)。

傳輸層:

傳輸層相對於上層的應用層,提供處於網路連線中的兩台計算機之間的資料傳輸,傳輸層有兩個性質不同的協議:tcp(傳輸控制協議)、udp(使用者資料報協議)

網際層:

網際層用來處理在網路上流動的資料報,資料報是網路傳輸的最小單位。該層規定了根據怎樣的傳輸路線來到達對方的計算機,並把資料報傳送給對方。

與對方計算機通過多台計算機或網路裝置進行傳輸時,網際層負責的就是在眾多的選項內選擇一條傳輸路線。網際層上的協議有:

ip(網際協議)、arp(位址解析協議)、rarp(逆位址解析協議)等。

網路介面層:

網路介面層用來處理連線網路的硬體部分,包括控制作業系統、硬體的裝置驅動、nic(網路介面卡,即網絡卡)、及光纖等物理可見部分。

那麼tcp/ip具體如何來通訊呢?

利用tcp/ip協議族進行網路通訊時,會通過分層順序與對方進行通訊。傳送端從應用層往下走,接收端則往應用層往上走。我們用http舉例來說明,首先作為傳送端的客戶端在應用層(http協議)發出乙個想看某個web頁面的http請求。接著,為了傳輸方便,在傳輸層(tcp協議)把從應用層處收到的資料(http請求報文)進行分割,並在各個報文上打上標記序號及埠號後**給網路層。在網路層(ip協議),增加作為通訊目的地的mac位址後**給鏈路層。這樣一來,發往網路的通訊請求就準備齊全了。接收端的伺服器在鏈路層接收到資料,按序往上層傳送,一直到應用層。當傳輸到應用層,才能算真正接收到由客戶端傳送過來的http請求。

並且傳送端在層與層之間傳輸時,每經過一層都會被打上該層所獨有的頭部資訊,反之,接收端在層與層傳輸資料時,每經過一層時會把對應的首部消去。這種把資料資訊包裝起來的做法稱為封裝(encapsulate)。

ip(網際協議):負責傳輸的協議。

ip協議的主要任務就是將各種資料報傳給對方,但是想要確保把資料報傳遞給對方,需要滿足一些條件,其中最重要的兩個就是需要知曉目標機的ip位址與mac位址。

ip位址指明了節點被分配到的位址,mac位址是指網絡卡所屬的固定位址。ip位址可以和mac位址進行配對。ip位址可變換,但mac位址基本上不會更改。

ip間的通訊依賴mac位址。在網路上,通訊的雙方在同一區域網(lan)內的情況是很少的,通常是經過多台計算機和網路裝置中轉才能連線到對方。而在進行中轉時,

根據通訊方的ip位址就可以反查出對應的mac位址。

確保可靠性的tcp協議:

按層次分,tcp位於傳輸層,提供可靠的位元組流服務。所謂的位元組流服務(byte stream service)是指,為了方便傳輸,將大塊資料分割成以報文段(segment)為單位的資料報進行管理。

而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。一言以蔽之,tcp協議為了更容易傳送大資料才把資料分割,而且tcp協議能夠確認資料最終是否送達到對方。

確保資料能到達目標。為了準確無誤地將資料送達目標處,tcp協議採用了三次握手(three-way handshaking)策略。用tcp協議把資料報送出去後,tcp不會對傳送後的情況置之不理,

它一定會向對方確認是否成功送達。握手過程中使用了tcp的標誌(flag) ——syn(synchronize) 和ack(acknowledgement)。傳送端首先傳送乙個帶syn標誌的資料報給對方。

接收端收到後,回傳乙個帶有syn/ack標誌的資料報以示傳達確認資訊。最後,傳送端再回傳乙個帶ack標誌的資料報,代表握手結束。

若在握手過程中某個階段莫名中斷,tcp協議會再次以相同的順序傳送相同的資料報。除了上述三次握手,tcp協議還有其他各種手段來保證通訊的可靠性。

負責網域名稱解析的dns服務:

dns(domain name system)服務是和http協議一樣位於應用層的協議。它提供網域名稱到ip位址之間的解析服務。計算機既可以被賦予ip位址,也可以被賦予主機名和網域名稱。

比如www.baidu.com。因為網域名稱更加直觀,所以使用者通常使用主機名或網域名稱來訪問對方的計算機,而不是直接通過ip位址訪問。但要讓計算機去理解名稱,相對而言就變得困難了。

因為計算機更擅長處理一長串數字。為了解決上述的問題,dns服務應運而生。dns協議提供通過網域名稱查詢ip位址,或逆向從ip位址反查網域名稱的服務。

http協議與其他tcp/ip協議是如何協作的: 

osi七層模型,TCP IP四層模型

1.物理層 提供為建立 維護和拆除物理鏈路所需要的機械的 電氣的 功能的和規程的特性 有關的物理鏈路上傳輸非結構的位流以及故障檢測指示。2.資料鏈路層 在網路層實體間提供資料傳送和接收的功能和過程 提供資料鏈路的流控。3.網路層 控制分組傳送系統的操作 路由選擇 擁護控制 網路互連等功能,它的作用是...

七層網路模型 OSI七層模型與TCP IP四層模型

計算機通訊和internet網路通訊的基本結構模型 各層的一些簡單介紹 重點 前四層的知識 第一層 物理層 physical 資料傳輸的介質 線纜,網絡卡 線纜,介面 資料傳輸速度 第二層 資料鏈路層 data link mac位址 第三層 網路層 network 三層的ip編址,路由的功能 第四層...

巧妙記憶Http七層模型

在面試中經常遇到這麼乙個問題,就是你熟悉osi七層模型嘛,來談一談。我是經常遇到過這個問題。並且經常記不住完整的7層,即使花時間背誦下來了,時間一長又忘掉啦。前幾天看到網上別人巧妙記憶的方法,感覺不錯,只需要記住一句話就可以。all people seem to need data processi...