5.重要协议 - wolai 笔记

1.ARP协议

实现MAC地址的IP地址的映射关系
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP地址到MAC地址的映射,这就是地址解析协议(Address ResolutionProtocol, ARP)。 每台主机都设有-一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。使用ARP来动态维护此ARP表。

1.0 IP地址与硬件地址

  • IP地址是网络层使用的地址,它是分层次等级的。
  • 硬件地址是数据链路层使用的地址(如MAC地址),它是平面式的。
  • 在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。
  • 通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址

1.1发送数据的过程

(1)同一网段发送数据

IP1 → IP5

(2)不同网段发送数据

IP1 → IP6 → MAC6 → MAC8 → MAC9 → IP5

1.2 ARP协议

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。
ARP协议自动进行

(1)功能

完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪的问题

(2)ARP协议的使用过程

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

(3)ARP协议4种典型情况

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

1.3 ARP协议例题

主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?
ARP协议解决了下一跳走哪的问题,6

2.DHCP协议

动态获取IP地址
动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)常用于给主机动态地分配IP地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
DHCP是应用层协议,它是基于UDP的。

2.1 主机如何获取IP地址

(1)静态配置

  • IP地址
  • 子网掩码
  • 默认网关

(2)动态配置

DHCP协议

2.2 DHCP协议

动态主机配置协议DHCP应用层协议,使用客户/服务器方式,客户端和服务器通过广播方式进行交换,基于UDP
DHCP提供即插即用联网机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租

2.3工作流程

  1. 主机广播DHCP发现报文“有没有DHCP服务器呀?”试图找到网络中的服务器,服务器获得一个IP地址。
  2. DHCP服务器广播DHCP提供报文“有!”“有!”“有!”服务器拟分配给主机一个IP地址及相关配置,先到先得。
  3. 主机广播DHCP请求报文“我用你给我的IP地址了?”主机向服务器请求提供IP地址。
  4. DHCP服务器广播DHCP确认报文“用吧!”正式将IP地址分配给主机。

3.ICMP协议

为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol, ICMP)来让主机或路由器报告差错和异常情况
为了更有效地转发IP数据报和提高交付成功的机会....

3.1 TCP/IP协议栈

3.2 网际控制报文协议ICMP

ICMP协议支持主机或路由器,主要用于差错(或异常)报告和网络控制,发送特定的ICMP报文
发送的报文有两种:ICMP差错报文ICMP询问报文

3.3 ICMP差错报告报文(5种)

(1)终点不可达

当路由器或主机不能交付数据报时就向源点发送终点不可达报文。无法交付

(2)源点抑制

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

(3)时间超过

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

(4)参数问题

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

(5)改变路由(重定向)

路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。值得更好的路由

3.4 ICMP差错报告报文数据字段

ICMP 报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMPIP层协议。

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

  1. ICMP差错报告报文不再发送ICMP差错报告报文。
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文。
  4. 对具有特殊地址(如127.0.0、00.0.0.0)的数据报不发送ICMP差错报告报文。

3.6 ICMP询问报文

(1)回送请求和回答报文

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

(2)时间戳请求和回答报文

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

(3)掩码地址请求和回答报文

不再使用

(4)路由器询问和通告报文

不再使用

3.7 ICMP的应用

(1)PING

测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

(2)Traceroute

跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文



Comment