Python網(wǎng)絡(luò)編程之網(wǎng)絡(luò)與通信介紹
成為一個(gè)功能強(qiáng),規(guī)模大的網(wǎng)絡(luò)系統(tǒng),本期就主要介紹網(wǎng)絡(luò)與通信的相關(guān)知識和原理,需要的朋友可以參考下
前言:
在當(dāng)今快速發(fā)展的時(shí)代,互聯(lián)網(wǎng)成為了我們生活當(dāng)中不可或缺的一部分,我們每個(gè)人每天都在上網(wǎng),我們可以通過網(wǎng)絡(luò)來獲取到我們所需要的信息,這充分體現(xiàn)了網(wǎng)絡(luò)的時(shí)效性和快捷性,那你們有沒有想過網(wǎng)絡(luò)是怎么樣去工作的呢?本期就主要介紹網(wǎng)絡(luò)與通信的相關(guān)知識和原理,下面就一起來看看吧!
一、網(wǎng)絡(luò)(network)
計(jì)算機(jī)網(wǎng)絡(luò)就是分布在不同的地區(qū)的計(jì)算機(jī)與專門的外部設(shè)備通信線路互聯(lián)在一起,
成為一個(gè)功能強(qiáng),規(guī)模大的網(wǎng)絡(luò)系統(tǒng)?;ネㄐ畔?,共享硬件,軟件,數(shù)據(jù)等,---因特網(wǎng)
網(wǎng)絡(luò)就是一個(gè)讓雙方或者多方連接在一起的工具
比如:單機(jī)游戲,網(wǎng)絡(luò)游戲,有什么區(qū)別?網(wǎng)絡(luò)游戲(和其他地區(qū)的玩家一起玩),單機(jī)游戲(只能在本地設(shè)備玩)
計(jì)算機(jī)網(wǎng)絡(luò)給我們提供了,資源共享,信息傳輸,以及綜合處理,集中處理服務(wù)。
二、計(jì)算網(wǎng)絡(luò)的種類
計(jì)算機(jī)網(wǎng)絡(luò),按照不同的分類原則,分為不同類型的計(jì)算機(jī)網(wǎng)絡(luò)
通常情況下計(jì)算機(jī)網(wǎng)絡(luò)按照規(guī)模的大小以及延伸范圍進(jìn)行分類,常見的分類:局域網(wǎng),城域網(wǎng),廣域網(wǎng)
- 局域網(wǎng):稱為內(nèi)網(wǎng),私網(wǎng) 地理覆蓋范圍小, 只有一個(gè)相對的范圍進(jìn)行連接 局域網(wǎng)是可以支持多種傳輸 延遲低,可靠性高
- 城域網(wǎng);覆蓋城市的范圍,提供了信息服務(wù)業(yè)務(wù)的高速計(jì)算機(jī)網(wǎng)絡(luò)
- 廣域網(wǎng):又稱為外網(wǎng),公網(wǎng) 地理覆蓋范圍比較大,廣域網(wǎng)不等于互聯(lián)網(wǎng)
因特網(wǎng)(Internet)被視為世界上最大的廣域網(wǎng)
三、互聯(lián)網(wǎng)協(xié)議
協(xié)議:比如三方協(xié)議,游戲的服務(wù)協(xié)議,雙方(多方)討論約定好的事情,這個(gè)也相當(dāng)于一種協(xié)議(類似于勞動合同)
協(xié)議的前提必須要有兩方的進(jìn)行
網(wǎng)絡(luò)協(xié)議就是在網(wǎng)絡(luò)中對信息管理,傳遞的一些規(guī)范,在相互通信之間共同遵循的規(guī)則。
國際標(biāo)準(zhǔn)組織(ISO)提出開放系統(tǒng)互聯(lián)參考的模型,就是OSI參考模型()將網(wǎng)絡(luò)簡化,模塊的方式來設(shè)計(jì)網(wǎng)絡(luò)。
OSI參考模型把計(jì)算機(jī)網(wǎng)絡(luò)分為了7層,是計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)的參考標(biāo)準(zhǔn)
OSI(從下到上的):物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層,會話層,表示層,應(yīng)用層
OSI說明:
- 應(yīng)用層:為程序提供服務(wù)的接口
- 表示層:將上一層數(shù)據(jù)進(jìn)行轉(zhuǎn)換
- 會話層:負(fù)責(zé)建立,管理終止會話
- 傳輸層:負(fù)責(zé)將上面的數(shù)據(jù)進(jìn)行分段處理
- 網(wǎng)絡(luò)層:負(fù)責(zé)對子網(wǎng)間的數(shù)據(jù)進(jìn)行路由選擇
- 數(shù)據(jù)鏈路層;將數(shù)據(jù)進(jìn)行打包,或者進(jìn)行數(shù)據(jù)解包傳遞到網(wǎng)絡(luò)層
- 物理層:將打包好的數(shù)據(jù)傳遞給硬件設(shè)備進(jìn)行傳輸,將解析的數(shù)據(jù)傳遞給數(shù)據(jù)鏈路層
四、通信協(xié)議 TCP/IP協(xié)議
通信協(xié)議就是網(wǎng)絡(luò)通信的基礎(chǔ),ip協(xié)議是一個(gè)非常重要的通信協(xié)議,ip又被稱為網(wǎng)際協(xié)議,是支持互聯(lián)網(wǎng)間的數(shù)據(jù)報(bào)協(xié)議,ip協(xié)議提供了連接完善的功能
TCP協(xié)議傳輸控制協(xié)議,規(guī)定了一種可靠的數(shù)據(jù)信息傳遞服務(wù)。與IP協(xié)議的功能不盡相同木葉可以分開單獨(dú)使用,在功能上是互補(bǔ)的,在實(shí)際中將兩個(gè)協(xié)議統(tǒng)稱為TCP/IP協(xié)議。TCP/IP協(xié)議也是互聯(lián)網(wǎng)中最常用的基礎(chǔ)協(xié)議(TCP/IP協(xié)議族)
TCP/IP協(xié)議將計(jì)算機(jī)網(wǎng)絡(luò)分為四層:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層
協(xié)議說明:
- 應(yīng)用層:http,https,Dns,F(xiàn)tp
- 傳輸層:tcp,udp
- 網(wǎng)絡(luò)層:ip,ICMP,idmp
- 網(wǎng)絡(luò)接口層:wan lan
HTTP/HTTPS協(xié)議
- HTTP協(xié)議:超文本傳輸協(xié)議,常用于與web瀏覽器和服務(wù)器之間的傳遞信息
- HTTPS協(xié)議:超文本傳輸安全協(xié)議,通過使用SSl/TSL加密技術(shù)以及HTTP協(xié)議結(jié)合進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)安全傳輸
http和https的區(qū)別
1. http協(xié)議是tcp協(xié)議,端口是80, https是tcp協(xié)議端口443
2. http協(xié)議明文傳輸,https協(xié)議時(shí)進(jìn)行加密
3. http頁面響應(yīng)比https要快
五、ip地址
查看ip地址
進(jìn)入cmd指令,如果是Windows系統(tǒng):輸入ipconfig;Linux或者mac系統(tǒng)輸入ifconfig
然后就可以顯示出設(shè)備的ip地址了
IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,為互聯(lián)網(wǎng)上每一個(gè)主機(jī)和一個(gè)網(wǎng)絡(luò)分配的邏輯地址,每個(gè)IP地址包括兩個(gè)識別碼(ID)即使網(wǎng)絡(luò)id以及主機(jī)id。
IP地址的分類
- A類
00000000.00000000.00000000.00000000
由一個(gè)字節(jié)的網(wǎng)絡(luò)地址跟3個(gè)字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是0
網(wǎng)絡(luò)地址有126個(gè),主機(jī)的數(shù)量:256**3 -2
地址圍:1.0.0.0 - 126.255.255.254 - B類
10000000.00000000.00000000.00000000
由2個(gè)字節(jié)的網(wǎng)絡(luò)地址跟2個(gè)字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是10
網(wǎng)絡(luò)地址有16382個(gè),主機(jī)的數(shù)量:256**2 - 2
地址圍:128.0.0.0 - 191.255.255.254 - C類
11000000.00000000.00000000.00000000
由3個(gè)字節(jié)的網(wǎng)絡(luò)地址跟1個(gè)字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是110
網(wǎng)絡(luò)地址有256**2*32-2,主機(jī)的數(shù)量:254
地址圍:192.0.0.0 - 223.255.255.254 - D類:該地址用于多點(diǎn)廣播地址(多播)
IP地址第一個(gè)字節(jié)一‘1110’開始,范圍:224.0.0.0-239.255.255.254 - E類:用于測試開發(fā)用的,范圍:240.0.0.0-255.255.255.254
255.255.255.255屬于廣播地址 - 私有IP:在網(wǎng)絡(luò)IP中,有一部分ip地址是用于我們局域網(wǎng)使用,也就屬于私網(wǎng),不在公網(wǎng)上使用
私網(wǎng)范圍:
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
注意:
IP地址是127.0.0.1 ~ 127.255.255.255用于回路測試
127.0.0.1可以代表本機(jī)IP地,也可以用localhost 表示
六、域名
在訪問一臺服務(wù)器的時(shí)候,需要基礎(chǔ)服務(wù)器的IP地址,推出域名技術(shù);域名用于在數(shù)據(jù)傳輸?shù)臅r(shí)候表示計(jì)算機(jī)的位置。
DNS
域名跟IP都是表示計(jì)算機(jī)的位置,IP是網(wǎng)絡(luò)上唯一標(biāo)識,DNS將域名以及ip之間對應(yīng)的關(guān)系進(jìn)行存儲,當(dāng)我們發(fā)送請求,DNS就會發(fā)送請求找到與域名對應(yīng)的IP地址并返回。
七、端口
概念:
- 端口是傳輸數(shù)據(jù)的通道,相當(dāng)于門
- 端口號就是每一個(gè)端口的編號,相當(dāng)于門牌號
- 端口號分類:知名端口,動態(tài)端口
知名端口一般固定分給一些服務(wù):范圍:0-1023
動態(tài)端口操作系統(tǒng)隨機(jī)分配,程序結(jié)束之后,端口號就會釋放回收,范圍:1024-65535
八,TCP協(xié)議
- TCP首部包括20字節(jié)的固定首部部分及長度可變的其他選項(xiàng),所以TCP首部長度可變。20個(gè)字節(jié)又分為5部分,每部分4個(gè)字節(jié)32位,如圖中的5行,每行表示32位。
- 在傳輸層,TCP報(bào)文段包括:TCP首部和TCP數(shù)據(jù)部分;
- 在網(wǎng)絡(luò)層,TCP報(bào)文段成為IP數(shù)據(jù)部分,加上IP首部組成IP數(shù)據(jù)報(bào);
- 在數(shù)據(jù)鏈路層,還要在IP數(shù)據(jù)報(bào)前面加上數(shù)據(jù)鏈路層的首部。
三次握手
三次過程
- 確認(rèn)雙方的接受,發(fā)送能力是否正常,是否可以發(fā)送數(shù)據(jù)
- 同步雙方初始化序列號,為后面的可靠傳輸做準(zhǔn)備
- 協(xié)商窗口大小,同時(shí)接收預(yù)留數(shù)據(jù)緩存區(qū),為后面的可靠傳輸做準(zhǔn)備
作用:保證了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和完整性,能夠?qū)崿F(xiàn)數(shù)據(jù)的精準(zhǔn)傳輸,如果出現(xiàn)丟包的情況時(shí),會進(jìn)行重新發(fā)送數(shù)據(jù)
四次揮手
過程
- 第一次揮手,客戶端給服務(wù)端發(fā)送fin包,表示要斷開連接
- 第二次揮手,服務(wù)端給客戶端發(fā)送ack包,然后服務(wù)端進(jìn)入等待關(guān)閉連接狀態(tài)
- 第三次揮手,服務(wù)端給客戶端發(fā)送fin包,表示再次確認(rèn)是否要斷開連接
- 第四次揮手,客戶端給服務(wù)端發(fā)送ack包,表示確認(rèn)斷開連接,之后服務(wù)器就斷開連接
四次揮手的作用:確保數(shù)據(jù)能夠完成傳輸,而不是發(fā)送FIN報(bào)文后對方立即關(guān)閉連接
tcp協(xié)議的應(yīng)用
tcp協(xié)議對網(wǎng)絡(luò)的要求比較高,因?yàn)橐珳?zhǔn)發(fā)送和接收數(shù)據(jù),所以要保證網(wǎng)絡(luò)的傳輸效率,所以一般來說tcp協(xié)議用于網(wǎng)頁、郵件發(fā)送、信息發(fā)送等方面
九、UDP協(xié)議
UDP簡要說明
UDP協(xié)議跟TCP協(xié)議不同的是UDP協(xié)議是不需要通過三次握手,四次揮手這個(gè)過程,UDP協(xié)議是基于非連接的,也就是把數(shù)據(jù)包簡單封裝一下然后通過網(wǎng)卡直接發(fā)送過去就是了。
這個(gè)過程是沒有狀態(tài)的,但是相較于TCP,UDP效率非常高,速度非???,但是比較容易出現(xiàn)丟包等情況,也就是說數(shù)據(jù)可能不能完整傳輸過去,所以穩(wěn)定性弱。
TCP與UDP對比:
好了以上就是今天的全部內(nèi)容了,看完了之后,你們對網(wǎng)絡(luò)與通信是否有了新的了解呢?
到此這篇關(guān)于Python網(wǎng)絡(luò)編程之網(wǎng)絡(luò)與通信介紹的文章就介紹到這了,更多相關(guān)Python網(wǎng)絡(luò)與通信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何導(dǎo)出python安裝的所有模塊名稱和版本號到文件中
Python 模塊(Module),是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對象定義和Python語句。這篇文章主要介紹了如何導(dǎo)出python安裝的所有模塊名稱和版本號到文件中,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-06-06使用Python獲取愛奇藝電視劇彈幕數(shù)據(jù)的示例代碼
這篇文章主要介紹了用Python獲取愛奇藝電視劇彈幕數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01python列表推導(dǎo)式入門學(xué)習(xí)解析
這篇文章主要介紹了python列表推導(dǎo)式入門學(xué)習(xí)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python基于argparse與ConfigParser庫進(jìn)行入?yún)⒔馕雠cini parser
這篇文章主要介紹了Python基于argparse與ConfigParser庫進(jìn)行入?yún)⒔馕雠cini parser,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02Pytest實(shí)現(xiàn)setup和teardown的詳細(xì)使用詳解
這篇文章主要介紹了Pytest實(shí)現(xiàn)setup和teardown的詳細(xì)使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Flask入門教程實(shí)例:搭建一個(gè)靜態(tài)博客
這篇文章主要介紹了Flask入門教程實(shí)例:搭建一個(gè)靜態(tài)博客,本文主要介紹flask框架的環(huán)境配置以及一個(gè)靜態(tài)博客胡搭建實(shí)例,需要的朋友可以參考下2015-03-03解決Python數(shù)據(jù)可視化中文部分顯示方塊問題
這篇文章主要介紹了解決Python數(shù)據(jù)可視化中文部分顯示方塊問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05