數據鏈路層、NAT、代理服務、內網穿透

目錄

一. 以太網

?以太網幀格式

?二. MAC地址

?三. MTU

?四. ARP協議

五. NAT

NAPT

六. 代理服務器

正向代理

反向代理

?七. 內網穿透

八. 內網打洞



一. 以太網

? "以太網" 不是一種具體的網絡, 而是一種技術標準; 既包含了數據鏈路層的內 容, 也包含了一些物理層的內容. 例如: 規定了網絡拓撲結構, 訪問控制方式, 傳輸速 率等;

? 例如以太網中的網線必須使用雙絞線; 傳輸速率有 10M, 100M, 1000M 等;

? 以太網是當前應用最廣泛的局域網技術; 和以太網并列的還有令牌環網, 無線 LAN 等;

?以太網幀格式

?? 源地址和目的地址是指網卡的硬件地址(也叫 MAC 地址), 長度是 48 位,是在網 卡出廠時固化的;

? 幀協議類型字段有三種值,分別對應 IP、ARP、RARP;

? 幀末尾是 CRC 校驗碼。

?二. MAC地址

? MAC 地址用來識別數據鏈路層中相連的節點;

? 長度為 48 位, 及 6 個字節. 一般用 16 進制數字加上冒號的形式來表示(例如: 08:00:27:03:fb:19)

? 在網卡出廠時就確定了, 不能修改. mac 地址通常是唯一的(虛擬機中的 mac 地 址不是真實的 mac 地址, 可能會沖突; 也有些網卡支持用戶配置 mac 地址).

對比IP地址和MAC地址:?

? IP 地址描述的是路途總體的 起點 和 終點;

? MAC 地址描述的是路途上的每一個區間的起點和終點;?

?三. MTU

MTU 相當于發快遞時對包裹尺寸的限制. 這個限制是不同的數據鏈路對應的物理層, 產 生的限制.

? 以太網幀中的數據長度規定最小 46 字節,最大 1500 字節,ARP 數據包的長度不 夠 46 字節,要在后面補填充位;

? 最大值 1500 稱為以太網的最大傳輸單元(MTU),不同的網絡類型有不同的 MTU;

? 如果一個數據包從以太網路由到撥號鏈路上,數據包長度大于撥號鏈路的 MTU 了,則需要對數據包進行分片(fragmentation);

? 不同的數據鏈路層標準的 MTU 是不同的;

MTU 對 IP 協議的影響?

? 將較大的 IP 包分成多個小包, 并給每個小包打上標簽;

? 每個小包 IP 協議頭的 16 位標識(id) 都是相同的;

? 每個小包的 IP 協議頭的 3 位標志字段中, 第 2 位置為 0, 表示允許分片, 第 3 位 來表示結束標記(當前是否是最后一個小包, 是的話置為 1, 否則置為 0);

? 到達對端時再將這些小包, 會按順序重組, 拼裝到一起返回給傳輸層;

? 一旦這些小包中任意一個小包丟失, 接收端的重組就會失敗. 但是 IP 層不會負 責重新傳輸數據;?

?

?MTU 對 UDP 協議的影響

? 一旦 UDP 攜帶的數據超過 1472(1500 - 20(IP 首部) - 8(UDP 首部)), 那么就會 在網絡層分成多個 IP 數據報.

? 這多個 IP 數據報有任意一個丟失, 都會引起接收端網絡層重組失敗. 那么這就 意味著, 如果 UDP 數據報在網絡層被分片, 整個數據被丟失的概率就大大增加了.?

??MTU 對 TCP 協議的影響

? TCP 的一個數據報也不能無限大, 還是受制于 MTU. TCP 的單個數據報的最大 消息長度, 稱為 MSS(Max Segment Size);

? TCP 在建立連接的過程中, 通信雙方會進行 MSS 協商.

? 最理想的情況下, MSS 的值正好是在 IP 不會被分片處理的最大長度(這個長度 仍然是受制于數據鏈路層的 MTU).

? 雙方在發送 SYN 的時候會在 TCP 頭部寫入自己能支持的 MSS 值.

? 然后雙方得知對方的 MSS 值之后, 選擇較小的作為最終 MSS.

? MSS 的值就是在 TCP 首部的 40 字節變長選項中(kind=2);?

?四. ARP協議

? 在網絡通訊時,源主機的應用程序知道目的主機的 IP 地址和端口號,卻不知道目 的主機的硬件地址;

? 數據包首先是被網卡接收到再去處理上層協議的,如果接收到的數據包的硬件 地址與本機不符,則直接丟棄;

? 因此在通訊前必須獲得目的主機的硬件地址;

?? 源主機發出 ARP 請求,詢問“IP 地址是 192.168.0.1 的主機的硬件地址是多少”, 并將這個請求廣播到本地網段(以太網幀首部的硬件地址填 FF:FF:FF:FF:FF:FF 表示 廣播);

? 目的主機接收到廣播的 ARP 請求,發現其中的 IP 地址與本機相符,則發送一個 ARP 應答數據包給源主機,將自己的硬件地址填寫在應答包中;

? 每臺主機都維護一個 ARP 緩存表,可以用 arp -a 命令查看。緩存表中的表項有過期時間(一般為 20 分鐘),如果 20 分鐘內沒有再次使用某個表項,則該表項失效,下 次還要發 ARP 請求來獲得目的主機的硬件地址

?數據報的格式

? 注意到源 MAC 地址、目的 MAC 地址在以太網首部和 ARP 請求中各出現一次, 對于鏈路層為以太網的情況是多余的,但如果鏈路層是其它類型的網絡則有可能是必 要的。

? 硬件類型指鏈路層網絡類型,1 為以太網;

? 協議類型指要轉換的地址類型,0x0800 為 IP 地址;

? 硬件地址長度對于以太網地址為 6 字節;

? 協議地址長度對于和 IP 地址為 4 字節;

? op 字段為 1 表示 ARP 請求,op 字段為 2 表示 ARP 應答。?

?注意全F是廣播的意思。

處理任何的arp都必須先看op字段(是請求還是應答)。在一段時間內會記錄下來局域網中的ip地址與mac地址的映射關系。?

五. NAT

? NAT 能夠將私有 IP 對外通信時轉為全局 IP. 也就是就是一種將私有 IP 和全局 IP 相互轉化的技術方法:

? 很多學校, 家庭, 公司內部采用每個終端設置私有 IP, 而在路由器或必要的服務 器上設置全局 IP;

? 全局 IP 要求唯一, 但是私有 IP 不需要; 在不同的局域網中出現相同的私有 IP 是完全不影響的;

?? NAT 路由器將源地址從 10.0.0.10 替換成全局的 IP 202.244.174.37;

? NAT 路由器收到外部的數據時, 又會把目標 IP 從 202.244.174.37 替換回 10.0.0.10;

? 在 NAT 路由器內部, 有一張自動生成的, 用于地址轉換的表;

? 當 10.0.0.10 第一次向 163.221.120.9 發送數據時就會生成表中的映射關系;

NAPT

那么問題來了, 如果局域網內, 有多個主機都訪問同一個外網服務器, 那么對于服務器返 回的數據中, 目的 IP 都是相同的. 那么 NAT 路由器如何判定將這個數據包轉發給哪個 局域網的主機?

引入端口號:?

?

六. 代理服務器

正向代理

? 正向代理(Forward Proxy)是一種常見的網絡代理方式,它位于客戶端和目標 服務器之間,代表客戶端向目標服務器發送請求。正向代理服務器接收客戶端的請 求,然后將請求轉發給目標服務器,最后將目標服務器的響應返回給客戶端。通過這 種方式,正向代理可以實現多種功能,如提高訪問速度、隱藏客戶端身份、實施訪問 控制等。

?

工作原理:?

? 客戶端將請求發送給正向代理服務器。

? 正向代理服務器接收請求,并根據配置進行處理,如緩存查找、內容過濾等。

? 正向代理服務器將處理后的請求轉發給目標服務器。

? 目標服務器處理請求,并將響應返回給正向代理服務器。

? 正向代理服務器將響應返回給客戶端。?

功能:?

?? 緩存功能:正向代理服務器可以緩存經常訪問的資源,當客戶端再次請求這些資 源時,可以直接從緩存中獲取,提高訪問速度。

? 內容過濾:正向代理可以根據預設的規則對請求或響應進行過濾,如屏蔽廣告、 阻止惡意網站等。

? 訪問控制:通過正向代理,可以實現對特定網站的訪問控制,如限制員工在工作 時間訪問娛樂網站。

? 隱藏客戶端身份:正向代理可以隱藏客戶端的真實 IP 地址,保護客戶端的隱私。

? 負載均衡:在多個目標服務器之間分配客戶端請求,提高系統的可擴展性和可靠 性。

反向代理

?? 反向代理服務器是一種網絡架構模式,其作為 Web 服務器的前置服務器,接收來自客戶端的請求,并將這些請求轉發給后端服務器,然后將后端服務器的響應返回 給客戶端。這種架構模式可以提升網站性能、安全性和可維護性等

基本原理 :

?? 反向代理服務器位于客戶端和 Web 服務器之間,當客戶端發起請求時,它首先會到達反向代理服務器。反向代理服務器會根據配置的規則將請求轉發給后端的 Web 服務器,并將 Web 服務器的響應返回給客戶端。在這個過程中,客戶端并不知道實際 與哪個 Web 服務器進行了交互,它只知道與反向代理服務器進行了通信。

動靜分離:在大型網站中,通常需要將靜態資源和動態資源分開處理。通過將靜 態資源部署在反向代理服務器上,可以直接從反向代理服務器返回靜態資源的響應, 而無需再次向后端服務器發起請求。這可以大大提升靜態資源的訪問速度。

?七. 內網穿透

內網穿透是一種技術,允許外部網絡直接訪問內網中的設備或服務,繞過NAPT或防火墻的限制。通常用于遠程控制、文件共享或搭建服務器等場景。

  • 工作原理:通過第三方服務器(中繼)或工具(如frp、Ngrok)建立隧道,將外網請求轉發到內網設備。內網設備主動與中繼服務器保持連接,外部流量通過中繼服務器到達內網。
  • 應用場景:適用于需要從外網訪問內網服務的場景,如遠程辦公、智能家居控制。
  • 優勢:無需配置路由器端口映射,適合動態IP或受限NAT環境。

八. 內網打洞

內網打洞(NAT Traversal)是一種通過技術手段繞過網絡地址轉換(NAT)限制,實現不同內網設備直接通信的方法。由于IPv4地址短缺,多數設備通過NAT共享公網IP,導致內網設備無法被外部直接訪問。內網打洞通過中間服務器輔助或協議協商,建立點對點(P2P)連接。

一個主播主機ip是1.2.3.4,一個用戶是4.3.2.1。現在它們都要訪問一個直播平臺,這個直播平臺直接把它們的IP地址給交換了,使主播的直播畫面,信息等不經過平臺的服務器,直接把畫面推送給用戶。

?

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

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

相關文章

Rust在CentOS 6上的移植

Rust已不支持Cent OS 6 rhel是Redhat 發布的Red Hat Enterprise Linux的簡稱,使用rhel源代碼編譯的CentOS,最新的版本是CentOS 7,于2024年停止支持。而更古老的CentOS 6,則在2020年就已經結束了。 而面對如此老舊的系統&#xf…

C++音視頻開發:基礎面試題

音視頻領域技術門檻高,學習資料稀缺,體系化書籍和開發工具有限,新手入門困難。音視頻開發涉及眾多任務:音頻(采集、編解碼、降噪等)、視頻(采集、編解碼、圖像處理)、實時傳輸&#…

C++刷題 - 7.27

貪心算法的詳細邏輯這個問題的最優解可以用 貪心算法 在 O(N) 時間 內解決。它的核心思想是:每次操作盡可能覆蓋最長的連續非零區間,并通過數學分析發現:最小操作次數等于所有“上升臺階”的高度差之和。1. 直觀理解假設 steps [1, 2, 3, 2,…

音頻3A處理簡介之AGC(自動增益控制)

在音頻通話和視頻會議中,音頻自動增益控制AGC模塊的主要作用:? 穩定音頻信號的輸出電平。無論麥克風采集信號的強弱(如用戶離麥克風遠近程度不同),盡可能保證音頻采集模塊的輸出音量保持相對一致,不會偏大…

web前端打包apk包

我用的是HBuilder工具,可視化更便捷,目前我這操作的apk包是不需要上架的,所以跟實際需要上架的可能還有些出入 首先先新建個項目,選擇5App模式 把目前需要打包的內容上傳到服務器,我們以嵌套的形式進行打包,找到index.…

Ansible提權sudo后執行報錯

1.問題 配置了sudo提權信息后,執行ansible-play報錯,報錯信息如下:2.原因 sudo沒有執行**/bin/sh的權限,而ansible腳本中依賴/bin/sh**,所以報錯了: 查看日志sudo tail -f /var/log/secure3.解決方式 修改*…

.NET報表控件ActiveReports發布v19.0——正式兼容 .NET 9

ActiveReports 是一款專注于 .NET 和 .NET Core 平臺的報表控件。通過拖拽式報表設計器,可以快速地設計 Excel表格、Word文檔、圖表、數據過濾、數據鉆取、精準套打等類型報表,全面滿足 WinForm、ASP.NET、ASP.NET MVC、WPF 平臺中各種報表的開發需要。同…

SCI論文選詞煉句

標準句子不能啰嗦;詞不能有問題,得是SCI中經常出現的,符合上下文的。SCI論文中常出現的摸棱兩可的詞單詞涵義例子Architecture指 整體系統設計方案,如網絡層次結構、模塊組合、激活函數選擇等深度學習模型架構Structure更泛泛&…

Qt deleteLater 延遲刪除原理

deleteLater 調用 事件發送 void QObject::deleteLater() {QCoreApplication::postEvent(this, new QDeferredDeleteEvent()); }首先該對象繼承QObject調用deleteLater, 內部會發送刪除事件QCoreApplication::postEvent(this, new QDeferredDeleteEvent()) 到事件循…

TypeScript SDK 升級:通過 Upload Relay 賦能更多應用

自 3 月主網上線以來,Walrus 開發者社區持續展現出強勁的發展勢頭: 當前 Walrus 已存儲超 758 TB 數據,為數百個項目提供支持。在 2025 年 6 月舉辦的 Sui Overflow 黑客松上,Walrus 成為最受歡迎的數據層。該賽事共收到 599 個項…

C#線程同步(二)鎖

目錄 1.lock 2.Monitor 3.鎖的其它要注意的問題 3.1同步對象的選擇 3.2什么時候該上鎖 3.3鎖和原子性 3.4嵌套鎖 3.5 死鎖 3.6 性能 4.Mutex 5.Semaphore 1.lock 讓我們先看一段代碼: class ThreadUnsafe {static int _val1 1, _val2 1;static void G…

鴻蒙智能居家養老系統構思(續二)—— 適老化烹飪中心詳細構思

一、背景在“寫給華為鴻蒙智家 —— 智能居家養老系統構思”一文中,結合對居家養老的理解及個人體驗,提出了基于鴻蒙OS實現居家養老系統的粗略構思。其中包含“吃得好”。當老人到了不能隨性外出活動、只能在家消耗時光時,除了一些看看電視、…

高斯透鏡公式(調整鏡頭與感光元件之間的距離時,使得不同距離的物體在感光元件上形成清晰的影像)

當使用定焦鏡頭時,仍然可以調整鏡頭與感光元件(或膠片)之間的距離時,使得不同距離的物體在感光元件上形成清晰的影像。對此可以用高斯透鏡公式進行解釋: 一、透鏡成像的基本原理 在光學中,一個基本的公式是…

預過濾環境光貼圖制作教程:第三階段 - GGX 分布預過濾

核心目標 GGX 分布是 PBR 中模擬粗糙表面高光反射的主流模型,其核心是通過統計分布描述微表面的朝向概率。本階段的目標是: 基于第一階段生成的環境圖集,預計算 6 個級別的 GGX 過濾結果(對應不同粗糙度); 使用蒙特卡洛采樣(Monte Carlo Sampling)加速 GGX 卷積計算;…

Spring框架與AutoCAD結合應用

什么是AutoCAD? AutoCAD簡介 AutoCAD是由美國Autodesk公司開發的計算機輔助設計(CAD)軟件,廣泛應用于建筑、工程、制造、產品設計等領域。它支持2D繪圖和3D建模,提供精確的圖形工具和自動化功能,幫助用戶高效創建技術圖紙和模型。 主要功能 2D繪圖:提供直線、圓弧、多…

Java 學習筆記:常用類、String 與日期時間處理

作為一名名 Java 初學者,最近在學習過程中整理了一些關于常用類、String 類以及日期時間處理的知識點。這些內容是 Java 基礎中的重點,也是日常編程練習中頻繁用到的工具,掌握它們能讓我們在寫代碼時更加得心應手。今天把這些筆記分享出來&am…

Android常用的adb和logcat命令

ADB ADB,即 Android Debug Bridge 是一種允許模擬器或已連接的 Android 設備進行通信的命令行工具,它可為各種設備操作提供便利,如安裝和調試應用,并提供對 Unix shell(可用來在模擬器或連接的設備上運行各種命令&…

重學JS-001 --- JavaScript算法與數據結構(一)JavaScript 基礎知識

文章目錄 變量 變量命名規則 變量命名 let vs const 變量使用范圍 賦值 = 控制臺輸出 運算符 ++ -- == === !== 注釋 轉義字符 數據類型 7種 原始數據類型 1. string?? 2. number?? 3. ??boolean?? 4. null?? 5. undefined?? 6. ??symbol??(ES6 新增) 7. big…

MySQL數據閃回工具my2sql的使用

場景: 當你或者其它人員誤操作數據庫不小心刪除或者更新了一批數據,但是是當時又沒事先備份時,你可以 用這個 my2sql工具快速幫你找回數據。就是如此的絲滑。但是要注意的是只限于dml語句,所以我們在操作數據庫前必需先備份哦&…

9.1無法恢復的錯誤與 panic!

無法恢復的錯誤與 panic! 有時你的代碼中會發生嚴重問題,而你無能為力。在這些情況下,Rust 提供了 panic! 宏。實際上,有兩種方式會導致 panic:一種是執行某個操作使代碼產生 panic(例如訪問數組越界)&…