目錄
??網(wǎng)絡(luò)的發(fā)展史
??局域網(wǎng)LAN?
??廣域網(wǎng)WAN
??網(wǎng)絡(luò)通信基礎(chǔ)
??IP地址
??端口號
??協(xié)議類型?
??五元組
??協(xié)議分層?
??什么是協(xié)議分層
??協(xié)議分層的好處
??OSI七層網(wǎng)絡(luò)模型
??TCP/IP五層網(wǎng)絡(luò)模型
??物理層
??數(shù)據(jù)鏈路層
??網(wǎng)絡(luò)層
??傳輸層?
??應(yīng)用層
??網(wǎng)絡(luò)設(shè)備所在分層
??網(wǎng)絡(luò)分層對應(yīng)?
???封裝和分用
??發(fā)送方
??應(yīng)用層
??傳輸層
???網(wǎng)絡(luò)層
??數(shù)據(jù)鏈路層
???物理層
??接收方
??物理層
??數(shù)據(jù)鏈路層
???網(wǎng)絡(luò)層
??傳輸層?
??應(yīng)用層?
??網(wǎng)絡(luò)的發(fā)展史
單機(jī)(無需網(wǎng)絡(luò))——》局域網(wǎng)——》廣域網(wǎng)——》移動互聯(lián)網(wǎng)
- 局域網(wǎng):把幾個電腦,通過路由器連到一起
- 廣域網(wǎng):把更多更多的局域網(wǎng)連接到一起,構(gòu)成的網(wǎng)絡(luò)更加龐大,可能已經(jīng)覆蓋了一個城市/一個國家/全世界
局域和廣域之間沒有明確的界限。
??局域網(wǎng)LAN?
局域網(wǎng),即 Local Area Network ,簡稱 LAN 。Local 即標(biāo)識了局域網(wǎng)是本地,局部組建的一種私有網(wǎng)絡(luò)。局域網(wǎng)內(nèi)的主機(jī)之間能方便的進(jìn)行網(wǎng)絡(luò)通信,又稱為內(nèi)網(wǎng);局域網(wǎng)和局域網(wǎng)之間在沒有連接的情況下,是無法通信的。
1》基于網(wǎng)線直連
直接相連,要求你的電腦上有多個網(wǎng)口
錯誤的網(wǎng)線直連
一般家用電腦,上面只有一個網(wǎng)口(所以下面的圖是錯誤的,這樣就是2個網(wǎng)口了)
2》基于路由器組建
所以我們就出現(xiàn)了路由器。讓主機(jī)連接到路由器網(wǎng)口,一般家用路由器有5個網(wǎng)口,1WAN+4LAN
3》基于路由器組建
要想讓這幾個電腦能夠在同一個局域網(wǎng)中上網(wǎng),就需要把它們連接到LAN口,WAN口是用來連上級的路由器的。
交換機(jī):可以擴(kuò)展路由器的端口(路由器的端口少,主機(jī)多)
4》基于交換機(jī)和路由器組建
在上述設(shè)備層層連接之下,就可以構(gòu)成更加復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)了。
??廣域網(wǎng)WAN
廣域網(wǎng),即 Wide Area Network ,簡稱 WAN 。通過路由器,將多個局域網(wǎng)連接起來,在物理上組成很大范圍的網(wǎng)絡(luò),就形成了廣域網(wǎng)。廣域網(wǎng)內(nèi)部的局域網(wǎng)都屬于其子網(wǎng)。
- 如果有北、中、南等分公司,甚至海外分公司,把這些分公司以專線方式連接起來,即稱為“廣域網(wǎng)”。(但是北中南各分工司是局域網(wǎng))
- 如果屬于全球化的公共型廣域網(wǎng),則稱為互聯(lián)網(wǎng)(又稱公網(wǎng),外網(wǎng)),屬于廣域網(wǎng)的一個子集。
有時在不嚴(yán)格的環(huán)境下說的廣域網(wǎng),其實是指互聯(lián)網(wǎng)。所謂 "局域網(wǎng)" 和 "廣域網(wǎng)" 只是一個相對的概念。比如,我們有 "天朝特色" 的廣域網(wǎng),也可以看做一個比較大的局域網(wǎng)。
??網(wǎng)絡(luò)通信基礎(chǔ)
- 網(wǎng)絡(luò)互連的目的是進(jìn)行網(wǎng)絡(luò)通信,也即是網(wǎng)絡(luò)數(shù)據(jù)傳輸,更具體一點,是網(wǎng)絡(luò)主機(jī)中的不同進(jìn)程間,基于網(wǎng)絡(luò)傳輸數(shù)據(jù)。 那么,在組建的網(wǎng)絡(luò)中,如何判斷到底是從哪臺主機(jī),將數(shù)據(jù)傳輸?shù)侥呐_主機(jī)呢?這就需要使用IP地址來標(biāo)識。(IP地址用于定位主機(jī)的網(wǎng)絡(luò)地址)
??IP地址
IP 地址主要用于標(biāo)識網(wǎng)絡(luò)主機(jī)、其他網(wǎng)絡(luò)設(shè)備(如路由器)的網(wǎng)絡(luò)地址。簡單說, IP地址用于定位主機(jī)的網(wǎng)絡(luò)地址。就像我們發(fā)送快遞一樣,需要知道對方的收貨地址,快遞員才能將包裹送到目的地。
生活中:安徽省 安慶市 潛山市 xx鎮(zhèn)計算機(jī)中: IP地址是一個32位的二進(jìn)制數(shù) ,通常被分割為 4 個 “8 位二進(jìn)制數(shù) ” (也就是 4 個字節(jié)),如: 01100100.00000100.00000101.00000110。通常用 “ 點分十進(jìn)制 ” 的方式來表示,即 a.b.c.d 的形式( a,b,c,d 都是 0~255 之間的十進(jìn)制整數(shù))。如: 100.4.5.6。使用一個32位,4字節(jié)數(shù)字,表示地址,一般來說,會把IP地址給表示成4個0-255之間的十進(jìn)制數(shù)字,并且使用3個點分隔。點分十進(jìn)制。比如172.20.10.2![]()
IP 地址解決了網(wǎng)絡(luò)通信時,定位網(wǎng)絡(luò)主機(jī)的問題,但是還存在一個問題, 傳輸?shù)侥康闹鳈C(jī)后,由哪個進(jìn)程來接收這個數(shù)據(jù)呢?這就需要端口號來標(biāo)識。
??端口號
IP地址來確定是哪個主機(jī)傳輸?shù)侥膫€主機(jī)信息,確定哪個主機(jī)就需要利用IP地址定位主機(jī)的網(wǎng)絡(luò)地址。確定好傳輸?shù)膩碓粗鳈C(jī)和目的主機(jī),我們需要確定是哪個線程來接收這個數(shù)據(jù)的,這時候就需要端口號來標(biāo)識。
在網(wǎng)絡(luò)通信中, IP 地址用于標(biāo)識主機(jī)網(wǎng)絡(luò)地址,端口號可以標(biāo)識主機(jī)中發(fā)送數(shù)據(jù)、接收數(shù)據(jù)的進(jìn)程。簡單說: 端口號用于定位主機(jī)中的進(jìn)程。(區(qū)分一個主機(jī)上不同app)類似發(fā)送快遞時,不光需要指定收貨地址( IP 地址),還需要指定收貨人(端口號).
2個字節(jié)端口號是 0~65535 范圍的數(shù)字,在網(wǎng)絡(luò)通信中,進(jìn)程可以通過綁定一個端口號,來發(fā)送及接收網(wǎng)絡(luò)數(shù)據(jù)。比如3306這個端口號就被mysql服務(wù)器綁定了。知名協(xié)議的默認(rèn)端口0一般是不使用的1-1023這個范圍的端口號,系統(tǒng)留作特殊用途,咱們寫的程序是不應(yīng)該占用的。1-1023這個范圍內(nèi)的端口號是知名端口號,留給一些比較常見的服務(wù)器程序進(jìn)行使用的。比如?
就像飛機(jī) 分為 頭等艙(貴,體驗好),經(jīng)濟(jì)艙(便宜,體驗差)就是這種分區(qū)域的提供服務(wù)
兩個不同的進(jìn)程,不能綁定同一個端口號,但一個進(jìn)程可以綁定多個端口號。比如3306這個端口號就被mysql服務(wù)器綁定了,與此同時,mysql還可以綁定別的端口,但是其他程序就不能綁定3306了。(因為3306端口號是唯一的在一個服務(wù)器中,如果出現(xiàn)多個端口號是3306,那么就怎么能保證你要執(zhí)行的是哪個程序呢?但是這個程序可以有多個端口號)
在實際的通信過程中,IP和 端口 往往是一對的
?就比如說,我們買個東西:
? ? ? ? ? ? ? ? 收件人地址,收件人電話
? ? ? ? ? ? ? ? 發(fā)件人地址,發(fā)件人電話
還比如說,西游記中的唐曾再每次拜訪一家戶人的時候,都會說一句話
? ? ? ?貧憎自東土大唐而來,到西方拜佛求經(jīng)
??協(xié)議類型?
有了 IP 地址和端口號,可以定位到網(wǎng)絡(luò)中唯一的一個進(jìn)程,但還存在一個問題,網(wǎng)絡(luò)通信是基于二進(jìn)制0/1數(shù)據(jù)來傳輸,如何告訴對方發(fā)送的數(shù)據(jù)是什么樣的呢?網(wǎng)絡(luò)通信傳輸?shù)臄?shù)據(jù)類型可能有多種:圖片,視頻,文本等。同一個類型的數(shù)據(jù),格式可能也不同,如 發(fā)送一個文本字符串“ 你好! ” :如何標(biāo)識發(fā)送的數(shù)據(jù)是文本類型,及文本的編碼格式呢?基于網(wǎng)絡(luò)數(shù)據(jù)傳輸,需要使用協(xié)議來規(guī)定雙方的數(shù)據(jù)格式。
學(xué)習(xí)網(wǎng)絡(luò)的時候,很多都在學(xué)習(xí)協(xié)議 (協(xié)議就是一種約定,約定了通信雙方按照啥樣的方式來傳遞數(shù)據(jù))
光/電 信號來傳輸數(shù)據(jù)計算機(jī)之間的傳輸媒介是光信號和電信號。通過 " 頻率 " 和 " 強(qiáng)弱 " 來表示 0 和 1 這樣的信息。要想傳遞各種不同的信息,就需要約定好雙方的數(shù)據(jù)格式。網(wǎng)絡(luò)上,本質(zhì)是通過 光/電 信號來傳輸數(shù)據(jù)?
- 低電平表示1,高電平表示0 (低/高電平表示電壓)
- ?高頻光信號表示1,低頻光信號表示0? ??
二進(jìn)制數(shù)據(jù)來進(jìn)行傳遞數(shù)據(jù)的。
舉個例子:
就比如相親的時候,我們約定去一個地方見面,和一個女生約好了,在xx天橋上見面xx時間。
那天一個男生B見到天橋上一個女生在那站著,過去問請問你是不是來相親的,那個女生說是的,然后我們就開始在橋邊散步了,當(dāng)我們邊走邊聊,男生B發(fā)現(xiàn)女生的情況和媒婆說的情況不一樣,最后發(fā)現(xiàn)確實認(rèn)錯了,然后就和那個女生說抱歉,我們認(rèn)錯了,然后回到那個天橋之后,發(fā)現(xiàn)人已經(jīng)走了。
所以下次男生B再去相親的時候,可以在約定見面的時候,再約定一點特征,比如約定女生穿一個紅色的裙子,男生B胸口插一朵玫瑰花。這樣的操作,就相當(dāng)于約定了一種協(xié)議。
協(xié)議:就只是單純的約定,并不一定會很復(fù)雜的。由于網(wǎng)絡(luò)通信的世界中,遇到的場景/問題往往比較棘手,確實有一些網(wǎng)絡(luò)協(xié)議是比較復(fù)雜的。
??五元組
在TCP/IP協(xié)議中,用五元組來標(biāo)識一個網(wǎng)絡(luò)通信:
- 1. 源IP:標(biāo)識源主機(jī)
- 2. 源端口號:標(biāo)識源主機(jī)中該次通信發(fā)送數(shù)據(jù)的進(jìn)程
- 3. 目的IP:標(biāo)識目的主機(jī)
- 4. 目的端口號:標(biāo)識目的主機(jī)中該次通信接收數(shù)據(jù)的進(jìn)程
- 5. 協(xié)議號:標(biāo)識發(fā)送進(jìn)程和接收進(jìn)程雙方約定的數(shù)據(jù)格式
??協(xié)議分層?
??什么是協(xié)議分層
舉個例子:有一家公司。有些員工開始的時候,公司比較小,員工也不多,10個,20個此時就不需要“團(tuán)隊劃分”,也不需要“中層領(lǐng)導(dǎo)”,直接一個老板就可以管理所有人隨著公司的規(guī)模越來越大,員工的數(shù)量就變多了,就需要劃分出多個部門,每個部門就需要領(lǐng)導(dǎo)了(老板一個人,是管理不過來的)隨著規(guī)模的進(jìn)一步擴(kuò)大,中層領(lǐng)導(dǎo)也可能有好幾層。此時嚴(yán)格按照上述規(guī)則進(jìn)行通信,整個過程就不會混亂。
比如新員工,直接月季去找老板,這樣的做法是非常不合適的,越級匯報是非常忌諱的事情,站在老板的角度,提升他的管理成本。
??協(xié)議分層的好處
1》協(xié)議分層之后,下層和上層,彼此之間就進(jìn)行了封裝。? ? ? ? ? ? ? ?使用上層協(xié)議,不必過多關(guān)注下層。? ? ? ? ? ? ? ? 使用下層協(xié)議,也不必過多關(guān)注上層。對于使用方來說,并不關(guān)心提供方是如何實現(xiàn)的,只需要使用接口即可對于提供方來說,利用封裝的特性,隱藏了實現(xiàn)的細(xì)節(jié),只需要開放接口即可![]()
大大降低了使用者的成本,我只要會說話,就能打電話,不需要了解電話機(jī)(通信設(shè)備層)是如何將我的話給對方,又怎么將對方的話讓我聽見。這樣就大大降低了使用者的成本。對于年齡年長的老年人,他雖然不會玩手機(jī),但是我們只要會說話,不需要處理細(xì)節(jié)問題,上到90歲的老人,下到3歲的小孩,都是可以打電話。
?2》 每一層協(xié)議都可以根據(jù)需要靈活替換? ?
不管我是用英語還是用漢語交流,我用的是手機(jī)無線電的還是電話機(jī)有線的,都是可以通話的。
協(xié)議分層之后,好處多多,因此現(xiàn)在網(wǎng)絡(luò)世界都是這種分層的結(jié)構(gòu)的。
??OSI七層網(wǎng)絡(luò)模型
- OSI 七層網(wǎng)絡(luò)模型是一個邏輯上的定義和規(guī)范:把網(wǎng)絡(luò)從邏輯上分為了7層。
- OSI 七層模型是一種框架性的設(shè)計方法,其最主要的功能使就是幫助不同類型的主機(jī)實現(xiàn)數(shù)據(jù)傳輸;
- 它的最大優(yōu)點是將服務(wù)、接口和協(xié)議這三個概念明確地區(qū)分開來,概念清楚,理論也比較完整。通過七個層次化的結(jié)構(gòu)模型使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實現(xiàn)可靠的通訊。
越往下越硬件。
??TCP/IP五層網(wǎng)絡(luò)模型
我們看到OSI模型和TP/IP模型,從網(wǎng)絡(luò)層到物理層這幾層,叫法可能有差別(不同環(huán)境下,叫法可能就是有差異的)。
??物理層
描述的是網(wǎng)絡(luò)通信的硬件設(shè)備,好比基礎(chǔ)設(shè)施,公路,鐵路.....比如我們使用的網(wǎng)線,光纖都應(yīng)該是啥規(guī)格的。就比如計算機(jī)之間的傳輸媒介是光信號和電信號,通過“頻率”和“強(qiáng)弱”來表示0和1這樣的信息,要想網(wǎng)絡(luò)上,本質(zhì)是通過光/電 信號來傳輸數(shù)據(jù)。二進(jìn)制數(shù)據(jù)來進(jìn)行傳遞數(shù)據(jù)的。
- 低電平表示1,高電平表示0 (低/高電平表示電壓)
- ?高頻光信號表示1,低頻光信號表示0? ??
??數(shù)據(jù)鏈路層
負(fù)責(zé)設(shè)備之間的數(shù)據(jù)幀的傳送和識別(兩個相鄰節(jié)點之間的數(shù)據(jù)傳輸情況) 。例如網(wǎng)卡設(shè)備的驅(qū)動、幀同步 ( 就是說從網(wǎng)線上檢測到什么信號算作新幀的開始) 、沖突檢測 ( 如果檢測到?jīng)_突就自動重發(fā) ) 、數(shù)據(jù)差錯校驗等工作。 有以太網(wǎng)、令牌環(huán)網(wǎng),無線LAN 等標(biāo)準(zhǔn)。交換機(jī)( Switch )工作在數(shù)據(jù)鏈路層。
??網(wǎng)絡(luò)層
負(fù)責(zé)地址管理和路由選擇。(進(jìn)行路徑規(guī)劃) 例如在 IP 協(xié)議中,通過 IP 地址來標(biāo)識一臺主機(jī),并通過路由表的方式規(guī)劃出兩臺主機(jī)之間的數(shù)據(jù)傳輸?shù)木€路(路由)。路由器(Router )工作在網(wǎng)絡(luò)層。
??傳輸層?
負(fù)責(zé)兩臺主機(jī)之間的數(shù)據(jù)傳輸(關(guān)注起點和終點)。如傳輸控制協(xié)議 (TCP),能夠確保數(shù)據(jù)可靠的從源主機(jī)發(fā)送到目標(biāo)主機(jī)。
??應(yīng)用層
負(fù)責(zé)應(yīng)用程序間溝通 ,如簡單電子郵件傳輸( SMTP )、文件傳輸協(xié)議( FTP )、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議( Telnet )等。我們的網(wǎng)絡(luò)編程主要就是針對應(yīng)用層。
舉個例子:
傳輸層: 我在淘寶上買了一件衣服,提供收件人地址和收件人電話,商家也有發(fā)件人地址和發(fā)件人的電話。(也就是說商家擁有了 源IP和源端口 以及 目的IP和目的端口)——傳輸層?
網(wǎng)絡(luò)層:
商家發(fā)貨就需要把衣服送給快遞公司 ,快遞公司就需要對這個包裹如何傳輸 ,來進(jìn)行路徑上的規(guī)劃。
比如我人在安徽安慶,商家在鄭州。鄭州到安慶就有很多路線
鄭州——》周口——》合肥——》安慶
鄭州——》武漢——》合肥——》安慶
....
此時快遞公司就需要規(guī)劃出一個合適的路徑(考慮傳輸效率?傳輸成本?傳輸時間最短?傳輸過程最方便?.....)——網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層:
快遞公司給路線規(guī)劃好了,鄭州——》周口——》合肥——》安慶接下來就需要考慮,每一步都該怎么走,相鄰節(jié)點如何傳輸。鄭州——》周口 :卡車周口——》合肥:? ?貨車合肥——》安慶:貨車應(yīng)用層:如何使用這個數(shù)據(jù),我買了一個床刷子,我可以使用床刷子來刷鞋,刷衣服,等等。
?
?物理層我們考慮的比較少。因此很多時候也可以稱為 TCP/IP四層模型。(物理層,偏硬件,咱們程序員搞軟件)
?
??網(wǎng)絡(luò)設(shè)備所在分層
- 對于一臺主機(jī),它的操作系統(tǒng)內(nèi)核實現(xiàn)了從傳輸層到物理層的內(nèi)容,也即是TCP/IP五層模型的下四層;
- 對于一臺路由器,它實現(xiàn)了從網(wǎng)絡(luò)層到物理層,也即是TCP/IP五層模型的下三層;
- 對于一臺交換機(jī),它實現(xiàn)了從數(shù)據(jù)鏈路層到物理層,也即是TCP/IP五層模型的下兩層;
- 對于集線器,它只實現(xiàn)了物理層;
交換機(jī)的作用:是針對路由器的端口進(jìn)行擴(kuò)展的,路由器上的端口可能是有限,不夠的。所以需要交換機(jī)連接各個路由器,形成了復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。
上述的這套規(guī)則,是針對“傳統(tǒng)的”“經(jīng)典的”交換機(jī)和路由器來描述的
實際上,現(xiàn)在的路由器和交換機(jī)的功能越來越強(qiáng)大了(甚至說一些高端的交換機(jī),也有路由功能)另一方面,路由器交換機(jī)可能還會支持一些更復(fù)雜的操作,甚至可能會工作在傳輸層或者應(yīng)用層。?
??網(wǎng)絡(luò)分層對應(yīng)?

???封裝和分用
不同的協(xié)議層對數(shù)據(jù)包有不同的稱謂,在傳輸層叫做段(segment),在網(wǎng)絡(luò)層叫做數(shù)據(jù)報(datagram),在鏈路層叫做幀(frame)。應(yīng)用層數(shù)據(jù)通過協(xié)議棧發(fā)到網(wǎng)絡(luò)上時,每層協(xié)議都要加上一個數(shù)據(jù)首部(header),稱為封裝(Encapsulation)。首部信息中包含了一些類似于首部有多長,載荷(payload)有多長,上層協(xié)議是什么等信息。數(shù)據(jù)封裝成幀后發(fā)到傳輸介質(zhì)上,到達(dá)目的主機(jī)后每層協(xié)議再剝掉相應(yīng)的首部,根據(jù)首部中的 "上層協(xié)議字段" 將數(shù)據(jù)交給對應(yīng)的上層協(xié)議處理
描述了網(wǎng)絡(luò)通信過程中,基本的數(shù)據(jù)傳輸流程。
舉個例子:考慮A通過QQ把一個hello傳遞給B
??發(fā)送方
??應(yīng)用層
? QQ應(yīng)用程序,QQ就會把用戶輸入的“hello”,給打包成一個應(yīng)用層的數(shù)據(jù)報(這個數(shù)據(jù)報的格式,得是qq的程序員才能知道的) 假設(shè)是按照下面的格式。
?四個字段,使用,來分割。這樣就構(gòu)成了一個簡單的應(yīng)用層數(shù)據(jù)報(字符串拼接)。
上述描述的規(guī)則,就是此處我們約定的應(yīng)用層協(xié)議,具體是用幾個字段,字段的順序如何,使用什么字符分隔,都是可以靈活調(diào)整的。(應(yīng)用層協(xié)議,往往是根據(jù)具體的場景,具體的需要,由程序員自主決定的)
此時就可以把應(yīng)用層數(shù)據(jù)報,通過操作系統(tǒng)的api,把數(shù)據(jù)交給傳輸層。
??傳輸層
就要對剛才的應(yīng)用層數(shù)據(jù),再進(jìn)行打包,變成傳輸層的數(shù)據(jù)報。
這里的打包過程,本質(zhì)上還是“字符串拼接”。把剛才的應(yīng)用層數(shù)據(jù),基礎(chǔ)上拼接上傳輸層的報頭。
UDP報頭中最關(guān)鍵的信息,就是“源端口”和“目的端口”。 (我們之前也說傳輸層主要負(fù)責(zé)數(shù)據(jù)的傳輸[關(guān)注起點和終點].
一個數(shù)據(jù)報=報頭+載荷
進(jìn)行封裝的過程,也就是給數(shù)據(jù)添加更多的“輔助信息”的過程。快遞運(yùn)送的時候也需要打包,而且可能需要包裝多層。打包就可以在上面添加標(biāo)簽了,打包也可以保護(hù)要傳輸?shù)膬?nèi)容不被破壞。
傳輸層數(shù)據(jù)報搞好了之后,這個數(shù)據(jù)又會進(jìn)一步的交給網(wǎng)絡(luò)層。
???網(wǎng)絡(luò)層
網(wǎng)絡(luò)層最主要的協(xié)議,是IP協(xié)議。
IP報頭包含很多重要的屬性,其中最重要的屬性是源IP和目的IP。(負(fù)責(zé)地址管理和路由選擇。(進(jìn)行路徑規(guī)劃)網(wǎng)絡(luò)層的數(shù)據(jù)打包好了之后,繼續(xù)把數(shù)據(jù)交給“數(shù)據(jù)鏈路層”再來進(jìn)一步的打包。
??數(shù)據(jù)鏈路層
以太網(wǎng)。
以太網(wǎng)數(shù)據(jù)報,以以太網(wǎng)報頭中,包含最重要的信息,就是源mac地址,目的mac地址。
mac地址就是用來描述一個設(shè)備在網(wǎng)絡(luò)上的地址的。
MAC地址是物理地址,用于在數(shù)據(jù)鏈路層識別設(shè)備。
???物理層
把上述數(shù)據(jù),轉(zhuǎn)換成2進(jìn)制的0 1序列,通過光信號/電信號進(jìn)行傳輸。
從上層協(xié)議到下層協(xié)議,層層給數(shù)據(jù)抱添加報頭,這個過程稱為“封裝”。?
數(shù)據(jù)發(fā)送出去之后,就會經(jīng)過一系列的交換機(jī)和路由器進(jìn)行轉(zhuǎn)發(fā)。A和B一般來說不是直接網(wǎng)線連接的,中間還要經(jīng)過很多的交換機(jī)/路由器設(shè)備進(jìn)行轉(zhuǎn)發(fā)。當(dāng)數(shù)據(jù)到達(dá)B這邊之后,B就要針對上述數(shù)據(jù)進(jìn)行“分用” (針對上述數(shù)據(jù)報進(jìn)行層層的解析)。
??接收方
??物理層
拿到光電信號——》轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)——》得到以太網(wǎng)數(shù)據(jù)報
這個數(shù)據(jù)要交給數(shù)據(jù)鏈路層對應(yīng)的協(xié)議處理。
??數(shù)據(jù)鏈路層
通過以太網(wǎng)協(xié)議,針對以太網(wǎng)數(shù)據(jù)報進(jìn)行解析。
這個解析過程就會解析出 報頭 和 報尾,以及中間的載荷。
把載荷的部分,進(jìn)一步交給網(wǎng)絡(luò)層的協(xié)議來處理
???網(wǎng)絡(luò)層
IP協(xié)議,再進(jìn)一步的針對網(wǎng)絡(luò)鏈路層進(jìn)行解析,去掉報頭,拿到載荷,再進(jìn)一步把載荷數(shù)據(jù)交給上層(傳輸層)
??傳輸層?
此處使用UDP協(xié)議,針對這個數(shù)據(jù)報進(jìn)行解析,拿到載荷,去掉報頭,把載荷數(shù)據(jù)進(jìn)一步的交給上層(應(yīng)用層)
??應(yīng)用層?
把上述數(shù)據(jù)根據(jù)端口號,交給QQ這個程序。
QQ這個程序就要進(jìn)一步解析這里的數(shù)據(jù),這個解析過程也就是按照前面程序員自定義的應(yīng)用層協(xié)議來展開的。取出hello,最后顯示在顯示屏上。
數(shù)據(jù)報在網(wǎng)絡(luò)中間還會經(jīng)歷一定的轉(zhuǎn)發(fā)過程
- 如果經(jīng)過路由器:就會封裝分用到網(wǎng)絡(luò)層? ? ? ? ? ? ? ? ? ? ? ? ? ? 路由器解析到網(wǎng)絡(luò)層,拿到IP地址,決定進(jìn)一步如何傳輸,下一步傳輸?shù)臅r候,又會重新經(jīng)過網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層和物理層的封裝。
- 如果經(jīng)過交換機(jī),就會封裝分到數(shù)據(jù)鏈路層。
文章來源:http://www.zghlxwxcb.cn/news/detail-851615.html
日子長長,總會如愿以償。文章來源地址http://www.zghlxwxcb.cn/news/detail-851615.html
到了這里,關(guān)于【JavaEE初階系列】——網(wǎng)絡(luò)初識—TCP/IP五層網(wǎng)絡(luò)模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!