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

大牧莫邪發表於2017-05-27

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

本節內容 * 網路基礎知識 什麼是網路 什麼是網路程式設計 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程式設計

相關文章