天天看點

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

30.企業級開發進階2:網絡程式設計

網絡中通過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五類

30.企業級開發進階2:網絡程式設計

IP位址分類

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

1.4. 網絡資料傳輸:端口号

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

30.企業級開發進階2:網絡程式設計

資料請求過程

此時,就如同我們從淘寶上買了一件商品,商品通過快遞(網絡)寄送到我們的位址了,但是怎麼樣找到對應的人呢?答案很簡單:通過我們收貨人姓名來确定收快遞的是誰。在網絡中我們通路的資料,怎麼區分是哪個程式呢,通過端口(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 提供使用者程式接口

常見協定

30.企業級開發進階2:網絡程式設計

網絡傳輸常見協定

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

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

未完待續,請看下一節内容····TCP程式設計