網(wǎng)絡(luò)編程部分開始妄帘,要求對內(nèi)容的宏觀理解的東西更加多了妆毕,簡單梳理總結(jié)一下趾诗,希望大家多提意見一起完善犀呼。
本節(jié)內(nèi)容
- 網(wǎng)絡(luò)基礎(chǔ)知識
什么是網(wǎng)絡(luò)
什么是網(wǎng)絡(luò)編程
IP地址是什么鬼
端口號又是什么鬼
據(jù)說還有個網(wǎng)絡(luò)傳輸協(xié)議 - TCP編程
- UDP編程
1. 網(wǎng)絡(luò)傳輸協(xié)議
1.1. 什么是網(wǎng)絡(luò)
網(wǎng)絡(luò)是將我們運行的多臺個人PC幸撕,通過有線網(wǎng)或者無線網(wǎng)連接起來,方便多臺電腦之間的數(shù)據(jù)傳輸而出現(xiàn)的外臂,如我們個人PC如果單獨使用的時候坐儿,只能當(dāng)成單臺電腦運行單機軟件,寫寫文檔宋光、看看下載好的電影貌矿、玩玩單機游戲等等,如果此時想和其他使用電腦的人說句話~你只能通過張嘴喊話的方式了罪佳;如果電腦聯(lián)網(wǎng)的話逛漫,就可以通過飛秋、QQ等各種手段實現(xiàn)赘艳,常見的網(wǎng)絡(luò)都有哪些呢
網(wǎng)絡(luò)根據(jù)使用的范圍和區(qū)域的不同酌毡,劃分了不同的幾個檔次
單機:單機其實也是一個網(wǎng)絡(luò)環(huán)境克握,只能訪問當(dāng)前PC的數(shù)據(jù),單機的網(wǎng)絡(luò)IP地址:127.0.0.1
局域網(wǎng):兩臺或者兩臺以上的電腦枷踏,通過交換機或者路由器進行互相連接菩暗,在一定的范圍內(nèi)局域網(wǎng)的PC可以實現(xiàn)互相通信的目的;一般情況局域網(wǎng)的PC數(shù)量在2臺到幾千臺PC之間
城域網(wǎng):是一種大型的局域網(wǎng)旭蠕,可以訪問的數(shù)據(jù)信息更多停团,通常情況下,城域網(wǎng)這個術(shù)語是從城市網(wǎng)絡(luò)抽象出來的掏熬,也就是將一個城市中的PC進行網(wǎng)絡(luò)連接實現(xiàn)數(shù)據(jù)共享的手段
廣域網(wǎng):通常是指代的跨地域的網(wǎng)絡(luò)通信佑稠,一般情況下以國家或者地域為單位,讓數(shù)據(jù)通信更加的廣闊
網(wǎng)絡(luò):其實就是通過運營商提供的一種數(shù)據(jù)通信手段旗芬,將不同的PC進行連接揽惹,實現(xiàn)不同的PC之間數(shù)據(jù)通信為目的的一種手段棘幸,根據(jù)網(wǎng)絡(luò)操作的范圍劃分單機聚谁、局域網(wǎng)冻晤、城域網(wǎng)漱办、廣域網(wǎng)等不同的網(wǎng)絡(luò)訪問層次結(jié)構(gòu)这刷。
1.2. 什么是網(wǎng)絡(luò)編程
如果有了網(wǎng)絡(luò)之后,網(wǎng)絡(luò)中的所有數(shù)據(jù)都直接可以讓別人訪問的話娩井,就會出現(xiàn)非常嚴重的數(shù)據(jù)安全問題暇屋;
次數(shù)就需要一種手段,將數(shù)據(jù)通過網(wǎng)絡(luò)進行共享的同時增加限制訪問權(quán)限洞辣;
網(wǎng)絡(luò)編程就是通過編程的手段咐刨,讓不同的PC之間可以使用恰當(dāng)?shù)姆绞竭M行數(shù)據(jù)的共享,同時添加各種限制權(quán)限讓網(wǎng)絡(luò)數(shù)據(jù)更加安全的一種技術(shù)操作扬霜。
在網(wǎng)絡(luò)編程中定鸟,會出現(xiàn)一些專業(yè)的術(shù)語名詞,需要簡單了解一下
- 服務(wù)器:專門用于數(shù)據(jù)共享的PC著瓶,將數(shù)據(jù)共享給所屬網(wǎng)絡(luò)中其他的PC联予,其他的PC可以通過網(wǎng)絡(luò)和服務(wù)器提供的訪問手段來訪問服務(wù)器上的數(shù)據(jù),如:淘寶就有自己的服務(wù)器材原,我們可以通過瀏覽器訪問http://www.taobao.com來訪問淘寶服務(wù)器上的數(shù)據(jù)
- 客戶端:在網(wǎng)絡(luò)中獲取數(shù)據(jù)的PC沸久,當(dāng)我們訪問淘寶服務(wù)器的時候,我們自己的PC就是客戶端
1.3. 網(wǎng)絡(luò)數(shù)據(jù)傳輸:ip地址
如果一旦多個PC組成一個網(wǎng)絡(luò)余蟹,就會出現(xiàn)這樣一個問題卷胯,通過什么樣的方式來確定某一個PC就是它自己呢,就如同讓你怎么證明你就是你自己一樣威酒,生活中窑睁,我們會通過身份證號碼來證明自己就是唯一的自己挺峡;網(wǎng)絡(luò)中一般通過IP地址來確定網(wǎng)絡(luò)中的某一個PC
網(wǎng)絡(luò)中通過IP地址來確定某個唯一的電腦
IP地址也是一種網(wǎng)絡(luò)協(xié)議,英文名稱是Internet Protobcal Address卵慰,它提供了一種統(tǒng)一的地址格式沙郭,為網(wǎng)絡(luò)中的PC分配一個唯一的整數(shù)序列,通常IP地址時一個二進制的數(shù)字序列裳朋,為了方便我們理解病线,轉(zhuǎn)換為10進制整數(shù),如:01100100.00000100.00000101.00000110就是一個IP地址鲤嫡,轉(zhuǎn)換成十進制之后就是:100.4.5.6送挑;如果大家了解過二進制的表示方式的話,就能看出來IP地址中的每一組數(shù)據(jù)的范圍都是0~255之間
IP地址的編碼方案:為了區(qū)分不同的機構(gòu)使用的PC暖眼,約定俗稱的將IP地址劃分成了不同的類型惕耕,一般有A/B/C/D/E五類
我們已經(jīng)看出來了,IP地址可以表示的PC時期是非常有限的诫肠,總共能表示的電腦個數(shù)大概43億個左右司澎,如果一旦PC數(shù)量超出這個范圍就表示不了了;所以在近些年栋豫,將原來的這樣的IP地址表示方式挤安,定義為IPv4版本;并且推出了IPv6的表示方式丧鸯,IPv6可以標識更加多的PC蛤铜;對于這部分的了解,大家有時間的時候可以自己拓展一下丛肢。
1.4. 網(wǎng)絡(luò)數(shù)據(jù)傳輸:端口號
當(dāng)我們的電腦已經(jīng)處于網(wǎng)絡(luò)中時围肥,就可以進行數(shù)據(jù)通信了,但是此時又遇到這樣一個問題蜂怎;我們在自己的PC上可能同時打開了多個程序:QQ穆刻,微信、淘寶杠步,如果我們向淘寶服務(wù)器發(fā)起了數(shù)據(jù)請求蛹批,淘寶服務(wù)器返回了我們需要的數(shù)據(jù),那這些數(shù)據(jù)根據(jù)IP地址找到了我們的個人PC篮愉,但是數(shù)據(jù)應(yīng)該交個那個應(yīng)用程序呢腐芍?
數(shù)據(jù)請求過程
此時,就如同我們從淘寶上買了一件商品试躏,商品通過快遞(網(wǎng)絡(luò))寄送到我們的地址了猪勇,但是怎么樣找到對應(yīng)的人呢?答案很簡單:通過我們收貨人姓名來確定收快遞的是誰颠蕴。在網(wǎng)絡(luò)中我們訪問的數(shù)據(jù)泣刹,怎么區(qū)分是哪個程序呢助析,通過端口(Port)來進行確定,每一個端口都會對應(yīng)唯一的一個應(yīng)用程序椅您,如瀏覽器訪問的數(shù)據(jù)外冀,是通過80端口進行數(shù)據(jù)傳輸?shù)模現(xiàn)TP服務(wù)器是通過21端口進行數(shù)據(jù)傳輸?shù)牡鹊?/p>
常見的端口:
端口號 | 描述 |
---|---|
21 | FTP服務(wù)器文件傳輸接口 |
22 | SSH連接端口 |
23 | Telnet連接端口 |
25 | SMTP郵件服務(wù)端口 |
80 | 瀏覽器訪問網(wǎng)頁的端口 |
109 | pop3郵件服務(wù)端口 |
443 | 瀏覽器安全訪問網(wǎng)頁端口 |
1521 | oracle數(shù)據(jù)庫使用端口 |
3306 | mysql數(shù)據(jù)庫使用端口 |
1.5. 網(wǎng)絡(luò)數(shù)據(jù)傳輸:網(wǎng)絡(luò)傳輸協(xié)議
我們有了網(wǎng)絡(luò)掀泳,有了IP地址雪隧,有了端口號Port,已經(jīng)可以實現(xiàn)網(wǎng)絡(luò)中不同的PC上的程序進行數(shù)據(jù)通信了员舵,但是數(shù)據(jù)通信沒有問題的前提下又出現(xiàn)了新的問題:不同的PC上的數(shù)據(jù)可能互相不認識脑沿!
如果現(xiàn)實生活中,每個人都是一個單獨的PC马僻,我們有了手機就算是有了網(wǎng)絡(luò)庄拇,端口號就像每個人的手機號碼一樣都是唯一的,此時可以實現(xiàn)不同的人之間通過PC來進行通話了韭邓,也就是進行數(shù)據(jù)通信了措近;
如果你撥出一個號碼對方接起了你的電話,你倆開始通信女淑,你說的是本地方言熄诡,對方說的是阿拉伯語,你們說的話也就是數(shù)據(jù)诗力,對方肯定是接收到了,但是~你翻譯不了阿拉伯語我抠,對方也翻譯不了普通話苇本,此時的數(shù)據(jù)通信盡管有了,但是數(shù)據(jù)由于解析不了菜拓,就相當(dāng)于無效的通信瓣窄!
Bingo!如果我們互相約定了纳鼎,雙方都使用我們大中華的標準普通話進行交流俺夕,你說的對方聽懂了,對方說的你也聽懂了贱鄙,這樣才是有效的通信——這里雙方約定使用普通話交流劝贸,就是約定了一個通話協(xié)議
如果我們在網(wǎng)絡(luò)中,約定了傳輸數(shù)據(jù)使用什么樣的方式組織數(shù)據(jù)逗宁,就是網(wǎng)絡(luò)協(xié)議
網(wǎng)絡(luò)協(xié)議映九,就是網(wǎng)絡(luò)數(shù)據(jù)傳輸協(xié)議,簡稱為傳輸協(xié)議瞎颗,是為網(wǎng)絡(luò)中不同PC和程序之間的有效數(shù)據(jù)通信而制定的一種數(shù)據(jù)組織和傳輸方式
常見的網(wǎng)絡(luò)傳輸協(xié)議要歸結(jié)到國際標準化組織(ISO)制定的開發(fā)系統(tǒng)互聯(lián)模型(OSI)
OSI模型
名稱 | 層次 | 功能 |
---|---|---|
物理層 | 1 | 實現(xiàn)計算機系統(tǒng)與網(wǎng)絡(luò)間的物理連接 |
數(shù)據(jù)鏈路層 | 2 | 進行數(shù)據(jù)打包與解包件甥,形成信息幀 |
網(wǎng)絡(luò)層 | 3 | 提供數(shù)據(jù)通過的路由 |
傳輸層 | 4 | 提供傳輸順序信息與響應(yīng) |
會話層 | 5 | 建立和中止連接 |
表示層 | 6 | 數(shù)據(jù)轉(zhuǎn)換捌议、確認數(shù)據(jù)格式 |
應(yīng)用層 | 7 | 提供用戶程序接口 |
常見協(xié)議
我們可以看到,前面了解的IP協(xié)議是底層的一種傳輸協(xié)議引有;基于IP協(xié)議在主機層次有TCP點對點的傳輸協(xié)議和UDP的廣播協(xié)議等等瓣颅,再向上應(yīng)用層有FTP文件傳輸服務(wù)HTTP超文本數(shù)據(jù)傳輸協(xié)議等等。關(guān)于OSI模型和對應(yīng)的數(shù)據(jù)傳輸協(xié)議譬正,大家可以自行了解擴展一下宫补。
在后續(xù)的章節(jié)中,我們會針對TCP協(xié)議导帝、UDP協(xié)議的網(wǎng)絡(luò)編程守谓、以及SMTP郵件收發(fā)等給大家做詳細的介紹
未完待續(xù),請看下一節(jié)內(nèi)容····TCP編程