- 博主簡介:想進大廠的打工人
- 博主主頁:@xyk:
- 所屬專欄:?JavaEE初階
互聯(lián)網(wǎng)是怎么來的?很多先進技術(shù),都是先軍用,用了之后太香了才逐漸民用~~
互聯(lián)網(wǎng)也是如此,互聯(lián)網(wǎng)之前,可以通過有線/無線,發(fā)電報~~缺點非常明顯,通信鏈路容易被打擊~~于是美國人開始研究,有沒有辦法,能夠搞出一種通信手段,萬一真的收到核打擊了,通信鏈路仍然正常,因此可以發(fā)出指令,進行核反擊,那么需要多搞幾條鏈路
當(dāng)這里的鏈路足夠復(fù)雜的時候,意味著即使整個路徑上,有一部分被摧毀了,仍然有很大可能找到一條能通過去的路~~
那么互聯(lián)網(wǎng)也是如此,從最開始的局域互聯(lián)網(wǎng),到現(xiàn)在的廣域網(wǎng),廣域網(wǎng)可以跨區(qū)域進行網(wǎng)絡(luò)通信, 把很多的局域網(wǎng)連接起來,使用更多的路由器,交換機??!
單機階段 => 局域網(wǎng)階段 => 廣域網(wǎng)階段 => 移動互聯(lián)網(wǎng)階段
那么互聯(lián)網(wǎng)中有哪些概念呢?請看下文~~
目錄
文章目錄
一、網(wǎng)絡(luò)互連
1.1 局域網(wǎng)LAN(小范圍)
1.2?廣域網(wǎng)WAN
1.3?之后又進入了移動互聯(lián)網(wǎng)階段,無線聯(lián)網(wǎng)~
二、網(wǎng)絡(luò)通信基礎(chǔ)
2.1 IP地址
2.2 端口號
2.3 協(xié)議
2.4 知名協(xié)議的默認端口
三、協(xié)議分層
? ? ? ? ?3.1?什么是協(xié)議分層
3.2?分層的作用
?四、真正的網(wǎng)絡(luò)協(xié)議
4.1 OSI七層模型
4.2 TCP/IP五層網(wǎng)絡(luò)模型
4.2.1 應(yīng)用層
4.2.2 傳輸層
4.2.3 網(wǎng)絡(luò)層
4.2.4 數(shù)據(jù)鏈路層
4.2.5 物理層
4.2.6?網(wǎng)絡(luò)設(shè)備所在分層
五、封裝&分用
5.1 封裝
5.2 分用
一、網(wǎng)絡(luò)互連
隨著時代的發(fā)展,越來越需要計算機之間互相通信,共享軟件和數(shù)據(jù),即以多個計算機協(xié)同工作來完成業(yè)務(wù),就有了網(wǎng)絡(luò)互連。
網(wǎng)絡(luò)互連:將多臺計算機連接在一起,完成數(shù)據(jù)共享。
數(shù)據(jù)共享本質(zhì)是網(wǎng)絡(luò)數(shù)據(jù)傳輸,即計算機之間通過網(wǎng)絡(luò)來傳輸數(shù)據(jù),也稱為網(wǎng)絡(luò)通信。
根據(jù)網(wǎng)絡(luò)互連的規(guī)模不同,可以劃分為局域網(wǎng)和廣域網(wǎng)。
1.1 局域網(wǎng)LAN(小范圍)
一棟樓 或 大學(xué)校園中有限的, 狹小的, 區(qū)域內(nèi)網(wǎng)絡(luò).
局域網(wǎng),即 Local Area Network,簡稱LAN。
Local 即標識了局域網(wǎng)是本地,局部組建的一種私有網(wǎng)絡(luò)。
局域網(wǎng)內(nèi)的主機之間能方便的進行網(wǎng)絡(luò)通信,又稱為內(nèi)網(wǎng);局域網(wǎng)和局域網(wǎng)之間在沒有連接的情況下,是無法通信的。
基于網(wǎng)線直連
把兩個電腦,通過一個網(wǎng)線直連,構(gòu)成局域網(wǎng)~~(局域網(wǎng)聯(lián)機)
以機房為例,多個機器之間可以進行聯(lián)機,這就相當(dāng)于一個局域網(wǎng)
基于交換機也能進行聯(lián)機,這也是局域網(wǎng)
?
- 電腦越多,用網(wǎng)線直連就越復(fù)雜~
- 區(qū)別于集線器:集線器是將一條網(wǎng)線轉(zhuǎn)變成多條網(wǎng)線
?1.2?廣域網(wǎng)WAN
當(dāng)局域網(wǎng)足夠大時,就成了廣域網(wǎng);即使兩個玩家,天南海北,也可以隨時PK
?廣域網(wǎng),即 Wide Area Network,簡稱WAN。
通過路由器,將多個局域網(wǎng)連接起來,在物理上組成很大范圍的網(wǎng)絡(luò),就形成了廣域網(wǎng)。廣域網(wǎng)內(nèi)部的局域網(wǎng)都屬于其子網(wǎng)。
網(wǎng)絡(luò)的組建(通過一些交換機/路由器搭建一個網(wǎng)絡(luò)環(huán)境),其實也是一個專業(yè)性很強的技能——網(wǎng)管(網(wǎng)絡(luò)管理員),不是網(wǎng)吧管理員,而是網(wǎng)絡(luò)管理員!
1.3?之后又進入了移動互聯(lián)網(wǎng)階段,無線聯(lián)網(wǎng)~
智能手機的普及,尤其是小米和華為,從安卓賽道出發(fā)大大的降低了手機的價格成本~~(充話費送手機)
二、網(wǎng)絡(luò)通信基礎(chǔ)
網(wǎng)絡(luò)互連的目的是進行網(wǎng)絡(luò)通信,也即是網(wǎng)絡(luò)數(shù)據(jù)傳輸,更具體一點,是網(wǎng)絡(luò)主機中的不同進程間,基于網(wǎng)絡(luò)傳輸數(shù)據(jù)。
那么,在組建的網(wǎng)絡(luò)中,如何判斷到底是從哪臺主機,將數(shù)據(jù)傳輸?shù)侥桥_主機呢?這就需要使用IP地址來標識。
2.1 IP地址
概念
IP地址主要用于標識網(wǎng)絡(luò)主機、其他網(wǎng)絡(luò)設(shè)備(如路由器)的網(wǎng)絡(luò)地址。簡單說,IP地址用于定位主機的網(wǎng)絡(luò)地址。
就像我們發(fā)送快遞一樣,需要知道對方的收貨地址,快遞員才能將包裹送到目的地。
格式
IP地址是一個32位的二進制數(shù),通常被分割為4個“8位二進制數(shù)”(也就是4個字節(jié)),如:
01100100.00000100.00000101.00000110。
通常用“點分十進制”的方式來表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之間的十進制整數(shù))。如:192.168.0.136。
3個點,把整個IP分成4個部分,每個部分,1個字節(jié)
命令行輸入ipconfig:
?特殊IP
127.*的IP地址用于本機環(huán)回(loop back)測試,通常是127.0.0.1
本機環(huán)回主要用于本機到本機的網(wǎng)絡(luò)通信(系統(tǒng)內(nèi)部為了性能,不會走網(wǎng)絡(luò)的方式傳輸),對于開發(fā)網(wǎng)絡(luò)通信的程序(即網(wǎng)絡(luò)編程)而言,常見的開發(fā)方式都是本機到本機的網(wǎng)絡(luò)通信。
IP地址解決了網(wǎng)絡(luò)通信時,定位網(wǎng)絡(luò)主機的問題,但是還存在一個問題,傳輸?shù)侥康闹鳈C后,由哪個進程來接收這個數(shù)據(jù)呢?這就需要端口號來標識。
2.2 端口號
概念
在網(wǎng)絡(luò)通信中,IP地址用于標識主機網(wǎng)絡(luò)地址,端口號可以標識主機中發(fā)送數(shù)據(jù)、接收數(shù)據(jù)的進程。簡單說:端口號用于定位主機中的進程。
類似發(fā)送快遞時,不光需要指定收貨地址(IP地址),還需要指定收貨人(端口號)。
格式
端口號是0~65535范圍的數(shù)字,在網(wǎng)絡(luò)通信中,進程可以通過綁定一個端口號,來發(fā)送及接收網(wǎng)絡(luò)數(shù)據(jù)。
注意事項
兩個不同的進程,不能綁定同一個端口號,但一個進程可以綁定多個端口號。
一個進程啟動后,系統(tǒng)會隨機分配一個端口(啟動端口)
程序代碼中,進行網(wǎng)絡(luò)編程時,需要綁定端口號(收發(fā)數(shù)據(jù)的端口)來發(fā)送、接收數(shù)據(jù)。
進程綁定一個端口號后,fork一個子進程,可以實現(xiàn)多個進程綁定一個端口號,但不同的進程不能綁定同一個端口號
2.3 協(xié)議
概念
協(xié)議,網(wǎng)絡(luò)協(xié)議的簡稱,網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)通信(即網(wǎng)絡(luò)數(shù)據(jù)傳輸)經(jīng)過的所有網(wǎng)絡(luò)設(shè)備都必須共同遵從的一組約定、規(guī)則。如怎么樣建立連接、怎么樣互相識別等。只有遵守這個約定,計算機之間才能相互通信交流。
作用:
為什么需要協(xié)議?
計算機之間的傳輸媒介是光信號和電信號。通過 "頻率" 和 "強弱" 來表示 0 和 1 這樣的信息。要想傳遞各種不同的信息,就需要約定好雙方的數(shù)據(jù)格式。
簡單的來說,協(xié)議 就是 計算機與計算機之間通過網(wǎng)絡(luò)實現(xiàn)通信時事先達成的一種"約定".兩臺計算機之間必須能夠支持相同的協(xié)議,并遵循相同協(xié)議進行處理,這樣才能實現(xiàn)相互通信.
A和B語言不通,導(dǎo)致無法交流:協(xié)議不同
A和C用的都是中文,此時可以交流:協(xié)議相同
2.4 知名協(xié)議的默認端口
系統(tǒng)端口號范圍為 0 ~ 65535,其中:0 ~ 1023 為知名端口號,這些端口預(yù)留給服務(wù)端程序綁定廣泛使用的應(yīng)用層協(xié)議,如:
22端口:預(yù)留給SSH服務(wù)器綁定SSH協(xié)議
21端口:預(yù)留給FTP服務(wù)器綁定FTP協(xié)議
23端口:預(yù)留給Telnet服務(wù)器綁定Telnet協(xié)議
80端口:預(yù)留給HTTP服務(wù)器綁定HTTP協(xié)議
443端口:預(yù)留給HTTPS服務(wù)器綁定HTTPS協(xié)議餐廳的VIP包房是給會員使用,但會員也可以不坐包房,坐其他普通座位。
三、協(xié)議分層
對于網(wǎng)絡(luò)協(xié)議來說,往往分成幾個層次進行定義
3.1?什么是協(xié)議分層
協(xié)議分層類似于打電話時,定義不同的層次的協(xié)議:
?在這個例子中,我們的協(xié)議只有兩層;但是實際的網(wǎng)絡(luò)通信會更加復(fù)雜,需要分更多的層次
3.2?分層的作用
一個協(xié)議太復(fù)雜了,就可以拆分成多個協(xié)議
協(xié)議是拆分出很多,存在有些小的協(xié)議,作用或者定位是類似的
就可以針對這些小協(xié)議,進行“分類”,同時針對這些不同的類別,進行分層~~
為什么需要網(wǎng)絡(luò)協(xié)議的分層?
分層最大的好處,類似于面向接口編程:定義好兩層間的接口規(guī)范,讓雙方遵循這個規(guī)范來對接。后續(xù)就可以比較容易的針對這里的某一層協(xié)議進行替換。
分層之后就可以做到,層次之間,耦合程度比較低
上層協(xié)議不必了解下層的細節(jié),下層也不必了解上層的細節(jié)
方便的對某一層的協(xié)議進行替換
而分層,也需要約定層級與層級之間的調(diào)用關(guān)系
要求不能跨層級調(diào)用
要求上層協(xié)議調(diào)用下層協(xié)議,下層協(xié)議給上層提供支持
只有兩個相鄰的層級才能交互
?四、真正的網(wǎng)絡(luò)協(xié)議
4.1 OSI七層模型
OSI -> Open System Interrconnection 開放系統(tǒng)互連.
OSI 七層模型劃分為以下七層:
?
?OSI 七層模型既復(fù)雜又不實用:所以 OSI 七層模型沒有落地、實現(xiàn)。
4.2 TCP/IP五層網(wǎng)絡(luò)模型
當(dāng)下最廣泛使用的網(wǎng)絡(luò)模型
TCP/IP通訊協(xié)議采用了5層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。(四層是因為沒考慮物理層,軟件方面看)
4.2.1 應(yīng)用層
關(guān)注傳輸過來的數(shù)據(jù),要做什么~~
4.2.2 傳輸層
不考慮中間路徑,只關(guān)注起點和終點
我和淘寶賣家,都不關(guān)心中間是怎么傳輸?shù)模魂P(guān)心起點和終點~~
中間你怎么傳輸都無所謂,只要規(guī)定時間送到了就行了~~
4.2.3 網(wǎng)絡(luò)層
主要負責(zé)兩個遙遠節(jié)點之間的路徑規(guī)劃
例如收貨與發(fā)貨之間有很多條路徑可以走:
在眾多路徑中找一個合適的~~
上海 -> 北京 -> 西安
深圳 -> 杭州 -> 無錫 -> 北京
4.2.4 數(shù)據(jù)鏈路層
主要關(guān)注兩個相鄰節(jié)點之間的傳輸
上海 -> 南京? 火車
南京 -> 北京 卡車
網(wǎng)絡(luò)上的相鄰節(jié)點,就是通過網(wǎng)線/光纖/無線直接連接的設(shè)備
4.2.5 物理層
網(wǎng)絡(luò)通信的基礎(chǔ)設(shè)施,網(wǎng)線,光纖,網(wǎng)絡(luò)接口.....
網(wǎng)絡(luò)上的高速公路
4.2.6?網(wǎng)絡(luò)設(shè)備所在分層
對于一臺主機,它的操作系統(tǒng)內(nèi)核實現(xiàn)了從傳輸層到物理層的內(nèi)容,也即是TCP/IP五層模型的 下四層;
對于一臺路由器,它實現(xiàn)了從網(wǎng)絡(luò)層到物理層,也即是TCP/IP五層模型的 下三層;
對于一臺交換機,它實現(xiàn)了從數(shù)據(jù)鏈路層到物理層,也即是TCP/IP五層模型的 下兩層;
對于集線器,它只實現(xiàn)了 物理層。
五、封裝&分用
- 發(fā)送方發(fā)送數(shù)據(jù),數(shù)據(jù)從上到下,依次交給對應(yīng)的協(xié)議,進行封裝加工
- 接收方接受數(shù)據(jù),數(shù)據(jù)從下到上,依次交給對應(yīng)的協(xié)議,進行分用解析
5.1 封裝
以QQ發(fā)送消息為例子,解釋一下封裝分用的過程:
我是發(fā)送方,在編輯框輸入一個消息發(fā)給滑稽老鐵:在干嘛呢?
1.應(yīng)用層到傳輸層:打包成應(yīng)用層數(shù)據(jù)包發(fā)送
字符串拼接:
?2. 傳輸層拿到上述數(shù)據(jù):
應(yīng)用層調(diào)用傳輸層(API):封裝成傳輸層數(shù)據(jù)報
傳輸層有很多協(xié)議,最經(jīng)典的是TCP和UDP
此處以UDP為例~~
UDP針對上述數(shù)據(jù)包再進行封裝~~
?3.傳輸層到網(wǎng)絡(luò)層:
UDP數(shù)據(jù)報,已經(jīng)有了,接下來就是把這個數(shù)據(jù)報交給網(wǎng)絡(luò)層的協(xié)議
網(wǎng)絡(luò)層最常見的協(xié)議,就是IP協(xié)議~~
上述UDP數(shù)據(jù)報,到達網(wǎng)絡(luò)層,還需要進一步的封裝,添加上IP協(xié)議報頭
?4.?網(wǎng)絡(luò)層到數(shù)據(jù)鏈路層:
最經(jīng)典的協(xié)議,叫做以太網(wǎng)(數(shù)據(jù)鏈路層+物理層)
mac地址,也叫做物理地址.
也是描述一個主機在網(wǎng)絡(luò)上的位置.
它的功能和IP很相似的.但是當(dāng)下就把這兩個地址分別作用于不同的用途.
IP用來進行網(wǎng)絡(luò)層的路徑規(guī)劃
mac用來進行描述數(shù)據(jù)鏈路層,兩個即將進行傳輸?shù)南噜徆?jié)點~
mac和網(wǎng)卡綁定的,每個設(shè)備都會有一個自己唯一的mac地址
5.數(shù)據(jù)鏈路層到物理層
數(shù)據(jù)鏈路層就要把上述以太網(wǎng)數(shù)據(jù)幀交給物理層了.
物理層要把上述0101的二進制數(shù)據(jù)~~
轉(zhuǎn)換成光信號/電信號/電磁波信號,進行傳輸了~~
5.2 分用
接受過程和上述過程,剛好相反
- 發(fā)送,從上到下,依次封裝,新增報頭
- 接受,從下到上,依次分用,去掉報頭
1.物理層,網(wǎng)卡,收到高低電平二進制數(shù)據(jù).
就會對這里的信號進行解析,還原成0101這樣的二進制序列.
2.從物理層交給數(shù)據(jù)鏈路層.
此時就把上述0101這系列數(shù)據(jù)當(dāng)做一個以太網(wǎng)數(shù)據(jù)幀.(此處是從以太網(wǎng)線。,收到的數(shù)據(jù),就是要交給以太網(wǎng)協(xié)議來處理了
把幀頭去掉,幀尾去掉,取出中間的載荷,再往上交給網(wǎng)絡(luò)層.
以太網(wǎng)數(shù)據(jù)幀幀頭中有一個消息類型根據(jù)這個類型就知道了網(wǎng)絡(luò)層是ip協(xié)議了.
3. 網(wǎng)絡(luò)層
此時就由網(wǎng)絡(luò)層的IP協(xié)議進行解析數(shù)據(jù)報.也是去掉IP報頭.同時會做一些工作.最重要的還是取出載荷,交給更上層的傳輸層協(xié)議.
ip 數(shù)據(jù)報,報頭中也有一個字段,標識當(dāng)前傳輸層用的是哪個協(xié)議.
?4. 傳輸層
此處是由UDP來解析處理,還是去掉報頭,取出載荷,把數(shù)據(jù)交給應(yīng)用層.
借助端口號來區(qū)分具體的應(yīng)用程序.
每個要接受網(wǎng)絡(luò)數(shù)據(jù)的程序都需要關(guān)聯(lián)上一個端口號.
5. 應(yīng)用層
?由qq這個程序,進行解析應(yīng)用層數(shù)據(jù)報取出下列字段,放到程序的界面中.
總結(jié):
發(fā)送方,層層分裝,包裝快遞
接收方,層層分用,拆快遞
真實的網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)的傳輸中間可能要經(jīng)歷很多節(jié)點進行轉(zhuǎn)發(fā)~~
?
中間的 交換機,只需要封裝分用到 數(shù)據(jù)鏈路層(只需要改源mac和目的mac)
中間的 路由器,則需要分裝分用到 網(wǎng)絡(luò)層 (也需要改mac,同時還需要根據(jù)目的ip進行下一個階段的傳輸)文章來源:http://www.zghlxwxcb.cn/news/detail-425432.html
通常也說,交換機是進行“二層轉(zhuǎn)發(fā)”,路由器進行“三層轉(zhuǎn)發(fā)”文章來源地址http://www.zghlxwxcb.cn/news/detail-425432.html
到了這里,關(guān)于【JavaEE】網(wǎng)絡(luò)通信中的一些基本概念及協(xié)議分層的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!