網絡層協議:IP

目錄

1、概念

2、關鍵組成部分

2.1 IP地址

2.1.1 概念

2.1.2 主要版本

2.1.3 IP地址分類

2.2 IP數據報(IP協議傳輸的基本數據單元)

3、工作原理

3.1 路由

3.2 分片與重組

4、相關協議


1、概念

目的:負責在復雜的網絡環境中將數據包從源主機路由傳遞到目標主機。

定位:位于TCP/IP模型的網絡層(或OSI模型的第3層),在傳輸層(如TCP, UDP)之下,數據鏈路層(如以太網, Wi-Fi)之上。

概念:提供跨越不同物理網絡的邏輯尋址路由功能,屏蔽底層網絡技術的差異(如以太網、Wi-Fi、PPP、光纖等),使上層協議(TCP, UDP, ICMP等)無需關心數據包如何穿越各種物理網絡。

特性:無連接、不可靠服務

  • 無連接:?發送數據包前不需要預先建立連接。每個數據包(IP數據報)都是獨立尋路,路徑可能不同

  • 不可靠:?不保證數據包一定能送達目的地,也不保證按順序送達,不保證數據完整性(不提供確認、重傳、流量控制機制)。這些可靠性保障由上層協議(如TCP)或應用程序自身負責。

  • 盡力而為:?不提供帶寬或延遲保證(QoS需額外機制)。

  • 安全性:?原生IP不提供加密和強認證(依賴IPsec或上層協議如TLS)。

作用

①、尋址:每個連接到網絡的設備都有一個唯一的 IP 地址。IP 協議使用這些地址來標識數據包的源地址和目的地址,確保數據包能夠準確地傳輸到目標設備。

②、路由:IP 協議負責決定數據包在網絡傳輸中的路徑。比如說路由器使用路由表和 IP 地址信息來確定數據包的最佳傳輸路徑。

③、分片和重組:當數據包過大無法在某個網絡上傳輸時,IP 協議會將數據包分成更小的片段進行傳輸。接收端會根據頭部信息將這些片段重新組裝成完整的數據包。

2、關鍵組成部分

2.1 IP地址

2.1.1 概念

唯一標識:?每個連接到IP網絡的設備(主機、路由器)都必須有一個唯一的IP地址,用于在網絡中標識自己。

邏輯地址:?與物理地址(如MAC地址)不同,IP地址是軟件配置的,可以變化,用于在更大范圍的網絡中尋址。

2.1.2 主要版本

IPv4:32位二進制數(通常表示為點分十進制,如?192.168.1.1)。

  • 包含?網絡部分?(標識設備所在的網絡) 和?主機部分?(標識網絡內的特定設備)。

  • 通過?子網掩碼?來區分網絡部分和主機部分。

操作二進制示例結果(十進制)
IP地址11000000.10101000.00000001.01100100192.168.1.100
子網掩碼11111111.11111111.11111111.00000000255.255.255.0
網絡號(IP AND 掩碼)11000000.10101000.00000001.00000000192.168.1.0
主機號(IP AND 掩碼取反)00000000.00000000.00000000.011001000.0.0.100

主要問題:

  • 地址枯竭:?32位地址空間(約42.9億)已基本耗盡(通過NAT技術緩解)。

  • 配置復雜:?經常需要DHCP或手動配置。

  • 安全性:?設計之初未充分考慮安全性(依賴IPsec擴展)。

  • QoS支持有限:?依賴ToS字段,支持不夠完善。

  • 報頭設計:?包含選項字段,處理效率較低。

NAT:網絡地址轉換協議,我們知道屬于不同局域網的主機可以使用相同的 IP 地址,從而一定程度上緩解了 IP 資源枯竭的問題,然而主機在局域網中使用的 IP 地址是不能在公網中使用的,當局域網主機想要與公網主機進行通信時,NAT 方法可以將該主機 IP 地址轉換為全球 IP 地址。該協議能夠有效解決 IP 地址不足的問題。

IPv6:?解決IPv4地址枯竭問題,使用128位地址(通常表示為8組4位十六進制數,如?2001:0db8:85a3:0000:0000:8a2e:0370:7334),地址空間極其巨大,并簡化了報頭設計,增強了安全性和移動性。

關鍵改進:

  • 巨大的地址空間:?128位地址(約3.4×103?個地址),徹底解決地址枯竭問題,支持端到端通信(減少NAT依賴)。

  • 簡化的報頭:?固定40字節基本報頭,格式更簡單高效,路由器處理更快。選項功能通過擴展報頭實現。

  • 更好的QoS支持:?流標簽字段便于識別和處理特定數據流。

  • 內建安全:?IPsec支持成為協議標準組成部分(非強制)。

  • 改進的擴展性:?擴展報頭機制更靈活。

  • 自動配置:?SLAAC(無狀態地址自動配置)簡化了主機配置。

  • 更好的移動性支持:?移動IPv6設計更優。

2.1.3 IP地址分類

IP 地址 = {<網絡號>,<主機號>}。

  1. 網絡號:它標志主機所連接的網絡地址表示屬于互聯網的哪一個網絡。
  2. 主機號:它標志主機地址表示其屬于該網絡中的哪一臺主機。

IP 地址分為 A,B,C,D,E 五大類:

  • A 類地址 (1~126):以 0 開頭,網絡號占前 8 位,主機號占后面 24 位。
  • B 類地址 (128~191):以 10 開頭,網絡號占前 16 位,主機號占后面 16 位。
  • C 類地址 (192~223):以 110 開頭,網絡號占前 24 位,主機號占后面 8 位。
  • D 類地址 (224~239):以 1110 開頭,保留為多播地址。
  • E 類地址 (240~255):以 1111 開頭,保留位為將來使用

2.2 IP數據報(IP協議傳輸的基本數據單元)

結構:?由?報頭?和?數據載荷?組成。

報頭關鍵字段:

  • 版本 (Version):?4位,標識IP版本(4或6)。

  • 首部長度 (IHL):?4位,指示IP報頭長度(以32位字為單位)。

  • 服務類型 (ToS / DSCP/ECN):?8位,用于QoS(服務質量),指示數據包的優先級或服務要求(如延遲、吞吐量、可靠性)。

  • 總長度 (Total Length):?16位,整個IP數據報(報頭+數據)的長度(字節)。

  • 標識 (Identification):?16位,用于唯一標識一個數據報或其分片。同一個數據報的所有分片共享相同的標識。

  • 標志 (Flags):?3位:

    • Reserved:保留位。

    • DF (Don't Fragment):為1時表示禁止路由器對此數據報分片。如果數據報太大無法通過下一跳網絡,路由器會丟棄它并發送ICMP錯誤消息。

    • MF (More Fragments):為1時表示這不是最后一個分片(后面還有分片);為0時表示這是最后一個分片或是未分片的數據報。

  • 片偏移 (Fragment Offset):?13位,指示該分片在原數據報數據部分中的相對位置(以8字節為單位)。用于接收方重組分片。

  • 生存時間 (TTL - Time To Live):?8位,數據報在網絡中允許經過的最大路由器跳數。每經過一個路由器,該值減1。當TTL減到0時,數據報被丟棄,并發送ICMP超時消息。主要作用是防止數據報在網絡中無限循環。

  • 協議 (Protocol):?8位,指示數據報載荷中封裝的是哪個上層協議的數據(如TCP=6, UDP=17, ICMP=1)。

  • 首部校驗和 (Header Checksum):?16位,用于檢測IP報頭在傳輸過程中是否發生錯誤。只校驗報頭,不校驗數據部分。每經過一個路由器都需要重新計算。

  • 源IP地址 (Source Address):?32位(IPv4)或128位(IPv6),發送主機的IP地址。

  • 目的IP地址 (Destination Address):?32位(IPv4)或128位(IPv6),接收主機的IP地址。

  • 選項 (Options):?可變長(IPv4),很少使用。在IPv6中被移至擴展報頭。

  • 填充 (Padding):?確保IP報頭長度是32位的整數倍。

數據載荷:?承載的上層協議數據(如TCP段、UDP數據報、ICMP消息)。

3、工作原理

3.1 路由

核心概念:

  • 路由表:?每個主機和路由器都維護一個?路由表,其中包含如何到達不同目標網絡或主機的信息。

  • 路由條目:?通常包含目標網絡地址、子網掩碼、下一跳路由器地址(網關)或出口接口、度量值(優先級)等。

  • 路由協議:?路由器之間運行?路由協議(如RIP, OSPF, BGP)來動態交換網絡可達性信息,自動更新和維護路由表。

轉發過程:

  1. 主機或路由器檢查目標IP地址。

  2. 查找路由表,找到最長前綴匹配的路由條目(即與目標地址網絡部分匹配最長的條目)。

  3. 根據匹配的路由條目:

    • 如果下一跳是直接相連的網絡,則通過ARP(IPv4)或鄰居發現(IPv6)獲取目標主機的物理地址(MAC地址),將數據報封裝在數據鏈路層幀中直接發送。

    • 如果下一跳是路由器(網關),則通過ARP/鄰居發現獲取該網關的物理地址,將數據報封裝在幀中發送給網關。

  4. 網關路由器收到后,重復上述查找路由表和轉發的步驟,直到數據報到達目標網絡或TTL耗盡。

3.2 分片與重組

原因:?數據鏈路層(如以太網)有?最大傳輸單元 (MTU)?限制。當IP數據報長度大于路徑中某個網絡的MTU時,就需要分片。

過程:

  1. 路由器(或源主機)將原始數據報分割成多個較小的?分片 (Fragments)

  2. 每個分片都有自己的IP報頭(大部分字段復制自原始報頭,但總長度標識標志片偏移會修改)。

  3. MF標志位:除了最后一個分片設為0,其他分片都設為1。

  4. 片偏移表示該分片數據在原始數據報數據部分中的起始位置(以8字節塊為單位)。

  5. 分片獨立路由到目的地。

重組:?只有目的主機負責將所有具有相同標識的分片,按照片偏移順序重新組裝成原始數據報。如果缺少任何分片,整個原始數據報會被丟棄,重組失敗。

4、相關協議

  • ICMP (Internet Control Message Protocol):?用于在IP主機和路由器之間傳遞控制消息(如網絡可達性測試ping、目標不可達、超時traceroute、重定向等)。是IP協議的重要輔助協議。

ICMP 協議是一種面向無連接的協議,用于傳輸出錯報告控制信息。它屬于網絡層協議,主要用于在主機與路由器之間傳遞控制信息,包括報告錯誤、交換受限控制和狀態信息等。當遇到 IP 數據無法訪問目標、IP 路由器無法按當前的傳輸速率轉發數據包等情況時,會自動發送 ICMP 消息。

ping的基本過程:

①、當執行 Ping 命令,Ping 首先解析域名獲取 IP 地址,然后向目標 IP 發送一個 ICMP Echo Request 消息。

②、當目標 IP 收到 ICMP Echo Request 消息后,它會生成一個 ICMP Echo Reply 消息并返回,即 Ping 響應消息。

③、發起 Ping 命令的設備接收到 ICMP Echo Reply 消息后,計算并顯示從發送 Echo Request 到接收到 Echo Reply 的時間(通常稱為往返時間 RTT,Round-Trip Time),以及可能的丟包情況。

Ping 通常會發送多個請求,以便提供平均響應時間和丟包率等信息,以便我們了解網絡連接的質量。

  • ARP (Address Resolution Protocol):?用于在IPv4網絡中根據IP地址查詢對應的物理地址(MAC地址)。

    • MAC 地址是數據鏈路層和物理層使用的地址,是寫在網卡上的物理地址,用來定義網絡設備的位置,不可變更。
    • IP 地址是網絡層和以上各層使用的地址,是一種邏輯地址。IP 地址用來區別網絡上的計算機。

ARP協議的工作過程:

①、ARP 請求

當主機 A 要發送數據給主機 B 時,首先會在自己的 ARP 緩存中查找主機 B 的 MAC 地址。

如果沒有找到,主機 A 會向網絡中廣播一個 ARP 請求數據包,請求網絡中的所有主機告訴它們的 MAC 地址;這個請求包含了請求設備和目標設備的 IP 和 MAC 地址。

②、ARP 應答

網絡中的所有主機都會收到這個 ARP 請求,但只有主機 B 會回復 ARP 應答,告訴主機 A 自己的 MAC 地址。并且主機 B 會將主機 A 的 IP 和 MAC 地址映射關系緩存到自己的 ARP 緩存中,以便下次通信時直接使用。

③、更新 ARP 緩存

主機 A 收到主機 B 的 ARP 應答后,也會將主機 B 的 IP 和 MAC 地址映射關系緩存到自己的 ARP 緩存中。

  • RARP (Reverse ARP):?根據MAC地址查詢IP地址(基本被DHCP取代)。

  • DHCP (Dynamic Host Configuration Protocol):?為主機自動分配IP地址、子網掩碼、網關、DNS服務器等配置信息。只給接入網絡的設備分配 IP 地址,因此同一個 MAC 地址的設備,每次接入互聯網時,得到的 IP 地址不一定是相同的,該協議使得空閑的 IP 地址可以得到充分利用。

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

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

相關文章

Fastadmin報錯Unknown column ‘xxx.deletetime‘ in ‘where clause

報錯原因 在開啟軟刪除后&#xff0c;設置了表別名&#xff0c;軟刪除字段依舊使用原表名。 解決方法 原代碼 $list $this->model->with([admin, product])->where($where)->order($sort, $order)->paginate($limit);foreach ($list as $row) {$row->ge…

TCN+Transformer+SE注意力機制多分類模型 + SHAP特征重要性分析,pytorch框架

效果一覽 TCNTransformerSE注意力機制多分類模型 SHAP特征重要性分析 TCN&#xff08;時序卷積網絡&#xff09;的原理與應用 1. 核心機制 因果卷積&#xff1a;確保時刻 t t t 的輸出僅依賴 t ? 1 t-1 t?1 及之前的數據&#xff0c;避免未來信息泄露&#xff0c;嚴格保…

Elasticsearch的數據同步

elasticsearch中的數據多是來自數據庫&#xff0c;當數據庫發生改變時&#xff0c;elasticsearch也必須跟著改變&#xff0c;這個就叫做數據同步。 當我們是進行微服務的時候&#xff0c;同時兩個服務不能進行相互調用的時候。就會需要進行數據同步。 方法一&#xff1a;同步…

uniapp 時鐘

<template><view class"clock-view"><view class"clock-container u-m-b-66"><!-- 表盤背景 --><view class"clock-face"></view><!-- 時針 --><view class"hand hour-hand" :style&quo…

【大模型】實踐之1:macOS一鍵部署本地大模型

Ollama + Open WebUI 自動部署腳本解析說明文檔 先看下效果 一、腳本內容 #!/bin/bash set -eMODEL_NAME="qwen:1.8b" LOG_FILE="ollama_run.log" WEBUI_PORT=3000 WEBUI_CONTAINER_PORT=8080 WEBUI_URL="http://localhost:$WEBUI_PORT" DOC…

相機Camera日志實例分析之三:相機Camx【視頻光斑人像錄制】單幀流程日志詳解

【關注我&#xff0c;后續持續新增專題博文&#xff0c;謝謝&#xff01;&#xff01;&#xff01;】 上一篇我們講了&#xff1a; 這一篇我們開始講&#xff1a; 目錄 一、場景操作步驟 二、日志基礎關鍵字分級如下 三、場景日志如下&#xff1a; 一、場景操作步驟 操作步…

介紹一下 TCP方式程序的通訊,服務器機與客戶機

TCP通信方式&#xff1a;服務器與客戶機通信詳解 TCP(傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。下面我將詳細介紹TCP方式下服務器與客戶機的通信過程。 基本概念 TCP特點&#xff1a; 面向連接&#xff1a;通信前需建立連接可靠傳輸&#xff1a;…

Ubuntu系統復制(U盤-電腦硬盤)

所需環境 電腦自帶硬盤&#xff1a;1塊 (1T) U盤1&#xff1a;Ubuntu系統引導盤&#xff08;用于“U盤2”復制到“電腦自帶硬盤”&#xff09; U盤2&#xff1a;Ubuntu系統盤&#xff08;1T&#xff0c;用于被復制&#xff09; &#xff01;&#xff01;&#xff01;建議“電腦…

【PyTorch】2024保姆級安裝教程-Python-(CPU+GPU詳細完整版)-

一、準備工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda來管理我的python。可自行安裝Anaconda。 Anaconda官網 Free Download | Anaconda 具體Anaconda安裝教程可參考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…

Oracle RAC私網網卡冗余

第一步&#xff1a;添加網卡&#xff08;網絡部門實施&#xff09; 第二步&#xff1a;給新網卡配置ip地址&#xff08;如果網絡部門沒有配置&#xff0c;要自己動手配置&#xff09; 第三步&#xff1a;查看心跳網絡配置 –1 su - grid oifcfg getif enp0s3 192.168.1.0 glo…

c#,Powershell,mmsys.cpl,使用Win32 API展示音頻設備屬性對話框

常識&#xff08;基礎&#xff09; 眾所周知&#xff0c;mmsys.cpl使管理音頻設備的控制面板小工具&#xff0c; 其能產生一個對話框&#xff08;屬性表&#xff09;讓我們查看和修改各設備的詳細屬性&#xff1a; 在音量合成器中單擊音頻輸出設備的小圖標也能實現這個效果&a…

織夢dedecms內容頁調用seotitle標題的寫法

首先方法一&#xff0c;直接用織夢的sql實現&#xff1a; <title> {dede:field nametypeid runphpyes} $idme; global $dsql; $sql"select seotitle from dede_arctype where id$id"; $row$dsql->getOne($sql); me$row["seotitle"]; {/dede:fiel…

linux等保思路與例題

例題 最近在做玄機的靶場&#xff0c;對這方面沒怎么接觸過&#xff0c;于是決定做一下順便學習一下 這里可以用change更改命令來查看&#xff1a;change -l xiaoming 也可以用shadow中存儲的信息grep出來&#xff1a;cat /etc/shadow|grep xiaoming 其中&#xff1a; 第一個字…

AirSim中文文檔(2025-6-11)

文檔的git鏈接&#xff1a; https://github.com/yolo-hyl/airsim-zh-docs 目前可訪問的網站&#xff1a; https://airsim.huayezuishuai.site/

???????6板塊公共數據典型應用場景【政務服務|公共安全|公共衛生|環境保護|金融風控|教育科研]

1. 政務服務 1.1 城市規劃與管理 公共數據在城市規劃與管理中可發揮關鍵作用。通過匯聚自然資源、建筑物、人口分布等基礎數據,構建數字孿生城市模型,輔助城市總體規劃編制、決策仿真模擬。在城市基礎設施建設、安全運營、應急管理等方面,公共數據也是不可或缺的基礎支撐。例…

LevelDB介紹和內部機制

介紹 LevelDB 是 Google 開源的高性能鍵值對嵌入式數據庫&#xff0c;具有一系列設計上的優勢&#xff0c;特別適合寫多讀少、對存儲空間要求高效的場景。 核心優勢 1. 高寫入性能&#xff08;順序寫磁盤&#xff09; 基于 LSM-Tree&#xff08;Log Structured Merge Tree&am…

數據庫-數據查詢-Like

引言 &#xff1c;模糊溝通&#xff1e; 父親&#xff08;45歲&#xff0c;對外謙和&#xff0c;對內急躁&#xff0c;東北口音&#xff09; 兒子&#xff08;18歲&#xff0c;邏輯思維強&#xff0c;喜用生活化比喻&#xff09; 母親&#xff08;43歲&#xff0c;家庭矛盾調…

SD-WAN優化云應用與多云架構訪問的關鍵策略

1. SD-WAN如何優化企業對公有云和SaaS應用的訪問&#xff1f; 1.1 智能流量優化 SD-WAN通過應用識別技術&#xff0c;可以根據不同的業務應用流量需求&#xff0c;動態分配網絡資源。例如&#xff0c;SD-WAN能夠優先為釘釘、企業微信、金山文檔等關鍵SaaS應用分配低延遲、高帶…

JVM——對象模型:JVM對象的內部機制和存在方式是怎樣的?

引入 在Java的編程宇宙中&#xff0c;“Everything is object”是最核心的哲學綱領。當我們寫下new Book()這樣簡單的代碼時&#xff0c;JVM正在幕后構建一個復雜而精妙的“數據實體”——對象。這個看似普通的對象&#xff0c;實則是JVM內存管理、類型系統和多態機制的基石。…

專題:2025年跨境B2B采購買家行為分析及采購渠道研究報告|附160+份報告PDF匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p42612 在商業決策的復雜版圖中&#xff0c;數據是穿透迷霧的精準坐標。本報告匯總解讀聚焦2024年跨境B2B行業核心動態&#xff0c;以詳實數據為錨&#xff0c;串聯商品出口、品牌網站運營、獨立站流量生態三大關鍵領域。我們深入挖掘…