1. 什么是網(wǎng)絡(luò)模型?
- 網(wǎng)絡(luò)模型是為了解決不同的設(shè)備之間如何進(jìn)行通信的問(wèn)題,而制定出來(lái)的規(guī)范囱井。
- 網(wǎng)絡(luò)模型的每一層都有其特定的含義和作用碘梢,相當(dāng)于一個(gè)接口,而具體的實(shí)現(xiàn)是由一系列的協(xié)議所組成的临庇,所以研究每一層網(wǎng)絡(luò)模型如何進(jìn)行運(yùn)轉(zhuǎn)通常是研究該層所使用的具體協(xié)議。
2. 什么是OSI七層模型和TCP/IP四層模型
- 傳統(tǒng)網(wǎng)絡(luò)模型主要分為OSI七層模型和TCP/IP四層模型,其主要實(shí)現(xiàn)差別不大么夫,七層模型是更為具體更為詳細(xì)但也更為繁瑣的協(xié)議,四層模型則是七層模型的簡(jiǎn)化肤视。
- 在實(shí)際應(yīng)用上來(lái)說(shuō)档痪,七層模型由于太過(guò)繁瑣僅停留在理論研究上,現(xiàn)代網(wǎng)絡(luò)架構(gòu)主要是使用更為簡(jiǎn)單的四層模型架構(gòu)實(shí)現(xiàn)邢滑。也有部分傳言是由于商業(yè)競(jìng)爭(zhēng)腐螟,導(dǎo)致最終協(xié)議實(shí)現(xiàn)上以四層模型為主。
3. TCP/IP模型
3.1 概覽
TCP/IP網(wǎng)絡(luò)模型
3.2 說(shuō)明
- 如上所示困后,該圖實(shí)際上是由五層架構(gòu)所實(shí)現(xiàn)的乐纸,通常來(lái)說(shuō),TCP/IP協(xié)議上并不會(huì)將硬件層包含進(jìn)來(lái)摇予,但我們介紹的時(shí)候仍然會(huì)以五層架構(gòu)的角度來(lái)介紹汽绢。
- 研究該架構(gòu)我們需要從最底層開始,通過(guò)研究每一層的作用來(lái)讓我們理清每一層的具體作用趾盐。
3.3 硬件層:實(shí)現(xiàn)設(shè)備間的通信
- 該層主要通過(guò)電纜或光纖等傳輸介質(zhì)庶喜,通過(guò)傳輸以高低電位代表的01表示的二進(jìn)制碼小腊,實(shí)現(xiàn)兩臺(tái)不同設(shè)備間的數(shù)據(jù)傳輸。
3.4 數(shù)據(jù)鏈路層:實(shí)現(xiàn)局域網(wǎng)內(nèi)的通信
- 該層主要依靠的硬件設(shè)備是網(wǎng)卡久窟,每個(gè)網(wǎng)卡從生產(chǎn)的那一刻起便擁有一個(gè)48位的唯一mac地址秩冈;
- 該層的協(xié)議主要是以太網(wǎng)協(xié)議;
- 在同一個(gè)局域網(wǎng)內(nèi)傳遞數(shù)據(jù)斥扛,發(fā)送設(shè)備通過(guò)廣播給同個(gè)局域網(wǎng)內(nèi)的所有其他設(shè)備入问,發(fā)送一個(gè)攜帶目標(biāo)設(shè)備的mac地址的數(shù)據(jù)包到其他所有機(jī)器,持有對(duì)應(yīng)mac地址的設(shè)備將會(huì)接收該數(shù)據(jù)包
- 通過(guò)這樣的方式稀颁,來(lái)實(shí)現(xiàn)同個(gè)局域網(wǎng)內(nèi)的不同設(shè)備的通信芬失。
3.5 網(wǎng)絡(luò)層:實(shí)現(xiàn)局域網(wǎng)間的通信/實(shí)現(xiàn)互聯(lián)網(wǎng)內(nèi)的通信
- 該層主要依靠的硬件設(shè)備是網(wǎng)關(guān),每個(gè)網(wǎng)關(guān)都會(huì)分配多個(gè)不同的IP地址匾灶,并且處于不同的網(wǎng)段棱烂,通過(guò)子網(wǎng)掩碼來(lái)識(shí)別網(wǎng)段;
- 該層的協(xié)議主要是ip協(xié)議
- 在不同局域網(wǎng)間的設(shè)備需要通信的時(shí)候阶女,發(fā)送設(shè)備需要為數(shù)據(jù)包攜帶上目標(biāo)設(shè)備的ip地址颊糜;
- 第一步發(fā)送的時(shí)候,發(fā)送設(shè)備以廣播的方式發(fā)送數(shù)據(jù)包到同個(gè)局域網(wǎng)內(nèi)的網(wǎng)關(guān)上秃踩,再利用網(wǎng)關(guān)進(jìn)行ip尋址衬鱼;
- 網(wǎng)關(guān)通過(guò)本地的路由控制表,為ip地址選擇最合適最接近目標(biāo)網(wǎng)段的另一個(gè)網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā)憔杨;
- 當(dāng)數(shù)據(jù)包通過(guò)層層轉(zhuǎn)發(fā)進(jìn)入同一網(wǎng)段之后鸟赫,再通過(guò)廣播的方式傳輸?shù)侥繕?biāo)設(shè)備;
- 通過(guò)這樣的方式消别,來(lái)實(shí)現(xiàn)不同局域網(wǎng)內(nèi)抛蚤,同一互聯(lián)網(wǎng)下的不同設(shè)備的通信。
3.6 傳輸層:實(shí)現(xiàn)為不同的進(jìn)程提供不同的通信
- 該層主要依靠的是ip地址上的一個(gè)標(biāo)識(shí)端口妖啥,每個(gè)設(shè)備的一個(gè)ip地址上都有多個(gè)端口霉颠;
- 該層的協(xié)議主要是tcp協(xié)議
- 通過(guò)上面的三層架構(gòu)已經(jīng)能實(shí)現(xiàn)一個(gè)互聯(lián)網(wǎng)內(nèi)設(shè)備間的通信問(wèn)題了,接下來(lái)解決的是進(jìn)程間如何通信的問(wèn)題荆虱;
- 為了避免多個(gè)進(jìn)程對(duì)同一批數(shù)據(jù)進(jìn)行處理導(dǎo)致的混亂蒿偎,傳輸層引入端口的概念,將數(shù)據(jù)以端口的方式區(qū)分成不同的數(shù)據(jù)怀读,每個(gè)進(jìn)程僅需要關(guān)心指定端口的數(shù)據(jù)即可
- 通過(guò)這樣的方式诉位,實(shí)現(xiàn)了不同進(jìn)程間的通信
3.7 應(yīng)用層:解析傳輸了什么數(shù)據(jù)
- 應(yīng)用層便是TCP/IP協(xié)議與OSI協(xié)議的主要區(qū)別,TCP/IP協(xié)議的應(yīng)用層對(duì)應(yīng)OSI協(xié)議的會(huì)話層->表示層->應(yīng)用層
- 該層的協(xié)議多種多樣菜枷,典型的協(xié)議是http協(xié)議
- 通過(guò)上面的四層協(xié)議苍糠,進(jìn)程可以接收到數(shù)據(jù)包了,但是數(shù)據(jù)包該怎么傳輸啤誊,多少個(gè)字節(jié)有效岳瞭,一次性發(fā)送完還是多次接收等問(wèn)題都無(wú)法解決
- 所以需要以http協(xié)議等應(yīng)用層協(xié)議進(jìn)行規(guī)范拥娄,解決粘包拆包等問(wèn)題,從接收的數(shù)據(jù)中解析出實(shí)際有用的數(shù)據(jù)
- 通過(guò)這樣的方式瞳筏,最終獲取所需要的數(shù)據(jù)稚瘾。