我與python約個會:30.企業級開發進階2:網絡編程

網絡編程部分開始,要求對內容的宏觀理解的東西更加多了,簡單梳理總結一下,希望大家多提意見一起完善。

本節內容

  • 網絡基礎知識
    什麼是網絡
    什麼是網絡編程
    IP地址是什麼鬼
    端口號又是什麼鬼
    據說還有個網絡傳輸協議
  • TCP編程
  • UDP編程

1. 網絡傳輸協議

1.1. 什麼是網絡

網絡是將我們運行的多臺個人PC,通過有線網或者無線網連接起來,方便多臺電腦之間的數據傳輸而出現的,如我們個人PC如果單獨使用的時候,只能當成單臺電腦運行單機軟件,寫寫文檔、看看下載好的電影、玩玩單機遊戲等等,如果此時想和其他使用電腦的人說句話~你只能通過張嘴喊話的方式了;如果電腦聯網的話,就可以通過飛秋、QQ等各種手段實現,常見的網絡都有哪些呢

網絡根據使用的範圍和區域的不同,劃分了不同的幾個檔次
單機:單機其實也是一個網絡環境,只能訪問當前PC的數據,單機的網絡IP地址:127.0.0.1
局域網:兩臺或者兩臺以上的電腦,通過交換機或者路由器進行互相連接,在一定的範圍內局域網的PC可以實現互相通信的目的;一般情況局域網的PC數量在2臺到幾千臺PC之間
城域網:是一種大型的局域網,可以訪問的數據信息更多,通常情況下,城域網這個術語是從城市網絡抽象出來的,也就是將一個城市中的PC進行網絡連接實現數據共享的手段
廣域網:通常是指代的跨地域的網絡通信,一般情況下以國家或者地域爲單位,讓數據通信更加的廣闊

網絡:其實就是通過運營商提供的一種數據通信手段,將不同的PC進行連接,實現不同的PC之間數據通信爲目的的一種手段,根據網絡操作的範圍劃分單機、局域網、城域網、廣域網等不同的網絡訪問層次結構。

1.2. 什麼是網絡編程

如果有了網絡之後,網絡中的所有數據都直接可以讓別人訪問的話,就會出現非常嚴重的數據安全問題;
次數就需要一種手段,將數據通過網絡進行共享的同時增加限制訪問權限;

網絡編程就是通過編程的手段,讓不同的PC之間可以使用恰當的方式進行數據的共享,同時添加各種限制權限讓網絡數據更加安全的一種技術操作。

在網絡編程中,會出現一些專業的術語名詞,需要簡單瞭解一下

  • 服務器:專門用於數據共享的PC,將數據共享給所屬網絡中其他的PC,其他的PC可以通過網絡和服務器提供的訪問手段來訪問服務器上的數據,如:淘寶就有自己的服務器,我們可以通過瀏覽器訪問http://www.taobao.com來訪問淘寶服務器上的數據
  • 客戶端:在網絡中獲取數據的PC,當我們訪問淘寶服務器的時候,我們自己的PC就是客戶端

1.3. 網絡數據傳輸:ip地址

如果一旦多個PC組成一個網絡,就會出現這樣一個問題,通過什麼樣的方式來確定某一個PC就是它自己呢,就如同讓你怎麼證明你就是你自己一樣,生活中,我們會通過身份證號碼來證明自己就是唯一的自己;網絡中一般通過IP地址來確定網絡中的某一個PC


網絡中通過IP地址來確定某個唯一的電腦

IP地址也是一種網絡協議,英文名稱是Internet Protobcal Address,它提供了一種統一的地址格式,爲網絡中的PC分配一個唯一的整數序列,通常IP地址時一個二進制的數字序列,爲了方便我們理解,轉換爲10進制整數,如:01100100.00000100.00000101.00000110就是一個IP地址,轉換成十進制之後就是:100.4.5.6;如果大家瞭解過二進制的表示方式的話,就能看出來IP地址中的每一組數據的範圍都是0~255之間

IP地址的編碼方案:爲了區分不同的機構使用的PC,約定俗稱的將IP地址劃分成了不同的類型,一般有A/B/C/D/E五類


IP地址分類

我們已經看出來了,IP地址可以表示的PC時期是非常有限的,總共能表示的電腦個數大概43億個左右,如果一旦PC數量超出這個範圍就表示不了了;所以在近些年,將原來的這樣的IP地址表示方式,定義爲IPv4版本;並且推出了IPv6的表示方式,IPv6可以標識更加多的PC;對於這部分的瞭解,大家有時間的時候可以自己拓展一下。

1.4. 網絡數據傳輸:端口號

當我們的電腦已經處於網絡中時,就可以進行數據通信了,但是此時又遇到這樣一個問題;我們在自己的PC上可能同時打開了多個程序:QQ,微信、淘寶,如果我們向淘寶服務器發起了數據請求,淘寶服務器返回了我們需要的數據,那這些數據根據IP地址找到了我們的個人PC,但是數據應該交個那個應用程序呢?


數據請求過程

此時,就如同我們從淘寶上買了一件商品,商品通過快遞(網絡)寄送到我們的地址了,但是怎麼樣找到對應的人呢?答案很簡單:通過我們收貨人姓名來確定收快遞的是誰。在網絡中我們訪問的數據,怎麼區分是哪個程序呢,通過端口(Port)來進行確定,每一個端口都會對應唯一的一個應用程序,如瀏覽器訪問的數據,是通過80端口進行數據傳輸的,FTP服務器是通過21端口進行數據傳輸的等等

常見的端口:

端口號 描述
21 FTP服務器文件傳輸接口
22 SSH連接端口
23 Telnet連接端口
25 SMTP郵件服務端口
80 瀏覽器訪問網頁的端口
109 pop3郵件服務端口
443 瀏覽器安全訪問網頁端口
1521 oracle數據庫使用端口
3306 mysql數據庫使用端口

1.5. 網絡數據傳輸:網絡傳輸協議

我們有了網絡,有了IP地址,有了端口號Port,已經可以實現網絡中不同的PC上的程序進行數據通信了,但是數據通信沒有問題的前提下又出現了新的問題:不同的PC上的數據可能互相不認識!

如果現實生活中,每個人都是一個單獨的PC,我們有了手機就算是有了網絡,端口號就像每個人的手機號碼一樣都是唯一的,此時可以實現不同的人之間通過PC來進行通話了,也就是進行數據通信了;
如果~你撥出一個號碼~對方接起了你的電話,你倆開始通信,你說的是本地方言,對方說的是阿拉伯語,你們說的話也就是數據,對方肯定是接收到了,但是~你翻譯不了阿拉伯語,對方也翻譯不了普通話,此時的數據通信儘管有了,但是數據由於解析不了,就相當於無效的通信!
Bingo!如果我們互相約定了,雙方都使用我們大中華的標準普通話進行交流,你說的對方聽懂了,對方說的你也聽懂了,這樣纔是有效的通信——這裏雙方約定使用普通話交流,就是約定了一個通話協議
如果我們在網絡中,約定了傳輸數據使用什麼樣的方式組織數據,就是網絡協議

網絡協議,就是網絡數據傳輸協議,簡稱爲傳輸協議,是爲網絡中不同PC和程序之間的有效數據通信而制定的一種數據組織和傳輸方式

常見的網絡傳輸協議要歸結到國際標準化組織(ISO)制定的開發系統互聯模型(OSI)

OSI模型

名稱 層次 功能
物理層 1 實現計算機系統與網絡間的物理連接
數據鏈路層 2 進行數據打包與解包,形成信息幀
網絡層 3 提供數據通過的路由
傳輸層 4 提供傳輸順序信息與響應
會話層 5 建立和中止連接
表示層 6 數據轉換、確認數據格式
應用層 7 提供用戶程序接口

常見協議


網絡傳輸常見協議

我們可以看到,前面瞭解的IP協議是底層的一種傳輸協議;基於IP協議在主機層次有TCP點對點的傳輸協議和UDP的廣播協議等等,再向上應用層有FTP文件傳輸服務HTTP超文本數據傳輸協議等等。關於OSI模型和對應的數據傳輸協議,大家可以自行了解擴展一下。

在後續的章節中,我們會針對TCP協議、UDP協議的網絡編程、以及SMTP郵件收發等給大家做詳細的介紹

未完待續,請看下一節內容····TCP編程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章