【计算机网络】详解IP协议网段划分路由转发子网掩码网络号

一、IP功能

        IP可以实现主机定位和路由选择,提供一种能力,将数据可靠地从A点跨网络送到B点。数据先根据目的IP在局域网之间进行转发,再在局域网内进行内网转发

二、IP协议报头

  • 4 位版本号(version):指定 IP 协议的版本,对IPv4 来说,就是 4。
  • 4 位头部长度(header length):IP 头部的长度是多少个 32bit,也就是 length 4的字节数。4bit 表示最大的数字是 15,因此 IP 头部最大长度是 60字节。
  • 8 位服务类型(Type Of Service):3 位优先权字段(已经弃用),4 TOS 字段,和1 位保留字段(必须置为 0)。4TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于 ssh/telnet 这样的应用程序,最小延时比较
    重要;对于 ftp 这样的程序,最大吞吐量比较重要。
  • 16 位总长度(total length):IP 数据报整体占多少个字节。
  • 16 位标识(id):唯一的标识主机发送的报文。如果 IP 报文在数据链路层被分片了,那么每一个片里面的这个 id 都是相同的。
  • 3 位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。 第二位置为 1 表示禁止分片,这时候如果报文长度超过 MTU,IP 模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为 0,其他是 1。类似于一个结束标记。
  • 13 位分片偏移(framegament offset): 是分片相对于原始 IP 报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值除8得到的。因此, 除了最后一个报文之外, 其他报文的长度必须是 8 的整数倍(否则报文就不连续了).
  • 8 位生存时间(Time To Live, TTL):数据报到达目的地的最大报文跳数。一般是64。每次经过一个路由,TTL -= 1,一直减到 0 还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。
  • 8 位协议: 表示上层协议的类型。
  • 16 位头部校验和: 使用 CRC 进行校验, 来鉴别头部是否损坏。
  • 32 位源地址和 32 位目标地址: 表示发送端和接收端。

三、网段划分

         IP 地址分为两个部分, 网络号和主机号。网络号:保证相互连接的两个网段具有不同的标识;主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号 不同的子网其实就是把网络号相同的主机放到一起。如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,是主机号必须不能和子网中的其他主机重复。
每一个子网都有唯一的标识,就是网络号。发送的报文在转发时可以根据网络号进行淘汰路径,直到找到目标网络。 CIDR(Classless Interdomain Routing)技术引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个 32 位的正整数。通常用一串 "0" 来结尾;将 IP 地址和子网掩码进行 "按位与" 操作,得到的结果就是网络号
        IP 地址和子网掩码还有一种更简洁的表示方法, 例如 140.252.20.68/24,表示 IP 地址140.252.20.68, 子网掩码的高 24 位是 1,也就是 255.255.255.0。

 四、私有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) 

五、运营商和路由转发

        运营商将网络基础设施搭建好。我们将来所有的报文都必须经过运营商,无法绕过运营商。 现在的路由器已经支持组建局域网,一般的家用设备所分配的IP地址都是192.168开头的IP地址。

        一个路由器可以配置两个IP 地址,一个是WANIP,一个是 LANIP(子网IP)。路由器 LAN 口连接的主机,都从属于当前这个路由器的子网中。不同的路由器,子网IP其实都是一样的(通常都是 192.168.1.1)。 子网内的主机IP地址不能重复。但是子网之间的IP地址就可以重复 每一个家用路由器,其实又作为运营商路由器的子网中的一个节点。这样的运营商路由器可能会有很多级,最外层的运营商路由器,WANIP就是一个公网IP了。子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WANIP),这样逐级替换,最终数据包中的IP地址成为一个公网 IP。这种技术称为NAT(Network Address Translation,网络地址转换)。 我们所有人访问网络都是在内网当中访问的,我们无法直接访问公网,公网由各国的运营商进行报文的转发
        NAT 路由器收到外部的数据时, 又会把目标IP202.244.174.37替换回10.0.0.10,在NAT路由器内部,有一张自动生成的用于地址转换的表,当 10.0.0.10第一次向163.221.120.9发送数据时就会生成表中的映射关系。如果局域网内有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系。这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项,在断开连接后就会删除这个表项。
         路由器要有路由发现的算法 IP数据包的传输过程也和问路一样。IP 数据包,到达路由器时,路由器会先查看目的IP;路由器决定这个数据包是能直接发送给目标主机,还是需要发送给下一个路由器;依次反复,一直到达目标IP地址。如何判定当前这个数据包该发送到哪里呢?这个就依靠每个节点内部维护一个路由表。
         路由表可以使用route命令查看 。如果目的IP命中了路由表,就直接转发即可。路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。假设某主机上的网络接口配置和路由表如下:
        这台主机有两个网络接口,一个网络接口连到 192.168.10.0/24网络,另一个网络接口连到 192.168.56.0/24 网络;路由表的 Destination 是目的网络地址,Genmask 是子网掩码,Gateway 是下一跳地址,Iface是发送接口,Flags中的 U 标志表示此条目有效(可以禁用某些 条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发。
转发过程例 1: 如果要发送的数据包的目的地址是 192.168.56.3
跟第一行的子网掩码做与运算得 到 192.168.56.0,与第一行的目的网络地址不符,再跟第二行的子网掩码做与运算得到192.168.56.0,正是第二行的目的网络地址,因此从 eth1 接口发送出去;由于192.168.56.0/24 正是与 eth1 接口直接相连的网络,因此可以直接发到目的主机不需要经路由器转发。
转发过程例 2: 如果要发送的数据包的目的地址是 202.10.1.2。依次和路由表前几项进行对比,发现都不匹配;按缺省路由条目,eth0接口发出去,发往192.168.10.1路由器;由 192.168.10.1 路由器根据它的路由表决定下一跳地址。

六、地区间的网段划分

         这里为了方便,我们直接将各个国家作为网段划分单位,将每个国家的每个省作为更小一级的网段划分单位举例子。以IPv4为例,假设美国划分到的网段是1.0.0.0/8,中国划分到的网段是2.0.0.0/8,俄罗斯划分到的网段是3.0.0.0/8,也就是说拿出前八个比特位来区分国家。我们国家第一台国家级间的路由器IP地址就为2.0.0.1/8。

        我们国家再拿出5个比特位来区分省市,那么陕西省的第一台省间路由器IP地址就是2.8.0.1/13。市与市之间再采用相同的方法,拿出几个比特位来划分市。进一步的,由于IP地址数量的限制,在整个市里就可以构建出一个局域网了,市里的路由器就可以和运营商的出入口路由器构建成一个子网。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

学习Ultralytics(获取yolov8自带的数据集并开始训练)

今天小编带大家学习一下YOLOv8 配置文件,用来定义不同数据集的参数和配置。这些文件包含了关于每个数据集的路径、类别数、类别标签等信息,帮助模型正确地加载和解析数据集,以便进行训练和推理。 具体来说,这些 YAML 文件的作用如…

品牌渠道价格管控策略

在当今竞争激烈的市场环境中,品牌为提升销量和曝光量,积极拓展线上线下销售渠道。然而,不同渠道的价格管控方式存在显著差异,这对品牌的运营和管理提出了挑战。 一、线上线下渠道价格管控特点 线下门店价格管控主要依赖人工巡查。…

基于YOLOV8的西红柿检测系统

基于YOLOv8模型的西红柿检测系统可用于日常生活中检测与定位西红柿(Tomato)目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测。本系统还支持图片、视频等格式的结果可视化。系统采用YOLOv8目标检测算法训练数据集。此外&#…

docker升级mysql

一、首选备份原数据库所有数据 二、在Docker中查看正在运行的MySQL容器名称,可以使用以下命令: docker ps --filter "namemysql" 三、查看当前docker中正在运行mysql的版本 docker exec -it qgz-mysql mysql -V 可以看到当前运行的版本是8.…

NLP入门该看什么书?2024必读NLP书籍!《自然语言处理:基于预训练模型的方法》,快来学起来吧!】

自然语言处理被誉为“人工智能皇冠上的明珠”。近年来,以BERT、GPT 为代表的大规模预训练语言模型异军突起,使问答、检索、摘要、阅读理解等自然语言处理任务性能都得到了显著提升。 《[自然语言处理:基于预训练模型的方法]》一书深入浅出地…

JavaWeb Servlet--09深入:注册系统02--显示所有用户信息

▲▲▲注意:这篇02是必须完成前面的01注册系统---注册界面的!!! 查找所有用户信息界面 该业务就是将数据库里的所有数据进行打印出来反映到界面上,要重新写2个界面,一个是放查询超链接的界面,另一个是跳转…

DBeaver连接mysql 9报错:Public Key Retrieval is not allowed

DBeaver连接mysql 9报错:Public Key Retrieval is not allowed 如图: 解决方案 编辑连接属性: 修改 allowPublicKeyRetrieval 的值为 true DBeaver连接mysql数据库执行.sql脚本,Windows_dbeaver执行sql脚本.sql文件-CSDN博客文章…

机器学习与神经网络荣获诺贝尔物理学奖:科技跨界的新里程碑

在科技日新月异的今天,2024年诺贝尔物理学奖的颁发无疑投下了一颗震撼学术界的重磅炸弹——首次将这一殊荣授予了机器学习与神经网络领域的研究者。这一决定不仅打破了传统物理学奖项的界限,更标志着人类社会对科技进步认知的一次深刻变革,预…

【LeetCode】动态规划—1035. 不相交的线(附完整Python/C++代码)

动态规划—1035. 不相交的线 题目描述前言介绍基本思路1. 问题定义2. 理解问题和递推关系动态规划递推公式:边界条件: 3. 解决方法动态规划方法伪代码: 4. 进一步优化5. 小总结 Python代码Python代码解释总结: C代码C代码解释总结…

大模型时代,程序员当下如何应对 AI 的挑战并迅速成长!!

随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。 同时随着 AI 能力的涌现,AI 已经对现有的软件开发模式和程序员的工作模式造成了冲击,并且大语…

BGA封装芯片贴片加工​时需要注意的细节

在进行BGA 芯片贴片加工时,以下是一些需要注意的细节: 1. BGA 芯片储存:要在合适的温度和湿度环境下储存,防止引脚氧化。 2. PCB 焊盘处理:确保焊盘平整、清洁,无氧化和污染。 3. 锡膏印刷:控制…

2024常用10款源代码加密软件推荐!企业必备保护源代码防泄密

在如今信息安全愈发重要的时代,保护源代码免受未经授权的访问和篡改成为了开发者和企业的首要任务之一。源代码是软件的核心,一旦泄露,不仅会造成商业损失,还可能导致安全漏洞的产生。为了应对这些挑战,源代码加密软件…

智能驾驶|迈向智能出行未来,AI如何应用在自动驾驶?

自动驾驶通过人工智能(AI)、机器学习、传感器融合和实时数据处理,使车辆能够在无需人类干预的情况下自主驾驶。随着科技的飞速发展,人工智能(AI)与智能汽车的结合正在成为现代交通运输领域的热潮。无人驾驶…

Python中的help()函数引发错误:追踪错误并提供解决方案

Python 中的 help() 函数通常用于交互式帮助,它可以显示关于模块、类、函数、方法、关键字等的文档说明。一般情况下,help() 函数不会引发错误,但如果你在使用时遇到问题,可能与以下几种常见情况有关。 1、问题背景 在使用 Pytho…

算法:560.和为k的子数组

题目 链接:leetcode链接 思路分析&#xff08;前缀和&#xff09; 注意&#xff1a;我们前面讲过滑动窗口可以处理子数组、子串等问题&#xff0c; 但是在这道题目里面注意数据范围 -1000 < nums[i] < 1000 nums[i]可正可负&#xff0c;区间的和没有单调性&#xff0c;使…

系统特性、自定义特性

特性指的是一种允许程序员向程序添加元数据的语言结构,用于存储程序结构信息的特殊类。比如为类添加元数据就是在类的定义中添加一些额外的信息,这些信息不是类的功能部分,而是描述一些性质,用途等内容。 语法结构:[特性名(参数列表)]。(就是调用特性类的构造函数) 系…

物联网IoT平台 | 物联网IoT平台的定义

物联网IoT平台&#xff1a;定义、发展与应用在当今信息化时代&#xff0c;物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;已经成为推动社会进步和产业升级的重要力量。物联网IoT平台&#xff0c;作为连接物理世界与数字世界的桥梁&#xff0c;正逐步改变…

食堂校园预约就餐系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;商品管理&#xff0c;论坛管理&#xff0c;用户管理&#xff0c;商家管理&#xff0c;公告信息管理&#xff0c;基础数据管理 微信端账号功能包括&#xff1a;系统首页&#xf…

【数据集】2023-2011年上市公司企业新质生产力数据(李心茹版本)

一、测算方式&#xff1a;参考《西部论坛》李心茹&#xff08;2024&#xff09;老师的做法&#xff0c;基于数据可获得性对其评价指标进行综合和调整&#xff0c;构建如表 1 所示的企业新质生产力评价指标体系&#xff0c;然后采用熵值法进行测算计算得到“新质生产力”变量&am…

项目管理的完整流程——你知道吗?

一个完整而有效的项目管理流程&#xff0c;能够确保项目按时、保质、保量地完成&#xff0c;实现客户与领导的双赢。那么&#xff0c;项目管理的完整流程究竟是什么呢&#xff1f; 一、启动 项目启动阶段如同大厦的根基&#xff0c;至关重要。 在这个阶段&#xff0c;需要制定…