【JavaEE】網絡原理之初識

1.????前言~🥳🎉🎉🎉

Hello, Hello~ 親愛的朋友們👋👋,這里是E綿綿呀????。

如果你喜歡這篇文章,請別吝嗇你的點贊????和收藏📖📖。如果你對我的內容感興趣,記得關注我👀👀以便不錯過每一篇精彩。

當然,如果在閱讀中發現任何問題或疑問,我非常歡迎你在評論區留言指正🗨?🗨?。讓我們共同努力,一起進步!

加油,一起CHIN UP!💪💪

🔗個人主頁:E綿綿的博客
📚所屬專欄:

1.?JAVA知識點專欄

? ? ?? ?深入探索JAVA的核心概念與技術細節

2.JAVA題目練習

? ? ? ??實戰演練,鞏固JAVA編程技能

3.c語言知識點專欄

? ? ? ? 揭示c語言的底層邏輯與高級特性

4.c語言題目練習

? ? ? ? 挑戰自我,提升c語言編程能力

5.Mysql數據庫專欄

? ? ? ? 了解Mysql知識點,提升數據庫管理能力

6.html5知識點專欄

? ? ? ? 學習前端知識,更好的運用它

7.?css3知識點專欄

? ? ? ? 在學習html5的基礎上更加熟練運用前端

8.JavaScript專欄

? ? ? ? 在學習html5和css3的基礎上使我們的前端使用更高級、

9.JavaEE專欄

? ? ? ? 學習更高階的Java知識,讓你做出網站

📘 持續更新中,敬請期待????

2.局域網與廣域網?

隨著時代的發展,越來越需要計算機之間互相通信,共享軟件和數據,即以多個計算機協同工作來完成業務,就有了網絡互連。

網絡互連:將多臺計算機連接在一起,完成數據共享。

數據共享本質是網絡數據傳輸,即計算機之間通過網絡來傳輸數據,也稱為網絡通信。

根據網絡互連的規模不同,可以劃分為局域網和廣域網

局域網是本地,局部組建的一種私有網絡。

局域網內的主機之間能方便的進行網絡通信,又稱為內網;局域網和局域網之間在沒有連接的情況下,是無法通信的。

下面是局域網的一種實現方式:


其能通過路由器去使幾臺電腦去連接在一塊,但數量是有限的。

一般家用路由器,常見的是5 個網口:1WAN + 4LAN
要想讓這幾個電腦能夠在同一個局域網中上網,就需要把他們連接到LAN 口,WAN 口是用來連上級的路由器的。

那么能不能讓一個路由器連接的電腦更多呢?

有個叫交換機的東西: 可以擴展路由器的端口,我們把路由器的LAN口連在交換機上,交換機上有一定數量的LAN口從而可以連一定數量的電腦,這樣就可以擴展電腦的數量。


除此之外還有上級路由器連多個下級路由器,從而更多電腦連接在一塊。

那么如果我們在上述設備層層連接之下,就可以構成更復雜的網絡結構了,把更多更多的局域網連接到一起,構成的網絡更加龐大,可能已經覆蓋了一個城市,一個國家,就叫廣域網。


對于廣域網和局域網的定義沒有準確的數量要求。(我們感覺非常多的電腦(10w臺這種)連接在一塊就是可以稱為廣域網)

3. IP地址和端口號

IP地址描述了一個設備,在網絡上的地址,
生活中: 江西省南昌市新建區江西財經大學

而在計算機中: 使用一個 32 位, 4 字節數字, 表示地址
一般來說,我們會把 IP 地址給表示成 4 個 0-255 之間的十進制數字,并且使用 3個點進行分隔.點分十進制(192.168.2.100)

在網絡通信中,IP地址用于標識主機網絡地址,端口號可以標識主機中發送數據、接收數據的程序。簡單說:端口號用于定位主機中的程序。

類似發送快遞時,不光需要指定收貨地址(IP地址),還需要指定收貨人(端口號)

格式為:

端口號是0~65535范圍的數字(兩個字節),在網絡通信中,程序可以通過綁定一個端口號,來發送及接收網絡數據
注意事項:

兩個不同的程序,不能綁定同一個端口號,但一個進程可以綁定多個端口號

特殊說明:? ? ? ? ? ? ? ?

1-1023 (0不用作端口號)這個范圍的端口號,系統留作特殊用途,咱們寫的程序不應該占用
知名端口號,這些留給一些比較常見的服務器程序進行使用的(都是系統必要的)

22 => ssh
80 => http
443 => https
23 => telnet?

4.網絡協議?

網絡協議是網路通信中的規則和標準,它用于定義網絡通信中數據的傳輸方式、數據包的結構、數據包中的信息內容以及通信雙方的行為等。只有統一規范好了網絡協議(規則),電腦們之間才能通信成功。

5.協議分層?

網絡通信,是一個非常復雜的事情,這個過程中涉及到很多的細節問題.
如果你使用一個協議來約定上述所有的細節,這個協議就會非常龐大,非常復雜.此時,就可以把一個功能復雜的協議,拆分成多個功能更單一的協議來解決各個小問題。
但是拆出來的協議太多了,如果放在一塊就變得很復雜,所以就對這些協議進行分類,甚至要進行協議分層,把很多協議,按照功能分成不同的層級,每個層級都有對應的主線任務,并且上層協議還能調用下層協議(這個后面會說它的具體體現)

協議進行分層后各個層級的內部操作就不會干擾到其他層級,更加靈活獨立。

協議分層有兩種模型:

osi?七層網絡模型? 僅僅是出現在教科書中。現在基本沒有了,所以不詳細講述。
TCP/IP 五層網絡模型? ? osi七層模型的簡化版本,現在基本都是該模型,所以我們會對它進行詳細描述。?

TCP/IP通訊協議采用了5層的層級結構:

1.應用層:負責應用程序對數據的處理(發送或者接受等),我們的網絡編程主要就是針對應用層,我們對該數據的處理決定了系統用什么網絡協議應對該處理。


2.傳輸層:在應用層決定了用什么網絡協議后,傳輸層也會決定用對應的網絡協議處理。(體現了上一層對下一層的調用),傳輸層常見的協議包括TCP、UDP、SCTP和DCCP。

這些協議主要是決定數據傳輸的起點和終點(還有其他功能,之后會說)


3.網絡層:在傳輸層決定了用什么網絡協議后,網絡層也會決定用對應的網絡協議處理。(體現了上一層對下一層的調用),常見的協議包括IP、ICMP、IGMP、ARP、RIP、OSPF和BGP等。這些協議主要是進行路徑規劃,選出合適的路徑。(還有其他功能,之后會說),例如在IP協議中,通過IP地址來標識一臺主機,并通過路由表的方式規劃出兩臺主機之間的數據傳輸的線路。路由器工作在網路層。


4. 數據鏈路層:在網絡層決定了用什么網絡協議后,數據鏈路層也會決定用對應的網絡協議處理。(體現了上一層對下一層的調用),常見的協議包括以太網協議、PPP、HDLC、FDDI和Wi-Fi等。數據鏈路層協議主要是確定電腦用什么方式傳輸數據。? 交換機工作在數據鏈路層。


5.物理層:在數據鏈路層決定了用什么網絡協議后,物理層也會決定用對應的網絡協議處理(體現了上一層對下一層的調用)。常見的物理層協議包括以太網物理層、USB、PCIe、HDMI、光纖通信協議,物理層協議主要是對網絡通信的硬件設備進行要求,比如使用的網線,光纖都應該是啥規格。集線器工作在物理層。


我們發現層數越低,它們的功能就越是底層,越是細節,反而最高層的應用層就比較宏觀了,會使用就行(這是因為有下一層的給你提供底層支持,本層就不需要那么多細節)。

對于這些網絡協議,前三層都是由操作系統內核創建的,后兩層都是驅動程序+硬件創建的。并且它們的創建是電腦誕生之時就自帶的,我們進行網絡通行操作時并不能創建出來協議,而是系統在眾多已存在的協議中挑選出一個適合處理該行為的協議。?

對于每一個電腦來說都只有一個唯一的協議分層。?

物理層我們考慮的比較少。因此很多時候也可以稱為 TCP/IP四層模型。?

6.網絡設備所在分層?

對于一臺主機,它實現了從傳輸層到物理層的內容,也即是TCP/IP五層模型的五層

對于一臺路由器,它實現了從網絡層到物理層,也即是TCP/IP五層模型的下三層;

對于一臺交換機,它實現了從數據鏈路層到物理層,也即是TCP/IP五層模型的下兩層;

對于集線器,它只實現了物理層;

(這是個很經典的面試題,記住就行)

注意我們這里說的是傳統意義上的交換機和路由器,也稱為二層交換機(工作在TCP/IP五層模型的下兩層)、三層路由器(工作在TCP/IP五層模型的下三層)。隨著現在網絡設備技術的不斷發展,也出現了很多3層或4層交換機,4層路由器。我們以下說的網絡設備都是傳統意義上的交換機和路由器。

7.數據的封裝和分用?

當我們將一個數據從一個主機傳輸給另一個主機時,該數據是怎樣進行傳輸的??

我們通過協議分層去傳輸,在確定好協議分層相對應的各個協議后,數據會從應用層一直傳輸到物理層,通過網絡再到另一個電腦的物理層,而后一直傳輸到另一個電腦的應用層,從而成功接受信息。

那么數據在傳輸過程中會不會發生變化?

答案是會的,因為協議不僅會有像“決定數據傳輸的起點和終點”這種功能,還有能規定數據包的結構這種功能,所以數據會因為協議的規定而變化結構。

數據的變化我們分為數據包的封裝和數據包的分用.

數據包的封裝是指在數據從高層向低層傳遞的過程中,每一層協議都會在數據包的前面添加自己的控制信息(頭部),有時也會在數據包的后面添加一些信息(尾部)。這個過程就像是給數據包加上了一個個的“信封”,每個“信封”包含了該層協議所需的信息,以便在接收方正確地解析和處理數據包。(前面提了之所以變化結構是因為協議規定了數據只允許用協議允許的結構存在,所以不得不變化結構)

封裝的過程通常包括以下幾個步驟:

  1. 應用層:應用層協議(如HTTP、FTP等)將用戶數據打包,并添加自己的頭部信息,如請求方法、URL、HTTP版本等。

  2. 傳輸層:傳輸層協議(如TCP、UDP等)接收來自應用層的數據包,并添加自己的頭部信息,如源端口號、目的端口號等。如果是TCP,還會添加序列號、確認號等信息。

  3. 網絡層:網絡層協議(如IP)接收來自傳輸層的數據包,并添加自己的頭部信息,如源IP地址、目的IP地址等。

  4. 數據鏈路層:數據鏈路層協議(如以太網)接收來自網絡層的數據包,并添加自己的頭部信息,如源MAC地址、目的MAC地址等,同時也會添加尾部信息,如幀校驗序列(FCS)。

  5. 物理層:物理層將數據鏈路層的數據包轉換為物理信號(如電信號、光信號等),在物理介質中傳輸。

數據包的分用是指在數據從低層向高層傳遞的過程中,每一層協議都會剝離自己添加的控制信息(頭部和尾部),并將剩余的數據包傳遞給上一層協議。這個過程就像是拆開一個個的“信封”,逐層解析數據包,直到最終將用戶數據傳遞給應用層。(前面提了之所以變化結構是因為協議規定了數據只允許用協議允許的結構存在,所以不得不變化結構)

分用的過程通常包括以下幾個步驟:

  1. 物理層:物理層將物理信號轉換回數據鏈路層的數據包。

  2. 數據鏈路層:數據鏈路層接收來自物理層的數據包,剝離自己的頭部和尾部信息,將剩余的數據包傳遞給網絡層。

  3. 網絡層:網絡層接收來自數據鏈路層的數據包,剝離自己的頭部信息,將剩余的數據包傳遞給傳輸層。

  4. 傳輸層:傳輸層接收來自網絡層的數據包,剝離自己的頭部信息,將剩余的數據包傳遞給應用層。

  5. 應用層:應用層接收來自傳輸層的數據包,剝離自己的頭部信息,將最終的用戶數據呈現給用戶或應用程序。

不同的協議層對數據包有不同的稱謂,在傳輸層叫做段,在網絡層叫做數據報,在鏈路層叫做幀。?

下圖是對于數據的封裝很好的體現。

?

上圖就是數據的封裝,把該圖反過來看就是數據的分用了。?

對于數據包從上一層傳遞到下一層或者數據包從下一層傳遞到上一層 都體現了上一層對下一層的調用。?

?8.數據包和五元組

在剛才的文章中我總是提到數據包,那數據包到底是什么呢?和數據有什么區別?

  • 數據:數據是指未經處理或未按特定方式組織的信息。

  • 數據包數據包是數據在網絡中傳輸時的基本單位,它是由數據和控制信息組成的。數據包的結構和格式由所使用的網絡協議決定,通常包括頭部(控制信息)和負載(數據)兩部分。

由于我們剛學了封裝和分用,可以說數據在傳輸前需要被封裝成數據包,才能在網絡中傳輸。所以數據包以后是絕對經常接觸的,這里了解一下它的概念。

五元組的組成如下:

  1. 源IP地址:發送數據包的設備的IP地址。

  2. 源端口:發送數據包的設備上的應用程序所使用的端口號。

  3. 目的IP地址:接收數據包的設備的IP地址。

  4. 目的端口:接收數據包的設備上的應用程序所使用的端口號。

  5. 傳輸層協議這次網絡通信傳輸層所使用的協議,例如TCP或UDP。

通過這五個信息的組合,我們可以唯一地標識一個網絡連接或會話。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/diannao/73419.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/diannao/73419.shtml
    英文地址,請注明出處:http://en.pswp.cn/diannao/73419.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    操作系統-八股

    進程基礎: 進程定義:運行中的程序,有獨立的內存空間和地址,是系統進行資源調度和分配的基本單位。 并發,并行 并發就是單核上面輪詢,并行就是同時執行(多核); 進程上下…

    ffmpeg面試題整理

    1. 基礎概念 問題:FFmpeg 是什么?它的核心功能有哪些? 編解碼:支持幾乎所有音視頻格式(如 H.264, AAC, MP3)。轉換:在不同容器格式之間轉換(如 MP4 → MKV)。流處理&…

    chrome瀏覽器插件拓展捕獲頁面的響應體內容

    因為chrome extension官方沒有的直接獲取響應體的方法,所以需要自己實現方法來獲取,實現的方式有很多種,這是記錄的第二種,第一種就是使用vconsole來實現,vconsole是一個開源框架,一個輕量、可拓展、針對手…

    探索天然分子swertiamarin調控脂肪生成的新機制

    隨著生活方式的改變和環境的惡化,糖尿病這一全球性健康挑戰日益嚴峻。據世界衛生組織統計,全球糖尿病患者數量不斷攀升,其中2型糖尿病(T2DM)占據了絕大多數。T2DM不僅影響患者的生活質量,還給醫療系統帶來了…

    沐數科技數據開發崗筆試題2025

    描述性統計 標準差 答案: A 解析: 標準差 衡量數據集中數值變化或離散程度的一種度量。它反映了數據集中的各個數值與數據集的平均值(均值)之間的偏離程度。標準差越大,表明數據的分布越分散;標準差越小,表明數據…

    Java 集合遍歷過程中修改數據觸發 Fail-Fast 機制 ,導致報ConcurrentModificationException異常

    Java Fail-Fast 機制 Fail-Fast 機制是 Java 集合框架中的一種錯誤檢測機制,用于在遍歷集合時檢測結構修改。如果在迭代器創建之后,集合被修改(例如添加或刪除元素),并且這種修改不是通過迭代器自身的 remove() 方法進…

    Qt-ZMQ的使用補充(pub-sub)

    之前寫過一篇Qt使用ZMQ的博客Qt網絡編程-ZMQ的使用,本文是其的補充部分。 Linux上編譯使用 首先這次實在Linux上進行演示,下載zmq源碼,安裝cmake,使用cmake進行編譯。下載之后解壓: 輸入命令: cd ..mkdi…

    C++的名稱空間

    C++的名稱空間(namespace)是一種用于組織代碼、防止命名沖突的機制。以下是名稱空間的詳細說明和使用建議: 1. 名稱空間的定義 使用namespace關鍵字定義,內部可包含變量、函數、類等: namespace MyNamespace {int a;void func() {} }2. 訪問方式 作用域解析運算符:::顯…

    記錄致遠OA服務器硬盤升級過程

    前言 日常使用中OA系統突然卡死,刷新訪問進不去系統,ping服務器地址正常,立馬登錄服務器檢查,一看磁盤爆了。 我大腦直接萎縮了,誰家OA系統配400G的空間啊,過我手的服務器沒有50也是30臺,還是…

    [測試]自動化的概念 及使用Selenium實現Web自動化測試

    文章目錄 1. 自動化1.1 自動化概念1.2 自動化分類1.2.1 接口自動化1.2.2 UI自動化 1.3 自動化測試金字塔 2. Web自動化測試2.1 驅動 3. Selenium3.1 一個簡單的Web自動化示例3.2 Selenium 驅動 瀏覽器的工作原理 1. 自動化 1.1 自動化概念 自動化是指自動地代替人的行為完成…

    Python教程(三):類對象、閉包、裝飾器、類型注解、MRO

    Python總結(三) 本系列其他教程: Python教程(一):基本語法、流程控制、數據容器 Python教程(二):函數、異常、模塊&包、文件讀取、常用模塊 文章目錄 Python總結(三)一、類&對象1.1 成…

    什么是 HTML?

    HTML 是用來描述網頁的一種語言。 HTML 指的是超文本標記語言: HyperText Markup LanguageHTML 不是一種編程語言,而是一種標記語言標記語言是一套標記標簽 (markup tag)HTML 使用標記標簽來描述網頁HTML 文檔包含了HTML 標簽及文本內容HTML文檔也叫做 web 頁面 HT…

    【Hadoop】Hadoop的簡要介紹

    Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,主要用于解決海量數據的存儲及分析計算問題。以下是對Hadoop的詳細介紹: 目錄 一、Hadoop的起源與發展 二、Hadoop的核心組件 1.HDFS: 2.MapReduce: 3.YARN&#xff…

    如何用AI制作PPT,輕松實現高效演示

    如何用AI制作PPT,輕松實現高效演示!在今天這個快節奏的時代,我們的工作方式越來越依賴智能工具。而當涉及到演示文稿時,傳統的PPT制作方式往往繁瑣且耗時。很多人一提到制作PPT就頭大,特別是在內容需要多次修改、調整布…

    Canoe Panel基礎功能介紹

    文章目錄 一、新建 Panel 面板二、添加 Panel 面板三、刪除 Panel 面板四、Panel視圖(views)五、控件布局1. 對齊布局2. 控件大小布局 六、Panel 屬性設置1. 設置背景色和背景圖片2. 調整 Panel 畫布大小 提示:如何使用 Panel 面板參考 CANoe…

    超聲重建,3D重建 超聲三維重建,三維可視化平臺 UR 3D Reconstruction

    1. 超聲波3D重建技術的實現方法與算法 技術概述 3D超聲重建是一種基于2D超聲圖像生成3D體積數據的技術,廣泛應用于醫學影像領域。通過重建和可視化三維結構,3D超聲能夠顯著提高診斷精度和效率,同時減少醫生的腦力負擔。本技術文檔將詳細闡述…

    2.2 企業級ESLint/Prettier規則定制

    文章目錄 1. 為什么需要企業級代碼規范2. 工具選型對比3. 完整配置流程3.1 項目初始化3.2 ESLint深度配置3.3 Prettier精細配置3.4 解決規則沖突4. 高級定制方案4.1 自定義ESLint規則4.2 擴展Prettier插件5. 團隊協作策略5.1 配置共享方案5.2 版本控制策略6. CI/CD集成7. 常見問…

    QT創建項目(項目模板、構建系統、選擇類、構建套件)

    1. 項目模版 項目類型界面技術適用場景核心依賴模塊開發語言Qt Widget ApplicationC Widgets傳統桌面應用(復雜控件)Qt WidgetsCQt Console Application無 GUI命令行工具、服務Qt CoreCQt Quick ApplicationQML/Quick現代跨平臺應用(動畫/觸…

    oracle11.2.0.4 RAC 保姆級靜默安裝(二) DB數據庫軟件

    1.響應文件配置 [rootdb11g1 software]# su - oracle [oracledb11g1 ~]$ cd /software/database/ [oracledb11g1 database]$ cd response/ [oracledb11g1 response]$ vi db_install.rsp oracle.install.optionINSTALL_DB_SWONLY ORACLE_HOSTNAMEdb11g1 UNIX_GROUP_NAME…

    日語學習-日語知識點小記-構建基礎-JLPT-N4N5階段(22):給與和得到相關用法

    日語學習-日語知識點小記-構建基礎-JLPT-N4&N5階段(22):給與和得到相關用法 1、前言(1)情況說明(2)工程師的信仰2、知識點(1) あげます :給(2)もらいます(いただきます) 得到。(3) くれました :主要是給我。3、單詞(1)日語單詞(2)日語片假名…