嵌入式-计算机网络(一)
更多专栏:
超详细的嵌入式面经专栏(适用于小白学习和大佬复习):https://www.nowcoder.com/creation/manager/columnDetail/mGYoDz
校招公司汇总专栏:https://www.nowcoder.com/creation/manager/columnDetail/0ybKdp
目录:
1.什么是动态路由?什么是静态路由?
2.路由协议都有哪些?
3.CSRF攻击的思想及解决办法是什么?
4.什么是网关,网关作用是什么?
5.什么是MAC地址和IP地址,作用是什么?
6.计算机网络有哪两种通信方式?
7.什么是子网掩码?作用是什么?
内容:
1.什么是动态路由?什么是静态路由?
什么是路由
路由:路由是指数据包在网络中经过的路径,即数据从一台设备到另一台设备选择经过的路。
动态路由
定义:动态路由是通过运行在网络设备上的特定协议(如RIP、OSPF、BGP等)自动学习并维护路由表的过程。当网络节点或节点间的链路发生故障,或者存在其它可用路由时候,动态路由可以自行选择“最佳”的可用路由。
优点
- 当网络拓扑发生变化时,路由器可以自动学习新的路径,无需手动配置。
- 动态路由适用于复杂和大型的网络环境,因为它能自动优化路径。
缺点
- 复杂度较高,消耗资源大。动态路由需要定期交换路由信息,会占用带宽和计算资源。
动态路由协议
- RIP:使用跳数作为度量标准,适用于小型网络。
- OSPF:基于链路状态,适用于中大型网络,收敛速度快。
- BGP:用于互联网的自治系统(AS)之间的路由选择。
静态路由
静态路由是由网络管理员手动配置的路由。路由表中的条目不会自动更新,必须手动修改才能适应网络拓扑的变化。用于指导数据包从一个网络到另一个网络的传输。
优点
- 需要手动指定每条路由,适用于小型网络或特定场景。
- 占用资源低,不会产生额外的网络开销,不依赖路由协议。
缺点
- 维护成本高,当网络拓扑结构发生变化时,需要手动更新路由表。
- 不够灵活,当网络拓扑变化时,必须手动更新,否则可能导致通信中断。
对比总结
方式 | 静态路由 | 动态路由 |
配置方式 | 手动 | 自动 |
适用规模 | 小型网络 | 大型、复杂网络 |
网络拓扑变化适应性 | 需要手动更新 | 能自动调整 |
资源占用 | 低 | 较高(CPU、内存、带宽) |
故障恢复能力 | 低 | 高 |
安全性 | 高 | 可能存在路由欺骗等风险 |
2.路由协议都有哪些?
RIP
RIP是一种距离向量路由协议,使用跳数作为衡量指标。
- 仅和相邻路由器交换信息。
- 相邻路由器收到信息后,根据收到的距离值和自身的路由表进行更新。
- 每个路由器使用距离向量算法计算到达目标网络的最短路径。
- 按固定的时间间隔交换路由信息。
- 协议中规定,一条有效的路由信息的度量不能超过15
- RIP适用于小型网络,配置简单,但在大型网络中可能存在收敛速度慢和路由环路的问题。
OSPF
OSPF是一种链路状态路由协议。
- 通过交换链路状态通告(LSA),所有路由器都能获得一致的网络视图,从而计算出最优路径。
- OSPF允许将大型网络划分为多个逻辑区域,每个区域内的路由器只维护本区域的拓扑信息,减少了LSA的数量和传播范围,提高了网络性能。
- 当网络拓扑发生变化时,OSPF能够迅速检测到变化并重新计算最优路径。
- OSPF支持可变长度子网掩码(VLSM)、路由聚合和区域划分等高级功能。
- OSPF适用于大型网络,具有较好的可扩展性、快速收敛和灵活的路由选择。
IGRP
IGRP是思科开发的一种距离向量路由协议,
- IGRP使用跳数和其他指标(如带宽、延迟、可靠性)来评估路由路径的优劣。
- IGRP将网络的路由分成多个路由种类,分别是连续、交互、离散、默认等路由类型,方便进行网络管理和路由优化。
- 它提供了较RIP更高的灵活性和可配置性。
- IGRP协议具有身份验证机制,只有通过身份验证才能使用。安全性高。
- IGRP适用于中等规模的企业网络,提供了更多的配置选项和灵活性。
EIGRP
EIGRP是思科系统开发的一种距离矢量和链路状态混合型路由协议,结合了两种算法的优点。
- EIGRP使用带宽、延迟、可靠性和其他指标来评估路由路径的优劣。
- 使用hello数据包用来发现邻居,建立邻居关系,将数据包可靠,有序的传递给所有EIGRP邻居
- 它采用了DUAL算法来计算最佳路径,同时减少网络收敛时间。
- 去往每个目标节点,选择最小开销、无环的路径
- EIGRP适用于复杂网络环境,具有较高的可扩展性和路由选择的灵活性。
EGP
EGP是一种已过时的外部网关协议,用于连接不同自治系统(AS)之间的路由选择。
- EGP用于在自治系统之间交换路由信息。
- EGP只能传递简单的路由信息,无法支持更复杂的网络拓扑,且容易形成路由环路。
- 然而,由于其限制和安全性问题,EGP已经被BGP取代。
BGP
BGP是当前互联网中最常用的外部网关协议。BGP用于在不同的自治系统(AS)之间交换路由信息,实现跨网络的数据传输和互连。
- BGP考虑多个因素,如网络策略、AS路径长度和网络前缀的可达性,以确定最佳路径。
- BGP允许网络管理员通过策略来控制路由信息的传递和选择。
- BGP有效地构造了AS互联的拓扑图,并由此清除了路由环路。
- BGP还支持路由策略和过滤机制,以实现对流量的精细控制。
- BGP能够处理像因特网大小的网络的路由信息。
IS-IS
IS-IS是一种内部网关协议,主要用于大型企业网络和ISP网络中。它基于链路状态的概念,使用SPF(最短路径优先)算法来计算最佳路径。
- IS-IS将网络划分为区域,每个区域内使用相同的链路状态数据库。
- 路由器之间通过交换链路状态信息(LSA)来构建网络拓扑图和计算最短路径。
- IS-IS支持快速收敛,能够迅速适应网络变化。
3.CSRF攻击的思想及解决办法是什么?
什么是CSRF呢
CSRF攻击是一种跨站请求伪造攻击,攻击者利用用户已登录的身份,在用户毫不知情的情况下,伪造用户的请求并提交到受信任的站点,从而执行恶意操作如修改密码、转账之类。
攻击流程:
- 比如用户登录了A网站,可能是银行网站。
- 网站A验证客户端的账号密码,并在本地生成Cookie、Session ID
- 黑客诱导用户访问含有恶意代码的B网站(一般是不知名链接)。
- B网站要求浏览器向A网站发送GET、POST等恶意请求。
- 用户没有退出A网站情况下,恶意请求自动携带用户的身份认证信息(Cookie、Session ID等)。
- A网站确认了用户凭证,误以为是用户的请求以用户的名义执行了恶意操作。
被CSRF攻击满足条件:
- 登录受信任网站A,并在本地生成Cookie。
- 在不登出A的情况下,访问危险网站B。
CSRF 攻击的解决办法
CSRF Token
- 在请求地址中添加 token 并验证
- 可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。
Referer 头检查
- 要防御 CSRF 攻击,网站只需要对于每一个转账请求验证其 Referer 值,例如银行网站如果是以 bank.example 开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果 Referer 是其他网站的话,则有可能是黑客的 CSRF 攻击,拒绝该请求。
- 缺点:某些浏览器可能不会发送Referer头,或者用户可以手动修改。
验证码
- 在重要操作(如修改密码、转账)前,要求用户输入验证码,以确认用户主动操作。
- 验证码被认为是对抗CSRF攻击最简洁而有效的防御方法。CSRF攻击的过程,往往是在用户不知情的情况下构造了网络请求。而验证码,则强制用户必须与应用进行交互,才能完成最终请求。因此在通常情况下,验证码能够很好地遏制CSRF攻击。
4.什么是网关,网关作用是什么?
什么是网关?
网关英文名称为Gateway,又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器,与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
网关的作用
网关是计算机网络中用于连接不同网络的设备,它的主要作用是充当不同子网或不同协议网络之间的桥梁,实现数据的转发。网关一般是路由器或具有路由功能的设备。
- 跨子网通信:当数据需要从一个子网传输到另一个子网时,必须经过网关进行转发。
- 协议转换:在不同的网络协议(如 IPv4 和 IPv6、TCP/IP 和其他协议)之间进行转换。
- 数据包转发:当主机发现目的地址不在本地网络中时,它会将数据包发送到默认网关,由网关决定下一步的转发路径。
- 网络地址转换(NAT):网关可以执行 NAT,使多个私有 IP 共享一个公共 IP 访问互联网。
- 安全控制:部分网关可作为防火墙,控制数据流,阻止未授权访问。
5.什么是MAC地址和IP地址,作用是什么?
MAC地址
当你在连接网络的时候,计算机需要一种方法来唯一地标识自己。这就是MAC地址的作用。MAC地址是一种硬件地址,是由网络适配器制造商预先设定的,用于在计算机网络中识别物理设备。
MAC地址的格式一般以十六进制数的形式表示,由6组2位16进制数构成,中间以冒号隔开,例如:00:0c:29:28:fd:b1。前三组数是厂商识别码,后三组数是设备序号。其中,第一组数最高位为0或1,0表示使用“统配地址”(broadcast),1则表示使用“单一地址”(unicast),如果是单一地址,则第二位必须为0。剩下的四个字节中,前三个字节是厂商编号,后三个字节是该厂商的网卡流水号,厂商编号是由IEEE分配给厂商的,具有唯一性。
MAC地址的主要作用
- 唯一标识网络设备:每个网络设备都有一个唯一的MAC地址,这确保了在网络中能够准确标识和定位每一个设备。
- 数据传输中的寻址和转发:当数据需要在网络上传输时,发送方会将目标设备的MAC地址封装在数据帧的头部,以便网络设备根据MAC地址进行寻址和转发。这样可以确保数据能够准确地被传送到目标设备,而不是被广播到整个网络。
- 防止IP地址盗用:由于IP地址可以随意修改,而MAC地址是固化在网卡中的,无法轻易更改。因此,局域网通常采用MAC地址来标识具体用户,防止IP地址被盗用。
IP地址
当我们使用计算机或者其他网络设备进行互联网通信时,每一个设备都需要一个唯一的标识符来进行通信。这个标识符被称为 IP 地址。IP地址是一个由32位二进制表示的数字,通常被分为四个数字组成的点分十进制的形式表示,例如:192.168.12.86。
划分:分别是A、B、C、D
- A类地址:RFC规定,A类地址的第一个字节的第一位必须为0,这意味着A类地址第一个字节的取值为0~127,所以A类地址范围是:1.0.0.1~126.255.255.254,可用的A类网络有126个,每个网络能容纳1亿多个主机。这里为什么没有0和127开头的网络地址呢?这两个不是有效的A类网络地址号,稍后将在保留地址中讲解。
- B类地址:RFC规定,B类地址的第一个字节的第一位必须为1,且第二位必须为0,所以B类地址范围是:128.0.0.1-191.255.255.254。可用的B类网络有16382个,每个网络能容纳6万多个主机。
- C类地址:RFC规定,C类地址第一个字节的前两位必须为1,而第三位必须为0,所以C类地址范围是:192.0.0.1-223.255.255.254,C类网络可达209万余个,每个网络能容纳254个主机。
- D类地址:D类(224~239)用作组播地址,地址范围224.0.0.1-239.255.255.254。
IP地址作用
- 网络定位:对于连接到互联网的设备,如计算机、手机、路由器等,IP地址就像它们在网络中的物理地址,帮助数据包准确地找到发送和接收信息的目标。
- 数据传输:在进行数据通信时,IP地址作为目的地的标识,使得网络中的路由器可以根据这些地址进行路由选择,确保数据能够通过最有效的路径传递。
- 访问网络资源:用户可以通过IP地址访问互联网上的网站服务器或其他网络服务,无论是浏览网页、发送电子邮件还是在线游戏,IP地址都是必不可少的
- 安全性:在网络中,IP地址还用于防火墙策略和入侵检测系统帮助识别可疑的流量和保护网络安全。
IP地址的分类:
- IPv4地址:IPv4采用32位地址格式,通常以四段十进制数表示(例如:192.168.0.1)。IPv4的地址空间有限且已经耗尽,但它仍然广泛应用于现有的网络中。
- IPv6地址:IPv6采用128位地址格式,通常以八组十六进制数表示,每组之间用冒号分隔(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IPv6地址空间巨大,为未来网络提供了更广阔的寻址空间。
6.计算机网络有哪两种通信方式?
客户服务器方式(C/S方式)
- 客户是服务的请求方,服务器是服务的提供方。客户端发送请求,服务器接收并处理请求,并将结果返回给客户端。
- 应用:当我们在浏览器上去查询信息的时候用的就是这种通信方式,适用于Web应用、数据库访问等场景。
对等方式(P2P方式)
- 两台主机之间的通信不区分谁是服务请求方和谁是服务提供方。两个或多个计算机之间的通信是对等的,可以相互交换信息和资源
- 服务器上不负责返回数据,而是返回文件地址关系的映射表,让用户与用户之间进行联系,在进行下载的时候,同时下载人数越多,建立联系的子通道就越多,多个子通道下载的速度相对于一个子通道下载的速度就会提高。
- 这种方式广泛应用于文件共享、实时通信和分布式计算等场景。
7.什么是子网掩码?作用是什么?
子网掩码主要用于区分IP地址中的“网络部分”和“主机部分”,帮助设备判断目标 IP 是否在同一网段,并决定是否需要通过网关进行通信。
子网掩码的定义
- 子网掩码是一个 32 位的二进制数,通常用 点分十进制表示(如
255.255.255.0
)。 - 它与 IP 地址一起使用,将 IP 地址划分为网络地址:用于标识子网。主机地址:用于标识子网内的具体设备。
子网掩码的作用
- 划分网络和主机:子网掩码通过与IP地址进行逻辑与运算,将IP地址分为网络地址和主机地址两部分,实现对网络的划分。以避免主机过多而拥堵或过少而IP浪费。
- 确定网络边界:子网掩码可以确定一个主机所在的网络边界。当一台主机需要与另一台主机通信时,它首先会检查对方的IP地址是否与自己的子网掩码相匹配。如果匹配,说明对方在同一子网络内,可以直接通信;如果不匹配,说明对方位于不同的子网络,需要通过路由器进行通信。
- IP地址分配与管理:子网掩码用于控制可用的IP地址范围和子网大小,帮助实现对IP地址的分配和管理,以适应不同的网络规模和需求。
- 提高网络安全性:子网掩码还可以提高网络的安全性。通过划分子网,可以将网络中的敏感数据和其他资源隔离在不同的子网络中。这样,即使某个子网络受到攻击,其他子网络的数据和资源也不会受到影响。
本人双飞本,校招上岸广和通。此专栏覆盖嵌入式常见面试题,有C/C++相关的知识,数据结构和算法也有嵌入式相关的知识,如操作系统、网络协议、硬件知识。本人也是校招过来的,大家底子甚至项目,可能都不错,但是在面试准备中常见八股可能准备不全。此专栏很适合新手学习基础也适合大佬备战复习,比较全面。最终希望各位友友们早日拿到心仪offer。也希望大家点点赞,收藏,送送小花。这是对我的肯定和鼓励。 持续更新