當(dāng)我們決定要談?wù)劸W(wǎng)絡(luò)的時(shí)候,我想在談之前,有必要了解一下“協(xié)議”這個(gè)詞。協(xié)議,定義了在倆個(gè)或者多個(gè)通信實(shí)體之間交換報(bào)文的格式和次序,以及報(bào)文發(fā)送、接收?qǐng)?bào)文或者其他的事件所采取的動(dòng)作。定義都比較晦澀,那就讓我們來(lái)個(gè)例子吧。
假設(shè)我要向你(互不相識(shí))詢問(wèn)一下當(dāng)前的時(shí)間;
我首先和你說(shuō):你好,以示我想要和你交流 (發(fā)出報(bào)文,請(qǐng)求通信) 。而你回應(yīng)我(收到報(bào)文,通信建立) :你好,表明能夠繼續(xù)詢問(wèn)你了。我發(fā)出詢問(wèn) (發(fā)出報(bào)文,包含事件處理) :幾點(diǎn)了?你看了看表 (采取動(dòng)作) ,然后回答我 (收到報(bào)文,包含結(jié)果) ,2:00了。之后我說(shuō),謝謝 (請(qǐng)求結(jié)束通信) 。你說(shuō),不客氣 (通信結(jié)束) 。
以上就是我們?nèi)粘I钪兴褂玫膮f(xié)議。相類比計(jì)算機(jī),其實(shí)也是相差不多的。不同的是,計(jì)算機(jī)畢竟不是人,所以得指定很多的協(xié)議,以保障它們正常的通信。比如以下幾個(gè)常見(jiàn)的傳輸協(xié)議,當(dāng)然不了解也沒(méi)有關(guān)系,之后會(huì)詳細(xì)的提及。
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)
傳輸控制協(xié)議(TCP,Transmission Control Protocol)
因特網(wǎng)協(xié)議(IP,Internet Protocol)
地址解析協(xié)議(ARP,Address Resolution Protocol)
一、網(wǎng)絡(luò)模型
既然存在多種協(xié)議,那么總需要一種結(jié)構(gòu)把它們合理的組織在一起。而現(xiàn)如今的倆種模型,都是采用的層次結(jié)構(gòu)。每一層通過(guò)在該層中執(zhí)行某些動(dòng)作或者使用直接下層的服務(wù)來(lái)提供服務(wù)。下面就先來(lái)看看這倆類分層結(jié)構(gòu): 五層因特網(wǎng)模型 (應(yīng)用層,運(yùn)輸層,網(wǎng)絡(luò)層,鏈路層,物理層)、 七層ISO模型 (應(yīng)用層,表示層,會(huì)話層,運(yùn)輸層,網(wǎng)絡(luò)層,鏈路層,物理層)。 下面我們以五層模型為例,談?wù)動(dòng)?jì)算機(jī)網(wǎng)絡(luò)。不過(guò)由于物理層涉及比較廣,所以我們實(shí)際討論的只有四層:應(yīng)用層,運(yùn)輸層,網(wǎng)絡(luò)層,鏈路層 。

網(wǎng)絡(luò)模型
應(yīng)用層:就是網(wǎng)絡(luò)應(yīng)用程序及它們的應(yīng)用層協(xié)議存在的地方,我們常把位于應(yīng)用層要傳遞的信息稱為 報(bào)文(message) 。
運(yùn)輸層:因特網(wǎng)的運(yùn)輸層負(fù)責(zé)在倆個(gè)應(yīng)用程序端點(diǎn)之間傳遞應(yīng)用層報(bào)文。在因特網(wǎng)中,有倆種運(yùn)輸協(xié)議, TCP 和 UDP ,使用其中的任何一個(gè)都能傳遞應(yīng)用層報(bào)文,值得注意的是,在這一層, TCP / UDP 會(huì)把上層報(bào)文包裝成一個(gè)新的結(jié)構(gòu),我們稱為 報(bào)文段(segment) 。
網(wǎng)絡(luò)層:在這一層,網(wǎng)絡(luò)層也會(huì)把上一層的 報(bào)文段 包裝成一個(gè)被稱作 數(shù)據(jù)報(bào)(datagram) 的結(jié)構(gòu)。然后把這個(gè) 數(shù)據(jù)報(bào) 從一臺(tái)主機(jī)移動(dòng)到另外一臺(tái)主機(jī)上。在這一層就包括著名的 IP 協(xié)議。
鏈路層:同理,在這一層,又在 數(shù)據(jù)報(bào) 的外面加了個(gè)殼,我們把加殼之后的這個(gè)東西叫做 幀(frame) 。然后通過(guò)這一層把 幀 從當(dāng)前的一個(gè)節(jié)點(diǎn)移動(dòng)到下一個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)層必須依靠鏈路層的服務(wù)。如下圖,從源主機(jī)到鏈路交換機(jī)。

信息傳遞過(guò)程
在網(wǎng)絡(luò)中,我們經(jīng)常會(huì)忽略具體的設(shè)備,而統(tǒng)一稱為主機(jī)(host),或者端系統(tǒng)(end system)。比如智能手機(jī),平板電腦,電視,游戲機(jī),web相機(jī)等等......而主機(jī)與主機(jī)之間通過(guò)通信鏈路(communication link)和分組交換機(jī)(packet switch)連接在一起。分組交換機(jī)各式各樣,但當(dāng)今最著名的類型是路由器(Router)和鏈路層交換機(jī)(Link-layer switch),分別也稱為,三層交換機(jī),或者倆層交換機(jī)。由上圖可以看出。
最后,來(lái)說(shuō)一個(gè)小程序, tracert 。通過(guò)它,可以確定從你當(dāng)前的主機(jī)到目的主機(jī)之間經(jīng)過(guò)了那些交換機(jī)。
## 運(yùn)行cmd
C:\>tracert baidu.com
通過(guò)最多 30 個(gè)躍點(diǎn)跟蹤
到 baidu.com [123.125.114.144] 的路由:
1 4 ms 4 ms 3 ms 10.205.64.1
2 4 ms 2 ms 3 ms 192.168.24.2
3 * 11 ms 8 ms 124.93.192.65
4 341 ms 88 ms 310 ms 124.93.179.249
5 9 ms 5 ms 8 ms 61.189.75.13
6 12 ms 15 ms 14 ms 113.230.185.37
7 23 ms 22 ms 22 ms 219.158.21.69
8 24 ms 24 ms 32 ms 202.96.12.14
9 22 ms 23 ms 21 ms 202.106.34.194
10 22 ms 28 ms 154 ms 202.106.43.30
11 * * * 請(qǐng)求超時(shí)。