網際網路之網路程式設計
網際網路之網路程式設計
今日學習內容
網際網路
概念:將計算機彼此連結到一起的就是網際網路
作用:實現計算機之間的資料互動
本質:使用者基於網路,對資料進行互動
軟體開發架構
概念:程式設計師在編寫軟體時候應該遵守的架構設計。
分類:C/S架構,B/S架構
C:client 客戶端
S:server 服務端
客戶端顧名思義就是客戶使用的埠(app),服務端就是後端為客戶端服務的埠
B:browser 瀏覽器
S:serber 服務端
B/S架構的服務端與C/S架構相同,不夠埠是瀏覽器。
架構 | 優點 | 缺點 |
---|---|---|
C/S架構 | 客戶可使用的功能全面 | 必須下載才可使用 |
B/S架構 | 方便,可直接從瀏覽器使用 | 客戶可使用功能較少 |
網路程式設計
簡介:基於網際網路編寫程式碼,基於網路跨區傳輸資訊
學習目的:通過掌握網路程式設計知識開發C/S架構的軟體
發展史:最開始由美國軍方研發使用,後轉為民用
遠端傳輸前提:必須要一個物理連結介質,電話線,網線,網絡卡
OSI七層協議:OSI是一個開放性的通訊系統互連參考模型,它是一個定義得非常好的協議規範
OSI七層協議簡介
-
應用層
與其它計算機進行通訊的一個應用,它是對應應用程式的通訊服務的
-
表示層
這一層的主要功能是定義資料格式及加密
-
會話層
它定義瞭如何開始、控制和結束一個會話,包括對多個雙向訊息的控制和管理
-
傳輸層
這層的功能包括是選擇差錯恢復協議還是無差錯恢復協議
-
網路層
這層對端到端的包傳輸進行定義
-
資料鏈路層
它定義了在單個鏈路上如何傳輸資料
-
物理層
OSI的物理層規範是有關傳輸介質的特性,這些規範通常也參考了其他組織制定的標準
網路層
IP協議,每臺接入網際網路的計算機都必須有一個IP地址
IPV4和IPV6,隨著社會進步,IPV4的數量已經不夠使用,而IPV6可以表示的地址資料目前遠遠用不完。
私網IP和公網IP,公網IP類似於一個網頁了,所有人都可以直接用瀏覽器訪問到,而私網IP不行,所以公網IP需要備案,需要花錢。非法網站大多都是無備案的外網網站。
傳輸層
PORT協議,及埠協議
每個對接使用者的互動軟體,都有其對應的埠編號,才不會混亂。
埠號的範圍是:0~65535
0~1024:系統經常使用的埠號
1024~8000:常用軟體埠號
地址解析
所以根據IP地址和PORT編號,我們就可以確定到底是那臺電腦在使用某個程式
IP地址:用於標識全世界獨一無二的一臺接入網際網路的計算機
PORT號:用於標識一臺計算機上面的某一個應用程式
所以一個常見的域名其實就是一個IP加PORT地址。
www.baidu.com 解析 202.108.22.5:80
應用層
這裡完全可以取決於程式設計師自己
HTTP協議 HTTPS協議 FTP協議 自定義協議
資料鏈接層
1.規定二進位制資料的分組方式
2.規定了‘乙太網協議’
只有擁有網絡卡的計算機,才有資格接入網際網路,每塊網絡卡在出廠的時候都有一個獨一無二的編號,該編號有12位16進位制陣列成,前六位是產商編號,後六位是流水線號。
這個編號也被稱為'mac地址'
專業設施
交換機:交換是按照通訊兩端傳輸資訊的需要,用人工或裝置自動完成的方法,把要傳輸的資訊送到符合要求的相應路由上的技術的統稱。
區域網:區域網自然就是區域性地區形成的一個區域網路
廣播與單播
廣播是在交換機中群發
單播是客戶端與伺服器之間的點到點連線(mac地址)
路由器
路由器(Router)是連線兩個或多個網路的硬體裝置,在網路間起閘道器的作用,是讀取每一個數據包中的地址然後決定如何傳送的專用智慧性的網路裝置
TCP/UDP協議
TCP和UDP都是屬於傳輸層
TCP協議
面向連結TCP
“面向連線”就是在正式通訊前必須要與對方建立起連線,是按照電話系統建模的。比如你給別人打電話,必須等線路接通了、對方拿起話筒才能相互通話。
通道的建立——三次握手:
(1)在建立通道時,客戶端首先要向服務端傳送一個SYN同步訊號。
(2)服務端在接收到這個訊號之後會向客戶端發出SYN同步訊號和ACK確認訊號。
(3)當服務端的ACK和SYN到達客戶端後,客戶端與服務端之間的這個“通道”就會被建立起來。
通道的關閉——四次揮手:
(1)在資料傳輸完畢之後,客戶端會向服務端發出一個FIN終止訊號。
(2)服務端在收到這個訊號之後會向客戶端發出一個ACK確認訊號。
(3)如果服務端此後也沒有資料發給客戶端時服務端會向客戶端傳送一個FIN終止訊號。
(4)客戶端在收到這個訊號之後會回覆一個確認訊號,在服務端接收到這個訊號之後,服務端與客戶端的通道也就關閉了。
UDP協議
無連線的UDP協議
“無連線”就是在正式通訊前不必與對方先建立連線,不管對方狀態就直接傳送。與手機簡訊非常相似:你在發簡訊的時候,只需要輸入對方手機號就OK了。
相對於TCP協議需要基於使用者同意才可接受,UDP的安全性與資訊傳輸完整性不如TCP協議。
TCP與UDP區別
TCP | UDP | |
---|---|---|
是否連線 | 面向連線 | 無連線 |
傳輸可靠性 | 可靠的 | 不可靠的 |
應用場景 | 傳輸少量資料 | 大量資料 |
速度 | 慢 | 快 |