網路程式設計筆記 網路模型與協議基礎知識

2022-07-11 15:30:16 字數 3154 閱讀 6179

部分內容引用自osi七層模型與tcp/ip五層模型 - sevenformer - (cnblogs.com)

「三次握手,四次揮手」你真的懂嗎? - stefno - (cnblogs.com)

在特定協議下實現計算機之間交流的過程,成為網路程式設計。

:埠號是用兩個位元組表示的整數。ip 協議抽象了 ip 位址的概念,可以將資料傳送到指定的主機,但是一台主機上執行著多個程式,哪個報文應該交給哪個程式閱讀,是乙個問題。所以 tcp 和 udp 都在傳輸層這一層抽象出了 ports 埠的概念。

一般乙個計算機上執行著很多網路軟體,不同軟體都會占有不同的埠,它們進行資料交流,就會從它們對應的埠來傳輸或者獲取資料。

埠號一般是系統隨機分配,或者在軟體在執行的時候向系統獲取指定埠號。

注意:取值範圍 0 - 65535。埠號不能重複,且小於1024的埠號已經被系統占用,不能使用。

ip+埠號可以保證資料準確無誤地傳送到某計算機的指定軟體上。

常用埠號:80 網路埠(預設),關聯式資料庫(3306 1521),伺服器 (8080)

c/s結構: 客戶端+服務端

b/s結構:瀏覽器+伺服器

osi(open system interconnect),即開放式系統互聯。

osi定義了網路互連的七層框架(物理層、資料鏈路層、網路層、傳輸層、會話層、表示層、應用層),即iso開放互連系統參考模型。

tcp/ip 五層結構

描述協議

應用層(對應osi的應用層,表示層,會話層)

為計算機使用者提**用介面,也為使用者直接提供各種網路服務;

提供各種用於應用層資料的編碼和轉換功能,確保乙個系統的應用層傳送的資料能被另乙個系統的應用層識別,可提供標準表示形式和資料的加密壓縮;

會話層就是負責建立、管理和終止表示層實體之間的通訊會話。該層的通訊由不同裝置中的應用程式之間的服務請求和響應組成。

dns傳輸層

進行網路通訊端到端的傳輸,處理差錯控制和流量控制等問題,層向高層遮蔽了下層資料通訊的細節,使高層使用者看到的只是在兩個傳輸實體間的一條主機到主機的、可由使用者控制和設定的、可靠的資料通路。

包括埠號既是這裡的「端」。

tcp, udp

網路層【核心】分組傳輸資料,並且將分組資料傳送到目標計算機或者網路。

這一層就是我們經常說的ip協議層。ip協議是internet的基礎。

ip資料鏈層

將位元組合成位元組,再將位元組組合成幀,使用鏈路層位址 (乙太網使用mac位址)來訪問介質,並進行差錯檢測。

物理層實際最終訊號的傳輸是通過物理層實現的。通過物理介質傳輸位元流。規定了電平、速度和電纜針腳。常用裝置有(各種物理裝置)集線器、中繼器、數據機、網線、雙絞線、同軸電纜。這些都是物理層的傳輸介質。

udp:使用者資料協議。傳送資料的時候,主機之間不建立邏輯連線,即傳送端和接收端都不會確認雙方是否存在,是否收到。

缺點是不穩定,不可靠,資料被限制在64kb

tcp協議:傳輸控制協議。它是面向連線的通訊協議,即資料傳輸之前,傳送端和接收端之間會建立邏輯連線再傳輸資料。邏輯連線包括三次握手和四次揮手。

建立客戶端和服務端的連線需要三次握手:

客戶端傳送網路包(syn=1 seq=x),服務端收到了。這樣服務端就能得出結論:客戶端的傳送能力、服務端的接收能力是正常的。

服務端發包(syn=1 ack=x+1 seq=y),客戶端收到了。這樣客戶端就能得出結論:服務端的接收、傳送能力,客戶端的接收、傳送能力是正常的。

客戶端發包(ack=y+1 seq=z),服務端收到了。這樣服務端就能得出結論:客戶端的接收、傳送能力,服務端的傳送、接收能力是正常的。

經歷了上面的三次握手過程,客戶端和服務端都確認了自己的接收、傳送能力是正常的。之後就可以正常通訊了。兩次達不到讓雙方都得出自己、對方的接收、傳送能力都正常的結論。

結束客戶端和服務端的連線需要四次揮手:tcp連線是雙向傳輸的對等的模式,就是說雙方都可以同時向對方傳送或接收資料。

當有一方要關閉連線時,會傳送指令fin 告知對方,我要關閉連線了。

這時對方會回乙個ack,此時乙個方向的連線關閉。

但是另乙個方向仍然可以繼續傳輸資料,等到傳送完了所有的資料後,會傳送乙個fin段來關閉此方向上的連線。

接收方傳送ack確認關閉連線。

http:超文字傳輸協議。所有的www檔案都遵循該標準。目前常用版本是http1.1。

報文組成:

報文頭,報文體,正文

報文格式(k-v):

請求報文

方法 如get post

url協議版本

crlf

首部欄位名:值

crlf

請求實體的主體

響應報文

協議版本

狀態碼短語

crlf

首部欄位名:值

crlf

正文:如html...

請求報文體:方法,url,協議版本

請求報文頭:accept,cache-control, host...

響應報文頭:cache-control, etag(表示你請求資源的版本),set-cookie

響應報文體:協議版本,狀態碼,短語(如ok)

特點:

https:ssl超文字傳輸協議。

將資料以密文形式進行傳輸,特點:

內容加密:採用混合加密技術,結合對稱和非對稱加密。

驗證身份:通過證書認證客戶端訪問的是自己的伺服器

保護資料完整性:傳輸中間的資料不會被人冒充和篡改

http2:超文字連線協議2。

在傳統http裡面,html,css,js是排隊傳送的,但是在http2中,由於多路復用,這些檔案可以同時傳送。

網路模型與協議

1.概述 為了減少協議設計的複雜性,大多數網路模型都是按層的方式來組織的,在分層網咯模型中,每一層都為上一層提供一定的服務,而把如何實現本層服務的細節對上一層加以遮蔽,上層只需知道下層提供了什麼功能以及對應於這些功能的介面,而不必關心下一層如何實現這些功能,我的理解是 對於上一層來說,本層就像是乙個...

IOCP模型與網路程式設計

一。前言 在老師分配任務 嘗試利用iocp模型寫出服務端和客戶端的 給我時,腦子一片空白,並不知道什麼是iocp模型,會不會是像軟體設計模式裡面的工廠模式,裝飾模式之類的那些呢?嘿嘿,不過好像是乙個挺好玩的東西,挺好奇是什麼東西來的,又是乙個新知識啦 於是,開始去尋找一大堆的資料,為這個了解做準備,...

Linux網路程式設計網路基礎之網路 協議的概念

計算機聯網的目的 資訊資源 硬體資源 軟體資源以及通訊資源的共享,建立人與人之間更廣泛的溝通渠 協議 網路上的計算機之間又是如何交換資訊的呢?就像我們說話用某種語言一樣,在網路上的各台計算機之間也有一種語言,這就是 網路協議,3 不同的計算機之間必須使用相同的網路協議才能進行通訊。網路協議是網路上所...