建设一个网站需要什么,wordpress 相关文章推荐,企业网站 微信里怎么做,安徽省建设工程信息网站进不了网际协议IP 文章目录网际协议IP[toc]虚拟互联网IP地址及其表示方法分类IP地址(两级)无分类编址 CIDR网路前缀地址块地址掩码子网划分#xff08;三级IP地址#xff09;IP地址和MAC地址地址解析协议ARPIP数据报的格式IP数据报首部的固定部分中的各字段IP数据报首部的可变部分分…网际协议IP
文章目录网际协议IP[toc]虚拟互联网IP地址及其表示方法分类IP地址(两级)无分类编址 CIDR网路前缀地址块地址掩码子网划分三级IP地址IP地址和MAC地址地址解析协议ARPIP数据报的格式IP数据报首部的固定部分中的各字段IP数据报首部的可变部分分组转发算法网际层控制报文协议ICMPICMP的典型应用PingTracertNQA参考
网际协议IP是TCP/IP体系中两个最主要的协议之一也是最重要的互联网标准协议之一。
与IP协议配套使用的还有三个协议
地址解析协议 ARP (Address Resolution Protocol)网际控制报文协议 ICMP(Internet Control Message Protocol)网际组管理协议 IGMP(Internet Group Management Protocol) 在这一层中IP经常要使用ARP这个协议。ICMP和IDMP要使用IP协议。由于网际协议TCP/IP体系中的网络层常常被称为网际层或IP层。
虚拟互联网
一般来讲将网络互联起来要使用一些中间设备。根据中间设备所在的层次可用由以下四种不同的中间设备
物理层转发器repeater数据链路层网桥或称为桥接器bridge网络层路由器router网络层以上网关gateway。用网关连接两个不兼容的系统需要在高层进行协议的转换。
当中间设备时转发器或网桥时这仅仅将一个网络扩大了而从网络层的角度来看这任然是一个网络一般不称之为网络互联。
当许多计算机通过一些路由器进行互联。由于参加连接的计算机网络都使用相同的网际层协议(Internet Protocol)因此可以把参与互连以后的计算机网络看作是一个虚拟互连网络。所谓的虚拟网络就是逻辑互联网络它的意思是互连起来的各种物理网络的异构性本来是客观存在的但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
IP地址及其表示方法
IP地址现在由互联网名字和数字分配机构ICANN进行分配。
IP地址的编址方式经历了三个阶段
分类的IP地址子网的划分构成超网 CIDR 按照灵活度排 构成超网 子网划分 分类IP地址。 因为CIDR其实是进一步对子网划分的扩展所有后面讲的话先讲CIDR子网划分的部分自然也就清楚了。 IP地址的特点
每一个IP地址都由网络号和主机号两部分组成。这样做的好处时① IP地址的管理机构在分配IP地址时只分配网络号而剩下的主机号则由得到该网络的单位自行分配。② 路由器仅根据目的主机所连接的网络号来转发分组而不考虑目的主机号这样子就可以使路由表中的项目数大幅度减少从而减小了路由表所占用的存储空间以及查找路由表的时间。实际上IP地址是标志一台主机或路由器和一条链路的接口。当一台主机同时连接到两个网络时这种主机称为多归属主机。按照互联网的观点一个网络号是指具有相同网络号net-id的主机的集合因此用转发器或网桥连接起来的若干个局域网仍为一个网络。在IP地址中所有分配到网络号的网络不管是范围很小的局域网还是可能覆盖很大的地理范围的广域网都是平等的。
分类IP地址(两级)
所谓的分类IP地址就是将IP地址划分为若干个固定类。每一类都由两个固定长度的字段组成分别是网络号和主机号。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见一个IP地址在整个互联网范围内是唯一的。这种两级的IP地址可以记为 IP地址::{网络号,主机号}IP地址 :: \{ 网络号, 主机号 \} IP地址::{网络号,主机号}
从上图中我们就可以比较清晰的看出各类IP地址网络号和主机号的划分。
A类地址的网络号只有7位可以用其中网络号全为0的IP地址表示“本网络”网络号全为1即1270111 1111保留作为本地环回测试。因此A类地址可指派的网络号是126个(27−22^7 - 227−2)。计算其他类的网络数时不需要减2
A类地址的主机号占3个字节。但全0和全1的主机号一般不指派。全0 的主机号表示该IP地址是“本主机”所连接到的单个网络地址。全1表示该网络上的所224−22^{24} - 2224−2即16777214. 无分类编址 CIDR
这种编址的方法的全名是 无分类域间路由选择 CIDR(Classless Inter-Domain Routing)其要点有以下三个。
网路前缀
CIDR中将网络号改称为“网络前缀”。CIDR的记法是 IP地址::{网络前缀,主机号}IP地址 :: \{ 网络前缀,主机号 \} IP地址::{网络前缀,主机号} 这里的网络前缀是可以在0-32之前取任意值这是跟分类IP地址的最大区别。CIDR采用“斜线记法”即在IP地址的后面加上斜线“/”斜线的后面是网络前缀所占的位数。
地址块
CIDR把网络前缀都相同的所有连续的IP地址组成一个“CIDR地址块”。例如128.14.35.7/20,包含的网络前缀是20位剩下的12位是主机号。那么对应的可指派的地址数就是212−22^{12} - 2212−2个
地址掩码
CIDR使用斜线记法可以让我们知道网络前缀的数值。为了让计算机能够识别网络地址是否相同就要用到地址掩码掩码。地址掩码又称为子网掩码。掩码其实就是IP对应的网络号的二进制位全为1主机号对应的二进制位全为0.例如/20地址块的地址掩码就是11111111 11111111 11111111 11110000 00000000。又如A类网络的地址掩码为 255.0.0.0或255.0.0.0/8。所以只要将子网掩码和IP地址相与就可以得到网络号。
子网划分三级IP地址
子网的划分是在分类IP地址上做的一种扩展。换一种说法是将分类IP地址中的部分主机号也看作是网络号的一部分子网号。子网的划分在应用的时候也需要使用到掩码其用法跟CIDR中的一样。 IP地址和MAC地址 MAC地址已固化在网卡上的ROM中因此常常将MAC地址称为硬件地址或物理地址。从层次上来看MAC地址是数据链路层的地址IP地址是网络层和以上各层使用的地址是一种逻辑地址称IP地址是逻辑地址是因为IP地址是用软件实现的。当IP数据报插入到MAC帧以后整个数据的IP数据就成为MAC帧的数据因而在数据链路层看不到数据报的IP地址。 地址解析协议ARP
在实际应用中我们经常会遇到这样一个问题已经知道了一个机器的IP地址需要找出其IP地址。地址解析协议ARP就是用来解决这个问题的。要注意的是ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射问题。
地址解析协议ARP是在主机的ARP高速缓存中存放一个IP地址到MAC地址的映射表并且这个映射表还经常动态更新新增或超时删除。
当主机A要向本局域网上的某台主机发送IP数据报就先在其ARP告诉缓存中查看有无主机B 的IP地址。如果有就把查到的这个MAC地址写入到MAC帧然后通过局域网把该MAC帧发送往此MAC地址。
如果无法在自己的ARP缓存中找到则按照下图的方式找出主机B 的MAC地址。 IP数据报的格式 一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度共20字节是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段其长度是可变的。
IP数据报首部的固定部分中的各字段 版本 占4位指IP协议的版本。通信双方使用的IP协议的版本必须一致。IPv4的版本号即4. 首部长度 占4位可表示的最大十进制数是15首部长度字节所表示的数据单位是32字即4字节。因为IP首部的固定长度是20字节因此此首部字段的最小值是5即0101.当首部的值为15即1111表明IP首部的长度最大为60字节。 区分服务 占8位。只有当使用区分服务时这个字段才起作用在一般情况下都不使用这个字段。 总长度 总长度指的是首部和数据部分长度之和单位是字节。因此数据报的最大长度为216−1655352^{16} - 1 65535216−165535字节。但这样长的数据报在现实中是极少遇到的。 在IP层的下面每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度这称为最大传送单元 MTUMaximum Transfer Unit。例如最常用的以太网就规定其MTU值是1500字节。若传送的数据报长度超过数据链路层的MTU值就会将过长的数据报进行分片处理。 标识identification 占16位。IP软件在存储器中位置一个计数器每产生一个数据报计数器就加1并赋值给标识字段。相同标识字段的值使分片后的数据报片能正确地重装为原来的数据报。 标志flag 占3位但目前只有两位有意义。 最低位 MFMore Fragment MF 1表示后面还有分片。反之则表示无分片。中间位 DFDon’t Fragment DF 1表示不能进行分片。反之则表示可以分片。 片偏移 占13位。片偏移指出较长的分组在分片或某片在原分组中的相对位置相对于用户数据字段的七点。片偏移以8字节位偏移单位。也就是说每个分片的长度一定是8字节的整数倍。为了更好地理解可以看以下例子。要将数据部分长度位3800字节长的IP数据报进行分片要求分片长度不超过1420字节的数据报片。 生存时间 占8位生存时间字段常用的英文缩写是TTLTime to Live表明这是数据报在网络中的寿命。现在TTL的功能改为了“跳数限制”。路由器在每次转发数据报前就把TTL减1.若TTL值减小到零就丢弃这个数据报不再转发。因此现在TTL的单位是跳数。数据报在互联网中经过的路由器的最大数值是255如果TTL初始设置为1说明这个数据报只能在本局域网中传送。 协议 占8位协议字段指出此数据报携带的数据是使用何种协议让目标主机IP层知道应将数据部分上交给哪个协议进行处理。常用的协议如下 协议名ICMPIGMPIPTCPEGPIGPUDPIPv6ESPOSPF协议字段值12468917415089 首部检验和 占16位。这个字段只检验数据报的首部但不包括数据部分。检验原理如下图 源地址 占32位 目的地址 占32位
IP数据报首部的可变部分
IP数据报的可变部分从1个字节到40个字节不等。其中的内容其实就是选项字段用来支持排错、测量以及安全等措施内容很丰富。
分组转发算法
分组转发算法如下
从数据包的首部提取目的主机的IP地址D得出目的的网络地址为N。若N就是与此路由器直接相连的某个网络地址则直接交付不需要再经过其他路由器直接把数据交付给目的主机这里包括把目的主机地址D转化为具体硬件地址把数据报封装为MAC帧再发送此帧过程中不修改IP数据报中的IP地址否则就是简介交付执行3.若路由表中由目的地址为D的特定主机路由则把数据传送给路由表中所指明的下一跳路由器这个也是通过ARP分装为MAC帧然后发送的否则执行4.若路由表中有到达网络N的路由则把数据报传送给路由表中所指明的下一跳路由器否则执行若路由表中有一个默认路由则把数据传送给路由表中的默认路由器否则执行6报告转发分组出错
网际层控制报文协议ICMP
在网际层中使用**网际控制报文协议ICMPInternet Control Message Protocol**有效地提高了转发IP数据报的成功交付机会。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文作为IP层数据报的数据加上数据报的首部组成IP数据报发送出去。ICMP报文的格式如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C6uGaTbV-1676383164016)(https://download.huawei.com/mdl/image/download?uuid1eb415d0e4c042c6a0743284dd2f6cf1)] ICMP报文的包头中包含三个固定字段就是源端设备确定发生错误类型的主要依据
类型 表示ICMP消息的类型代码 表示ICMP消息类型细分的子类型Checksum 表示ICMP报文的校验和
ICMP报文的类型有两种分别是ICMP 差错报告报文和ICMP询问报文。下面列出一些常见的ICMP报文类型值
差错报告报文
类型的值ICMP报文的类型3终点不可达11时间超过12参数问题5改变路由
询问报文
类型的值ICMP报文的类型0或8会送Echo请求或回答13或14时间戳请求或回答
其中每类对应的type都有很多如下图。这里就不列举出来了 ICMP的典型应用
IP数据报及其他应用程序通过ICMP报文可以实现多种应用其中Ping程序和TracertTraceroute程序最为常见。此外在网络管理和监测中网络质量分析NQANetwork Quality Analysis技术更加充分应用了ICMP。
Ping
Ping程序是最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段它使用ICMP的echo信息来确定
远程设备是否可达与远程主机通信的来回旅程round-trip的延迟报文包的丢失情况。
Tracert
Tracert程序主要用于查看数据包从源端到目的端的路径信息从而检查网络连接是否可用。当网络出现故障时用户可以使用该命令定位故障点。
Tracert利用ICMP超时信息和目的不可达信息来确定从一个主机到网络上其他主机的路由并显示IP网络中每一跳的延迟这里的延迟是指分组从信息源发送到目的地所需的时间延迟也分为许多的种类——传播延迟、传输延迟、处理延迟、排队延迟等。下图中利用tracert命令进行测试。 NQA
网络质量分析NQANetwork Quality Analysis是一种实时的网络性能探测和统计技术可以对响应时间、网络抖动、丢包率等网络信息进行统计。NQA能够实时监视网络服务质量在网络发生故障时进行有效的故障诊断和定位。
利用不同类型的ICMP报文NQA实现了Ping和Tracert功能的扩展和增强可以实现对网络运行状况的准确测试输出统计信息。比如NQA的ICMP测试、ICMP Jitter测试和Trace测试等。 ICMP测试 ICMP测试是通过发送ICMP Echo请求报文和Echo响应报文来判断目的地的可达性、计算网络响应时间及丢包率从而清晰地反映出网络性能及畅通情况。ICMP测试提供类似于命令行下的Ping命令功能但输出信息更为丰富。 ICMP Jitter测试 ICMP Jitter测试是以ICMP报文为承载通过记录在报文中的时间戳信息来统计时延、抖动、丢包的一种测试方法。Jitter抖动时间是指相邻两个报文的接收时间间隔减去这两个报文的发送时间间隔。 Trace测试 NQA的Trace测试用于检测源端到目的端的转发路径并沿该路径记录源设备到中间各个设备的时延等信息。Trace测试类似于Tracert命令功能但输出信息更为丰富。每一跳信息中能够显示平均时延、丢包、最后一个包接收时间等信息。
参考
tracert原理《计算机网络 第7、8版》