计算机网络自顶向下方法简答题与综述题题目与答案汇总

  1. 内网用NAT和DHCP访问外网的过程(NAT穿越问题);
    参考博客

  2. 为什么实际带宽会小于链路带宽?TCP拥塞控制的机制和过程;

    1. 分组时延和丢失
      a) 传输时延:数据块长度与信道带宽的影响;
      b) 传播时延:信道长度与信号传播速率;
      c) 处理时延:交换结点(如路由器)为存储转发而进行了一些必要处理,比如差错检测;
      d) 排队时延:结点缓存队列中分组排队所经历的时延,与网络中通信量有关。
    2. 拥塞控制和流量控制
      a) 传输层(TCP)会检测网络拥塞程度而抑制发送方的数据,使发送方发送分组的速度与接收方收取分组的速度匹配
    3. CSMA/CD协议等其他因素

    注:TCP拥塞控制过程:

    1. AIMD(加性增乘性减):除“缓启动”阶段TCP大小每个周期增加1mss,如果 出现拥塞则每次减半但不会小于1mss;
    2. “缓启动”:第一个周期发送1mss数据之后逐渐按指数增加,直到“缓启动”阈值(上一次loss事件的一半),结束“缓启动”阶段;
    3. 超时处理:如果没有收到ack检测到超时事件表示严重拥塞则将TCP窗口大小改为1mss并重新开始“缓启动”,“缓启动”阈值变先前一半;若收到3个冗余ACK后:窗口减半再线性增加,“缓启动”阈值变先前一半。
  3. LAN多路访问协议中的协议以及每个协议的特点;
    分类:

    1. 信道划分协议:包括
      a) 频分(信道频谱划分为若干频带,每个站点分配一个固定频带,无传输时相应频带空闲);
      b) 时分(周期性接入信道,每个站点在每个周期占用固定长度的时隙,未使用则时隙空闲);
      c) 波分;
      d) 码分。
    2. 随机访问协议:当节点要发送数据时,利用信道全部速率发送分组,若多个节点同时传输则会产生冲突,典型的两种协议(时隙ALOHA和非时隙ALOHA协议还有CSMA、CSMA/CD(应用于以太网)、CSMA/CA(应用于802.11))。
      a) 时隙ALOHA特点:所有帧大小相同,时间被划分为等长的时隙,结点只能在时隙开始时刻发送帧,如果冲突则以概率p重传;
      b) 非时隙ALOTHA特点:有新的帧生成时立即发送,冲突可能性增大,但更加简单无需同步;
      c) CSMA特点:发送帧之前,监听信道,若空闲则发送,反之推迟发送(又分为1坚持、非坚持、p坚持),“边发边听,不发不听”;
    3. 轮转协议:分为轮询和令牌传递两大类;
      a) 轮询:主节点轮流邀请从属节点发送数据;
      b) 令牌传递:控制令牌依次从一个节点传递到下一个节点,拿到令牌才可以发送数据。
  4. 一个网段向另一个网段发送数据的过程(不知道对方MAC地址,ARP原理);
    a) 判断是否在同一子网:分别将两个IP地址与子网掩码相与,并比较结果是否一样,如果不一样,则不在同一子网,封装ARP广播包(目的MAC地址为全F)获取网关1的MAC地址;
    b) 网关1收到ARP广播包返回自己的MAC地址,主机将数据源IP地址和MAC地址设为自己的IP地址和MAC地址,目的IP地址即为目的IP地址,目的MAC为网关1的MAC地址,封装发送数据帧到链路。
    c) 网关1收到,解析获得目的IP不是自己,查看路由表,路由表中有关于目标网段的下一跳,然后把源MAC和目的MAC地址重写,从相应的接口发出去,数据包沿途经过的路由器或网关设备都执行相同的动作。
    d) 到达目标网段后,网关设备查看ARP表,找目标IP的MAC地址(数据帧传输过程中源目IP不变,MAC地址在变化) 然后封装成帧进行发送(注意每次判断是否在同一网段都需要将子网掩码分别与自己的IP和目的IP与运算判别)

  5. 描述一下死锁(给你一个rdt状态机让你描述);
    此题简单,课本第三章第6题。附上那道题的答案:
    如果 rdt2.1 发送方正处于“等待来自上层的调用0”,接收方处于“等待来自下层的0”,发送方发送序号为 0 的分组,而接收方正确接收并向发送方发送 ACK;此时发送方处于“等待 ACK 或 NAK 0”,接收方处于“等待下层的 1”,如果此 ACK 损坏,发送方重发序号0的分组,而接收方会发送 NAK,这将导致一个死循环;其实此接收方并没有标注初始状态,如果发送方初始状态为“等待来自上层的 0”,接收方初始为“等待下层的 1”,也会导致上述死锁。

  6. TCP和UDP异同点;

  1. TCP:①面向连接;②每一条TCP连接只能是点对点的(一对一);③提供可靠的交互服务;④支持全双工通信;⑤面向字节流。
  2. UDP:①无连接;②尽最大努力交付;③面向报文;④无拥塞控制;⑤支持一对一、一对多、多对一和多对多的交互通讯;⑥首部开销少。
  1. GBN和SR工作过程和发送窗口尺寸(异同点);

    1. GBN:
      a) 分组头部包含序列号;
      b) 窗口大小为N,最多允许N个分组未确认;
      c) ACK(n),则表示确认从开始到n(包含n)的序列号全部正确接收;
      d) 为空中在传的分组设置一个Timer计时器,处理超时,如果收到了timeout(n)事件,那么会重传的是n以及n以后的所有分组(尽管后面的可能已经收到了,这就是回退,回退到n开始传,GBN);
      e) 接收方会有一个期望序列号,如果收到的不是期望的分组,直接丢弃;
    2. SR(选择重传):
      a) GBN有缺陷,累积确认机制导致回退到N,重复传了很多。
      b) 为了解决这个问题,对每个分组分别确认,不再只接收期望的,接到不期望的,就先缓存(设置缓存机制),接到期望的才交付上层;
      c) 发送方只需要重传那些没收到ACK的分组了;
      d) 产生了接收方窗口(GBN只有发送方窗口),用来缓存,现在有两窗口了;
      e) 序列号的位数是K的话,那么得满足 接收方窗口大小N+发送方N<= 2的k次方,防止因为接收方ACK丢失导致发送重发k号分组,而此时接收方滑到了新窗口,新窗口有新的k号分组(不是原来的,共用序号产生的),导致出错。
  2. TCP发送方接收方特点,接收方接收到错误的或乱序的数据包如何处理;
    TCP发送接收特点:

    1. 发送方:采用应答机制,发送方发送的每个报文段都必须得到接收方的回答,才认为传输成功,为每个已经发送的数据段启动超时定时器,超时只重发引起超时的分组,若收到连续三个ACK则在计时器结束之前快速重传,有多个发送方窗口;
    2. 接收方:多个接收方窗口,累计应答机制,收到TCP报文段后放入接收缓冲区;
    3. 遇到错误:对最近一次确认过的重新确认;
    4. 遇到乱序:先缓存,根据序号重新排序在递交给应用层。
  3. 描述TCP连接创建和断开过程;
    TCP建立的三次握手:

    1. 发送端发送一个SYN报文段(SYN位被置位1),SYN中包含TCP目的端口和发送端的初始序列号,同时携带着TCP选项数据。
    2. 接收端在收到发送端连接请求后,接收端发送自己SYN报文段,同时对发送端的SYN进行确认,如前所述,接收端发送的ACK是发送的序列号+1。此时ACK位与SYN位都被置位。接收端发送SYN+ACK到发送端。
    3. 发送端接收到接收端的SYN+ACK数据后,进行确认,发送ACK=接收方发来的上一个seq+1的报文段给接收端,完成三次握手

    TCP断开的四次握手:

    1. TCP协议规定通过发送一个FIN段(FIN被置位1)来发起关闭操作,发送端发送FIN段给接收端,告知它数据已发送完毕,请求断开TCP连接。同时FIN报文段还包含着对最近收到的数据进行ACK。
    2. 接收端接收FIN报文段后,对FIN进行确认,发送ACK=上一个seq+1给发送端。
    3. 接收端将连接关闭发送给上层应用程序,由应用程序发起连接关闭操作。此时接收端由被动关闭连接变成主动,并发送FIN报文段给发送端。
    4. 发送端接收到FIN后,发送回ACK给接收端后,TCP连接终止。如果FIN丢失,发送FIN的那端需要重新发送FIN,知道接收到ACK为止。
      参考博客
  4. 数据报网络和虚电路网络的异同点;
    虚电路网络/数据报网络特点:

    1. 发送数据前需要/不用先建立连接;
    2. 每个分组含有虚电路标识/目的IP地址用于路由器转发;
    3. 若路径中一个路由器损坏则所有分组都无法到达目的地/则可能都其他,剩余分组可选择其他路由器到达目的地;
    4. 分组按序/乱序到达;
      另附一张图

在这里插入图片描述
11. 为什么要包含层次选路自治系统(AS)的划分和各自的协议特点(08简单第三题);

  1. 原因:
    a) 规模:规模庞大时路由表无法存储和路由计算过程困难,交换量巨大,转发很难。
    b) 自治管理:管理者希望对自己范围内路由器进行管理,包括政策等方面诸多因素,减少路由也可以便于管理。
  2. 每个自治系统由一组通常由在相同管理控制下的路由器组成,同一自治系统内运行相同的路由协议,路由协议类型可分为自治系统内部和自治系统外部;
  3. 自治系统内部协议:
    a) RIP:采用DV(距离向量)算法,健壮性不好;
    b) OSPF:采用洪泛链路状态信息的链路状态协议和Dijkstra最低费用路径算法;
  4. 自治系统间路由选择协议:
    BGP协议:获得每个自治系统可达信息,分发路径信息承载了路径属性,并提供受控制的选路信息分布;
  5. 自治系统内通过什么策略确定:
    先通过AS间路由协议学习到目的子网是否可以通过多个网关到达,然后利用AS内路由协议获得路由信息确定到达每个网关的最小费用路径的费用。如果有多个网关可达,则采用热土豆原则(将分组发给刚刚计算的最近的网关路由器)。
  6. 内部路由器的用途:
    a) 边界(网关)路由器:为传递到自制系统外部的分组提供路由选择,安全保护
    b) 骨干路由器:为分组在区域间转发提供路由选择
    c) 区域边界路由器:为传递到区域外的分组提供路由选择
    d) 区域内路由器:为信息在区域内转发提供路由选择
  1. 怎样保证路由表准确无误?
  1. 最大度量值:路由器设置一个最大度量值,当达到该值时,路由器就会认为这条路由已经失效,将他清除出路由表;
  2. 水平分割:从一个方向上学来的路由信息,不能再放入发回那个方向的路由更新包并且又发回那个方向;
  3. 路由中毒:网络出现故障时,通知邻居该网段不可用
  4. 毒性反转:当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16(表示不可到达),即不可达的度量值将它广播出去,它可以立即清除相邻路由器之间的任何环路,
  5. 保持时间:该网段的路由变成“down”状态时,还要在路由器中保留一段时间;
  6. 触发更新:当路由器发现某个网段出现故障时,立即发送路由更新包来通知邻居,而不用等到下一次发送路由更新包的时间
  1. 距离向量算法(DV)和链路状态算法(LS)的区别;
  1. 距离矢量:运行距离矢量路由协议的路由器,会将所有它知道的路由信息与邻居共享,但是只与直连邻居共享!
  2. 链路状态:运行链路状态路由协议的路由器,只将它所直连的链路状态与邻居共享,这个邻居是指一个域内(domain),或一个区域内(area)的所有路由器!
  3. 所有距离矢量路由协议均使用Bellman-Ford(Ford-Fulkerson)算法,容易产生路由环路(loop)和无穷计数(counting to infinity)的问题。因此它们必须结合一些防环机制:split-horizon、route poisoning、poison reverse、hold-down timer、trigger updates。
  4. 同时由于每台路由器都必须在将从邻居学到的路由转发给其它路由器之前,运行路由算法,所以网络的规模越大,其收敛速度越慢。
  5. 链路状态路由协议均使用了强健的SPF算法,如OSPF的Dijkstra,不易产生路由环路,或是一些错误的路由信息。路由器在转发链路状态包时(描述链路状态、拓扑变化的包),没必要首先进行路由运算,再给邻居进行发送,从而加快了网络的收敛速度。
  6. 距离矢量路由协议,更新的是“路由条目”!一条重要的链路如果发生变化,意味着需通告多条涉及到的路由条目!
  7. 链路状态路由协议,更新的是“拓扑”!每台路由器上都有完全相同的拓扑,他们各自分别进行SPF算法,计算出路由条目!一条重要链路的变化,不必再发送所有被波及的路由条目,只需发送一条链路通告,告知其它路由器本链路发生故障即可。其它路由器会根据链路状态,改变自己的拓扑数据库,重新计算路由条目。
  8. 距离矢量路由协议发送周期性更新、完整路由表更新(periodic & full)
  9. 而链路状态路由协议更新是非周期性的(nonperiodic),部分的(partial)
  1. 电路交换、分组交换、报文交换优缺点;
  1. 电路交换:
    优点:①传输时延特别小;②双方物理链路一旦建立,随时通信,实时性强;③数据传输正确性强;
    缺点:①电路交换平均建立时间对计算机通信来说长;② 物理通路被通信双方独占,信道利用率低;③ 难以进行差错控制;
  2. 报文交换
    优点:①不存在连接建立时延,随时发送报文;②采用存储转发的传输方式,使路径多选择性,提高传输可靠性;便于不同类型,不同规格计算机之间进行通信;提供多目标服务;允许建立数据传输优先级;③提高了通信线路的利用率
    缺点:①转发时延大,实时性差;②只适用于数字信号;③需要网络结点有大的缓冲区储存整个报文,增加时延;
  3. 分组交换
    优点:①加速了传输速度,时延相比报文传输减小;②简化了存储管理;③减小了出错机率和重发数据量;④更适用于优先级策略;
    缺点:①节点交换机需要有很强的处理能力;②传送信息量增多,降低了通信效率,增加了处理时;③可能出现失序、丢失、重复的问题。
  1. Google(必考,10至15分不一定)
    答案1:
  1. 通过DHCP获取主机地址,BOB笔记本电脑的操作系统生成一个DHCP请求报文,并将该报文放入到目的端口67,原端口68的UDP报文段,该UDP报文段则被放置在一个具有广播IP目的地址(255.255.255.255)和源IP地址0.0.0.0的IP数据报中,该数据报被放置在以太网帧中,该帧到源MAC地址为(自身MAC地址)目的MAC地址为(ff:ff:ff:ff:ff:ff)进行广播,路由器在它的具有MAC地址xx的接口接收到该广播帧,分离出DHCP请求报文,然后给其分配IP,DHCP服务器会产生一个包含IP地址,d n s服务器IP,子网掩码,默认网关IP的DHCP ACK报文,将其报文封装并放入以太网帧中以目的MAC为bob主机MAC,源MAC为路由器接口MAC发送给bob,bob收到该报文后,将自己的IP地址,DNS服务器IP记录下来,同时将默认网关的地址安装在IP转发表中
  2. 通过DNS查询谷歌的IP地址,将含有DNS查询报文的数据报放入以太网帧中,为了获取网关路由器的MAC地址,将生成一个目的IP为(默认网关)的ARP查询报文,将该报文放置在一个具有广播地址(FF:FF:FF:FF:FF:FF)的以太网帧中,发送该帧,网关路由器收到该帧后,将返回一个包含自身MAC地址的ARP回答报文,将其放在一个以太网帧中返回bob主机,从中抽取网关路由器的MAC地址,随后可以将包含DNS查询报文的帧发送到网关路由器,路由器根据最大前缀匹配原则,利用他的转发表将其送到DNS服务器上,DNS服务器抽取出DNS查询报文,然后在他的DNS数据库中查找名字为www.google.com,假设它缓存在DNS服务器中,则可以找到包含www.google.com的IP地址的DNS源记录,DNS服务器则形成一个包含主机名到IP地址映射的DNS回答报文,将报文封装进以太网帧中,发送到bob主机,bob从DNS回答报文中提取谷歌的IP地址
  3. bob生成TCP套接字,随后开始进行TCP连接,首先生成一个具有目的端口80 的TCP SYN报文段,将该TCP报文段放置在具有目的IP地址(谷歌)的IP数据报中,将该数据报封装在MAC地址(网关路由器)的帧中,利用路由器转发表将该数据报发送到www.google.com,从数据报中取出TCP syn报文并分解到与端口80想联系的欢迎套接字中,对于谷歌http服务器和bob主机之间的TCP连接生成一个连接套接字,产生一个TCP syn ack报文段,该报文段最终到达bob主机的以太网卡,将其分解到TCP套接字中, bob主机上的浏览器生成包含要获取的URL的http get报文,将该报文写入套接字中,get报文成为一个TCP报文段的载荷,将该报文段交付到www.google.com,www.google.com从TCP套接字中读取http get报文,生成一个包含请求的web页内容的响应报文,将该报文发送进TCP套接字中,包含http响应报文的数据报到达bob主机,bob主机上的web浏览器程序从套接字中读取http响应,从http响应体中抽取web页面的html,最后显示网页。
    答案2:
  4. DHCP:客户机创建一个DHCP请求封装在UDP中(源IP全0,MAC全f)全网广播,路由器接收到为其分配IP并将IP、子网掩码、网关IP及DNS服务器IP封装到DHCP ACK数据包封装后发送给客户机,客户机记录自己的IP掩码DNS并将网关IP记录到自己的转发表
  5. 客户机将自己和DNS服务器的IP和子网掩码逐bit相与得到网络号,如果在同一网段则发全网ARP广播包(目的MAC为全F);如果不同则发送ARP广播包(目的MAC为网关,IP为DNS),路由器看到不是给自己的则持续上面这个过程发给上层其他路由直到到达DNS服务器。DNS服务器将MAC发给客户机
  6. 获得DNS的MAC发送ARP请求,再DNS数据库中找到google域名,如果找到google的IP地址原始记录则形成一个DNS回复报文(包含主机名到地址的映射)封装后发给客户及,如果没有则到根名称服务器中寻找其根名称的顶级域名称服务器IP,再在其中找其权威名称服务器的IP,最后在权威名称服务器中找主机名和IP地址,打包发给客户机。客户机从中提取谷歌的IP
  7. 客户机创建一个被用来发送http报文的TCP套接字进程,准备连接服务器。客户机创建TCP syn报文到http服务器后被封装发送给谷歌服务器,谷歌服务器接收到后将其分到80端口并形成一个TCP syn ack报文发给客户机之前创建的套接字中。客户机创建http get信息并将其套接字联同get信息一起成为TCP报文中有效荷载的一部分,封装后发给谷歌。谷歌从中提取get信息后形成TCP回复报文封装到http报文主体内然后发送套接字到客户机,客户机的web浏览器从套接字读取http回复报文,从http相应报文主体部分提取网页html内容,最后显示网页。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章