目錄
1. 網(wǎng)絡(luò)通信基礎(chǔ)
1.1 IP地址
1.2?端口號
1.3?認(rèn)識協(xié)議
1.4?五元組
1.5?協(xié)議分層
什么是協(xié)議分層
分層的作用
OSI七層模型
TCP/IP五層(或四層)模型
網(wǎng)絡(luò)設(shè)備所在分層
網(wǎng)絡(luò)分層對應(yīng)
封裝和分用
1. 網(wǎng)絡(luò)通信基礎(chǔ)
1.1 IP地址
概念:IP地址主要用于標(biāo)識網(wǎng)絡(luò)主機(jī)、其他網(wǎng)絡(luò)設(shè)備(如路由器)的網(wǎng)絡(luò)地址。簡單說,IP地址用于定位主機(jī)的網(wǎng)絡(luò)地址。
格式: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。
1.2?端口號
概念:?在網(wǎng)絡(luò)通信中,IP地址用于標(biāo)識主機(jī)的網(wǎng)絡(luò)地址,而端口號用于標(biāo)識主機(jī)中發(fā)送數(shù)據(jù)、接收數(shù)據(jù)的進(jìn)程。
簡單說,端口號用于定位主機(jī)中的進(jìn)程。IP地址可以看作是主機(jī)的地址,而端口號可以看作是進(jìn)程的門牌號。通過IP地址可以找到目標(biāo)主機(jī),通過端口號可以找到目標(biāo)主機(jī)中的具體進(jìn)程,從而實現(xiàn)數(shù)據(jù)的發(fā)送和接收。
格式:?端口號是0~65535范圍的數(shù)字,在網(wǎng)絡(luò)通信中,進(jìn)程可以通過綁定?個端?號,來發(fā)送及接收網(wǎng)絡(luò)數(shù)據(jù)。
問題:
????????有了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ù)格式。
1.3?認(rèn)識協(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ī)則。如怎么樣建立連接、怎么樣互相識別等。只有遵守這個約定,計算機(jī)之間才能相互通信交流。
協(xié)議(protocol)最終體現(xiàn)為在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包的格式.
作用
計算機(jī)之間的傳輸媒介是光信號和電信號。通過"頻率"和"強(qiáng)弱"來表示0和1這樣的信息。要想傳遞
各種不同的信息,就需要約定好雙方的數(shù)據(jù)格式。
- 計算機(jī)生產(chǎn)廠商有很多;
- 計算機(jī)操作系統(tǒng),也有很多;
- 計算機(jī)網(wǎng)絡(luò)硬件設(shè)備,還是有很多;
如何讓這些不同廠商之間生產(chǎn)的計算機(jī)能夠相互順暢的通信?
就需要有人站出來,約定一個共同的標(biāo)準(zhǔn),大家都來遵守,這就是網(wǎng)絡(luò)協(xié)議;
網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)通信中的基礎(chǔ),它定義了網(wǎng)絡(luò)中數(shù)據(jù)的傳輸方式和規(guī)則,確保數(shù)據(jù)能夠安全、可靠地在網(wǎng)絡(luò)中傳輸和交換。
1.4?五元組
在TCP/IP協(xié)議中,用五元組來標(biāo)識一個網(wǎng)絡(luò)通信:
- 源IP: 標(biāo)識源主機(jī)
- 源端口號: 標(biāo)識源主機(jī)中該次通信發(fā)送數(shù)據(jù)的進(jìn)程
- 目的IP: 標(biāo)識目的主機(jī)
- 目的端口號: 標(biāo)識目的主機(jī)中該次通信接收數(shù)據(jù)的進(jìn)程
-
協(xié)議號: 標(biāo)識發(fā)送進(jìn)程和接收進(jìn)程雙方約定的數(shù)據(jù)格式
?
五元組在網(wǎng)絡(luò)通信中的作用,類似于發(fā)送快遞:
可以在cmd中,輸? netstat -ano 查看網(wǎng)絡(luò)數(shù)據(jù)傳輸中的五元組信息:
1.5?協(xié)議分層
對于網(wǎng)絡(luò)協(xié)議來說,往往分成幾個層次進(jìn)行定義。
什么是協(xié)議分層
協(xié)議分層是將網(wǎng)絡(luò)協(xié)議按照不同的功能和層次進(jìn)行分組和組織的一種方式。它將復(fù)雜的網(wǎng)絡(luò)通信過程劃分為多個層次,每個層次負(fù)責(zé)特定的功能和任務(wù)。每個層次都建立在下一層的基礎(chǔ)上,并為上一層提供服務(wù)。這種分層的結(jié)構(gòu)使得網(wǎng)絡(luò)協(xié)議的設(shè)計、實現(xiàn)和維護(hù)更加靈活和可擴(kuò)展。
分層的作用
為什么需要網(wǎng)絡(luò)協(xié)議的分層?
分層最大的好處,類似于面向接口編程:定義好兩層間的接口規(guī)范,讓雙方遵循這個規(guī)范來對接。
在代碼中,類似于定義好一個接口,一方為接口的實現(xiàn)類(提供方,提供服務(wù)),一方為接口的使用
類(使用方,使用服務(wù)) :
●對于使用方來說,并不關(guān)心提供方是如何實現(xiàn)的,只需要使用接口即可
●對于提供方來說,利用封裝的特性,隱藏了實現(xiàn)的細(xì)節(jié),只需要開放接口即可
這樣能更好的擴(kuò)展和維護(hù),如下圖:
OSI七層模型
OSI(Open Systems Interconnection)七層模型是一種標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議分層模型,用于描述計算機(jī)網(wǎng)絡(luò)中不同層次的功能和任務(wù),是一個理論上的框架,用于指導(dǎo)和標(biāo)準(zhǔn)化網(wǎng)絡(luò)協(xié)議的設(shè)計和實現(xiàn)。
以下是OSI七層模型的各個層次及其功能:
-
物理層(Physical Layer):負(fù)責(zé)傳輸比特流,將數(shù)據(jù)從源設(shè)備傳輸?shù)侥繕?biāo)設(shè)備,包括傳輸媒介、電壓等物理特性。
-
數(shù)據(jù)鏈路層(Data Link Layer):提供可靠的數(shù)據(jù)傳輸,負(fù)責(zé)將比特流劃分為數(shù)據(jù)幀,進(jìn)行錯誤檢測和糾正,并控制數(shù)據(jù)在物理媒介上的訪問。
-
網(wǎng)絡(luò)層(Network Layer):負(fù)責(zé)數(shù)據(jù)包的路由選擇和轉(zhuǎn)發(fā),實現(xiàn)數(shù)據(jù)在不同網(wǎng)絡(luò)之間的傳輸,包括尋址、路由和擁塞控制等功能。
-
傳輸層(Transport Layer):提供端到端的可靠數(shù)據(jù)傳輸,負(fù)責(zé)分段和重組數(shù)據(jù),確保數(shù)據(jù)的完整性和順序性,包括流量控制和差錯恢復(fù)等功能。
-
會話層(Session Layer):管理和協(xié)調(diào)應(yīng)用程序之間的會話,負(fù)責(zé)建立、維護(hù)和終止會話連接,包括對話控制和同步等功能。
-
表示層(Presentation Layer):負(fù)責(zé)數(shù)據(jù)的格式化和編碼,實現(xiàn)不同設(shè)備和系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換和兼容性,包括數(shù)據(jù)加密和壓縮等功能。
-
應(yīng)用層(Application Layer):提供網(wǎng)絡(luò)服務(wù)和應(yīng)用程序的接口,負(fù)責(zé)處理特定的應(yīng)用協(xié)議和數(shù)據(jù),包括電子郵件、文件傳輸和遠(yuǎn)程登錄等功能。
每個層次都建立在下一層的基礎(chǔ)上,并為上一層提供服務(wù)。通過這種分層的設(shè)計,OSI模型實現(xiàn)了網(wǎng)絡(luò)協(xié)議的模塊化和可管理性,使得不同廠商和組織可以根據(jù)這個模型進(jìn)行協(xié)議的設(shè)計和實現(xiàn),實現(xiàn)互操作性和可擴(kuò)展性。
OSI七層模型既復(fù)雜又不實用: 所以O(shè)SI七層模型沒有落地、實現(xiàn)。
實際組建網(wǎng)絡(luò)時,只是以O(shè)SI七層模型設(shè)計中的部分分層,也即是以下TCP/IP五層(或四層)模型來實現(xiàn)。
?
TCP/IP五層(或四層)模型
TCP/IP是一組協(xié)議的代名詞,它還包括許多協(xié)議,組成了TCP/IP協(xié)議簇。
TCP/IP通訊協(xié)議采用了5層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。
- 應(yīng)用層:?負(fù)責(zé)應(yīng)用程序間溝通,如簡單電子郵件傳輸(SMTP) 、文件傳輸協(xié)議(FTP) 、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet) 等。我們的網(wǎng)絡(luò)編程主要就是針對應(yīng)用層。
- 傳輸層:?負(fù)責(zé)兩臺主機(jī)之間的數(shù)據(jù)傳輸。如傳輸控制協(xié)議(TCP), 能夠確保數(shù)據(jù)可靠的從源主機(jī)發(fā)送到目標(biāo)主機(jī)。
- 網(wǎng)絡(luò)層:?負(fù)責(zé)地址管理和路由選擇。例如在IP協(xié)議中,通過IP地址來標(biāo)識一臺主機(jī),并通過路由表的方式規(guī)劃出兩臺主機(jī)之間的數(shù)據(jù)傳輸?shù)木€路(路由) 。路由器(Router) 工作在網(wǎng)路層。
- 數(shù)據(jù)鏈路層:?負(fù)責(zé)設(shè)備之間的數(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ù)鏈路層。
-
物理層:?負(fù)責(zé)光/電信號的傳遞方式。比如現(xiàn)在以太網(wǎng)通用的網(wǎng)線(雙絞線)、早期以太網(wǎng)采用的的同軸電纜(現(xiàn)在主要用于有線電視)、光纖, 現(xiàn)在的wifi無線網(wǎng)使用電磁波等都屬于物理層的概念。物理層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等。集線器(Hub) 工作在物理層。
?
物理層我們考慮的比較少。因此很多時候也可以稱為 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)了物理層;
?
????????注意我們這里說的是傳統(tǒng)意義上的交換機(jī)和路由器,也稱為二層交換機(jī)(工作在TCP/IP五層模型的下兩層)、三層路由器(工作在TCP/IP五層模型的下三層)。
????????隨著現(xiàn)在網(wǎng)絡(luò)設(shè)備技術(shù)的不斷發(fā)展,也出現(xiàn)了很多3層或4層交換機(jī), 4層路由器。我們以下說的網(wǎng)絡(luò)設(shè)備都是傳統(tǒng)意義上的交換機(jī)和路由器。
網(wǎng)絡(luò)分層對應(yīng)
網(wǎng)絡(luò)數(shù)據(jù)傳輸時,經(jīng)過不同的網(wǎng)絡(luò)節(jié)點(主機(jī)、路由器)時,網(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é)議處理。
?
下圖為數(shù)據(jù)封裝的過程
下圖為數(shù)據(jù)分用的過程
下面示對封裝和分用過程的一個舉例:?
分用?
文章來源:http://www.zghlxwxcb.cn/news/detail-821500.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-821500.html
到了這里,關(guān)于【JavaEE】網(wǎng)絡(luò)原理:網(wǎng)絡(luò)中的一些基本概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!