解决方案工程师面试 第1篇
最大传输单元:(链路层能承载的最大数据量)
IP数据报在互联网上传输时,可能要经过多个物理网络才能从源端传输到目的端。不同的网络由于链路层和介质的物理特性不同,因此在进行数据传输时,对数据帧的最大长度都有一个限制,这个限制值即最大传输单元MTU(Maximum Transmission Unit).
同一个网络上的两台主机之间通信时,该网络的MTU值是确定的,不存在分片问题。分片问题一般只存在于具有不同MTU值的互联网中。由于现在互联网主要使用路由器进行网络连接,因此分片工作通常由路由器负责。
当两台主机之间的通信要通过多个具有不同MTU值的网络时,MTU的瓶颈是通信路径上最小的MTU值,它被称为路径MTU。由于路由选择不一定是对称的(从A到B的路由可能与从B到A的路由不同),因此,路径MTU在两个方向上不一定是一致的,下表是几种常用网络的MTU值:
分片:
把一个数据报为了适合网络传输而分成多个数据报的过程称为分片,被分片后的各个IP数据报可能经过不同的路径到达目标主机。
一个IP数据报在传输过程中可能被分片,也可能不被分片。如果被分片,分片后的IP数据报和原来没有分片的IP数据报结构是相同的,即也是由IP头部和IP数据区两个部分组成:
分片后的IP数据报,数据区是原IP数据报数据区的一个连续部分,头部是原IP数据报头部的复制,但与原来未分片的IP数据报头部有两点主要不同:标志和片偏移:
(1)标志:在IP数据报头部有一个叫“标志”的字段,用3位二进制数表示:
不分片DF(Do not Fragment)标志如果被置1,则数据报在传输过程中不能被分片,如网络连通性测试命令ping就可以用-F参数设置为在数据传输时不分片,但这样当数据不能通过MTU较小的网络时,将产生数据不可达的错误。
片未完MF(More Fragment)标志如果被置1,说明该数据报不是分片后的最后一个数据报,最后一个数据报的该位被置0。
(2)片偏移:IP数据报被分片后,各片数据区在原来IP数据区中的位置用13位片偏移来表示。上图中分片1的偏移为0;分片2的偏移为600;分片3的偏移为1200。实际在IP地址中,由于偏移是以8个字节为单位进行计算的,因而在IP数据报中分片1的偏移是0;分片2的偏移是75;分片3的偏移是150。
重组:
当分了片的IP数据报到达最终目标主机时,目标主机对各分片进行组装,恢复成源主机发送时的IP数据报,这个过程叫做IP数据报的重组。
在IP数据报头部中,标识用16位二进制数表示,它唯一地标识主机发送的每一份数据报。在一个数据报被分片时,每个分片仅把数据报“标识”字段的值原样复制一份,所以一个数据报的所有分片具有相同的标识。
目标端主机重组数据报的原理是:
(1)根据“标识”字段可以确定收到的分片属于原来哪个IP数据报;
(2)根据“标志”字段的“片未完MF”子字段可以确定分片是不是最后一个分片;
(3)根据“偏移量”字段可以确定分片在原数据报中的位置。
解决方案工程师面试 第2篇
1. 请描述一次你解决复杂技术问题的经历。你如何识别问题,收集和分析数据,以及最后解决问题的?
2. 描述一次你发现并解决了一个软件或硬件错误的情况。你是如何确定错误的,又是如何修复的?
3. 你对数据结构和算法的理解如何?能否给出一个你熟悉的数据结构的实例?
4. 描述一次你在项目中使用设计模式的情况,你是如何选择和实施这些模式的?
5. 能否详细解释一下你如何进行单元测试,并描述一次你在项目中成功实施单元测试的经历?
解决方案工程师面试 第3篇
地址空间
IPv6 与 IPv4 比较最显著的一个改动就是使用 128 比特上的地址来代替了 32 比特长的 IPv4 地址。 IPv6 中取消了广播地址, 其功能由多目地址代替。
数据报格式
IPv6 报头格式在 IPv4 的基础上进行了优化, 从而有助于提高处理效率。 首先, 有些不必要的域被削减了, 有些域则被定义为可选报头, 如 IPv4 中的报头长度域由于在 IPv6 中采用下一报头域将可选报头或上层协议报头连起来而显得没必要; 与分段( fragment) 有关的域也由于 IPv6 中不同的分段方法而被定为可选报头。 其次, IPv6 报头中每个多字节的域都按照自然边界对齐, 从而方便程序处理。
校验和域在 IPv6 中被取消了。
IPv6 对扩展报头或可选项的支持十分灵活。 这些扩展报头紧跟在基本报头后面, 由下一报头域串联起来形成一个链。
分段策略
IPv6 的分段策略也有了改变。 在 IPv4 数据包传输过程中, 如果需要, 分段就有可能发生。 而在 IPv6 中, 分段只能由源主机进行, 而不能由路由器进行。 IPv6规定所有的主机与路由器都必须支持 576 字节的数据包, 这使得分段的概率就小得多了。 因此, IPv6 的基本报头中就不包括有关分片的域了, 而是特别定义一个分片的扩展报头。
安全性
IPv6 在安全性方面有所加强。 首先要求所有IPv6主机支持鉴别机制, 特别定义了鉴别扩展报头, 并以 MD5 算法作为缺省的鉴别算法; 其次, IPv6 还建立了交换机密信息的保密机制, 以防 IP 包在传输过程中被窃听。
自动配置
在一个 IPv4 环境中, 用户或网络管理员必须手工配置 IPv4节点地址。 而 IPv6 由于有了地址自动设定, 主机可以自动的为每个地址配置一个或多个地址。
地址是首先要解决的问题。IPv6中专门定义了两种地址,其中嵌入了IPv4地址。一个是IPv4兼容地址,即在IPv4地址前填充0;另一种是IPv4映射地址,记载IPv4地址前加上16个1,再用0填充满128位。 要是先Internet中IPv4与IPv6的互操作可以有三种方法。
双IP层技术
双IP层是保持IPv6与IPv4互操作性的最直接方式。适用于Internet有IPv4向IPv6过渡的前期。具有双IP层的节点成为IPv4/IPv6节点。它具有两个IP协议的完整实现。
隧道技术
隧道技术适用于Internet有IPv4向IPv6过渡的中期。其原理是两个IPv6的网络之间的中间网络的多协议路由器接收到源主机的IP包时,将其放入中间网络层数据包在和域中,当其到达中间网络另一端多协议路由器时再恢复源IP包并转发到目的主机,这样整个中间网络就像一条隧道。
报头翻译技术
当Internet中只有极少数IPv4节点时(过渡阶段后期),报头翻译技术可以保持IPv6与IPv4节点间的通讯。向IPv4节点发送消息时,路径上最后一个IPv6/IPv4路由器发现目的地址是IPv4映射地址则进行报头翻译,将IPv6报头替换成IPv4报头,并转发到目的IPv4节点。
网络层以上的协议用IP地址来标识网络接口,但以太数据帧传输时,以物理地址来标识网络接口。因此我们需要进行IP地址与物理地址之间的转化。
对于IPv4来说,我们使用ARP地址解析协议来完成IP地址与物理地址的转化(IPv6使用邻居发现协议进行IP地址与物理地址的转化,它包含在ICMPv6中)。
ARP协议提供了网络层地址(IP地址)到物理地址(mac地址)之间的动态映射。
ARP协议 是地址解析的通用协议
解决方案工程师面试 第4篇
时延是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。它包括了发送时延,传播时延,处理时延,排队时延。
(时延=发送时延+传播时延+处理时延+排队时延)一般,发送时延与传播时延是要主要考虑的。对于报文长度较大的情况,发送时延是主要矛盾;报文长度较小的情况,传播时延是主要矛盾。
时延是指数据包第一个比特进入路由器到最后一比特从路由器输出的时间间隔。在测试中通常使用测试仪表发出测试包到收到数据包的时间间隔。时延与数据包长相关,通常在路由器端口吞吐量范围内测试,超过吞吐量测试该指标没有意义。
解决方案工程师面试 第5篇
网络只管转发,分片这种端到端功能自然需要卸载到通信双方终端主机!
IPv6禁止中间节点设备对IP报文进行分片。分片只能在端到端进行!
IPv6禁止了中间设备分片,卸载了多少处理流程。很简单,看协议头即可,IPv4中下面的字段在IPv6中不再需要:
16位标识符:相同报文的分片拥有相同的16位标识符 3位分片标识:指示是否分片以及分片是否结束
IPv6不能完全放弃分片机制,只是说它用一种完全不同的机制来实现分片:
分片和重组只能在端主机进行。 分片信息不在IPv6协议标准头里,而单独设计一个扩展头存放。 如此做,IPv6相当于:
报文始发站完全可以通过PMTU知晓链路最小MTU,这完全是端到端行为,卸载了跟网络没有毛线关系的额外动作。 IPv6等效于IPv4永久无条件设置Don’t Fragment标识(但并不绝对,对于1280以下MTU则例外!)。
解决方案工程师面试 第6篇
路由器要转发数据必须先配置路由数据,通常根据网络规模的大小可设置静态路由或设置动态路由。静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源。
一、RIP路由协议 RIP是Routing Information Protocol(路由信息协议)的简称。它是一种较为简单的内部网关协议IGP(Interior Gateway Protocol),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP。
RIP是一种基于距离矢量(Distance-Vector)算法的协议,它通过UDP报文进行路由信息的交换,使用的端口号为520。
RIP使用跳数(Hop Count)来衡量到达目的地址的距离,称为度量值。在RIP中,缺省情况下,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的路由器数量。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不可能在大型网络中得到应用。
为提高性能,防止产生路由循环,RIP支持水平分割(Split Horizon)和毒性反转(Poison Reverse)功能。
由于RIP的实现较为简单,在配置和维护管理方面也远比OSPF和IS-IS容易,因此在实际组网中仍有广泛的应用。
RIP有两个版本:RIP V1和RIP V2。
1、RIP V1是有类别路由协议(Classful Routing Protocol),它只支持以广播方式发布协议报文。RIP-1的协议报文中没有携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1无法支持路由聚合,也不支持不连续子网(Discontiguous Subnet)。
2、RIP V2是一种无分类路由协议(Classless Routing Protocol),与RIP-1相比,它有以下优势:
1)支持外部路由标记(Route Tag),可以在路由策略中根据Tag对路由进行灵活的控制。
2)报文中携带掩码信息,支持路由聚合和CIDR(Classless Inter-Domain Routing)。
3)支持指定下一跳,在广播网上可以选择到最优下一跳地址。
4)支持使用组播方式发送更新报文,只有RIP-2路由器才能收到协议报文,减少资源消耗。
5)支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。
二、OSPF路由协议 OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。
OSPF的特性如下:
1、适应范围广:支持大规模网络,最多可支持几百台路由器。
2、支持掩码:由于OSPF报文中携带掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM提供很好的支持。
3、快速收敛:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
4、无自环:由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
5、区域划分:允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。
6、等价路由:支持到同一目的地址的多条等价路由。
7、路由分级:使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
8、支持验证:支持基于区域和接口的报文验证,以保证报文交互的安全性。
9、组播发送:在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。
解决方案工程师面试 第7篇
对于上述问题,以下是一些可能的解答示例:
1. 当我在大学期间,我参与了一个大型的软件开发项目。我们遇到的一个主要挑战是性能问题。我首先通过分析系统日志和性能数据来识别问题。然后,我使用调试工具和单元测试来收集更多的数据。通过比较和分析这些数据,我发现了一个潜在的内存泄漏。我编写了一个单元测试来验证我的假设,并成功地找到了问题的根源。最后,我使用操作系统提供的内存管理工具成功地修复了这个问题。这个经历让我明白了解决复杂技术问题需要细致的分析和实验。
2. 在一个项目中,我负责设计数据库架构。我首先对需求进行了分析,并确定了系统的关键性能指标。然后,我设计了一个具有良好扩展性和高可用性的架构。在实施过程中,我发现了一些性能瓶颈。我通过优化查询语句和调整数据库配置成功地解决了这些问题。最后,我编写了详细的文档并进行了测试,以确保系统能够满足所有要求。这个经历让我明白了在项目初期进行需求分析和设计的重要性。
3. 在团队中工作的时候,我通常会与我的同事进行开放的讨论来找到最佳解决方案。如果有分歧,我会寻求第三方的意见或者重新审视我们的目标和方法。当项目遇到困难时,我会与团队成员一起制定一个明确的行动计划并分配任务。在我的领导下,我们成功地克服了各种挑战并按时完成了项目。这个经历让我明白了团队合作和沟通的重要性。
4. 在一个项目中,我负责与客户建立联系并协调资源。我们遇到的一个主要问题是进度滞后。为了解决这个问题,我与相关团队成员一起制定了一个详细的项目计划和时间表。我们及时提供了反馈和指导,以确保所有团队成员都理解并执行他们的任务。同时,我与客户保持密切沟通,及时向他们报告进展情况并提供支持。在这个过程中,我发现积极解决问题、持续沟通并给予反馈对于改善困境至关重要。