不用ftp做網(wǎng)站seo工作室
一、物理層
我們要發(fā)送出去的數(shù)據(jù)在計(jì)算機(jī)里只不過是無數(shù)的0和1,0或1就叫做比特,物理層就是把這些比特用不同的媒介傳輸出去,可以用電、光或者其他形式的電磁波來表示和傳輸信號(hào),數(shù)據(jù)從網(wǎng)絡(luò)接口出去以后,會(huì)經(jīng)過不同的網(wǎng)絡(luò)拓?fù)?#xff0c;并不是一條線走到底,因此需要中繼器和集線器這樣的設(shè)備,但還是不夠,信號(hào)要去到哪臺(tái)設(shè)備是需要定向的,因此需要高級(jí)點(diǎn)的數(shù)據(jù)網(wǎng)絡(luò)模型。
二、數(shù)據(jù)鏈路層
在數(shù)據(jù)鏈路層這里,比特會(huì)被封裝成幀,幀就是這一層表示數(shù)據(jù)的特殊名字而已,在封裝的時(shí)候會(huì)加上MAC地址,也就是物理地址,網(wǎng)卡出廠的時(shí)候就有著全球唯一的MAC地址,為了可以通過MAC地址對(duì)不同設(shè)備進(jìn)行數(shù)據(jù)的傳輸,就出現(xiàn)了交換機(jī),比方說這里有一臺(tái)交換機(jī),連接多臺(tái)主機(jī),發(fā)送端發(fā)送數(shù)據(jù)的時(shí)候,交換機(jī)就知道了發(fā)送端的MAC地址,如果此時(shí)交換機(jī)也知道接收端的MAC地址,就可以把數(shù)據(jù)直接發(fā)送過去了,物理地址就是這樣一跳一跳的進(jìn)行傳遞,另外因?yàn)槲锢韺釉趥鬏?和1的時(shí)候,可能會(huì)0變成1或者1變成0,會(huì)進(jìn)行差錯(cuò)檢測,以及一定的差錯(cuò)糾正,另外設(shè)備之間的傳輸能力以及接受能力也是個(gè)問題,很可能這邊噴水式發(fā)送,另一邊”夾縫“式接受,因此需要流控制來避免這種不對(duì)稱,我們知道互聯(lián)網(wǎng)是一張大網(wǎng),如果用MAC物理地址作為唯一的尋址方式是不科學(xué)的,比如我和你買了同一個(gè)廠出的網(wǎng)卡,我和你的網(wǎng)卡如果差別就只有一個(gè)字母,但是物理地址相距十萬八千里,物理地址此時(shí)就很難做出快速定位,就相當(dāng)于我知道你的名字,但不知道你住哪里,找不到你,因此需要ip地址來進(jìn)行尋址和路由選擇,IP這樣的邏輯地址就是實(shí)現(xiàn)端到端的基礎(chǔ)了,而不是物理地址那樣跳到跳傳輸。
三、網(wǎng)絡(luò)層
說到路由選擇,也就是說路由器也是網(wǎng)絡(luò)層的核心,包就是網(wǎng)絡(luò)層里數(shù)據(jù)的名字,在封裝為二層的幀之前就是包,路由器根據(jù)包里的IP地址進(jìn)行路由轉(zhuǎn)發(fā),地址管理和路由選擇就是這一層的核心,雖然有MAC和IP地址可以抵達(dá)對(duì)方主機(jī),但是對(duì)方主機(jī)可能運(yùn)行這無數(shù)多個(gè)軟件進(jìn)程,假設(shè)我用 谷歌和火狐瀏覽器同時(shí)登陸網(wǎng)站,如何讓數(shù)據(jù)去到指定的軟件服務(wù)上,就需要用到端口號(hào)作為地址來定位了,比如客戶端這里生成不同的端口號(hào),即使同時(shí)訪問HTTP端口號(hào)80也是沒問題的,根據(jù)不同的源端口號(hào)來做出響應(yīng)就可以了。
四、傳輸層
所以傳輸層在網(wǎng)絡(luò)層端到端的基礎(chǔ)上,實(shí)現(xiàn)了服務(wù)進(jìn)程到服務(wù)進(jìn)程的傳輸,段就是傳輸層里數(shù)據(jù)的名字,在封裝為3層包之前的就是段,傳輸層管理兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)的傳輸,負(fù)責(zé)可靠傳輸和不可靠傳輸,也就是大家熟知的協(xié)議TCP和UDP,其中TCP允許應(yīng)用把字節(jié)流變成多份段,而不是整個(gè)字節(jié)數(shù)據(jù)完整的發(fā)送出去,傳輸層還有流量控制來確保傳輸速度,再加上錯(cuò)誤控制來進(jìn)行數(shù)據(jù)完整的接收。
五、會(huì)話層
會(huì)話層比如說現(xiàn)在登錄了某個(gè)網(wǎng)站,網(wǎng)站服務(wù)可以保持你的登錄狀態(tài),不用每次都輸入賬號(hào)和密碼,當(dāng)然網(wǎng)站服務(wù)會(huì)管理和控制登陸狀態(tài),另外會(huì)話層還負(fù)責(zé)同步服務(wù),比方說上次看電影中途退出了,再次登錄賬號(hào)時(shí)候,就可以自動(dòng)同步到上次看到的時(shí)間段。
六、表示層
不同計(jì)算機(jī)內(nèi)部的各自表達(dá)方式可能不太相同,表示層就來負(fù)責(zé)這樣的轉(zhuǎn)換,也就是編碼和解碼,數(shù)據(jù)往往還需要進(jìn)行加密,比方說HTTPS就會(huì)對(duì)我們的數(shù)據(jù)進(jìn)行加密和解密,另外我們還需要給文件瘦身,壓縮也是這一層負(fù)責(zé)的。
七、應(yīng)用層
應(yīng)用層表示層和會(huì)話層的數(shù)據(jù)統(tǒng)稱為應(yīng)用數(shù)據(jù),或者應(yīng)用負(fù)載,也可以叫上層數(shù)據(jù),同時(shí)也是教科書上說的報(bào)文,數(shù)據(jù)在各層的名字分別是,報(bào)文、段、包、幀和比特,就地址來說,有端口號(hào),IP邏輯地址和MAC物理地址,就傳輸功能來講,有服務(wù)進(jìn)程到服務(wù)進(jìn)程,端到端,還有跳到跳。
總結(jié)
了解了各層的作用,就可以把各層之間聯(lián)系起來,客戶端要發(fā)送數(shù)據(jù),也就是報(bào)文,報(bào)文來到傳輸層就,加上端口號(hào),封裝成段,段來到網(wǎng)絡(luò)層封裝成包,注意這里的包是包含有目標(biāo)IP地址的,畢竟你要知道數(shù)據(jù)要發(fā)送到什么地方,但因?yàn)槟繕?biāo)IP地址不是同一個(gè)網(wǎng)絡(luò)下的,要發(fā)送到其他的網(wǎng)絡(luò),就需要經(jīng)過默認(rèn)網(wǎng)關(guān),現(xiàn)在就出現(xiàn)了一個(gè)問題,客戶端主機(jī)最初并不知道默認(rèn)網(wǎng)關(guān)的MAC地址,沒有辦法封裝成幀,這個(gè)時(shí)候就可以用ARP協(xié)議進(jìn)行廣播,找到網(wǎng)關(guān)IP對(duì)應(yīng)的MAC地址,把包封裝成幀,源MAC地址填自己的,目標(biāo)MAC地址填廣播地址,假設(shè)當(dāng)前網(wǎng)絡(luò)有個(gè)二層交換機(jī),這個(gè)交換機(jī)只需要記錄下不同的接口對(duì)應(yīng)的MAC地址就好了,交換機(jī)收到廣播后就幫忙發(fā)送出去”人手一份“,所以默認(rèn)網(wǎng)關(guān)收到消息后,查看了幀,發(fā)現(xiàn)了發(fā)送端的MAC地址,再解封發(fā)現(xiàn)包里面的IP地址,就會(huì)把客戶端MAC地址和IP地址關(guān)聯(lián)為一臺(tái)主機(jī),同時(shí)默認(rèn)網(wǎng)關(guān)會(huì)把自己的IP地址放入包里,再結(jié)合自己的MAC地址封裝成幀,默認(rèn)網(wǎng)關(guān)就這樣做出響應(yīng),這樣原路返回,發(fā)送端就知道默認(rèn)網(wǎng)關(guān)的MAC地址了,現(xiàn)在就可以封裝成幀,并且傳輸數(shù)據(jù),比特流到了默認(rèn)網(wǎng)關(guān)的時(shí)候,解封為幀發(fā)現(xiàn)是發(fā)送給自己的,再解封為包查看到目標(biāo)IP地址是在另一個(gè)網(wǎng)絡(luò)中的,就會(huì)進(jìn)行路由轉(zhuǎn)發(fā),最終到達(dá)目的網(wǎng)絡(luò),如果目標(biāo)網(wǎng)關(guān)知道目標(biāo)IP地址和MAC地址是哪臺(tái)主機(jī)封裝成幀就可以直接發(fā)送過去了,如果不知道也還是可以用ARP廣播下就好了,目標(biāo)主機(jī)收到包確認(rèn)是自己的IP地址以后,解封查看段可以發(fā)現(xiàn)源和目標(biāo)端口號(hào),用目標(biāo)端口號(hào)給到指定的應(yīng)用程序,應(yīng)用程序處理好以后,就可以按照源的信息做出響應(yīng),回去的原理也是一樣的。