Python基礎之網路編程 一、網路編程前戲 1.什麼是網路編程: 網路編程是指基於網路編寫代碼,能夠實現數據的遠程交互 2.學習網路編程的目的: 能夠開發基於網路,實現與多用戶交互的C/S架構的軟體 3.網路編程的起源: 最早起源於美國軍事領域,早期人們想要實現不同電腦內的數據交互只 ...
目錄
Python基礎之網路編程
一、網路編程前戲
1.什麼是網路編程:
網路編程是指基於網路編寫代碼,能夠實現數據的遠程交互
2.學習網路編程的目的:
能夠開發基於網路,實現與多用戶交互的C/S架構的軟體
3.網路編程的起源:
最早起源於美國軍事領域,早期人們想要實現不同電腦內的數據交互只能使用硬碟拷貝,為了能夠更快、更為便捷的實現數據交互,於是就誕生了網路編程
4.網路編程的必備條件:
數據的遠程交互
1.早期的電話:需要通過電話線
2.大屁股電腦:需要通過網線
3.筆記本電腦、行動電話:需要通過網卡
實現數據的遠程交互必備的基礎條條件是:物理連接介質
二、OSI七層協議
簡介:
- OSI七層協議:
- 規定了所有的電腦在遠程數據交互的時候必須經過相同的處理流程、在製造過程中必須擁有相同的功能硬體
- 包含:
- 應用層:
- 與其他電腦進行溝通的應用,它是對應應用程式的通信服務的
- 表示層:
- 這一層的主要功能是定義數據格式及加密
- 會話層:
- 它定義瞭如何開始、控制和結束一個會話,包括對多個雙向消息的控制和管理,以便在只完成連續消息的一部分時可以通知應用,從而使表示層看到的數據是連續的
- 傳輸層:
- 對傳輸的數據進行處理、排序
- 網路層:
- 對端到端的包傳輸進行定義
- 數據鏈路層:
- 定義了在單個鏈路上如何傳輸數據
- 物理連接層:
- 電腦之間需要用到光纜、電纜以及無線電波
- 應用層:
最常見的是整合之後的五層或者四層:
五層:應用層、傳輸層、網路層、數據鏈路層、物理連接層
四層:應用層、傳輸層、網路層、網路介面層
接收消息:數據由下往上傳遞
發送消息:數據由上往下傳遞
1、物理連接層
主要用於確保電腦之間的物理連接介質
接收數據(bytes類型、二進位)
2、數據鏈路層
1、規定了電信號的分組方式
2、乙太網協議
規定了電腦在出廠的時候都必須有一塊網卡、網卡上有一串數字
該數字相當於是電腦的身份證號碼,是獨一無二的
數字特征: 12位16進位數據
前6位:廠商編號 後6位:流水線號
該數字稱為:乙太網地址/MAC地址
網路相關專業名詞
電腦之間想要實現數據交互必須要‘連接’到一起
1、交換機
能夠將所有的電腦彼此互聯起來
2、廣播
首次查找接入同一個交換機的其他電腦 需要向交換機內‘吼一嗓子’
3、單播
首次被查找的電腦回應查找它的電腦,並附帶自己的MAC地址
4、廣播風暴
接入同一臺交換機的多台電腦同時發廣播
5、區域網
可以簡單理解為由單個交換機組成的網路
在區域網內可以直接使用MAC地址通訊
6、廣域網
可以理解為範圍更大的區域網
7、互聯網
由所有的區域網、廣域網連接到一起組成的網路
8、路由器
不同的區域網電腦之間是無法直接實現數據交互的,需要由路由器進行連接
3、網路層
IP協議:規定了所有接入互聯網的電腦都必須擁有一個IP地址,類似於身份證
MAC地址可以看成是物理地址,永遠也無法修改
IP地址:是動態分配的,連接到不同場所的網路時IP地址就會改變
IP地址特征:
IPV4:
點分十進位,由四個點分開的十進位數,單個最大數能夠達到255,組合在一起就是255的4次方
0.0.0.0
255.255.255.255
IPV6:能夠給地球上的每一粒沙子都分配一個IP地址
IP地址能夠跨區域網進行傳輸
當前的IP地址可以用來標識地球上一臺獨一無二的電腦
4、傳輸層
PORT協議(埠協議)
用來標識一臺電腦上面的某一個程式
範圍:0-65535
特征:動態分配(類似於每一次去洗浴中心,拿到的手牌號碼)
建議: 在我們以後編寫程式需要使用到埠號時,建議使用8000之後的
0-1024 系統預設需要使用
1024-8000 常見的軟體埠號
URL:統一資源定位符(網址)
網址的本質是由IP和PORT組成的
IP+PORT:能夠定位到全世界獨一無二的一臺電腦上的某一個程式
功能變數名稱解析:將網址解析成IP+PORT
IP:PORT 實際使用冒號連接