網路程式設計之網路的基礎知識

2022-07-17 10:45:09 字數 3028 閱讀 2115

第一 網路協議簡單介紹

1. 目標:編寫乙個c/s架構的軟體

c/s: client(客戶端)--------基於網路----------server

b/s: browser(瀏覽器)-------基於網路----------server

2. 服務端需要遵循的原則:

2.1. 服務端與客戶端都需要有唯一的位址,但是服務端的位址必須固定/繫結

2.2 對外一直提供服務,穩定執行

2.3 服務端應該支援併發

3. 網路(為了資料互動,也就是通訊)

網路=底層的物理介質+網際網路協議

4. 網際網路協議:osi七層協議的介紹

4.1.物理層:

功能:主要是基於電器特性傳送高低電壓(電訊號),高電壓對應數字1,低電壓對應數字0

常見的物理裝置:中繼器,集線器,雙絞線

4.2 資料鏈路層:

功能: 乙太網協議

ethernet規定:

1.一組電訊號構成乙個包,叫做幀,每乙個資料的幀分成報頭head和data資料

其中報頭為固定位元組(18位元組),其內容包含源位址,目標位址,資料型別

2.ethernet規定接入internet的裝置都必須具備網絡卡,傳送端和接收端的位址

便是指網絡卡的位址,即mac位址 通常由12位 16進製表示的

3.在同一網路內,可以通過廣播的形式進行通訊

常見物理裝置:網橋,交換機,網絡卡

4.3 網路層: (ip協議)

功能:引入一套新的位址用來區分不同的廣播域/子網,這套位址即網路位址即 ip位址

ip協議:採用的v4版本即ipv4,它規定網路位址由32位2進製表示,範圍0.0.0.0-255.255.255.255

乙個ip位址通常寫成四段十進位制數 172.10.10.1

子網掩碼:可以通過ip位址和子網掩碼按照and運算的結果判斷是否在同乙個子網中

ip資料報: 也包含了報頭和資料二部分

arp協議:廣播的方式傳送資料報,獲取目標主機的mac位址(前提是獲得ip位址)

如何獲得mac位址,首先先確定二個ip位址是否在同乙個區域網內,若在,通過廣播的形式傳包.

常見物理裝置:路由器,交換機

4.4 傳輸層:(tcp和udp協議)

功能:建立埠到埠的通訊

埠(port)即應用程式與網絡卡關聯的編號,埠範圍0-65535,0-1023為系統占用埠

ip+mac+port:可以標識全世界範圍內獨一無二的乙個應用軟體(基於網路通訊)

1.tcp協議:傳輸控制協議 可靠性:每次發乙個包,需要等到對方的回覆資訊,在進行下一次

三次握手:(建立雙向通道)

客戶端發請求資訊-----標識syn=1+x,序列號seq=x------->服務端確認並回覆/服務端發請求資訊----

(狀態:syn_sent) (狀態:listen) (狀態:syn_rcvd)

---標識ack=1+x/標識syn=1+y,序列號seq=y------->回到客戶端回覆確認----標識ack=1+y----->回到服務端

(狀態:established) (狀態:established)

各個狀態表示的意思:

客戶端:syn_sent---->客戶端傳送請求等待乙個匹配的請求

established----->表示乙個開啟的連線,接收到資料可以被投遞給使用者,連線的資料傳輸階段的正常狀態

服務端:listen----->等待從客戶端的連線請求

syn_rcvd---->服務端確認請求,並傳送連線請求,等待連線請求的確認

established----->確定建立了服務端到客戶端的通道

四次揮手:

客戶端發斷開連線請求---fin=1--------->服務端確認----ack=1------->客戶端(被動斷開)

(狀態:fin_wait_1) (狀態:close_wait) (狀態:fin_wait_2)

服務端發斷開請求------->fin=1----->客戶端確認並回覆-----ack=1--->服務端

(狀態:last_ack) (狀態:time_wait)

各個狀態表示的意思:

客戶端:fin_wait_1--->斷開連線的請求

fin_wait_2--->被動等待服務端斷開的請求

time_wait---->等待足夠的時間過去以確保服務端接收到它的連線終止請求的確認

服務端:

close_wait----->等待客戶端的終止請求

lask_ack----->等待先前發給客戶端的連線終止請求的確認

通常是服務端發起斷開請求

syn洪水攻擊(拒絕服務攻擊dos):模擬大量假的客戶端傳送syn請求,形成過多的syn_rcvd

半鏈結池:服務端中 存鏈結請求資訊,是一種佇列,限制的是請求數量 backlog

特點: 資料傳輸可靠性高,傳輸效率低

2.udp協議:無需建鏈結,發資料不用等對方確認

特點: 傳輸效率高,資料可靠性低

常見物理裝置:交換機,路由器

4.5應用層(應用層,表示層,會話層)

功能:使用者使用的應用程式 ,規定應用程式的資料格式

補充說明:瀏覽器url的解析 預設埠80

url:統一資源定位符:整個網際網路的惟一的的資源

組成部分: 瀏覽器協議 +網域名稱+路徑

dns系統 將網域名稱解析成ip位址

實現網路通訊四要素:

本機的ip位址

子網掩碼

閘道器的ip位址

dns的ip位址

網路程式設計 之 網路基礎

網路程式設計 1.乙個程式如何在網路上找到另乙個程式?首先,程式必須要啟動,其次,必須有這台機器位址,我們都知道我們人的位址大概就是國家 省 市 區 街道 樓 門牌號這樣子。那麼每一台聯網的機器在網路上也有自己的位址,他們位址是怎麼表示的呢?就是使用一串數字來表示的,例如 100.4.5.6什麼是i...

筆記 網路基礎知識和網路程式設計

網路程式設計知識基礎 上 api 中 網絡卡驅動 下 網絡卡 學linux的網路程式設計三個層次 1 低階 直接基於socket程式設計,比較難,要設定的東西是很多的 2 高階 基於網路通訊應用框架,封裝使得程式設計更簡單 3 更高階 基於http和網路控制項的傻瓜式程式設計。我們在這裡學的是第一種...

網路程式設計基礎知識 一

1 iso osi參考模型 iso osi international standard orgnization open system interconnection 模型,簡稱osi模型,該模型定義了網路互聯的七層框架,即iso開發系統互聯模型。當資料通過osi模型的不同層是,傳遞的資料格式有不...