邢臺(tái)地區(qū)網(wǎng)站建設(shè)個(gè)人怎么在百度上做推廣
一、網(wǎng)絡(luò)通信基礎(chǔ)
1.IP地址
2.端口號(hào)
我們知道一臺(tái)主機(jī)上可能會(huì)有多個(gè)程序來同時(shí)使用網(wǎng)絡(luò),端口號(hào)就是用來區(qū)分一臺(tái)主機(jī)上的多個(gè)程序的。簡單來說:端口號(hào)就是用來定位主機(jī)上的進(jìn)程的。
二、認(rèn)識(shí)協(xié)議
網(wǎng)絡(luò)協(xié)議就是通信雙方用于發(fā)送/接受數(shù)據(jù)格式的約定。
協(xié)議最終體現(xiàn)在網(wǎng)絡(luò)中傳輸數(shù)據(jù)包的格式。(值得注意的是在網(wǎng)絡(luò)通信中 協(xié)議是非常關(guān)鍵的)
1.五元組
在TCP/IP協(xié)議中,用五元組來表示一個(gè)網(wǎng)絡(luò)通信:
1.源IP:標(biāo)識(shí)源主機(jī)
2.源端口:標(biāo)識(shí)源主機(jī)中該次通信發(fā)送數(shù)據(jù)的進(jìn)程
3.目的IP:標(biāo)識(shí)目的主機(jī)
4.目的端口:標(biāo)識(shí)源主機(jī)中接收該次通信數(shù)據(jù)的進(jìn)程
5.協(xié)議類型 :標(biāo)識(shí)發(fā)送和接收進(jìn)程雙方約定的數(shù)據(jù)包格式
2.協(xié)議分層
由于網(wǎng)絡(luò)通信這個(gè)過程非常復(fù)雜,如果我們?cè)O(shè)計(jì)一個(gè)協(xié)議,完成網(wǎng)絡(luò)通信中方方面面的問題,勢(shì)必會(huì)使這個(gè)協(xié)議非常復(fù)雜,非常龐大。
所以我們選擇拆分這種做法,把一個(gè)大的協(xié)議拆成若干個(gè)小的,功能單一協(xié)議,這么做又會(huì)導(dǎo)致拆完后的協(xié)議太多了,甚至?xí)袔资习賯€(gè)。所以我們將這些小的協(xié)議歸類,引入分層這個(gè)概念。
協(xié)議分層:只有相鄰兩層的協(xié)議可以進(jìn)行交互。上層協(xié)議可以調(diào)用下層協(xié)議。下層協(xié)議可以給上層提供服務(wù)。(協(xié)議之間的交互不能跨層進(jìn)行)
這樣做的好處在于:
1.上層協(xié)議不需要了解下層協(xié)議的細(xì)節(jié)
2.分層之后,靈活的替換其中的某一層,對(duì)于整體的工作過程影響很小。
1.OSI七層網(wǎng)絡(luò)模型

但是這一套分層的體系過于復(fù)雜,實(shí)際真實(shí)的網(wǎng)絡(luò)分層方式是更簡化的。?
2.TCP/IP五層(四層)協(xié)議模型
?應(yīng)用層 | 應(yīng)用程序之間的溝通 |
?傳輸層 | 兩個(gè)任意設(shè)備之間的通信(不考慮中間過程,只考慮起點(diǎn)和終點(diǎn)) |
?網(wǎng)絡(luò)層 | 兩個(gè)任意設(shè)備直接如何進(jìn)行通信(這兩個(gè)設(shè)備之間可能隔著很多的交換機(jī)和路由器) |
數(shù)據(jù)鏈路層 | 完成兩個(gè)相鄰的設(shè)備之間如何進(jìn)行通信的(通過網(wǎng)線把電腦連到交換機(jī)|路由器上) |
? 物理層 | 規(guī)定了網(wǎng)絡(luò)通信的一些硬件設(shè)施符合的要求 |
有些資料把物理層和數(shù)據(jù)鏈路層看作一個(gè)整體。?
?主機(jī): 工作過程涉及到 從物理層-->應(yīng)用層
?路由器 :? 工作過程涉及到 從物理層--.>網(wǎng)絡(luò)層
?交換機(jī):? 工作過程涉及到 從物理層-->數(shù)據(jù)鏈路層
三、網(wǎng)絡(luò)數(shù)據(jù)通信的基本流程
網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù),本質(zhì)上都是“字符串”或者“二進(jìn)制的bit流”
例如我們通過 qq 發(fā)送hello給對(duì)方
1.應(yīng)用程序獲取到用戶輸入,構(gòu)造一個(gè)應(yīng)用層的數(shù)據(jù)包。這個(gè)應(yīng)用層數(shù)據(jù)包就會(huì)遵守應(yīng)用層協(xié)議(往往是開發(fā)這個(gè)程序的程序員自己定義的(此處假設(shè)這樣的協(xié)議格式:發(fā)送者的qq,消息的時(shí)間,消息正文))。
2.應(yīng)用程序調(diào)用 傳輸層提供的接口(API),把數(shù)據(jù)交給傳輸層,傳輸層拿到數(shù)據(jù)之后,構(gòu)造出“傳輸層數(shù)據(jù)包”。傳輸層的協(xié)議主要是:TCP UDP
3.傳輸層構(gòu)造好數(shù)據(jù)后,繼續(xù)調(diào)用網(wǎng)絡(luò)層的API,把傳輸層的數(shù)據(jù)包交給網(wǎng)絡(luò)層,網(wǎng)絡(luò)層繼續(xù)進(jìn)行處理。? ?網(wǎng)絡(luò)層最主要的協(xié)議:IP協(xié)議
4.IP協(xié)議繼續(xù)調(diào)用數(shù)據(jù)鏈路層的API,把IP數(shù)據(jù)包交給數(shù)據(jù)鏈路層。
數(shù)據(jù)鏈路層中核心協(xié)議: “以太網(wǎng)”
5.以太網(wǎng)會(huì)繼續(xù)把這樣的數(shù)據(jù)交給硬件設(shè)備(網(wǎng)卡)網(wǎng)卡會(huì)把上述二進(jìn)制數(shù)據(jù),最終以 光信號(hào)/電信號(hào)/電磁波信號(hào)傳播出去。
從上層到下層,數(shù)據(jù)都要進(jìn)一步加工(添加報(bào)頭)這個(gè)過程就叫做封裝。
分用,數(shù)據(jù)到達(dá)接收方主機(jī),逐層進(jìn)行解析:
1.數(shù)據(jù)到達(dá)接收方網(wǎng)卡,光電信號(hào),網(wǎng)卡把光電信號(hào)還原成二進(jìn)制0101,把二進(jìn)制數(shù)據(jù)交給上層數(shù)據(jù)鏈路層。
2.數(shù)據(jù)鏈路層按照以太網(wǎng)協(xié)議解析,把報(bào)頭和報(bào)尾取出來,剩下的載荷往上傳遞給網(wǎng)絡(luò)層。
3.網(wǎng)絡(luò)層拿到這個(gè)數(shù)據(jù)之后按照IP協(xié)議的格式解析,再把載荷數(shù)據(jù)交給傳輸層。
4.傳輸層拿到數(shù)據(jù)后按照TCP協(xié)議來解析,取出載荷,交給應(yīng)用層。
5.qq應(yīng)用程序,解析應(yīng)用層數(shù)據(jù),拿到關(guān)鍵信息展示到頁面上。