计算机⽹络---⽹络层重要协议
动态IP分配协议 --- DHCP协议
主机如何获得IP地址:
静态配置
包括IP地址,⼦⽹掩码,默认⽹关
动态配置
由DHCP服务器来分配
DHCP协议:
动态主机配置协议DHCP是应⽤层协议,使⽤客户、服务器⽅式,客户端和服务端通过⼴播⽅式进⾏交互,基于UDP。
DHCP提供即插即⽤联⽹的机制,主机可以从服务器动态获取IP地址,⼦⽹掩码,默认⽹关,DNS服务器名称与IP地址,允许地址重⽤,⽀持移动⽤户加⼊⽹络,⽀持在⽤地址续租。
DHCP过程
1. 主机⼴播DHCP发现报⽂ 试图到⽹络中的服务器,服务器获得⼀个IP地址
2. DHCP服务器⼴播DHCP提供报⽂ 服务器拟分配给主机⼀个IP地址及相关配置,先到先得
3. 主机⼴播DHCP请求报⽂ 主机向服务器请求提供该IP地址
4. DHCP服务器⼴播DHCP确认报⽂ 正式将IP地址分配给主机
⽹际控制报⽂协议 --- ICMP协议
ICMP协议⽀持主机或路由器:
当分组传送错误后,⽹络层直接丢弃分组,并发送特定ICMP差错报⽂。也就是说IP数据报的数据部分就是ICMP报⽂
ICMP报⽂类型
ICMP差错报⽂
终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报⽂。
源点抑制:当路由器或主机由于拥塞⽽丢弃数据报时,就向源点发送源点抑制报⽂,使源点知道应当把数据报的发送速率放慢。(现在基本不会⽤)
时间超过:当路由器收到⽣存时间TTL = 0数据报时,除丢弃该数据报外,还要向源点发送时间超过报⽂。当终点在预先规定的时间内不能收到⼀个数据报的全部数据报⽚时,就把已收到的数据报⽚都丢弃,并向源点发送时间超过报⽂(应⽤:Traceroute,跟踪⼀个分组从源点到终点的路径,使⽤了ICMP时间超过差错报告报⽂)
参数问题:当路由器或⽬的主机收到的数据报的⾸部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报⽂。
改变路由(重定向):路由器把改变路由报⽂发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)ICMP差错报告报⽂的数据字段:
所有的差错报告报⽂的数据字段的格式都是⼀样的,把收到的需要进⾏差错报告的IP数据报⾸部以及前⼋个字节取出来作为ICMP报⽂的数据字段,再加上ICMP差错报告报⽂的前⼋个字节,接下来再加上IP数据报的⾸部,就构成了⼀个完整的数据报。
不应发送ICMP差错报⽂的情况:
对ICMP差错报告报⽂不再发送ICMP差错报告报⽂。
对第⼀个分⽚的数据报⽚的所有后续数据报⽚都不发送ICMP差错报告报⽂。
对具有组播(区分与⼴播:⼴播是⼀点发送给所有结点,⽽组播是⼀点发送给多个结点,⽽不是所有结点)地址的数据报都不发送ICMP差错报告报⽂。
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报⽂。
ICMP询问报⽂
回送请求和回答报⽂ 主机或路由器向特定⽬的地址发出的询问,受到此报⽂的主机必须给源主机或路由器回送回答报⽂。测试⽬的站是否可达以及了解其相关状态。(应⽤:PING,测试两个主机之间的连通性,使⽤了ICMP回送请求和回答报⽂)
时间戳请求和回答报⽂ 请某个主机或路由器回答当前的⽇期和时间。⽤来进⾏时钟同步和测量时间。
掩码地址请求和回答报⽂(不再使⽤)
路由器询问和通告报⽂(不再使⽤)
IP MAC映射获取 --- ARP协议
传输层的报⽂段到了⽹络层之后要加上源主机和⽬的主机的IP地址(源主机IP地址IP1和⽬的主机IP地址IP3).到了数据链路层之后,还要加上MAC地址(源MAC地址MAC1和⽬的MAC地址MAC3),MAC3地址怎么填⼊呢
每个主机都有⼀个ARP⾼速缓存(IP地址与MAC地址的映射,为同⼀个⽹络内的IP与MAC映射),那么每个主机中的ARP是怎么来的呢,⾸先源主机⼴播ARP请求分组,如下:
包括⾃⼰的IP地址以及要查询的IP地址,⾃⼰的MAC地MAC1,和想要查询的MAC置为FF-FF-FF-FF-FF-FF,只有要查询的主机才会发送响应分组,发送如下:
这样源主机就知道了⽬的主机的MAC地址了。
但是以上情况是在源主机和⽬的主机在同⼀个⽹络内的情况,因为ARP中存储的只是⾃⼰所属的⽹络内的IP地址和MAC地址的映射,如果两个主机不在同⼀个⽹络内呢,⾸先源主机把要查询MAC地址的IP地址与⾃⼰的⼦⽹掩码相与,看看两个IP地址是否在同⼀个⽹络内,当发现不在⼀个⽹络:
1. 源主机->源主机路由器:⽤以上⽅法先查询到默认⽹关(也就是相连的路由器端⼝,路由器的每个端⼝的MAC地址都不同)的MAC地
址。路由器之间通信,源IP地址和⽬的IP地址是不变的(就是不会换成路由器的IP)。
2. 源主机路由器->⽬的主机路由器:源主机发送数据,⽬的MAC就会填⾃⼰的⽹关(相连的路由器端⼝)的MAC地址,然后数据在源主
机路由器和⽬的主机路由器传送时,IP地址还是源主机和⽬的主机的IP地址,但是源MAC地址会换成源主机所属的路由器与⽬的主机所属的路由器相连的⽹关(源主机所属的路由器)的MAC地址,⽬的MAC地址为⽬的主机所属路由器与源主机路由器相连的⽹关的MAC地址:
怎么查自己的ip3. ⽬的主机路由器->⽬的主机:⽬的主机路由器会到⽬的主机MAC地址(⽤上述⽅法)
总结:
由于在实际⽹络的链路上传送数据帧时,最终必须使⽤MAC地址
ARP协议:完成主机或路由器IP地址到MAC地址的映射(解决下⼀跳⾛哪的问题)
ARP协议使⽤过程:检查ARP⾼速缓存,有对应表项则写⼊MAC帧,没有则⽤⽬的MAC地址为FF-FF-F
F-FF-FF-FF的帧封装并⼴播ARP 请求分组,同⼀局域⽹中所有主机都能收到该请求。⽬的主机收到请求后就会向源主机单播⼀个ARP响应分组,源主机收到后将此映射写⼊ARP⾼速缓存(10~20min更新⼀次)
ARP协议4种典型情况:
主机A发送给本⽹络上的主机B:⽤ARP到主机B的硬件地址
主机A发给另⼀⽹络的主机B:⽤ARP到本⽹络上⼀个路由器(⽹关)的硬件地址
路由器发给本⽹络的主机A:⽤ARP到主机A的硬件
路由器发给另⼀⽹络的主机B:⽤ARP到本⽹络上的⼀个路由器的硬件地址。
IP数据报组播 --- IGMP协议+组播路由选择协议
IP数据报的三种传输⽅式
单播:单播⽤于发送数据包到单个⽬的地,且每发送⼀份单播报⽂都使⽤⼀个单播IP地址作为⽬的地址。是⼀种点对点传输⽅式。
⼴播:⼴播是指发送数据包到同⼀⼴播域或⼦⽹内的所有设备的⼀种数据传输⽅式,是⼀种点对多点传输⽅式。
组播(多播):当⽹络中的某些⽤户需要特定数据时,组播数据发送者仅发送⼀次数据,借助组播路由协议为组播数据包建⽴组播分发树,被发送的数据到达距离⽤户端尽可能近的结点后菜开始复制和分发,是⼀种点对多点传输⽅式。
组播提⾼了数据传送效率。减少了主⼲⽹出现拥塞的可能性。组播组中的主机可以是在同⼀个物理⽹络,也可以来⾃不同的物理⽹络(如果有组播路由器 --- 运⾏组播协议的路由器的⽀持)。
IP组播地址
IP组播地址让源设备能够将分组发送给⼀组设备。属于多播组的设备将被分配⼀个组播组IP地址(⼀共同需求主机的相同标识)。
组播地址范围为224.0.0.0 ~ 239.255.255.255(D类地址),⼀个D类地址表⽰⼀个组播组。只能⽤作分组的⽬标地址。源地址总是为单播地址。
需要注意:
组播数据报也是“尽最⼤努⼒交付”,不提供可靠交付,应⽤于UDP。
对组播数据报不产⽣ICMP差错报⽂。
并⾮所有D类地址都可以作为组播地址。
硬件组播
在局域⽹范围内进⾏硬件组播。同单播地址⼀样,组播IP地址也需要相应的组播MAC地址在本地⽹络中实际传送帧。组播MAC地址以⼗六进制值01-00-5E打头,余下的6个⼗六进制位是根据IP组播组地址的最后23位转换得到的。
收到多播数据报的主机,还要再IP层利⽤软件进⾏过滤,把不是本主机要接收的数据报丢弃。
IGMP协议与组播路由选择协议
⽹际组管理协议IGMP
IGMP协议让路由器知道本局域⽹上是否有主机(的进程)参加或退出了某个组播组。
IGMP⼯作的两个阶段
1. 某主机要加⼊组播组时,该主机向组播组的组播地址发送⼀个IGMP报⽂,声明⾃⼰要成为该组的成员。本地组播路由器收到IGMP报
⽂后,要利⽤组播路由选择协议把这组成员关系发给因特⽹上的其他组播路由器。
2. 本地组播路由器周期性探询本地局域⽹上的主机,以便知道这些主机是否还是组播组的成员。只要有⼀个主机对某个组响应,那么组
播路由器就认为这个组是活跃的;如果经过⼏次探询后没有⼀个主机响应,组播路由器就认为本⽹络上没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。(组播路由器知道的成员关系只是所连接的局域⽹中有⽆组播组的成员)
组播路由选择协议
组播路由选择协议⽬的是出以源主机为根节点的组播转发树。
构造树可以避免在路由器之间兜圈⼦。
对不同的多播组对应于不同的多播转发树;同⼀个多播组,对不同的源点也会有不同的多播转发树。
组播路由选择协议常使⽤的三种算法:
基于链路状态的路由选择
基于距离-向量的路由选择
协议⽆关的组播(稀疏/密集)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论