计算机网络第4章-IPv4

IPv4数据报格式

IPv4数据报格式如下图所示

其中,有如下的关键字段需要特别注意:

版本(号):

版本字段共4比特,规定了数据报的IP协议版本。通过查看版本号吗,路由器能确定如何解释IP数据报的剩余部分。不同的IP版本使用不同的数据报格式。

首部长度:

因为一个IPv4数据报可包含一些可变数量的选项(这些选项包括在IPv4数据报首部中。)

故需要这4比特来确定IP数据报中载荷实际开始的地方(也就是数据开始的地方,从第几个自己开

始是数据)。大多数的IP数据报中不包含选项,故一般的IP数据报具有20字节的首部。

服务类型:

服务类型(TOS)比特包含在IPv4首部中,以便使不同的IP数据报能够相互区别开来(TCP/UDP)。

数据报长度:

这是IP数据报的总长度(首部加上数据),以字节计算。该字段长为16比特,故IP数据报的最大理论长度为65535(2的16次方-1)。

然而,数据报很少有超过1500字节的。

标识、标志、片偏移:

这三个字段与IP分片有,但是IPv6不允许分片。

寿命(TTL):

该字段用来确定一个数据报在网络中存在的时间,每当一个路由器处理一次该数据报,TLL就减

一,当TTL等于0时,数据报就会被丢弃。

协议:

该字段通常仅当一个IP数据报到达目的地的时候才会有用,该字段指示了IP数据报的数据部分应当

交给哪一个运输层协议。

例如,值为96交给TCP,值为17交给UDP。

首部检验和:

首部检验和用于帮助路由器检测收到的IP数据报中的比特错误。

源和目的IP地址:

当某源生成一个数据报时,它在源IP字段中插入它的IP地址,在目的IP地址字段中插入最终目的地

的地址。

选项:

选项字段允许IP首部被扩展。

数据(有效载荷):

传输的数据。

IPv4数据报分片

数据报分片的由来

在后面,我们将会知道链路层协议承载的网路层分组的长度是不一样的,我们把一个链路层帧能承

载的最大数据量叫作最大传送单元(MTU)。

因此,我们需要对IP数据报进行合理的切片,以便数据报在任何链路层上都能被运输。

数据报切片的具体过程

现在我们假设,一个端系统接收到了很多个小的切片。

端系统该怎么将这些切片合理的分组并且拼接到一起呢?

IP数据报的标识字段,用来确定那些数据报切片是同一个原始数据报的。

发送主机发送的每一个数据报都会有一个标识,标识是依次加1的。

当某路由器需要对一个数据报切片时,形成的每一个小的数据报都具有相同的源地址和目的地址,

并且具有相同的一个标识,因此标识相同的小数据报就是一个源数据报的。

IP数据报的标志字段,用来确定某个小的数据报切片是某个源数据报切片后生成众多小小数据报的

最后一个。

例如某个数据报被分成了N片,则前面的N-1片的标志比特都是1,而最后一个片的标志比特是0,

用来表示该片是最后一片。

IP数据报的片偏移字段用来确定某个数据报切成的片中,有没有一些片丢失。

IPv4编址

主机与路由器连入网络的方法

一台主机通常只有一条链路连接到网络,当主机中的IP想发送一个数据报时,它就在该链路上发

送。

主机与物理链路之间的边界叫作:“接口”(interface)

一台路由器有多条链路,因此路由器有多个接口,路由器与它的任意一条链路之间的边界也叫作接口。

IP要求每台主机和路由器接口拥有自己的IP地址。

因此,从技术上讲,一个IP地址与一个接口相关联,而不是与包括该接口的主机或路由器相关联。

IPv4的具体编址原理

每个IP地址长度为4字节,因此共有2的三十二次方个可能的ip地址(40亿个)。

这些地址通常按所谓点分十进制记法书写。

即地址中的每个字节用它的十进制形式书写,各字节间以句点隔开。

例如:IP地址:193.32.216.9,

其中,193是该地址的第一个8比特的十进制等价数,32是该地址的第二个8比特的十进制等价数。

因此,193.32.216.9的二进制记法是:

“11000001 00100000 11011000 00001001”

在全球因特网的每台主机和路由器上的每个接口,都必须有一个全球唯一的IP地址(NAT后的接口

除外)。

而一个接口的地址的一部分,需要由其连接的子网来确定。

下面是一个IP编址与接口的例子:

在上图中,这七台主机通过一个路由器进行互联,该路由器有三个接口(223.1.1.4、223.1.2.9、

223.1.3.27)。

其中,最左边的三台主机,它们的IP地址是“223.1.1.xxx”开头的地址。

因此包括最左边的三个主机和一个223.1.1.4的路由器接口通过一个并不包含路由器的网络互联起

来。

在此情况下,该网络可能是由一个以太网LAN互联或者一个无线接入点互联

用IP的术语来说,互联这三个主机接口和一个路由器接口的网络形成一个子网(subnet)。(在某

些地方,子网也被称为IP网络或直接称为网络。)

IP编址为这个子网分配一个地址223.1.1.0./24。

其中的/24记法,有时称为:“子网掩码”(networkmask),指示32比特中的最左侧24比特定义了

子网地址。

因此子网223.1.1.0/24由三个主机接口和一个路由器接口组成,任何其他要连到223.1.1.0/24网络的

主机都要求其地址具有223.1.1.xxx的形式。

下图是另外两个子网

下面我们更为深入的讨论子网掩码:

对上图而言,我们有几个子网呢?

首先,是三个路由器和主机之间的子网(223.1.1.0/24、223.1.2.0/24、223.1.1.3.0/24)

此外,还有三个路由器和路由器之间的子网:

(223.1.7.0/24、223.1.8.0/24、223.1.9.0/24)

因此,我们有了一个更为精确地系统中的子网定义:

“分开主机和路由器的每个端口,产生几个隔离的网路岛,使用接口端连接这些隔离的网络的端

点。这些隔离的网络中的每一个都叫做一个子网”。

因特网的地址分配策略被称为无类别域间路由选择CIDR)。

CIDR将子网寻址的概念一般化了。当使用子网寻址时,32比特的IP地址被划分为两部分,并且也

具有点分十进制形式a.b.c.d/x,其中x指示了地址的第一部分中的比特数

形式为a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,并且经常被称为该地址的前缀

(prefix)(或网络前缀)。

一个组织通常被分配一块连续的地址,即具有相同前缀的一段地址。

此外,还有一种特殊类型的IP地址,即IP广播地址:255.255.255.255。

当一台主机发送一个目的地址为255.255.255.255的数据报时,该报文会交付给同一个网络中的所

有主机。

路由器也会有选择地向邻近的子网转发报文。(虽然通常不这样做。)

路由聚合、地址聚合、路由摘要

这是一个ISP将8个组织连接到因特网的例子,它也很好地说明了仔细分配CIDR 化的地址有利于路

由选择的道理。

如下图,假设该ISP (我们称之为Fly- By-Night-ISP) 向外界通告,它应该发送所有地址的前20比特

是200. 23. 16. 0/20类型的数据报。

外界的其他部分不需要知道在地址块200. 23. 16. 0/20内实际上还存在8个其他组织,其中每个组

织有自己的子网°这种使用单个网络前缀通告多个网络的能力通常称为

地址聚合(address aggregation )

也称为路由聚合(route aggregation )

或者路由摘要(routesummarization)

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

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

相关文章

【C++】类与对象 上

前言 感觉自己的基础还是不够好 最近打算在学新知识的同时 把之前的一些知识点再复习一下 引入 在C语言的学习中 我们学习过结构体 我们用结构体来描述复杂的对象 在结构体中只能定义变量 而在C的结构体中 我们可以在C中 定义函数 下面给出一个简单的例子 创建一个结构体 并…

MySQL数据脱敏(Data masking plugin functions)

对于企业而言,数据脱敏可以在数据共享或测试时用于保护敏感数据(如信用卡,社保卡,地址等)。通过对敏感数据进行脱敏处理,组织可以最大限度地降低数据泄露和未经授权访问的风险,同时仍能够使用真…

前端框架Vue学习 ——(七)Vue路由(Vue Router)

文章目录 Vue路由使用场景Vue Router 介绍Vue Router 使用 Vue路由使用场景 使用场景:如下图,点击部门管理的时候显示部门管理的组件,员工管理的时候显示员工管理的组件。 前端路由:指的是 URL 中的 hash(#号)与组件之间的对应关…

2019数二(二重积分的不等式问题)

注&#xff1a; 1、在相同积分区域内的积分比较大小&#xff1a;被积函数大的积分值大&#xff0c;被积函数小的积分值小 2、在区间[0&#xff0c;Π/2]上 &#xff1a;sinx < x < tanx

前端面试题之CSS篇

1、css选择器及其优先级 标签选择器: 1类选择器、属性选择器、伪类选择器&#xff1a;10id选择器&#xff1a;100内联选择器&#xff08;style“”&#xff09;&#xff1a;1000!important&#xff1a;10000 2、display的属性值及其作用 属性值作用none元素不显示&#xff0c…

zookeeper本地部署和集群搭建

zookeeper&#xff08;动物园管理员&#xff09;是一个广泛应用于分布式服务提供协调服务Apache的开源框架 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它 负责存储和管理大家都关心的数据 &#xff0c;然 后 接受观察…

初阶JavaEE(14)表白墙程序

接上次博客&#xff1a;初阶JavaEE&#xff08;13&#xff09;&#xff08;安装、配置&#xff1a;Smart Tomcat&#xff1b;访问出错怎么办&#xff1f;Servlet初识、调试、运行&#xff1b;HttpServlet&#xff1a;HttpServlet&#xff1b;HttpServletResponse&#xff09;-C…

QQ怎么恢复聊天记录?3个方法解决聊天记录丢失问题!

对很多人来说&#xff0c;QQ聊天记录保留了宝贵的信息与青春回忆。这是使得许多小伙伴久久不舍得卸载QQ的重要原因之一。然而&#xff0c;由于各种原因&#xff0c;有时我们会遇到聊天记录丢失的情况。qq怎么恢复聊天记录&#xff1f;如果您意外删除了QQ聊天记录并感到焦虑、不…

【大数据】常见的数据抽取方法

常见的数据抽取方法 1.基于查询式的数据抽取1.1 触发器方式&#xff08;又称快照式&#xff09;1.2 增量字段方式1.3 时间戳方式1.4 全表删除插入方式 2.基于日志的数据抽取 数据抽取 是指从源数据源系统抽取需要的数据。实际应用中&#xff0c;数据源较多采用的是关系数据库。…

关于笔记平台的使用感受分享

关于笔记平台的使用感受分享 前言我用过的笔记平台笔记平台简单评价巴拉巴拉WPS文档/OneNote/TowerNotion/语雀各种博客平台 个人使用率最高的平台 前言 最近也有部分同学问我平常用的笔记平台是什么&#xff0c;以及我比较推荐的平台是什么。这里不是广告哈&#xff0c;因为我…

数据可视化:地图

1.基础地图的使用 如何添加颜色表示层级 代码实现 """基础地图的使用 """ from pyecharts.charts import Map from pyecharts.options import VisualMapOpts# 准备地图对象 map Map() # 准备数据 data [("北京市", 9),("上海市…

墨者学院 内部文件上传系统漏洞分析溯源

打开web页面&#xff1a; 是个文件上传&#xff0c;先随便上传一个 txt 文件并抓包&#xff1a; 木马文件&#xff1a; <%eval request ("123")%>发现是个 IIS&#xff0c;并且给了文件的上传路径 upload&#xff0c;那就尝试上传 asp 一句话&#xff0c;直接…