【计算机网络】 第四章 网络层

欢迎来到小蝈的青青草原

4.1 网络层提供的服务

4.1.1 网络层的作用

负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包(实现的工具为路由器),不负责丢包重传和接收顺序。有点像送快递,一个人往另一个地方寄快递,每个快递走不同的路线,可能后发的先到了,也可能丢件了。但是网络层不管这些,只管寄快递。(路由器不管传输过程中是否丢包,不会要求重传)

在这里插入图片描述
数据包在Internet中的传输,Internet既有局域网,又有广域网,既有光纤,又有铜线,无线,还有不同的协议,这是Internet复杂所在。
路由器是三层设备:能看到网络层的IP地址来选择路径。
在这里插入图片描述

4.1.2 互联网络与虚拟互联网络
(1)互联网互联的设备
中间设备又称为中间系统或中继(relay)系统。
->物理层中继系统:转发器(repeater),有点像集线器。
->数据链路层中继系统:网桥或桥接器(bridge)。
->网络层中继系统:路由器(router)。
->传输层/应用层中继系统:网关(gateway)器。
网关就是路由器接口的地址。一般是本网段第一个地址。
(2)网络需要解决的问题
在这里插入图片描述
(3)虚拟网络把复杂的Internet看成一个网络,化简问题。虚拟互联网络就是逻辑互联网络,他的意思就是互联起来的各种物理网络的异构性本来就是客观存在的, 但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络,而不用考虑具体的网络异构细节。
在这里插入图片描述

4.2 网络设备和OSI参考模型的关系
4.2.1举例,PC4向PC3传输数据

在这里插入图片描述
PC:计算机;Hub:集线器;Switch:交换机;Router:路由

发送端(封装):
(1)应用层准备要传输的数据;
(2)传输层把文件进行分段并编号;(数据段)
(3)网络层把传输层的每一个数据包增加原IP地址和目标IP地址;(数据包)
(4)数据链路层把每个数据加上MAC地址;两种情况:(数据帧)
使用自己的子网掩码,判断自己和目标地址分别在哪个网段,若在同一个网段(不过路由器),通过ARP协议广播的方式得到目标IP地址的MAC地址,然后就能封装出一个数据帧;如果子网掩码不是一个网段(用与运算),通过ARP协议广播的方式得到路由器(网关)的MAC地址,然后把数据通过交换机发送到路由器M2,因为M2和M3是点对点通信,没有别的主机,所以它们之间的MAC地址就是FF。
(5)物理层把数据帧变成数字信号(bit流)
#有时在pc与交换机间加上集线器(switch)(智商很低~)只负责传递信号。
接收端(解封):
(1)交换机Hub0接收bit流,能对数据进行存储转发。它根据数据帧的MAC地址,确定数据是从哪来的,要去哪。
(2)路由器M2获取交换机的数据包,识别其中的IP地址,根据路由表选择出口,它无法识别数据段内容。
(3)路由器M2到M3是点对点通信,遵守PPP协议。
(4)PC3收到bit流后,数据链路层发现MAC地址是自己的,去掉MAC地址给它的网络层,网络层去掉IP地址给传输层,传输层把数据给应用层,应用层把各个数据拼接起来。

4.2.2 路由器/交换机/集线器会不会中病毒
不会,路由器不能识别数据内容。它只负责信息的传递。但是病毒会影响网络设备。因为病毒会占用网络流量。

4.3 ARP协议
4.3.1 TCP/IP协议层次关系
在这里插入图片描述
IP协议:把数据包从一个网段转到另一个网段,就是用来选择路径用的。
ARP为IP服务,IP为ICMP/IGMP服务。

4.3.2 ARP协议的作用
将IP地址通过广播(本网段,不通过路由器,路由器隔绝不同局域网之间的广播信号
),目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。
ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。

4.3.3 使用ARP的四种典型情况
(1)发送方是主机,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
(2)发送方是主机,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
(3)发送方是路由器,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
(4)发送方是路由器,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;

4.3.4 逆地址解析协议RARP
只知道自己MAC地址就能获得其IP地址。

4.3.5 ARP欺骗/网络执法官app/ARP防火墙-实验课
如果同一网段中有电脑中毒,可能会把中毒电脑的MAC地址传回去。

4.4 网际控制报文协议ICMP
4.4.1 ICMP
ICMP:在IP之上,用来测试网络层有没有故障。使用最多的命令是ping。
为了提高IP数据报交付成功的机会,在网络层使用了ICMP(Internet Control Message Protocol)。
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
ICMP不是高层协议,而是IP层协议;
ICMP报文件为IP层数据报的数据加上数据报的首部,组成IP数据报发送出去。

4.4.2 ping(Packet Internet Grope)命令诊断网络故障
PING是网络层命令。pink time(查看延迟)
TTL是数据报的生存时间每过一个路由器就会减1,作用是防止数据报在网络中循环。TTL默认初始值如下:
Linux 64
Windows 128
Unix 256
可以根据TTL值粗略判定对方是什么系统。(pink 对方的服务器,在接収ping包途中,经过路由器ttl值会减小)
(1)PING,因特网包套所起,用于测试网络连接量的程序。ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
(2)ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
(3)如果打开IE浏览器访问网站失败,可以通过ping命令测试到Internet的网络连通,可以为你排除网络故障提供线索。

4.4.3 ping和pathping命令

使用ICMP协议的命令

ping time 查看延迟 Linux 64 Windows 128 Unix 256
ping -l 200 10.7.1.53
ping 10.7.1.53 -l 200
ping 8.8.8.8 -i 2 更改数据包中TTL时间 能够追踪数据包途经的路由器

无论你是一个网络维护人员,还是正在学习TCP/IP协议,了解和掌握一些常用的网络测试命令将会有助于您更快地检测到网络故障所在,同时也会有助你您了解网络通信的内幕。

1、Ping命令。

   当您的机器不能访问Internet,首先确认是否是本地局域网的故障。假定局域网的代理服务器IP地址为202.168.0.1,您可以使用ping

202.168.0.1命令查看本机是否和代理服务器联通。此外可以测试本机的网卡是否正常工作,使用 ping 127.0.0.1命令。一般返回ping的信息就表示本地到该主机的网络线路连通。

 但是很多服务器为了防止攻击,一般会关闭对ping的响应。所以ping一般作为测试连通性使用。ping命令后,会接收到对方发送的回馈信息,其中记录着对方的IP地址和TTL。TTL是该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8
  bit字段。例如IP包在服务器中发送前设置的TTL是64,你使用ping命令后,得到服务器反馈的信息,其中的TTL为56,说明途中一共经过了8道路由器的转发,每经过一个路由,TTL减1。

在这里插入图片描述
2、Tracert
Tracert命令用来显示数据包到达目标主机所经过的路径(路由器),并显示到达每个节点(路由器)的时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。
Tracert 先发送 TTL 为 1 的回应数据包,当数据包上的 TTL在路由器收到后TTL自动减1 ,一旦某个服务器将TTL减1后,等于了0,路由器应该将“ICMP Time Exceeded”的消息发回源计算机,源计算机就根据收到的信息判断达到的路由器和所用时间。下次再次发送数据包时,将TTL递增 1,继续上述测试,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL过期的数据包,这在 Tracert 实用程序中看不到,我们会显示请求超时的请求信息。下图所示,我们测试到新浪的路经过了8道路由,同时根据上图测试ping 新浪时候,TTL=56,说明新浪的TTL初始设置为64,经过8道路由后到达我们客户机,还剩下64-8 = 56。下图中请求超时的反馈信息是因为路由器对ping命令做了处理,关闭了ping的响应,所以我们收不到发给他的反馈信息。
在这里插入图片描述

      **3、pathping**

pathping 命令是一个路由跟踪工具,它将 ping 和 tracert
命令的功能与这两个工具所不提供的其他信息结合起来,综合了二者的功能。pathping会先显示中间的通过的路由器(类似tracert命令得到的信息),然后对每个中间路由器(节点)发送一定数量的ping包,通过统计他们对ping包响应的数据包来分析通信质量。上面也提到了,有的路由器对ping关闭了响应,所以有的节点的丢包率会达到100%,所以这种一般就是关闭了ping回复。你可以自己ping试一下。还有,对ping包丢弃程度只是节点本身对ping的处理,并不一定影响他的通信,你可以看到,关闭ping命令节点的下一个节点返回到数据是正常的,说明回复的包都成功发送回来。总之,pathping
命令在一段时间内将数据包发送到将到达最终目标的路径上的每个路由器,然后根据从每个跃点返回的数据包计算结果。由于命令显示数据包在任何给定路由器或链接上丢失的程度,因此可以很容易地确定可能导致网络问题的路由器或链接。下图所示,我们看到,达到第二个就终止了,因为第二道节点(路由器),不支持ping,然后,程序就终止不在继续往下探测了。

在这里插入图片描述

4、 nslookup
Nslookup命令用于解析域名,一般用来检测本机的DNS设置是否配置正确。如: nslookup 网站域名,即可解析出网站的IP地址。如图,可以看出解析www.163.com的时候,可以解析出它所有的IP地址,而如果网路出现异常或者无法收到服务器发送来的信息时候,会出现下面第二张图片的显示。服务器和Address代表是解析这些IP地址和域名的DNS服务器信息。比如我使用的DNS是jtjndc007.home.langchao.com, DNS服务器地址是10.100.1.11.
在这里插入图片描述

QQ能登上,网页打不开是为什么? 网络层没有问题,域名解析有问题。
pathping 能跟踪数据包路径,发现出问题的位置。计算出丢包情况。
Windows上跟踪数据包路径的命令:tracerert 10.7.1.53
路由器上跟踪数据包路径的命令:traceroute 12.0.0.3

在这里插入图片描述

4.5 IGMP协议和多播组播
(Internet组播管理协议)
点到点通信:两台pc通过路由器连接。
广播:目标MAC地址全是F(不是点到点),目标IP地址全是255,也就是全是1.全网(例单个局域网)广播不能跨越路由器。
组播=多播:分组广播。

4.5.1 访问多播视频节目
使用多播一般用于直播,网络会议,能够节省带宽。
IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。

4.6 IP数据包的结构
注意,ARP数据包不是这个格式。
首部:第一部分是固定长度,20字节,是所有IP数据包必须具有的。后一部分是可选字段,长度可变。
在这里插入图片描述
每一行32bit相当于1个字节,一共5行,共20字节。
在这里插入图片描述
在这里插入图片描述
(1)版本:用来表示TCP/IP是哪个版本,ipv4还是ipv6.
(2)区分服务:确定更高的传输优先级。
(3)总长度:确定数据部分长度。一共是16位,最多有2^16-1=65535字节。
->注意,网络层,数据包最大65535字节;而数据链路层数据最大是1500字节,是不一样的。所以说,一旦超过数据链路层的最大要求时(网络层数据包数据如果不分片,不能超过1480字节),数据包会分片。最大传输单元MTU。
在这里插入图片描述
->数据包分片:把数据分割,分别添加IP地址,通过网络发给目标MAC地址。目标在通过网络层拼接。传送过程中可能会丢包,或者后发的先到(泪滴攻击就是利用目标机发送破坏的IP包(重叠的包货过大的包负荷)可以通过TCP/IP协议栈中分片重组代码中的bug来瘫痪各种不同的操作系统)。所以需要编号。
(4)标识:如果出现数据包分片,通过之前的标识用来确定哪些数据包是需要组合的,再次组合成一个完整的数据包。
(5)标志:确定该数据包是完整的还是分片中的一部分。占3(bit)位,只有前两位有意义,标志字段最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示自己最后一个分片。标志字段中间一位是DF(Don’t Fragment),只有DF=0才允许分片。
(正常的数据包三位都是0)
(6)片偏移:偏移等于当前字节在数据部分的第几个再除以8.(下图是一个举例)
每一个数据包的偏移量记录的分片第一个字节占整个数据包的第几个字节。
不分片的话偏移量则是0字节。
在这里插入图片描述
(7)生存时间:就是TTL,time to live,每过一个路由器就减1。8位二进制。防止数据包在网络中循环。(防止路由中有繁路的时候,数据包在网络中永不消失)
(8)协议:用协议号标识数据部分是什么数据,应该由哪一层去处理。
在这里插入图片描述
ICMP协议号:1;
IGMP协议号:2;
TCP协议号:6;
UDP协议号:17;域名解析
IPv6协议号:41;
OSPF协议号:89;
(9)首部检验和:16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC检验码而是采用简单的计算方法。每经过一个路由器就会检验一次。
在这里插入图片描述
(10)源地址和目的地址都是IP地址,32位,只符合IPv4。IPv6是128位。
(11)可变部分:一般没用。(IPV6已经删除了可变部分)

4.7 IP协议
(1)网络畅通的条件

沿途路由器必须知道下一跳给谁,数据包有去有回。 要求计算机必须要配置网管,沿途所经过的路由器必须知道到目标网段下一跳给了哪些接口,沿途的路由器还得知道回来的时候这个网段下一跳给了谁。网不通了,就查计算机的网关,路由器上的路由表,一个点一个点的检查。

在这里插入图片描述

4.7.1 静态路由
需要管理员告诉路由器所有没有直连的网络下一跳给谁。
适合于小规模网络,不能自动调整路由。

4.7.2 动态路由
(1)RIP协议
周期性广播(30s)路由表,选择路径的依据是最少的跳数,最大跳数是15跳,所以一般不适合大网络。
(2)OSPF协议
根据带宽选择路径。

路由器扩展

路由器:
路由器是与两个或以上的网络连接的计算机并按照在它的路由表中找到的信息发送数据包,实现数据的转发和路由,是一种网络互联的设备

典型路由结构:
在这里插入图片描述
主要包括两部分路由部分和转发部分
路由器的报文处理主要有两种:
在这里插入图片描述
控制路径:处理目的地址是本路由器的高层协议报文,特别是各种路由协议报文。虽然控制路径不是路由器的关键路径,但是它负责完成路由信息的交互,从而保证了了数据路径上的报⽂文沿着最优的路径转发
数据路径:处理目的地址不是本路由器而需要转发的报文,因此数据路径是整个路由器的关键路径,它直接影响路由器的整体性能

路由器中有一张路由表和转发表
路由表中记录各种路由信息,转发表根据路由表生成

1.分组转发主要包括输端口与目标转发、基于目标地的转发、输出端口对线路上收到分组的处理和分组丢弃几部分
2.交换结构是路由器的核心组件,是根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。主要有通过存储器、通过总线、通过内部互连网络,三种方法

路由器发展过程

第一代路由器:集中转发,总线交换
网关(路由器)用一台计算机插多块网络接口卡的方式来实现。接口卡与中央处理器(CPU)之间通过内部总线相连,CPU负责所有事务处理,包括路由收集、转发处理、设备管理等。网络接口收到报文后通过内部总线传递给CPU,由CPU完成所有处理后从另一个网络接口传递出去。

第二代路由器:集中+分布转发,接口模块化,总线交换等技术
少数常用的路由信息采用Cache技术保留在业务接口卡上,这样大多数报文就可以直接通过业务板Cache的路由表进行转发,以减少对总线和CPU的需求。

第三代路由器:分布转发,总线交换
采用全分布式结构—路由与转发分离的技术,主控板负责整个设备的管理和路由的收集、计算功能,并把计算形成的转发表下发到各业务板;各业务板根据保存的路由转发表能够独立进行路由转发。另外总线技术也得到了较大的发展,通过总线、业务板之间的数据转发完全独立于主控板,实现了并行高速处理,使得路由器的处理性能成倍提高。

第四代路由器:出现CAM和TCAM,ASIC分布转发,网络交换
提出了ASIC实现方式,它把转发过程的所有细节全部采用硬件方式来实现。另外在交换网上采用了Crossbar或共享内存的方式解决了内部交换的问题。这样,路由器的性能达到千兆比特,即早期的千兆交换式路由器(Gigabit Switch Router,GSR)。

第五代路由器:网络处理器分布转发,网络交换,全业务路由器(之前都为专用路由器)
出现NP芯片(可编程),可同时对很多业务处理做硬件加速。

4.8 子网掩码
能够帮助路由器判断对应主机是否在同一个网段中。
在这里插入图片描述

4.9 ABCDE类网络地址
网络地址(网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用它作为自己IP地址的一部分。ABC对应的子网掩码分别是255.0.0.0和255.255.0.0和255.255.255.0
在这里插入图片描述
特殊的几个地址
127.0.0.1 本地换回地址
169.254.0.0
10.0.0.0,172.16.0.0–172.31.0.0,192.168.0.0–192.168.255.0 保留的私网地址
在这里插入图片描述
4.10 子网划分
在这里插入图片描述
在这里插入图片描述
注意,全为1是广播,所以63,127,191,254不选
~~在这里插入图片描述~~

————————————————

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值