《计算机网络——自顶向下方法》精炼——4.4.1-4.4.2

news2024/11/17 0:04:49

敬教劝学,建国之大本;兴贤育才,为政之先务。——《朱舜水集。劝学》

文章目录

  • IPv4编址
    • 接口
    • IP地址
      • 子网
    • 无类别域间路由选择(CIDR)
      • 获取一块地址
      • 获取主机地址
      • 网络地址转换

IPv4编址

接口

主机或路由器与物理链路的边界称作接口。一台主机往往只有一个接口,而路由器由于要转发数据报,有两个或多个接口,IP要求每个接口有自己的IP地址,因此一个主机通常只有一个IP地址,但路由器有多个。

IP地址

IP地址长度为32比特,因此有232个可能的IP地址。这些IP地址一般用点分十进制记法,将每一个字节转换成十进制来表示,例如135.34.32.167,就是一个合法的IP地址,每一个十进制数都等价于一个八比特的二进制数。

子网

如果一组接口之间没有互联网连接,只靠链路相连,那么这些端口组成一个子网。例如:
在这里插入图片描述
在这个网络中,有六个子网:

  • 左下角,右下角,上面各有一个由两个主机接口和一个路由器接口组成的子网。
  • 223.1.9.1和223.1.9.2;223.1.8.1和223.1.8.0;223.1.7.1和223.1.7.0分别组成一个子网。

仔细观察这些子网可以看到,同一个子网的接口IP地址前24位都是一样的,事实上,IP编址为每个子网分配一个这样的地址:xxx.xxx.xxx.0/24,其中的/24称为子网掩码,表示最左侧的24比特定义了子网地址。

无类别域间路由选择(CIDR)

因特网的地址分配策略称为CIDR,该策略将一个地址分为两部分,写作a.b.c.d/x,前x比特构成了IP地址的网络部分,常被称为前缀。在同一个子网内接口的网络部分完全相同,子网外的分组前缀如果与该网络部分相同,那么可以直接寻址到该子网。多个子网可以构成一个更大的地址块,这个地址块拥有更短的网络部分,于是互联网形成层次结构。这种使用单个网络前缀通告多个网络的能力称为地址聚合或路由聚合或路由摘要。例如:
在这里插入图片描述
在这个图片中,组织0-7是七个子网,他们子网地址的前缀长23比特,这7个子网聚合起来的分配给ISP的地址块向ISP外通告的是拥有20比特前缀的IP地址。当ISP外的某个主机想要向组织3中的主机发送分组时,它先通过前20比特寻址到该ISP内,然后在通过前23比特寻址到组织3。
但是,如果组织1转而通过下面的ISPs-R-Us与因特网相连,又该如何寻址呢?此时上面的ISP通告范围不变,下面的ISP除了继续通告原有地址块外,再通告组织1的子网地址“200.23.18.0/23”,由于最长前缀匹配原则,当有目的地为组织1的分组寻址时找到的是23比特前缀的通告,而不是20比特的。
在CIDR之前,IP地址采用分类编址的方案,网络部分被限制为8/16/24比特,分别被称为A,B,C类网络。但这种编址方式太过死板,抛去2个特殊用途的IP地址,一个子网如果采取C类网络,只能容纳254台主机,但如果采取B类网络,会有65534个空间,会造成地址浪费。
最后,有一个特殊的IP地址255.255.255.255,当目的地址为255.255.255.255时,它将这个分组发送给同一个网络的所有主机。
子网和网络的区别:每一个网络中有很多个子网。例如,因特网是一个网络,它其中包括很多很多个子网。

获取一块地址

对于一个组织的子网,获取地址有两种方法:

  • 联系它的ISP,由ISP从其拥有的地址块中分出一块给该子网。
  • 向因特网名字和编号分配机构(ICANN)直接获取,ISP本身也是用这种方法获取IP地址块的。

获取主机地址

在网络中,一个主机的IP地址就相当于这个主机的“身份证”,别的主机靠IP地址来辨别它。如果一个主机或路由器想要获得一个IP地址,对于路由器来说,一般由系统管理员手动配置;对于主机来说,更多的是使用动态主机配置协议(DHCP)完成。
DHCP在某个主机每次与网络相连时给它一个固定的IP地址或者给它分配一个临时IP地址,若是临时IP地址,那么每次与网络连接时该地址都不同。它还支持主机得知它的子网掩码等网络相关信息。由于DHCP具有将主机自动连接进一个网络的能力,它又被称为即插即用协议。临时IP地址的方法有效的节省了IP地址空间,例如,假设一个ISP有2000个主机,但只有400个主机会同时在线,那么分配IP地址的DHCP服务器只需拥有一个512的IP地址块即可。
DHCP是一个客户-服务器协议。在一个子网中,有一台或多台DHCP服务器或DHCP中继代理(通常是一台路由器),DHCP中继代理知道在该网络中的所有DHCP服务器的地址。
在这里插入图片描述
在该网络中,当新的主机加入左边子网或下边子网时,中间的路由器就起到了DHCP中继代理的作用。
主机通过以下几步请求向一个DHCP服务器请求一个DHCP地址:
在这里插入图片描述

  • DHCP服务器发现:主机为了发现DHCP服务器,以广播目的地址255.255.255.255向网络中的所有主机发送DHCP发现报文,在报文中,该主机附上自己的“源地址”0.0.0.0。
  • DHCP服务器提供:网络中可能有多个DHCP服务器,每一个服务器收到DHCP发现报文后,发送DHCP提供报文向客户作出响应。由于不知道需要IP地址的主机是哪个,该报文也采用广播目的地址进行传播。在该报文中,带有四条信息:该报文的事务ID,向客户推荐的IP地址,网络掩码,IP地址租用期(IP地址有效的时间量)。
  • DHCP请求:客户从多个发送提供报文的服务器中选择一个发送DHCP请求报文进行响应,在报文中回显配置参数。
  • DHCP ACK:收到请求的服务器用DHCP ACK报文响应请求报文,证实回显的参数。

网络地址转换

随着在家庭或企业中越来越多主机的出现,一个子网中所分配的地址块可能不能满足其中主机的使用,但若是按照旧有的方法,则地址块被固定,不能进行扩张,因此出现了网络地址转换(NAT)
在这里插入图片描述
上图是一个NAT的示意图。可以看到,以中间的路由器为分界,左边是外部网络,左侧接口的IP地址是外部网络主机所看到的IP地址;右边是子网,其子网地址是10.0.0.0/24,这是一个特殊的子网地址。在网络中,有3块IP地址空间被保留,它们用于专用网络具有专用地址的地域。在这种子网中,主机的IP地址只对同一个子网中的设备有意义。相当于是一个“外号”而不是“大名”,这些主机没有对外部网络的IP地址,即没有“大名”,只有在这个小团体(即子网)中互相称呼的“外号”,需要与外界联系时,它们会通过拥有“大名”的路由器。而在因特网中,有几十万的这样的子网在使用这三块IP地址空间。对于路由器来说,它的外部网络IP地址通过ISP得到,而它自身也运行一个管理子网地址空间的DHCP服务器,为它自己和子网中的主机提供只能在子网中使用的IP地址。
那么,子网中的主机是怎么通过路由器和外部网络连接的呢?NAT使路由器在外部网络看来只是一台拥有单一IP地址的单一设备,当外部主机想要给子网中的任意一个主机发送分组时,同一将分组发送给这个路由器。路由器则通过NAT转换表与子网主机进行互动。当子网主机发送分组到外部网络时,先要经过路由器。路由器提取出数据中的源IP地址和源端口号信息并写入NAT转换表的LAN端。然后路由器改装该数据报,将自己在外部网络的IP地址写入源IP地址,并启用一个端口号,将这个端口号写入源端口号字段,将这两个信息写入NAT转换表的WAN端然后发送出去。当有外来的分组想要发送给子网中的主机时,它就可以查阅NAT转换表,根据分组中的目的IP地址和目的端口号进行逆向改装,将对应的LAN端目的IP地址和目的端口号写入,然后发送给对应的子网主机。
NAT会妨碍P2P应用程序,因为在P2P应用程序中两个对等方需要一条直接的TCP连接,而路由器阻挡了这一连接。如果对等方A不在NAT后,而对等方B在,那么A可以通过另一个不在NAT后且与B创建了TCP连接的对等方C请求到B,并于B创建一条直接的TCP连接。这种A与C的雇佣关系称为连接反转,被许多P2P应用程序用于NAT穿越。当A和B都在NAT后时,就需要应用程序自己解决了。
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

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

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

相关文章

深度学习卷积神经网络CNN之ResNet模型网络详解说明(超详细理论篇)

1.ResNet背景 2. ResNet论文 3. ResNet模型结构 4. ResNet优缺点 一、ResNet背景 ResNet 在2015 年由微软研究院提出的一种深度卷积神经网络结构,在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中取得了冠军(分类…

python - kubernetes中grpc服务健康检查实现

概述 kubernetes本身不支持gRPC健康检查,本文记录使用 ‘grpc-health-probe’ 实现grpc服务的健康检查 ‘grpc-health-probe’,这是 Kubernetes 原生的健康检查 gRPC 应用程序的方法 官方参考文档:https://kubernetes.io/zh-cn/blog/2018/1…

45--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-纯手工安装部署和docker一键部署

前期准备: 购买服务器,公网地址访问 服务器有多种选择,阿里云,腾讯云,华为云(可以免费试用几个月) 买阿里云就当成你去电脑市场组装了一台电脑。阿里云按时间计费(账户余额要大于100)。 购买流程: 搜索云服务器 开始创建你的云服务器 按量付费:用多少扣多少 地域…

ORACLE PL/SQL编程总结(一)

目录 1.1 SQL与PL/SQL 1.2 PL/SQL的优点或特征 1.3 PL/SQL 可用的SQL语句 1.4 运行PL/SQL程序 2.1 PL/SQL块 2.2 PL/SQL结构 2.3 标识符 2.4 PL/SQL 变量类型 2.5 运算符和表达式(数据定义) 2.6 变量赋值 2.7 变量作用范围及可见性 2.8 注释 2.9 简单例子 3.1 条件…

算法刷题-哈希表-两数之和

两数之和 1. 两数之和思路总结其他语言版本 1. 两数之和 力扣题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中…

【Leetcode】DP | 买卖股票的最佳时机,DP居然还可以用状态机?

带状态的DP君~ 类型总结:买卖一次、买卖无限次、买卖k次、买卖无限次、含冷冻期。 买卖k次的问题需要不断统计、维护买卖i次的最大收益。 状态较多的题可以借助状态机分析状态转移情况。 121 买卖股票的最佳时机 统计第 i i i天之前的股票最低价格,…

性能测试项目实战:应用加载慢该怎么办?

背景 app收到留学push、课堂、资讯,用户点击push消息,进入app,应用加载很慢,容易出现应用假死、app崩溃或提示网络异常等信息。 给用户体验十分不友好,监控阿里云资源tcp连接数飙高,cpu打满&#xff0c…

Nginx运行原理与基本配置文件讲解

文章目录 Nginx基本运行原理Nginx的基本配置文件serverlocationroot 与 alias 的区别server 和 location 中的 rootnginx欢迎页 本文参考文章Nginx相关文章 Nginx基本运行原理 Nginx的进程是使用经典的「Master-Worker」模型,Nginx在启动后,会有一个master进程和多个…

docker-compose编排容器

系列文章目录 文章目录 系列文章目录一、docker-compose1.Docker Compose2.YAML 文件格式及编写注意事项3.安装docker-compose4.Docker Compose配置常用字段 二、创建compose1.准备依赖文件2. 总结 一、docker-compose 1.Docker Compose 如果需要定义多个容器就需要服务编排。…

priority_queue的模拟实现

前言 优先级队列听名字好像与队列有关,但是实际上,与队列没有很多关系,它也是容器适配器,是通过vector来适配的,但是里面又加入了堆的调整算法。跟栈和队列又有一些不同,了解它的实现对于我们更好的掌握它是…

新手上路,安全驾驶,做行车安全的第一责任人

目录 一、生活与汽车二、树立安全意识三、掌握驾驶经验四、参考材料 道路千万条,安全第一条,行车不规范,亲人两行泪。 ——《流浪地球》 一、生活与汽车 开车是为了节省在路途上花费的时间,片面的追求交通效率会引发交通安全问题&…

day8 栈顶的种类与应用

目录 多寄存器访问指令与寻址方式 多寄存器内存访问指令 多寄存器内存访问指令的寻址方式 ​编辑 栈的种类与使用 栈的概念 栈的分类 栈的应用举例 叶子函数的调用过程举例 多寄存器访问指令与寻址方式 多寄存器内存访问指令 MOV R1, #1 MOV R2, #2 MOV R3, #3 MOV R…

Redis 持久化存储机制:RDB 和 AOF

Redis(Remote Dictionary Server)是一个高性能的键值存储系统,它可以将数据存储在内存中以实现快速访问。为了保持数据的持久性,Redis 提供了两种数据持久化方法:RDB 和 AOF。 RDB(Redis Database&#xff…

spring源码-代码的特殊写法

spring源码-代码的特殊写法 前言 在阅读spring源码中,可能会有很多种代码写法在工作中都没遇见过,阅读起来有一定的难度,在本文中,我会把我认为有难度的代码写法拿出来,并举例子说明清楚,方便大家阅读并理…

股价暴涨59%后,美股二手车平台Carvana在短期内还会进一步上涨?

来源:猛兽财经 作者:猛兽财经 Carvana(CVNA)股票在财报发布近一个月后又重新开始出现了上涨。 仅6月9日就上涨了59%。 相对于纳斯达克综合指数的上涨幅度,Carvana今年迄今为止的上涨幅度已经比纳斯达克综合指数高出了约400%。 Carvana最…

RabbitMQ - 死信队列,延时队列

Time-To-Live and Expiration — RabbitMQ 一、死信队列 Dead Letter Exchanges — RabbitMQ 死信队列: DLX 全称(Dead-Letter-Exchange),称之为死信交换器,当消息变成一个死信之后,如果这个消息所在的队列存在x-d…

全球、全国遥感土地利用数据产品下载(1m、10m、30m分辨率,内含链接与详细教程)

土地利用/覆被数据能够获取地表覆被信息,同时也是地球系统科学学科的基础数据(如生态、水文、地质等)吗,目前,基于遥感生成的土地利用/覆被数据产品比较多样,本文整理了目前应用比较多的7种数据产品进行介绍…

Hazel游戏引擎(007)Premake

文中若有代码、术语等错误,欢迎指正 文章目录 前言操作步骤premake写lua脚本文件执行premake.exe文件效果 前言 此节目的 由于之前配置VS项目各项属性需要根据不同平台手动一个一个设置,很麻烦,缺乏灵活性。 用lua脚本配置项目属性&#xff0…

基于Java+SpringBoot的鞋类商品购物商城系统设计与实现

博主介绍:✌擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案…

业务部门的通病:想搞了大而全的软件

业务部门的通病:想搞个大而全的软件 怎么样评价软件功能的价值重要性? 软件的消耗成本是惊人的 中小企业一定要约束需求 做SaaS的香港上市公司有赞(做商城软件) 10年了还在亏损 趣讲大白话:大而全的功能是陷阱 【趣讲信…