TCP/IP的Internet層

来源:https://www.cnblogs.com/heyongshen/archive/2022/07/08/16458456.html
-Advertisement-
Play Games

Internet層 Internet層相關協議 ICMP協議: Internet Control Message Protocol,用於探測網路中的狀態,ping命令使用的就是icmp協議(向網路中發送icmp協議數據包,根據網路的狀態返回不同的提示信息),不但能檢測網路的狀態,還能檢測網路的速度。 ...


Internet層

image

Internet層相關協議

ICMP協議:

  Internet Control Message Protocol,用於探測網路中的狀態,ping命令使用的就是icmp協議(向網路中發送icmp協議數據包,根據網路的狀態返回不同的提示信息),不但能檢測網路的狀態,還能檢測網路的速度。
image

範例: 利用icmp協議判斷網路狀態

[root@centos7 ~]#ping 10.0.0.8
PING 10.0.0.8 (10.0.0.8) 56(84) bytes of data.
64 bytes from 10.0.0.8: icmp_seq=1 ttl=64 time=0.307 ms
64 bytes from 10.0.0.8: icmp_seq=2 ttl=64 time=0.344 ms
64 bytes from 10.0.0.8: icmp_seq=3 ttl=64 time=0.335 ms
64 bytes from 10.0.0.8: icmp_seq=4 ttl=64 time=0.441 ms

[root@centos7 ~]#ping 10.0.0.81
PING 10.0.0.81 (10.0.0.81) 56(84) bytes of data.
From 10.0.0.7 icmp_seq=1 Destination Host Unreachable
From 10.0.0.7 icmp_seq=2 Destination Host Unreachable

[root@centos7 ~]#ping 10.0.0.8  #埠不可達
PING 10.0.0.8 (10.0.0.8) 56(84) bytes of data.
From 10.0.0.8 icmp_seq=1 Destination Port Unreachable
From 10.0.0.8 icmp_seq=2 Destination Port Unreachable

[root@centos8 ~]#ping www.redhat.org #dns解析可能除了問題
ping: www.magedu.org: Name or service not known

ping命令:

選項:

-s:指定數據包的大小(預設為64byte),最大為62207
-f:實現網路的攻擊(預設一秒發送一個icmp數據包) flood:泛紅,拼命向對方發送icmp數據包
-c:指定ping的次數(指定發送多少個icmp數據包)

ARP:

Address Resolution Protocol:地址解析協議。通過ip地址把對方的mac地址找到。
過程:想網路中發送一個廣播,廣播中的信息包含想進行通信的ip地址,接收返回消息以後確定目標的mac地址。然後將該IP地址和物理地址緩存到電腦一段時間。

linux查看曾今通訊過的ip和mac的對應關係(arp緩存):

arp -n

arp這種機制沒有確認的過程,可能會收到中間人攻擊。

同網段arp和跨網段arp

1.先判斷兩者是否在同一網路,是就直接廣播
2.A利用arp獲取和它直連的路由器那個介面的mac地址
3.把數據包交給路由器,然後路由器利用和B相連的那個介面發送arp請求獲取B的mac
4.最後實現A把數據包交給了B。
有幾個網段就做幾次arp廣播

image

RARP協議:

  反向地址解析 mac解析成IP(比如網吧的無盤電腦固定ip,電腦啟動以後會向網路發請求(發自己的mac地址),通過伺服器mac和ip的映射表來分配ip地址)

internet 協議(IP協議--internet protocol)

Internet 協議特征

IP協議位於

IP PDU 報頭

image

IP協議的報文有5行是固定的,一行32位(4個位元組),固定的一共20個位元組。

第一行:

版本號(ipv4、ipv6),ipv4是32位,一共有43億個地址
首部長度:
區分服務:
總長度:數據包總長度

第二行:

標識:數據包是來自哪一個大包
標誌:決定片偏移是一個大包分出來的包還是本身就是一個獨立的包
片偏移:是來自於大包的第幾個小包

第三行:

生存時間:占8位,記為TTL:Time-To-Live(生存時間值),以經過的路由器數量為單位,每經過一個路由器,TTL值減1,當TTL值減到0時,路由器就會將這個包丟棄,這樣就可以防止包在網路上無休止的傳播發送。

image
鏈接:https://blog.csdn.net/whatFUK/article/details/113714833

協議:上層協議的類型(tcp、udp等)
首部校驗和:

第四行:

源地址:

第五行:

目標地址:

範例:探測網路中地址是否存在衝突--arping工具

#查看指定的ip地址都被那些設備用了
arping ip地址 #網路中是否有地址衝突 首先這個地址得存在 

ip地址組成和分類

ipv6在互聯網上使用比較多,區域網仍然使用的是ipv4,因為ipv6不方便管理。

IPv4

IPv4地址:

是一個32位的二進位數字,可唯一標識IP網路中的每台設備 ,網路中通信的設備都需要事先配置一個ip地址(唯一)

IP地址作用:

mac地址世界唯一,ip地址在每一個區域網中唯一。有了mac地址還配置ip地址的原因,ip地址是一個可以修改的地址,由網路位和主機位組成。所以能描述設備在哪一個網路裡面。

IP地址由兩部分組成:

網路 ID:描述在哪一個網路(網段)里
主機 ID:標識網路里唯一設備

IPv4地址格式:點分十進位記法

每8位二進位數化為一組,方便閱讀和管理。
範圍: 00000000 --- 11111111 (0---255)

IP地址分類(現在已經不常用了)

通過地址的劃分方式來確認網路id和主機id

A類:(以1-126開頭的)

  • 網路id:(約定了總共的32位中,最高位為0 )0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z (0開頭的地址表示位置地址,127開頭的地址表示設備本身),所以要去除0和127開頭的

  • 主機id:剩下的24位

  • 預設子網掩碼:255.0.0.0

  • 網路數:126=2^7(可變是的網路ID位數)-2

  • 主機數:2^24-2=16777214(要去除全0和全1的情況)

B類:

  • 網路id:前16位(約定最高的兩位不改變)10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z

  • 主機id:剩下的16位

  • 預設子網掩碼:255.255.0.0

  • 網路數:2^14=16384

  • 每個網路中的主機數:2^16-2=65534

C類:

  • 網路id:前24位(約定前面的三位不改變)110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z

  • 主機id:剩下的8位

  • 預設子網掩碼:255.0.0.0

  • 網路數:2^21=2097152

  • 每個網路中的主機數:2^8-2=254

D類:

表示多播地址,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z(不是給電腦分配的)

判斷ip地址屬於哪一類,只看ip地址的第一個十進位數就行了。

傳統ip地址分類缺陷

每一類之間的網路位和主機位的變化幅度太大

公共和私有IP地址

私有IP地址:不直接用於互聯網,通常在區域網中使用

image
這幾個地址在互聯網上是不會出現的都是在區域網上使用

公共IP地址:互聯網上設備擁有的唯一地址

image
公有地址世界唯一。

特殊地址

0.0.0.0
0.0.0.0不是一個真正意義上的IP地址。它表示所有不清楚的主機和目的網路(表示的是未知地址)

255.255.255.255(每一位都是1)
限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機

127.0.0.1~127.255.255.254
本機迴環地址,主要用於測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的 數據包

224.0.0.0到239.255.255.255
組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址
多用於一些特定的程式以及多媒體程式

169.254.x.x(windows配置了自動獲取ip,但是網路中不存在dhcp伺服器)
如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP伺服器獲取地址,系統會為主
機分配這樣地址

CIDR:無類域間路由

不將ip地址進行分類,通過子網掩碼這個技術來區分網路位和主機位。

子網掩碼:netmask

是一個32位的二進位數,和ip成對使用。ip的網路位有幾位,則netmask的對應位就為1。反之對應的主機位為0。
子網掩碼也就決定了網路中的主機數:

通過子網掩碼判斷網路位和主機位的位數:

1的位數有幾位則網路位就是幾。剩下的就是主機位。

子網掩碼表示方法

方法一:點分十進位
方法二:CIDR表示法:IP地址/網路位 例如:IP/12

老命令ifconfig使用的就是點分十進位,新命令ip使用的就是CIDR表示法

範例:通過ip地址確定ip範圍

#203.101.123.163/28的ip範圍:
前24位不變,把163拆成二進位,前四位是網路位,後面的是主機位。
163=128+32+3=1010  0011

最小:203.101.123.1010 0001(最小不能為0,從1開始)
最大:203.101.123.1010 1110(不能全為1)

範圍:203.101.123.161--- 203.101.123.174

範例:ip地址網路位的計算

#203.101.123.163  nemask:255.255.255.240
網段:203.101.123.10100011  ----240(11110000)
                  11110000
網路位:203.101.123.10100000 ---203.101.123.160

#網路位的作用:判斷設備否處於同一網路裡面

判斷對方主機是否在同一個網段:

用自已的子網掩碼分別和自已的IP及對方的IP相與,比較結果,相同則同一網路,不同則不同網段

範例:判斷是不是在一個網路裡面

A:10.0.0.1/16
B:10.0.2.2/24

A訪問B的時候,兩者在一個網路裡面,B訪問A不在一個網路裡面。

#A設備訪問B設備的時候,會先用自己的ip和子網掩碼相與得到網路位,然後用自己的子網掩碼和對方的IP地址相與。與出來的結果一樣,所以就在同一個網段裡面。
#反之B訪問A,就認為不在一個網段裡面。

#因為A到B和B到A的網路位不一樣,所以不在同一個網段。不同網段之間的設備通信需要使用到網關(網關要和他們兩再同一個網段)。

公式

主機數計算:2^主機id數 - 2

網路數計算:2^網路位數

網路位計算:ip地址和netmask相與

劃分子網

  將一個大的網路(主機數多)劃分成多個小的網路(主機數少),主機ID位數變少,網路ID位數變多。
網路位向主機位借位數。借n位,就劃分2^n個子網。

合併超網:

將多個小網路合併成一個大網,主機ID位向網路ID位借位,然後剩下的網路位大家都一樣。(挑最多的共同點作為新的網路id)
方法:挑選多個ip地址共同的位作為網路id位。

範例:

#8個C類網段
220.78.168.0/24
220.78.169.0/24
220.78.170.0/24
220.78.171.0/24
220.78.172.0/24
220.78.173.0/24
220.78.174.0/24
220.78.175.0/24

220.78.10101 000.0   220.78.168.0/24
220.78.10101 001.0   220.78.169.0/24
220.78.10101 010.0   220.78.170.0/24
......
220.78.10101 110.0   220.78.174.0/24
220.78.10101 111.0   220.78.175.0/24

#合併成一個大網
220.78.168.0/21

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在日常生活中,郵件已經被聊天軟體、簡訊等更便捷的信息傳送方式代替。但在日常工作中,我們的重要的信息通知等非常有必要去歸檔追溯,那麼郵件就是不可或缺的信息傳送渠道。對於我們工作中經常用到的系統,裡面也基本都集成了郵件發送功能。 SpringBoot提供了基於JavaMail的starter,我們只要按 ...
  • 多商戶商城系統,也稱為B2B2C(BBC)平臺電商模式多商家商城系統。可以快速幫助企業搭建類似拼多多/京東/天貓/淘寶的綜合商城。本文通過功能拆解分析,詳細描述多商戶商城系統各個功能模塊的實現邏輯。 ...
  • java方法的重載 Java 允許同一個類中定義多個同名方法,只要它們的形參列表不同即可。如果同一個類中包含了兩個或兩個以上方法名相同的方法,但形參列表不同,這種情況被稱為方法重載(overload)。 方法重載的規則: 方法名必須相同 參數列表必須不同(參數列表的個數不同,或者類型不同,或者參數列 ...
  • 原文鏈接:https://www.cnblogs.com/ysmc/p/16456787.html 最近有小伙伴問道,在 .Net Core 中,如何定時執行任務,而因為需要執行的任務比較簡單,並不想使用其它的中間件(如 Quartz 等等),在這樣的需求下,我給大家介紹一下.Net 內置的後臺任務 ...
  • 一:背景 1. 講故事 前段時間收到一個朋友的求助,說他的程式線程數瘋漲,尋求如何解決。 等我分析完之後,我覺得這個問題很有代表性,所以拿出來和大家分享下,還是上老工具 WinDbg。 二: WinDbg 分析 1. 線程真的在瘋漲嗎 要想查線程有沒有瘋漲,可以用 !t 命令看一下。 0:000:x ...
  • .Net下極限生產力之分表分庫全自動化Migrations Code-First ## 介紹 本文ShardinfCore版本x.6.x.x+ 本期主角: - [`ShardingCore`](https://github.com/dotnetcore/sharding-core) 一款ef-cor ...
  • VMware15.5虛擬機安裝CentOS7.5詳細教程 (前言)軟體下載 需要VMware15.5軟體和密匙的小伙伴可以從此地址下載:https://pan.baidu.com/s/1A8HaMXtCXAULeol8Ifuiaw 提取碼:zb3b。 需要CentOS7.5鏡像的小伙伴可以從此地址下 ...
  • 全世界口碑最好的塔防系列游戲榮耀回歸——Kingdom Rush Vengeance中文版,游戲率領黑暗大軍步步緊逼,讓整個王國為你而顫抖吧!你將直面凶猛殘暴的強敵,與至高至強的 boss 們展開終極決戰。將防禦塔與武器自由搭配,實現最具殺傷力的組合。 詳情:王國保衛戰:復仇Kingdom Rush ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...