新华三软件开发面经

直接走的社招。


面试流程,笔试-1面-2面。


内容C的基础知识,实参形参,指针,大部分都是16进制的题,最后一个print 内存dump函数。新华三主要还是看你的编程思维还有看学校,本身进去难度不大。


面试的内容,讲解了交换机的工作原理,各种TCP/IP 协定的相关内容。一些自己准备的内容直接粘过来了,有需要的道友可以多了解下。

TCP的拥塞控制
1.  拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。
    拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。
    流量控制:指点对点通信量的控制,是端到端正的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
    拥塞控制代价:需要获得网络内部流量分布的信息。在实施拥塞控制之前,还需要在结点之间交换信息和各种命令,以便选择控制的策略和实施控制。这样就产生了额外的开销。拥塞控制还需要将一些资源分配给各个用户单独使用,使得网络资源不能更好地实现共享。
2. 几种拥塞控制方法
    慢开始( slow-start )、拥塞避免( congestion avoidance )、快重传( fast retransmit )和快恢复( fast recovery )。
2.1 慢开始和拥塞避免
    发送方维持一个拥塞窗口 cwnd ( congestion window )的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞。
    发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。

TCP的流量控制
1. 利用滑动窗口实现流量控制
    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制    

设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里的 rwnd 表示 receiver window) 。因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。请注意,TCP的窗口单位是字节,不是报文段。TCP连接建立时的窗口协商过程在图中没有显示出来。再设每一个报文段为100字节长,而数据报文段序号的初始值设为1。大写ACK表示首部中的确认位ACK,小写ack表示确认字段的值ack


多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。

CPU频率,就是CPU的时钟频率,简单说是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位是Hz。它决定计算机的运行速度。


RIP
  RIP(Routing Information Protocol)是距离向量型的一种路由协议,广泛用于LAN。 
4.1.广播路由控制信息 
  RIP将路由控制信息定期(30s一次)向全网广播,由于可能丢包,因此RIP规定等待5次,如果等了6次(180S)仍未收到路由信息,才会真正关闭连接。 
  过程: 
  1).30S一次,将自己所知道的路由信息广播出去。 
  2).将已知的路由信息经过一跳之后继续广播。 
  3).以此类推,逐步传播路由信息。
4.2.根据距离向量确定路由 
  RIP基于距离向量算法决定路径,距离的单位为“跳数”,跳数是指所经过的路由器的个数。RIP希望尽可能少通过路由器将数据包转了到目标IP地址。根据距离向量生成距离向量表,再抽出较小的路由生成最终的路由控制表。
4.3.使用子网掩码时的RIP处理 
  RIP虽然不交换子网掩码信息,但可以用于使用子网掩码的网络环境。采用RIP进行路由控制的范围内必须注意两点: 
  1).因IP地址的分类而产生不同的网络地址时 
  2).构造网络地址长度不同的网络环境时
4.4.RIP中路由变更时的处理 
  RIP的基本行为可归纳为如下两点: 
  1).将自己所知道的路由信息定期进行广播 
  2).一旦认为网络被断开,数据将无法流过此路由器,其他路由器也就可以得知网络已经断开。 
  不过,这两点不论哪种方式都存在一些问题。 
  如:在非环路的情况下,路由器A将网络A的连接信息发送给路由器B,路由器B又将自己掌握的路由信息在原来的基础上加1跳后发送给路由器A和路由器C,假定这时路由器A与网络A的连接发生了故障。路由器A虽然觉察到自己与网络A的连接已经断开,无法将网络A的信息发送给路由器,但它会收到路由器B曾经获知的信息,这就使得路由器A误认为自己的信息还可以通过路由器B到达网络A。 
  像这样收到自己发出去的消息,这个问题被称为无限计数。为了解决这个问题可以采取以下两种方法: 
  1).最长距离不超过16.由此即使发生无限计数的问题,也可以从时间上进行控制 
  “距离为16”这个信息只会被保留120秒,一旦超过这个时间,信息将会被删除,无法发送,这个时间由一个叫垃圾收集计时器的工具进行管理。 
  2).规定路由器不再把所收到的路由器由消息原路返还给发送端,这也被称作水平分割(Split Horizon)
  然而这咱方法对有些网络来说是无法解决问题的,在网络本身就有环路的情况下。为了解决这个问题,人们提出了”毒性逆转“和”转发更新“ 
  毒性逆转:指当网络中发生链路被断开的时候,不是不再发送这个消息,而是将这个无法通信的消息转播出去,即发一个距离为16的消息。 
  触发更新:指当路由信息发生变化时,不等待30S而是立刻发送出去的一种方法。 
  有了这两种方法,在链路不通时,可以迅速传送消息以使路由信息尽快收敛。 
  在一个具有众多环路的复杂的网络环境中,路由信息想要达到一个稳定的状态是需要花一段时间,为了解决这个问题,必须明确地掌握网络结构,在了解究竟哪个链路断开后再进行路由控制非常重要。为此,可以采用OSPF.
4.5.RIP2 
新的特点: 
  1).作用多播 
  2).支持子网掩码 
  3).路由选择域 
  4).外部路由标志 
  5).身份验证密钥


三次握手要会画。 大概如此,做的东西偏底层。整个公司感觉氛围还可以,比不上一线互联网,依旧是个不错的选择。


你可能感兴趣的:(面经)