基礎(chǔ)很重要,今天看君山老師的大秒文章時,涉及到DNS和cdn,兩者都是之前有點印象,但是沒到一種屬于自己的地步,就是別人問你一個問題,你還會回答得模棱兩可,別人也知道你可能懂這個,但是你講不出來,我在網(wǎng)上google到阮一峰的博客,看了他的兩篇網(wǎng)絡(luò)協(xié)議入門,我做出自己的學(xué)習(xí)總結(jié),總結(jié)基礎(chǔ)就是為以后做鋪墊。
自己買了兩本書,兩本網(wǎng)絡(luò)協(xié)議的龍書,tcp/ip協(xié)議入門和詳解,一本講tcp/ip協(xié)議組成,一本是怎么用tcp/ip協(xié)議,完全沒看懂,沒有一個項目催你,完全啃不下來。
網(wǎng)上給網(wǎng)絡(luò)分層為7層,5層,都有,我就記為5層,從低到高,從接近物理層的到接近用戶的,分為物理層(physical )、鏈路層(link)、網(wǎng)絡(luò)層(internet)、傳輸層(transfer)、應(yīng)用層(application)。
應(yīng)用層:
傳輸層:
網(wǎng)絡(luò)層:
鏈路層:
物理層:
我畫出這個模型,其實是為了讓你來填寫各個部分是什么,又是用來做什么的。
1.物理層
用戶想要在家里上網(wǎng),首先有一臺電腦,去電信公司辦一個寬帶,或者手機發(fā)個wifi,那么物理層就是這些提供你連接網(wǎng)絡(luò)的物理元器件網(wǎng)絡(luò)(系統(tǒng)),現(xiàn)在有光纖...也就是傳輸0和1,這里的0/1就是數(shù)據(jù)的底層表示形式啦。
2.鏈路層
有了這些元器件網(wǎng)絡(luò),你想要上網(wǎng)還要一個網(wǎng)卡,物理層傳輸0/1,那么0/1的組合搭配就需要在鏈路層,你發(fā)出一個信息給honny,honny的電腦怎么就收到了呢?通過mac地址分辨,你的電腦會把mac結(jié)構(gòu)體發(fā)到子網(wǎng)絡(luò)下,同一個子網(wǎng)絡(luò)下的主機都會接受數(shù)據(jù)包,在解析了接收方mac地址與自己的相同之后,才會接受這個數(shù)據(jù)包,其他主機放棄包,一個電腦用一個mac地址代表,你訪問上網(wǎng)的時候會上傳mac信息,mac head+mac body。
3.網(wǎng)絡(luò)層
現(xiàn)在你知道了傳輸需要物理的實體,需要一個mac地址(網(wǎng)卡- - -筆記本上的無線網(wǎng)卡),那么怎么判定A、B兩臺電腦是在同一個子網(wǎng)絡(luò)呢?當然也是有辦法的,答案是IP地址。ip地址是32位2進制數(shù)字,還有子網(wǎng)掩碼也是32位2進制,只是子網(wǎng)掩碼是255.255.255.0,ip地址和子網(wǎng)掩碼執(zhí)行與操作,如果兩臺電腦的這個操作相同,那么說明他們處于同一個子網(wǎng)絡(luò) 不同的子網(wǎng)絡(luò)互通只能通過網(wǎng)關(guān),。比如你訪問googleip地址是197.97.27.12(打比方,具體怎么知道,通過dig linux指令)與子網(wǎng)掩碼執(zhí)行and操作后,你的ip地址也和子網(wǎng)掩碼執(zhí)行and操作,發(fā)現(xiàn)結(jié)果不一樣,那么你們不再同一個子網(wǎng)絡(luò)。那么怎么辦?自己搭建一個與google同子網(wǎng)絡(luò)的服務(wù)器,很簡單。
到目前位置發(fā)送的數(shù)據(jù)包為 mac頭+ip 頭 ipbody,mac body放ip頭和ip body。
4.傳輸層
應(yīng)用程序之間傳輸就要知道另一個應(yīng)用的主機mac地址,ip地址,端口,linux系統(tǒng)里把主機和端口稱為socket,知道了主機和端口就可以開發(fā)網(wǎng)絡(luò)程序,udp協(xié)議和tcp協(xié)議,兩者udp協(xié)議相對不安全,而tcp協(xié)議更復(fù)雜,更受廣泛使用,每次數(shù)據(jù)包都要確認,如果丟失就重新發(fā),那么tcp數(shù)據(jù)體就填充了ip body了,到這里,就算是結(jié)束了。
5.應(yīng)用層
數(shù)據(jù)在網(wǎng)絡(luò)上傳輸都是不同的協(xié)議,解析封裝數(shù)據(jù)包,重復(fù),,應(yīng)用程序協(xié)議構(gòu)成了應(yīng)用層,如email、ftp。
新聞熱點
疑難解答