Java教程

考研级《计算机网络》知识梳理——第十七期

本文主要是介绍考研级《计算机网络》知识梳理——第十七期,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

ARP协议(Address Resolution Protocol)

  ARP本质上也是跟MAC存储表差不多的一种缓存,它是一种高速缓存,专门存储IP地址与MAC地址的映射表。

1、发送数据的过程

  

  情况一:在局域网内查找IP对应的MA地址映射

    

    依靠交换机等数据链路层设备对请求分组(一种含有源IP、源MAC、目的IP、目的MAC为默认全1广播值)进行局域网内广播,目标主机在收到该广播后会回复一个带有自身IP和MAC的分组以非广播(单播)的形式传回源主机。

  情况二:跨路由器查找IP对应的MAC地址映射

    

    首先根据子网掩码判断目标主机的IP地址在不在同一个网段(子网)内,如果不在,首先还没出局域网的时候同样是依靠广播的形式,目标IP替换为必经之路默认网关接口的IP地址发送请求分组,默认网关路由器会单播回复该请求,ARP协议体系中就获取到这个网关接口的MAC(此时还没有跑出广播域),后面就是路由器间点对点的以相同的方式进行MAC获取,直到到达目的主机所在的局域网,最终由广播该局域网的路由器获取到目的主机的MAC地址。

2、ARP协议

  必要性:由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。有的主机在高速缓存中恰好没有对应MAC地址的就需要借助ARP协议来得到下一跳的MAC地址。

  作用:完成主机或路由器IP地址到MAC地址的映射。(解决下一跳走哪的问题,个人理解是IP有点像全局坐标,MAC有点像局部坐标,IP给你一个大方向保证你不迷路,但真要完成点对点的传递任务还得依靠MAC)

  使用过程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)

  ARP协议4种典型情况(由于ARP协议已经非常成熟且相关网络设备上对协议的应用也很完备,所以用户几乎不需要考虑相关的内容,设备间以一种及其成熟的方式自动执行该协议):

    1、主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;

    2、主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;

    3、路由器发给本网络的主机A:用ARP找到主机A硬件地址;

    4、路由器发给另一网络上的主机A:用ARP找到本网络上的一个路由器的硬件地址。

3、ARP协议习题

  

 

   

 

 

 

DHCP协议(动态主机配置协议Dynamic Host Configuration Protocol)

1、主机如何获得IP地址

   在网络体系中需要通讯肯定会用到IP,主机通过分配获得自身的IP的方式有两种,分别为静态配置方式、动态配置方式。

    静态配置

      电脑机房或网吧中的主机,管理员根据一定规律将IP人为分配好(大概率是私有IP再通过NAT与外网连接),需要配置的几个参数有:IP地址、子网掩码、默认网关(获取目标MAC地址等作用)

    动态配置

      主要用于通过无线局域网连接的移动设备,因为会随时移动位置,所以需要动态地分配IP,值得注意的是DHCP协议是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP(UDP传输层再详细讲解)。

      

      DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用(地址池),支持移动用户加入网络,支持在用地址续租(分配的地址是时间性的,超出使用时间需要申请地址续租)。

      过程原理(全为广播):

        1、主机广播DHCP发现报文

          “有没有DHCP服务器呀?”    试图找到网络中的服务器,服务器获得一个IP地址。

        2、DHCP服务器广播DHCP提供报文

          “有!有!有!”    服务器拟分配给主机一个IP地址及相关配置,先到先得。

        3、主机广播DHCP请求报文

          “给我分配一个IP地址!”    主机向服务器请求提供IP地址。

        4、DHCP服务器广播DHCP确认报文

          “好嘞!”    正式将IP地址分配给主机。

 

 

 

 

 

ICMP协议(因特网控制报文协议Internet Control Message Protocol)

1、TCP/IP协议栈

  

  ICMP协议、IGMP协议都是为传输层直接提供服务,为了更有效地转发IP数据报和提高交付成功的机会。

2、网络控制报文协议ICMP

  主要功能支持主机或路由器的:

    1、差错(或异常)报告    →    发送特定的ICMP报文

      

      报文类型分为:ICMP差错报文、ICMP询问报文

    2、网络探询

3、ICMP差错报告报文(5种)

  1、终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。(无法交付的情况)

  2、源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(拥塞丢数据的情况)

  3、时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。(TTL=0的情况)

  4、参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。(首部字段有问题的情况)

  5、改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(更换为更好的路由的情况)。

4、ICMP差错报告报文数据字段

  ICMP的数据字段内容是根据出错的IP数据报做的编辑。

    

5、不应发送ICMP差错报文的情况

  1、对ICMP差错报告报文不再发送ICMP差错报告报文。(禁止禁止禁止套娃!!)

  2、对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。(意思意思得了)

  3、对具有组播地址的数据报都不发送ICMP差错报告报文。(组播与广播的区别是,广播是一点对广播域内所有点,组播是一点对广播域内部分点)

  4、对具有特殊地址(如127.0.0.1或0.0.0.0)的数据报不发送ICMP差错报告报文。

6、ICMP询问报文

  1、回送请求和回答报文

    主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。(典型的例子是Ping,测试目的站是否可达以及了解其相关状态。)

  2、时间戳请求和回答报文

    请某个主机或路由器回答当前的日期和时间。(用来进行时钟同步和测量时间)

  3、掩码地址请求和回答报文(不再使用)

  4、路由器询问和通告报文(不再使用)

7、ICMP的应用

  1、PING

    PING(Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo请求报文,测试目的站是否可达及了解其有关状态 。(测试两个主机之间的连通性,使用了ICMP回送请求和回答报文)

  2、Traceroute

    跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。其具体原理是,发送一连串的分组,分组的生存时间TTL依次递增1,因此就可以逐个分组的向前探索路径,直到到达目的地。最终测算出源点到目的主机之间的距离。

 

 

 

 

IPv6

1、IPv6的产生背景

   纵使绞尽脑汁发明了NAT、CIDR等网络细分与网络细分的细分,让IP地址使用率有所提高,但是32bit的长度终究有限,很快就要用完了。因此又发明了一种超长的地址IPv6。(除了扩充数量的原因,另一个目的是改进IP数据报中的首部格式,从而快速处理/转发数据报;还有一个目的是为了支持QoS)

    (QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术)

2、IPv6数据报格式

  固定40Byte基本首部,扩展首部负责各种功能的扩充。

  

  

  版本:指明了协议版本,总是6。

  优先级:区分数据报的类别和优先级。

  流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。(类似于来自同一IP数据报的不同分片)

  有效载荷长度:扩展首部+数据部分的长度

  下一个首部:标识下一个扩展首部(例如基本首部中的下一个首部指向的是扩展首部1,扩展首部1的下一个首部指向的是扩展首部2,依此类推,最后一个扩展首部的下一个首部指向的是数据部分)或上层协议首部。

  跳数限制:与IPv4中的生存时间TTL的概念相同。

  源地址、目的地址:长度都是128位,对应IPv6的长度。

3、IPv6和IPv4区别

  1、IPv6将地址从32位(4B)扩大到128位(16B),拥有更大的地址空间。

  2、IPv6将校验和字段彻底移除,以减少每一跳的处理时间。

  3、IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。

  4、IPv6支持即插即用(即自动配置),不需要DHCP协议。(因为地址数量足够多,有钱任性)

  5、IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。

  6、IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。(所以有一个比较大的问题就是,IPv6的数据报如果传到了某个路由器但是接下来的链路MTU太小,那么这个IPv6数据报并不能在当前的路由器被分片,只能被残忍丢弃,然后通过ICMPv6返回给发送主机一个错误报告)

  7、ICMPv6协议:附加报文类型“分组过大”。

  8、IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。

  9、IPv6取消了协议字段,改成下一个首部字段。

  10、IPv6取消了总长度字段,改用有效载荷长度字段。

  11、IPv6取消了服务类型字段。

4、IPv6地址表示形式

  对于机器肯定就是一长串二进制数了,对于人的话有以下两种表示方式。

    一般形式:冒号十六进制记法:  

 

       用一个16进制数表示4位,所以是32个十六进制,四个十六进制数表示一组,用冒号隔开,一共是八组。

    压缩形式:如果一组的高位有0直接省略掉:

      

      还想再精简的话,还可以再进行零压缩

        零压缩:一连串连续的0可以被一对冒号取代。

          

5、IPv6基本地址类型

  单播:一对一通信    可做源地址、目的地址

    

  多播:一对多通信    可做目的地址

    

  任播:一对多中的一个通信    可做目的地址

    

6、IPv6向IPv4过渡的策略(如何兼容两种IP)

  双栈协议(两种IP的协议栈都准备好,给机器既配置IPv4又配置IPv6)

    

 

   隧道技术(在传递中使用处理设备对数据进行再封装,相当于披个马甲)

    

    

 

 

这篇关于考研级《计算机网络》知识梳理——第十七期的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!