【网络层】IP报文解析和网段划分

文章目录

  • 网络层的作用
  • IP协议
    • 协议报头格式
    • 网段划分
      • DHCP
      • CIDR划分方案
    • IP地址的数量限制
    • 私有IP地址和公网IP地址
      • LAN和WAN
  • 路由

网络层的作用

前面学习了应用层和传输层,应用层的作用是为用户和应用程序提供网络服务,传输层的作用是提供端口到端口的通信服务。而网络层呢,其作用就是为了在复杂的网络环境中确定一个合适的路径,也就是在网络世界中找到目标主机。下面逐步介绍如何通过一个IP地址找到一台目标主机。

IP协议

在这里插入图片描述

协议报头格式

在这里插入图片描述

  • 4位版本号:指定IP协议的版本,4表示的是IPv4
  • 4位首部长度:IP头部的长度,单位是4字节,4个比特位表示的最大数为15,所以IP报头的最大长度为15*4=60个字节,最小为5*4=20字节。加粗样式
  • 8位服务类型:3位优先权字段(已经弃用),4位TOS字段和1 位保留字段(必须置为 0)。4 位 TOS 分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个.
  • 16 位总长度:数据报整体占多少个字节
  • 16位标识唯一标识主机发送的报文,也就是说每一次发送的报文的标识符都唯一。如果IP报文在数据链路层被分片了,那么每一个片里的标识符都是相同的,标识它们属于同一个报文。
  • 3位标志字段:第一位保留。第二位置1表示禁止分片,此时如果报文长度超过MTU,IP模块就会丢弃报文。第三位置1表示有更多分片,如果分片,最后一个分片置为 0, 其他是 1. 类似于一个结束标记
  • 13位片偏移:表示数据包分片在原始数据包中的位置,以8字节为单位。是分片相对于原始 IP 报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置。接收方收到被分片的IP报文后,按照13位偏移量就可以将所有的分片排序,这样得到的整个报文就是正确的顺序。
  • 8位生存时间:数据到达目的地后的最大报文跳数,一般是64。每经过一个路由器,TTL值减1,直到到达目的地或变为0时丢弃数据包。 主要用于防止出现路由循环。
  • 8位协议:表示传输层使用的协议类型,例如,ICMP为1,TCP为6,UDP为17。
  • 16位校验和:使用 CRC 进行校验, 来鉴别头部是否损坏.
  • 32 位源地址和 32 位目标地址: 表示发送主机和接收主机.
  • 选项字段(不定长, 最多 40 字节)。

网段划分

IP地址分为两个部分:网络号和主机号

  • 网络号:保证相互连接的两个网段具有不同的标识
  • 主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
    在这里插入图片描述
  • 不同的子网其实就是把网络号相同的主机放到一起.
  • 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复
  • 网络号用来标识网络中的某一个子网,主机号则是用来标识该子网中的某一台主机。更简单的,网络号指的是的一段范围,主机号指的是这段范围内的某台主机。

通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的 IP 地址都不相同

DHCP

DHCP技术通过服务器与客户端之间的交互,实现了IP地址和其他网络配置信息的动态分配。
工作原理:
DHCP的工作原理通常包含四个步骤:发现、提供、请求、确认。

  • 发现:当设备(手机或者电脑)加入网络时,它会广播一条DHCP发现消息,寻找可用的DHCP服务器。
  • 提供:DHCP服务器收到发现消息之后,会准备一个包含可用IP地址和其它网络配置如子网掩码等的DHCP提供消息,并将这个消息发送给请求的设备
  • 请求:设备可能收到多个提供消息,会从中选择一个,并发送一个DHCP请求消息给对应的DHCP服务器,确认接受该服务器提供的IP地址等信息。
  • 确认:DHCP服务器收到上面的请求后,再发送一个DHCP确认消息给你的手机,正式分配IP地址,设备收到后就可以正式连接网络了

简单来说就是,DHCP,能够自动的给子网内新增主机节点分配 IP 地址。一般的路由器都带有 DHCP 功能. 因此路由器也可以看做一个 DHCP 服务器.

过去曾经提出一种划分网络号和主机号的方案, 把所有 IP 地址分为五类, 如下图所示
在这里插入图片描述
随着 Internet 的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请 B 类网络地址, 导致 B 类地址很快就分配完了, 而 A 类却浪费了大量地址;显然,这种分类方式不太灵活。

针对这种情况提出了新的划分方案, 称为CIDR

CIDR划分方案

  • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;
  • 子网掩码也是一个 32 位的正整数. 通常用一串 “0” 来结尾;
  • 将 IP 地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;
  • 网络号和主机号的划分与这个 IP 地址是 A 类、B 类还是 C 类无关

在这里插入图片描述
其中,IP地址中的主机地址全0表示的就是这个局域网本身,全1就表示广播地址,用于给同一个链路中相互连接的所有主机发送数据包。

此外, 127.*的 IP 地址用于本机环回(loop back)测试,通常是 127.0.0.1

  • 关于本地环回地址:
    主要用于本地网络接口的测试和诊断。其实就是自己发送数据给自己,中间并没有经过局域网和其他网络

在这里插入图片描述
CIDR 在一定程度上缓解了 IP 地址不够用的问题:提高了利用率, 减少了浪费(可以根据主机数量来增加主机号的位数)

IP地址的数量限制

IPv4下的IP地址只有32位,大概就是43亿左右。假设每台主机都要有一个唯一的IP地址,那么就意味着一共只有 43 亿台主机能接入网络?事实上,由于一些特殊的 IP 地址的存在, 数量远不足 43 亿; 另外 IP 地址并非是按照主机台数来配置的, 而是每一个网卡都需要配置一个或多个 IP 地址.
CIDR 虽然在一定程度上缓解了 IP 地址不够用的问题,但仍然不够用. 这时候有三种方式来解决:

  • 动态分配 IP 地址: 只给接入网络的设备分配 IP 地址. 因此同一个 MAC 地址的设备, 每次接入互联网中, 得到的 IP 地址不一定是相同的;
  • NAT 技术:通过允许多个内部设备共享一个或多个公共IP地址来访问互联网,从而节省了公网IP地址的使用。也就是说,不同的局域网中IP地址可以是一样的
  • IPv6: IPv6 并不是 IPv4 的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6 用 16 字节 128 位来表示一个 IP 地址; 但是目前 IPv6 还没有普及

私有IP地址和公网IP地址

如果一个组织内部组建局域网,IP 地址只用于局域网内的通信,而不直接连到 Internet (公网)上, 理论上 使用任意的 IP 地址都可以,但是 RFC 1918 规定了用于组建局域网的私有 IP 地址

  • 10.*,前 8 位是网络号,共 16,777,216 个地址
  • 172.16.到 172.31.,前 12 位是网络号,共 1,048,576 个地址
  • 192.168.*,前 16 位是网络号,共 65,536 个地址

包含在这个范围中的, 都成为私有 IP, 其余的则称为全局 IP(或公网 IP);

在这里插入图片描述
上图中的WAN口IP就是路由器所在网络的地址

  • 一个路由器可以配置两个 IP 地址, 一个是 WAN 口 IP, 一个是 LAN 口 IP(子网IP).
  • 路由器 LAN 口连接的主机, 都从属于当前这个路由器的子网中.
  • 不同的路由器, 子网 IP 可以是一样的(通常都是 192.168.1.1). 子网内的主机
  • 每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN 口 IP 就是一个公网 IP 了.
  • 家用路由器的WAN口地址通常是运营商的子网IP地址,运营商的WAN口地址通常就是公网。
  • 子网内的主机需要和外网进行通信时, 路由器将 IP 首部中的 IP 地址进行替换(替换成 WAN 口 IP), 这样逐级替换, 最终数据包中的 IP 地址成为一个公网 IP. 这种技术称为 NAT(Network Address Translation,网络地址转换).
  • 如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网 IP 的服务器上. 这样的服务器可以在阿里云/腾讯云上进行购买.

LAN和WAN

LAN口地址和WAN口地址在路由器中扮演着不同的角色,分别用于局域网(LAN)和广域网(WAN)的连接与通信。注意,局域网和广域网的概念是相对的,我们认为一个路由器的子网可以是称为一个局域网,路由器“外面”的网络可以称为广域网,但路由器又可能处于运营商路由器的子网构建的局域网中。
LAN口地址通常用于局域网内部的设备之间的通信,WAN口地址,即广域网接口地址,是路由器从互联网服务提供商(ISP)处获得的公网IP地址。这个地址用于路由器与外部网络(如互联网)之间的通信。

路由

路由其实就是利用目的IP在复杂的网络中找到目标主机,这个过程类似于问路
通常,路由的过程会经过多个路由器,我们把在以太网中指从源 MAC 地址到目的MAC 地址之间的帧传输称为"一跳"。

在这里插入图片描述
当IP数据包到达路由器时,路由器会先查看目的IP。路由器维护了一张路由表,表中有着与该路由器所处同一个网络中的其它路由器的IP地址以及子网掩码。如果目的IP与该表中的某个子网掩码与上之后恰好等于其对应的网络号,那么说明这个IP数据报下一跳就去该路由器的子网中继续找。如下图所示。
在这里插入图片描述

  • 在linux中,路由表可以使用route指令查看
    在这里插入图片描述
    如果目的 IP 命中了路由表, 就直接转发即可,路由表中的最后一行即default,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395054.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法--二叉树的遍历及应用

文章目录 回顾二叉树的五个重要性质 提要二叉树的遍历二叉树遍历流程图前序遍历流程图(根左右)中序遍历流程图(左根右)后序遍历流程图(左右根) 二叉树遍历的示例根据遍历序列确定二叉树的形态确定方法 二叉…

界面组件Kendo UI for Vue 2024 Q2亮点 - 发布一系列新组件

随着最新的2024年第二季度发布,Kendo UI for Vue为应用程序开发设定了标准,包括生成式AI集成、增强的设计系统功能和可访问的数据可视化。新的2024年第二季度版本为应用程序界面提供了人工智能(AI)提示,从设计到代码的生产力增强、可访问性改…

arXiv2024.8.6 | LLaVA-OneVision:Easy Visual Task Transfer

Comment: Project Homepage: https://llava-vl.github.io/blog/2024-08-05-llava-onevision/ 论文标题:LLaVA-OneVision:Easy Visual Task Transfer 论文地址:https://arxiv.org/abs/2408.03326 GitHub:https://llava-vl.githu…

MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局

问题:android12 平台手势导航情况下,app页面未设置全屏情况下,底部导航栏会有一个高度的颜色,底部导航会有一个手势导航提示条 需求:去掉手势导航情况下底部的导航栏和手势提示条 文章目录 相关资源修改问题描述解决方案代码跟踪中间提醒小方块代码查找底部手势导航条跟踪…

【实战】MFC客户端Python后端之仿造QQ聊天

项目概述 这里介绍一个很多年以前做的一个小项目,新手小白可以参考学习。本项目旨在开发一个功能丰富的即时通讯及聊天室系统,类似于QQ,具备客户端与服务端通讯、多人聊天室、界面友好度、一对一聊天、通讯内容加密、服务端与数据库交互等功能…

【学习笔记】Matlab和python双语言的学习(非线性规划法)

文章目录 前言一、非线性规划法二、例题:选址问题1.确定决策变量2.确定约束条件3.确定目标函数4.建立模型5.求解 三、代码实现----Matlab1.Matlab 的 fmincon 函数(1)基本用法(2)简单示例 2.Matlab 代码第一问&#xf…

数字货币市场历史数据获取API(含源代码)

加密数字货币市场历史数据获取API(含源代码) 数字货币市场历史数据获取API(含源代码)1. Binance API运行结果BTCUSDT.csv 文件截图 2. CoinGecko API3. CryptoCompare API总结 数字货币市场历史数据获取API(含源代码&a…

关闭Windows安全中心

打开Windows安全中心的病毒和威胁防护。 打开该选项的管理设置。 关闭实时保护。

【Scene Transformer】scene transformer论文阅读笔记

文章目录 序言(Abstract)(Introduction)(Related Work)(Methods)(Scene-centric Representation for Agents and Road Graphs)(Encoding Transformer)(Predicting Probabilities for Each Futures)(Joint and Marginal Loss Formulation) (Results)(Discussion)(Questions) sce…

【网络基础一】几乎不讲任何网络协议细节,搭建网络基本结构

文章目录 问题认识“协议”计算机通信问题技术问题应用问题 协议分层那么网络分层应该怎么分层呢? 统编程帮助我们处理数据,网络编程帮助我们获取数据,网络配上我们写的线程池模块很快就搭建起来了。 问题 网卡是文件吗? 是的&am…

24暑假算法刷题 | Day30 | 贪心算法 IV | 452. 用最少数量的箭引爆气球,435. 无重叠区间,763. 划分字母区间

目录 452. 用最少数量的箭引爆气球题目描述题解 435. 无重叠区间题目描述题解 763. 划分字母区间题目描述题解 452. 用最少数量的箭引爆气球 点此跳转题目链接 题目描述 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中…

《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-04-数据访问层设计

文章目录 1. 五种数据访问模式1.1 在线访问1.2 DAO1.3 DTO1.4 离线数据模式1.5 对象/关系映射 (O/R Mapping) 2. 工厂方法模式在数据访问层应用3 ORM、Hibernate与CMP2.0设计思想3.1 ORM3.2 Hibernate1)概述2) Hibernate的架构(2023年的考题&…

【Web开发手礼】探索Web开发的秘密(十八)-Vue2(4)部门管理页面、路由、打包部署

主要介绍了部门管理页面、路由、打包部署&#xff01;&#xff01;&#xff01; 文章目录 前言 部门管理页面 Vue路由 打包部署 打包 部署 总结 前言 主要介绍了部门管理页面、路由、打包部署&#xff01;&#xff01;&#xff01; 部门管理页面 <template><div>&…

云手机在海外社交媒体运营中的作用

随着社交媒体的全球普及&#xff0c;海外社交媒体运营成为众多企业与个人提升品牌影响力和扩大市场份额的重要策略。在这一进程中&#xff0c;海外云手机以其独特的功能&#xff0c;为海外社交媒体运营提供了强大的支持。 那么&#xff0c;海外云手机在海外社交媒体运营中究竟扮…

展馆室内导航系统:增强现实技术与数据可视化分析在展馆中的应用

随着科技的飞速发展&#xff0c;展览行业正经历着前所未有的变革。作为信息交流与文化传播的重要场所&#xff0c;展馆在吸引访客、展示展品方面扮演着至关重要的角色。然而&#xff0c;在信息爆炸、时间宝贵以及访客需求日益多样化的今天&#xff0c;传统展馆在导览、管理和服…

【学习方法】高效学习因素 ① ( 开始学习 | 高效学习因素五大因素 | 高效学习公式 - 学习效果 = 时间 x 注意力 x 精力 x 目标 x 策略 )

文章目录 一、高效学习因素1、开始学习2、高效学习因素五大因素3、高效学习公式 - 学习效果 时间 x 注意力 x 精力 x 目标 x 策略 一、高效学习因素 1、开始学习 对于 学习差 , 调皮捣蛋 的学生 , 不要把 学习成绩差 的 原因 归因为 不爱学习 / 没有学习方法 , 可能是 还没有 …

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃 1.背景 营销 Agent 指的是在营销过程中洞察客户并作出决策以及行动的 AI 智能体,包括感知、理解、决策、交互、反馈多个模块。对话 SOP 是交互模块中非常重要的部分,如何在缺少数据的情况下快速实现千人…

Java数组的类名是什么以及数组相关操作的指令有什么?

写在前面 不知道你想过没有&#xff0c;我们常说数组也是对象&#xff0c;既然是对象&#xff0c;肯定要有一个类名称了&#xff0c;那么&#xff0c;数组的类名称是什么呢&#xff1f;数组相关的操作对应的指令又是什么呢&#xff1f;本文就一起来看下。 1&#xff1a;叨叨叨…

大数据面试SQL(六):共同使用ip用户检测问题

文章目录 共同使用ip用户检测问题 一、题目 二、分析 三、SQL实战 四、样例数据参考 共同使用ip用户检测问题 一、题目 现有用户登录日志表&#xff0c;记录了每个用户登录的IP地址&#xff0c;请查询共同使用过3个及以上IP的用户对。 样例数据&#xff1a; 结果数据&…

软件功能测试步骤介绍,软件测试服务公司推荐

在当今软件开发日益复杂的环境中&#xff0c;软件功能测试显得尤为重要。功能测试是确保软件产品满足用户需求和规范要求的关键环节。它通过验证软件功能是否按预期运行&#xff0c;帮助发现潜在的问题&#xff0c;防止软件在上线后导致用户的不满及业务损失。随着市场竞争的加…