4.1 网络层提供的服务
4.1.1 网络层的作用
负责在不同网络之间尽可能好地转发数据包(基于数据包的IP地址),不负责丢包重传和接收顺序。有点像送快递。一个人送一个快递到另一个地方。每个快递员走不同的路线。可能后来者先到了,也可能先丢了。但是网络层不在乎这个,只是发快递。
数据包在互联网中传输,互联网既有局域网也有广域网,有光纤、铜线、无线,还有不同的协议,这就是互联网的复杂性。路由器是三层设备:它可以看到网络层的IP地址来选择路径。
4.1.2互联网和虚拟互联网
(1)互联网互联设备
中间设备也称为中间系统或中继系统。
-物理层中继系统:中继器,有点像集线器。
-数据链路层中继系统:网桥或网桥。
-网络层中继系统:路由器。
-传输层/应用层中继系统:网关。
是路由器接口的地址。一般是这个网段的第一个地址。
(2)网络中需要解决的问题
(3)虚拟网络将复杂的互联网视为一个网络,简化了问题。虚拟互联网是一个逻辑互联网,这意味着互联物理网络的异构性是客观存在的,但我们可以利用IP协议让这些性能不同的网络从用户的角度看起来像一个统一的网络,而不用考虑网络异构的具体细节。
4.2 网络设备和OSI参考模型的关系
4.2.1举例,PC4向PC3传输数据
PC:电脑;轮毂:轮毂;开关:开关;路由器:路由
发件人(包裹):
(1)应用层准备要传输的数据;
(2)传输层对文件进行分段和编号;(数据部分)
(3)网络层将原始IP地址和目标IP地址添加到传输层的每个数据包中;(数据包)
(4)数据链路层为每个数据添加MAC地址;两种情况:(数据帧)
使用您自己的子网掩码来确定您和目标地址分别位于哪个网段。如果你在同一个网段(但不是路由器),可以通过ARP协议广播得到目标IP地址的MAC地址,然后封装一个数据帧。如果子网掩码不是网段(和操作),通过ARP协议广播获取路由器(网关)的MAC地址,然后通过交换机将数据发送到路由器M2。因为M2和M3是点对点通信,没有其他主机,所以他们之间的MAC地址是FF。
(5)物理层将数据帧转换成数字信号(比特流)
接收端(解封):
(1)交换机Hub0接收比特流,可以存储和转发数据。根据数据帧的媒体访问控制地址,它决定了数据来自哪里,去往哪里。
(2)路由器M2获取交换机的数据包,识别其中的IP地址,并根据路由表选择出口,因此无法识别数据段的内容。
(3)路由器M2到M3是点对点通信,遵守PPP协议。
(4)4)PC3收到比特流后,数据链路层发现MAC地址是自己的,将MAC地址移至其网络层,网络层将IP地址移至传输层。传输层将数据提供给应用层,应用层将所有数据拼接在一起。
4.2.2路由器/交换机/集线器会感染病毒吗?
不,路由器无法识别数据内容。它只负责传递信息。但是病毒会影响网络设备。因为病毒会占用网络流量。
4.3 ARP协议
4.3.1 TCP/IP协议层次结构
.com/origin/pgc-image/dd67328954604976902ce0c5a64bb24a?from=pc">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欺骗/网络执法官/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是网络层命令。
TTL是数据报的生存时间每过一个路由器就会减1,作用是防止数据报在网络中循环。TTL默认初始值如下:
Linux 64
Windows 128
Unix 256
可以根据TTL值粗略判定对方是什么系统。
(1)PING,因特网包套所起,用于测试网络连接量的程序。ping发送一饿ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
(2)ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
(3)如果打开IE浏览器访问网站失败,可以通过ping命令测试到Internet的网络连通,可以为你排除网络故障提供线索。
4.4.3 ping和pathping命令
QQ能登上,网页打不开是为什么? 网络层没有问题,域名解析有问题。
pathping 能跟踪数据包路径,发现出问题的位置。
Windows上跟踪数据包路径的命令:tracerert 10.7.1.53
路由器上跟踪数据包路径的命令:traceroute 12.0.0.3
4.5 IGMP协议和多播组播
点到点通信:
广播:目标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协议来瘫痪各种不同的操作系统)。所以需要编号。
(4)标识:如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的。
(5)标志:确定该数据包是完整的还是分片中的一部分。占3位,只有前两位有用,标志字段最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间一位是DF(Don’t Fragment),只有DF=0才允许分片。
(6)片偏移:偏移等于当前字节在数据部分的第几个再除以8.(下图是一个举例)
(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)可变部分:一般没用。
4.7 IP协议
(1)网络畅通的条件沿途路由器必须知道下一跳给谁,数据包有去有回。
�R!��A
4.7.1 静态路由
需要管理员告诉路由器所有没有直连的网络下一跳给谁。
适合于小规模网络,不能自动调整路由。
4.7.2 动态路由
(1)RIP协议
周期性广播(30s)路由表,选择路径的依据是最少的跳数,最大跳数是15跳,所以一般不适合大网络。
(2)OSPF协议
根据带宽选择路径。
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.010.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不选