注意: 部分图片来自王道考研课: 王道计算机考研 计算机网络
网络层负责在不同的网络节点之间进行数据包的路由和转发。它使用 IP 协议来为数据包分配和处理逻辑地址,实现跨网络的数据传输。网络层的主要任务是选择最佳路径、实现数据包的分组和重组,以及处理路由选择和拥塞控制。
目录
概述和功能
短除法
常用二进制数
路由选择相关
拓扑
路由算法
最大传输单元MTU
分片
MAC地址
IP与MAC地址的关系和使用
IP数据报格式
IP地址的分类
IPv4
那么这样看D类地址的主机号都没有了怎么分配?
特殊IP地址
私有IP地址
LAN与WAN
内网穿透(NAT穿透)
VPN工作原理
网络地址转换NAT
子网划分
为什么要进行子网划分?
如何进行子网划分?
子网掩码
子网掩码的作用:
如何确定子网掩码:
CIDR表示法:
示例:
ip地址变子网掩码 CIDR
CIDR
构成超网
最长前缀匹配
ARP协议
ARP的工作流程:
ARP缓存
ARP欺骗
DHCP协议
DHCP工作流程:
ICMP协议
RIP 与 距离向量算法
距离向量算法
工作流程
特点
缺点
IPv6
协议格式
IPV4对比IPV6
IPV4和IPV6相互转换
双栈协议
隧道技术
ipconfig
; cmd 命令行查看ip地址信息
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供
通信服务。
网络层传输单位是数据报。
本来是计组的内容 现在在这里再次提到
确定原始数值的进制和目标进制:
首先,确定原始数值所使用的进制(如二进制、十进制、十六进制等)以及要转换到的目标进制。
例子
十进制17转换为八进制:
1 0 7 (十进制数) /8 --13
3 (余数)
结果: 133
十进制数84转换为二进制:
8 4 (十进制数) /2
0 (余数)
4 2 /2
0 (余数)
2 1 /2
1 (余数)
1 0 /2
1 (余数)
5 /2
1 (余数)
2 /2
0 (余数)
1(商数为零,结束)
结果: 1010100
用于做题和判断的常见二进制
128的二进制表示为:10000000
192的二进制表示为:11000000
224的二进制表示为:11100000
240的二进制表示为:11110000
248的二进制表示为:11111000
252的二进制表示为:11111100
254的二进制表示为:11111110
255的二进制表示为:11111111
先解释一个概念拓扑
在计算机网络和图论中,拓扑(Topology)是指网络中节点(节点可以是计算机、设备或其他网络组件)之间连接关系的结构或布局。它描述了网络中各个节点之间的物理或逻辑关系,以及它们之间的通信方式和路径。
在计算机网络中,拓扑可以分为物理拓扑和逻辑拓扑两种类型。
物理拓扑:物理拓扑描述了网络中节点之间的物理连接方式和布局。它涉及到节点的位置、布线、设备之间的连接类型(如以太网、无线连接等)以及网络设备的部署方式(如集中式或分布式)等。
逻辑拓扑:逻辑拓扑描述了网络中节点之间的逻辑连接方式和通信路径。它关注的是节点之间的通信关系和数据流动的路径,不考虑物理连接的具体细节。常见的逻辑拓扑包括总线型、星型、环型、树型、网状等。
不同的拓扑结构具有不同的特点和适用场景,选择合适的拓扑结构可以影响网络的性能、可靠性和扩展性。常见的网络拓扑结构包括总线拓扑、星型拓扑、环型拓扑、树型拓扑、网状拓扑等。
总之,拓扑描述了网络中节点之间的连接关系和通信方式,是设计和管理计算机网络的重要概念。
静态路由算法(非自适应路由算法)管理员手工配置路由信息。
简便、可靠, 在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
路由更新慢,不适用大型网络。
动态路由算法(自适应路由算法)
路由器间彼此交换信息,按照路由算法优化出路由表项。
路由更新快,适用大型网络,及时响应链路费用或网络拓扑变,算法复杂,增加网络负担。
最大传输单元(Maximum Transmission Unit,简称MTU)它表示在网络通信中每个数据包(packet)能够携带的最大数据量。
MTU的大小是由网络设备或网络协议规定的,通常以字节(Bytes)为单位。在网络通信中,数据通常被分割成多个数据包进行传输。MTU决定了每个数据包的最大大小,超过MTU的数据需要进行分割成更小的片段进行传输。
不同类型的网络或网络协议可能具有不同的MTU值。以太网通常采用1500字节的MTU,而在其他类型的网络中,如无线网络(Wi-Fi)、广域网(WAN)等,MTU可能会有所不同。
MTU的大小对网络通信的性能和效率有一定影响。较大的MTU可以减少数据包的数量和传输开销,提高传输效率,但同时也增加了传输过程中的丢包风险。较小的MTU可以减少数据包的传输延迟和丢包风险,但会增加传输开销和网络负载。
在实际网络配置和调优中,根据网络环境和需求,可以根据具体情况调整MTU的大小,以达到最佳的传输性能和可靠性。
标识: 同一数据报的分片使用同一标识。
标志:只有2位有意义x_-中间位DF (Don't Fragment)
DF=1,禁止分片
DF=0,允许分片
最低位MF (More Fragment) :
MF=1,后面“还有分片
MF=0,代表最后一片/没分片
片偏移:指出较长分组分片后,
某片在原分组中的相对位置。以8B为单位。
除了最后一个分片,每个分片长度一定是8B的整数倍。
MAC地址(Media Access Control address)是一个预先配置在网络接口控制器(NIC)硬件中的唯一标识符,用于在数据链路层(OSI模型的第二层)识别网络设备。它通常是固定的,由设备制造商分配,嵌入到硬件中。
MAC地址通常表示为六组两个十六进制数,由冒号或破折号分隔,例如 00:1A:2B:3C:4D:5E
。
在局域网(LAN)通信中,MAC地址用于确保数据包在同一网络段中正确地从一个设备传输到另一个设备。例如,在以太网中,交换机使用MAC地址来转发数据帧到正确的目的地。
当一个设备尝试与同一局域网中的另一个设备通信时,它会使用ARP(地址解析协议)来将IP地址映射到相应的MAC地址。如果目标设备位于外部网络,本地设备会将数据发送到网关(通常是路由器),然后由路由器根据IP地址进行进一步的路由。
在数据从一个设备传输到另一个设备的过程中,源IP地址和目的IP地址保持不变,而MAC地址会在每次数据包到达新的网络段时改变,因为每个网络设备(如交换机或路由器)都有自己的MAC地址,并且会根据数据包的目的IP地址更新数据包的MAC信息。
总长度单位是1B
片偏移单位是8B 指的是 x*8B
首部长度单位是4B
一种8片4叶首饰
以 IPv4
来说IP地址有32bit位
也就是4B
前一个字节用来标识
举例
64.0.0.0
IPv4(Internet Protocol version 4)是目前广泛使用的IP地址版本。它由32位二进制数组成,通常以点分十进制表示。根据网络的规模和用途,IPv4地址分为以下几类:
- A类地址:以0开头,范围从1.0.0.0到126.0.0.0。用于大型网络,支持约16,777,216个主机。
- B类地址:以10开头,范围从128.0.0.0到191.255.0.0。用于中型网络,支持约65,536个主机。
- C类地址:以110开头,范围从192.0.0.0到223.255.255.0。用于小型网络,支持约256个主机。
- D类地址:以1110开头,范围从224.0.0.0到239.255.255.255。用于多播(Multicast)通信,不用于标识主机。
- E类地址:以1111开头,范围从240.0.0.0到255.255.255.255。保留给将来使用,目前未被分配。
在D类地址中,主机号部分确实没有分配给具体的主机,而是用于标识多播组。
前四位固定为1110(二进制),表示该地址属于D类地址。剩下的28位用于标识多播组
多播组是一个目标地址,当数据包发送到该地址时,它将被路由到订阅该多播组的所有主机。
为什么全0和全1不能标识网络地址
全0地址通常用作默认路由(default route)或未指定地址(unspecified address)。它表示一个未知或未指定的目标地址,用于指示网络设备发送数据包到默认网关或进行本地子网广播。
全1地址用于广播(broadcast)。当数据包被发送到全1地址时,它将被广播到同一子网中的所有主机。这样做可以实现向一个子网中的所有设备发送消息或命令,而无需知道每个设备的具体地址。
保留IP地址:
保留IP地址是指为特定目的而保留的IP地址范围,不分配给具体设备或网络使用。这些地址被保留用于特殊用途或协议,例如:
保留IP地址还包括用于广播和多播通信的特殊地址范围,如广播地址和多播组地址。
私有IP地址:
私有IP地址是指在私有网络(Private Network)中使用的IP地址。这些地址不会被分配给公共互联网上的设备,而是在私有网络内部使用。私有IP地址的使用可以帮助在内部网络中实现地址重用和网络隔离,同时提高网络安全性。以下是三个常用的私有IP地址范围:
使用私有IP地址可以在局域网或企业内部网络中创建和管理内部通信,但需要通过网络地址转换(Network Address Translation,NAT)技术来实现与公共互联网的通信。
内网穿透是指在一个使用私有IP地址的内网中的设备主动与外网中的设备建立连接的技术。因为内网设备通常无法从外网直接访问,所以内网穿透技术通过以下方法之一允许外部访问:
内网穿透常用在需要远程访问内网设备(例如监控摄像头、个人服务器等)的场景中。
VPN(Virtual Private Network,虚拟私人网络)是一种常用于加密和保护互联网连接的技术,它能够在公共网络上创建一个安全的“隧道”。通过VPN,用户可以安全地发送和接收数据,即使是在不安全的网络环境中,如公共Wi-Fi。VPN的工作原理涉及到数据封装、加密和解封装过程。
一般工作原理:
用户身份验证:
建立安全通道:
数据封装:
数据加密:
传输封装数据:
数据解封装和解密:
数据发送到最终目的地:
返回的数据:
网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
计算机网络中的子网划分(Subnetting)是将一个较大的网络划分为若干个较小的、独立的网络的过程。
这样做的主要目的是提高地址利用率,降低网络的拥塞程度,增强网络的安全性以及改善网络的管理。
例子:
假设有一个C类IP地址 192.168.1.0
,其默认子网掩码为 255.255.255.0
(或者 /24
),我们希望将它划分成四个子网。
255.255.255.0
,表示最后8位是用于主机的。2^2 = 4
),因此子网掩码将变成 255.255.255.192
(或者 /26
),因为 192
的二进制是 11000000
。现在,子网划分如下:
192.168.1.0/26
- 可用IP范围是 192.168.1.1
到 192.168.1.62
192.168.1.64/26
- 可用IP范围是 192.168.1.65
到 192.168.1.126
192.168.1.128/26
- 可用IP范围是 192.168.1.129
到 192.168.1.190
192.168.1.192/26
- 可用IP范围是 192.168.1.193
到 192.168.1.254
每个子网的第一个地址是子网地址,最后一个地址是广播地址,这两个地址不分配给任何主机。
子网掩码(Subnet Mask)
一系列连续的1 和连续的0 构成的二进制数
是一种用来定义一个IP网络或子网中哪些部分的IP地址用于表示网络地址,哪些部分用于表示主机地址的32位数字。
子网掩码与IP地址结合:
子网掩码是与IP地址结合使用的,通过对IP地址进行逻辑"AND"操作来确定网络的边界。在这个操作中,IP地址与子网掩码按位进行AND计算,生成网络地址的部分,剩下的则为主机地址的部分。
例如:
一个常见的子网掩码是255.255.255.0,这在二进制中表示为:
11111111.11111111.11111111.00000000
子网掩码的选择取决于你需要在网络中有多少个主机以及你需要多少个子网。掩码越长(即1的个数越多),可用于分配给主机的地址空间就越小。
除了点分十进制表示法,子网掩码还可以使用无类别域间路由(CIDR)表示法来表示,这种表示法简单地指定了在子网掩码中有多少个连续的1位。例如,/24代表子网掩码255.255.255.0,因为前24位是1,后8位是0。
如果你有一个IP地址为192.168.1.100,使用子网掩码255.255.255.0,那么:
进行逻辑AND操作后,我们得到网络地址:11000000.10101000.00000001.00000000,即192.168.1.0。
这表示这个IP地址属于192.168.1.0这个网络,其余的部分(01100100,即100)是分配给该网络上特定设备的主机部分。
在这个子网中
- 网络号是192.168.1
- 主机号是从1到254的任何值
网络号(包括子网号)全0 ,主机号全1
子网掩码和ip地址逐位进行 按位进行 AND 运算
让我们看一道考研真题
由于目的地址 的主机地址 只能是全1 所以A排除
再拿 77 的二进制 和 252 进行按位与操作
得到76 0010 1100
这个是主机所在的子网号
因为子网掩码最后一部分(最后8位)为1111 1100
,这意味着子网的大小为2的2次方
当我们谈论子网掩码时,遇到的二进制位中的“1”代表网络地址的部分,而“0”代表主机地址的部分。在子网掩码255.255.252.0
中,最后一部分的二进制是11111100
。这里的“0”位表示这个子网的主机部分,而“1”位表示网络部分。
0010 1100
由于是广播分组 后两位变全1
0010 1111 -> 79
答案就是: D
列出超网取交集
首先,需要注意这些地址是连续的,并且每个子网掩码都是/21。这意味着每个网络包含2^(32-21) = 2^11 = 2048个IP地址。
这四个子网连续,它们的起始地址分别是:
观察这些地址的二进制表示,我们可以看到前19位是相同的,第20位在从第二个地址开始变为1,这意味着我们可以将这四个子网聚合到一个/20的子网中。这是因为/20的子网掩码将覆盖这四个子网所覆盖的全部范围。
因此,聚合后的网络地址是前19位相同的部分
答案是: C
使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
132.0.0.0/8
:这个路由覆盖了从132.0.0.0到132.255.255.255的所有地址。132.19.237.5确实在这个范围内,但这个匹配的子网掩码最不具体。132.0.0.0/11
:这个路由覆盖了从132.0.0.0到132.31.255.255的地址。132.19.237.5也在这个范围内目前是最长前缀匹配
132.19.232.0/22
:这个路由覆盖了从132.19.232.0到132.19.235.255的地址。132.19.237.5在这个范围之外,因此这个路由不匹配。0.0.0.0/0
:这是一个默认路由,它可以匹配任何地址,但是它是最不具体的匹配。
答案是: B
ARP协议(Address Resolution Protocol)是一种网络层协议,用于将网络层的协议地址(如IPv4地址)解析为数据链路层的物理地址,即MAC地址。ARP是局域网(LAN)上不可或缺的一部分,因为它允许设备在发送数据前了解目标设备的物理地址。
ARP缓存是一个临时的表项集合,主机用它来存储本地网络上每个计算机的IP地址和相对应的MAC地址。缓存条目不是永久的,它们通常会在一定时间后过期并被删除,或者当网络接口卡(NIC)关闭时被清除。
ARP协议是一个无状态的协议,它不验证回应消息的来源。这种特性使得ARP容易受到一种称为ARP欺骗(ARP spoofing)或ARP中毒(ARP poisoning)的攻击。在此类攻击中,攻击者发送伪造的ARP消息到局域网,从而将攻击者的MAC地址与合法设备的IP地址关联起来。这可以导致网络流量被重定向到攻击者的设备,从而允许攻击者拦截、修改或阻断数据包。
为了减少ARP欺骗的风险,可以使用静态ARP记录或在交换机上实施某些安全措施,如动态ARP检查(DARP)、DHCP激活和IP源守卫。
DHCP是一个客户端/服务器协议,它自动为客户端设备提供IP地址以及其他相关网络配置信息,如子网掩码、默认网关和DNS服务器地址。通过使用DHCP,网络管理员可以中央管理和自动化IP地址的分配,从而简化网络的配置工作。
ICMP是TCP/IP协议族的一个核心协议,它用于在IP主机、路由器之间传递控制消息。这些控制消息通常用于诊断网络通信问题、报告错误信息(如传输中的数据包无法到达目的地),以及其他需要注意的信息。
ICMP工作在网络层,不是传送数据的协议,而是传送关于数据传输过程中出现的问题的信息。例如,当你使用ping
命令检测另一台计算机是否可达时,你就是在使用ICMP。
ICMP消息类型包括:
ping
命令。ICMP通常是网络工程师和管理员用来诊断网络问题的重要工具。然而,它也可能被滥用,比如在分布式拒绝服务(DDoS)攻击中。
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离))。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
距离向量算法(Distance Vector Algorithm)是计算机网络中用于路由选择的一种算法。它是基于动态路由选择过程的,其中路由器定期交换路由信息,并使用这些信息来更新自己的路由表。距离向量算法的一个经典实现是RIP(Routing Information Protocol)。
基本原理
距离向量算法的基本原理是每个路由器维护一个距离向量表,该表包括:
每个路由器仅知道其直接连接的邻居信息,并定期与它们交换自己的距离向量表。
初始化:每个路由器只知道到达其直接连接的邻居的距离,初始值为1。
距离向量更新:每隔一段时间(例如,每30秒一次),路由器向其所有邻居广播整个距离向量表。
距离向量表的更新:当一个路由器收到邻居的距离向量表时,它会使用一个简单的算法来更新自己的表:
传递性更新:如果路由器的距离向量表更新了,它将在下一次广播时通知其邻居。
经过若干次更新后:所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
距离向量算法的特点包括:
距离向量算法也有一些已知的缺点:
IPv4 4B , IPv6 16B 相比于IP v4 地址 扩大了 42亿 x 42亿 x 42亿 x 42亿 倍 !
传说是可以给地球上所有的沙子分配一个地址的哈哈哈
其实China是大力推行IPv6的,因为IPv4的分配权大部分还是在美国人手里,加上美国的各种制裁,推行IPv6也是顺水推舟了
1.IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
2.IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
3.lPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
4.IPv6支持即插即用(即自动配置),不需要DHCP协议。
5.IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
6.IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
7.ICMPv6:附加报文类型“分组过大”。
8.IPv6支持资源的预分配,支持实时视像等,要求保证一定的带宽和时延的应用。
9.IPv6取消了协议字段,改成下一个首部字段。
10.IPv6取消了总长度字段,改用有效载荷长度字段。
双协议栈技术就是指在一台设备上同时启用lPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和lPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。
通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)
可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。