網路程式設計01

2022-08-18 10:54:11 字數 2628 閱讀 8831

軟體架構的兩種方式:

c/s架構:client(客戶端)------->基於網路--------->server(服務端)

b/s架構:browser(客戶端)------->基於網路--------->server(服務端)

ps:1.服務端和客戶端都必須有唯一的位址,但是服務端的位址必須是繫結的

2.服務端必須要24小時對外提供服務

3.服務端要能支援併發

網路程式設計的發展史:

現在任何先進的技術都是**於軍事的

通訊的發展:

1.早期的**----->**線連線,中間需要轉接員

2.老式電腦----->需要插網線

3.膝上型電腦 無線**------>網絡卡

總結以上發現想要實現遠端的通訊都需要乙個物理連線介質

計算機和計算機之間實現遠端通訊方式:網線------->物理連線層基於電訊號------->資訊傳輸為二進位制數(010011010111010101)----->如何解析這些資料(從哪斷句????讀出的是啥??怎麼讀??)

綜上所以就有了osi協議(osi七層協議)

osi七層協議:

1.應用層

2.表示層

3.會話層

4.傳輸層

5.網路層

6.資料鏈路層

7.物理連線層

1.物理連線層

基於電訊號01011010的二進位制

2.資料鏈路層

乙太網協議(ethernet):

1.規定了電訊號的組合方式(資料報(報頭和資料))

2.規定每個接入網際網路的計算機都必須有網絡卡

ps:在每塊網絡卡上都有乙個獨一無二的編號(mac位址)

區域網:

當被找尋的人返回他的資訊的給交換機,至發起人的手上這個過程叫單播.

ps:廣播風暴就是區域網內的人在同一時刻全都開始發起請求,造成混亂

3.網路層

ip協議:

規定了只要介入網際網路的計算機就必須有乙個ip位址

每個ip位址的格式為:點分十進位制數入:192.168.0.1

ip位址的範圍:0.0.0.0 到255.255.255.255 

ip位址的兩個版本:ipv4和ipv6,之所有存在ipv6是因為ipv4的範圍已經滿足不了使用了,所以才加了ipv6

ps:不同區域網內的計算機想要通訊必須借助路由器,路由器就是將乙個個區域網進行連線,當區域網1內的計算機想要訪問區域網2內的某個計算機,會先將資訊交給區域網1的閘道器,然後通過路由器的連線給區域網2的閘道器,進而找到目標計算機

ps:ip都是動態隨機分配的

4.傳輸層

tcp/udp協議

ps:tcp和udp都是基於埠工作的

埠(port):用來唯一標識計算機上的某個應用程式(埠是隨機分配的,當執行的程式結束執行後,再次開啟埠號會改變)

ps:埠的範圍是0-65535,其中最好使用8000之後的埠,0-1024的埠是作業系統可能占用的

補充:mysql預設埠是:3306

redis預設埠是:6379

django預設埠是:8000

flask預設埠是:5000

tcp協議(建立雙向通道):流式協議,可靠協議

三次握手:

ps:在這之中將中間的2次握手合併成一次是因為這樣可以提高反應速度,且在邏輯上合理,因為通道時雙向的,我可以藉此來減少中間的時間損耗.其中用syn=n來標識請求通道建立,用ack=n+1來唯一標識我要建立通道的物件是誰

四次揮手:

ps:在斷開連線的過程中我們為什麼不向建立連線的時候一般將中間的2個合併呢?

因為在斷開連線的時候,一般都是客戶端想要斷開和服務端之間的連線,但是當客戶端傳送(syn=n)請求斷開後,服務端回覆我收到你想斷開連線的訊息了(ack=n+1),但是在這之中我要看看還有沒有什麼東西是你之前申請的我還沒來得及給你,所以有一段延時在回覆你沒東西在我這了,同意斷開連線(syn=i),之後客戶端回覆收到(ack=i+1)這就斷開了雙向通道

ps:這就類似分手,男的對女的講咱分了吧(syn=n),女的說我知道了(ack=n+1),我考慮下,然後這之中過了段時間,找了個富二代直接就回覆了分就分吧(syn=i),少了你我還找了個更好的,男的回覆那祝你幸福(ack=i+1)

port埠:用來唯一標識一台計算機上的某個應用程式

ip+port:唯一標識接入網際網路一台計算機上的某個應用程式

5.應用層

http協議

ftp協議

網路程式設計 01

一 tcp ip 1 tcp ip協議的理解 網路傳輸協議 tcp 基於位元組流的傳輸層 通訊協議,主要用於發現傳輸中的錯誤,要去重新發 ip 網路層協議。2 名詞的理解 ip 網路層的唯一識別id。tcp 面向連線層的協議,需要三次握手才能建立通訊。分別是 客戶端 向伺服器傳送 同步訊號,即告訴伺...

網路程式設計 01

網路程式設計 網路目的 資料的傳輸 網路資料傳輸是乙個複雜的過程 iso 國際標準化組織 osi 七層模型 網路通訊標準化流程 應用層 提供使用者服務,具體內容由特定程式規定 表示層 資料的壓縮優化 會話層 建立應用連線,選擇傳輸層服務 傳輸層 提供不同的傳輸服務,流量控制 網路層 路由選擇,網路互...

ios網路程式設計01

在ios下進行網路程式設計主要分為以下三步 1.客戶端向伺服器傳送請求 客戶端和伺服器請求的方式主要有兩種 get和post get請求 將資訊直接拼接在url的後面。在真正開發中用到的比較多 post請求 將一些比較重要的資訊轉化成二進位製流。在真正開發中,post請求常常用於驗證使用者名稱,密碼...