1. 程式人生 > 其它 >27. json擴充套件 IO七層協議 三次握手四次揮手

27. json擴充套件 IO七層協議 三次握手四次揮手

網路程式設計

1.軟體的開發架構
c/s架構(client/server)
c:客戶端
s:伺服器
b/s架構(browser/server)
b:瀏覽器
c:伺服器

ps:bs架構本質也是cs架構
手機端看上去cs架構比較火,實際上bs已經在崛起
微信支付寶都在做一件事:統一介面
手機端之後肯定也是bs比較火

服務端:24小時不間斷提供服務
客戶端:什麼時候想體驗服務,就去找心儀的服務端尋求服務

學習網路程式設計 就可以開發一個cs架構的軟體
併發 資料庫 前端 django 就可以一個bs架構的軟體


網路程式設計的發展史
任何現進的技術最早都來源於軍事

回到過去
1.早期的電話 電話線
2.大屁股電腦 網線
3.膝上型電腦 無線電話 網絡卡

要想實現遠端通訊第一個需要具備的條件是:物理連線介質

人要想實現無障礙交流必須說統一的語言 >>> 英文
計算機與計算機之間要想實現遠端通訊除了有物理連線介質之外還需要
有一套公共的標準/協議

3.OSI協議
OSI七層協議
應用層
表示層
會話層
傳輸層
網路層
資料鏈路層
物理連線層
OSI五層協議
應用層
傳輸層
網路層
資料鏈路層
物理連線層

1.物理連線層
基於電訊號傳輸010101001010二進位制資料
2.資料鏈路層
1.規定的電訊號的分組方式
2.規定了任何一臺接入網際網路的計算機都必須有一塊網絡卡
每一塊網絡卡上面都刻有世界上獨一無二的編號
12位16進位制數
前6位是廠商編號
後6位是流水線編號
我們管這12數叫mac地址
ps:以上兩點合稱為"乙太網協議"

交換機

基於乙太網協議通訊
不能跨區域網通訊



網際網路是有N多個區域網彼此之間連線而成的


3.網路層
IP協議
規定了只要是接入網際網路的計算機都必須有一個IP地址
ip地址特點:點分十進位制
ip地址最小:0.0.0.0
ip地址最大:255.255.255.255
ip地址目前有兩個版本:IPV4 IPV6(由於IPV4已經不夠表示目前存在的計算機了 所以推出了IPV6版本)

IP地址是動態分配的

4.傳輸層
TCP\UDP都是基於埠工作的協議
埠(port)

計算機與計算機之間其實是計算機上的應用程式與應用程式之間的通訊

埠:用來唯一標識一臺計算機上的某個應用程式
埠號的範圍:0~65535
注意:0~1024這些都是作業系統預設使用的埠號
建議:使用8000之後的埠
MySQL預設埠:3306
Redis預設埠:6379
django預設埠:8000
flask預設埠:5000

埠號是動態分配的
第一次起qq分配到的是8989
將qq關閉再次啟動埠號可能就變了

5.總結
ip地址:用來唯一標識接入網際網路的一臺計算機
port埠:用來唯一標識一臺計算機上的某個應用程式

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



5.應用層
HTTP協議
FTP協議






TCP協議
流式協議,可靠協議
基於TCP協議通訊 必選先建立雙向通道


TCP協議傳輸資料之所以可靠的原因就在於有雙向通道???



三次握手四次揮手


三次握手建連線

四次揮手斷連線

星軌
明星出軌
"""