只有深入掌握IP协议才能理解互联网工作的核心
本章讨论的是网络互联问题。
内容依次为:
网络层应该提供什么样的服务?
网际协议IP
网际控制报文协议ICMP
路由选择协议
IPv6是什么?
IP多播是什么?
一. 网络层提供的服务
在计算机通信领域,一个争论的焦点就是可靠交付应该由谁负责?是网络还是端系统?
我们熟悉的电信网络(电话服务)就是面向连接的通信服务。双方先建立连接,预留所需网络资源(较为昂贵,程控交换机变得复杂),使得分组数据无差错的传输,通信结束后再释放建立的信道。但是我们想一想问什么要让网络负责可靠传输?这是因为电话机过于简单没有处理能力。 但是计算机就不一样了,有很强大的处理能力。为了保证低廉而快速的信息传输服务,互联网先驱提出了崭新的网络设计思路:
网络层向上只提供简单灵活、无连接、尽最大努力交付的数据报服务(也称分组)。网络在发送前不需要建立连接,每个分组独立发送且不编号,可靠传输交给主机的传输层负责(及差错处理,流量控制)等。这么做的好处网络造价大大降低,处理方式灵活,通用性好。如下图:
二. 网际协议IP
IP这个重要协议的创始人2005年曾获图灵奖
与IP配套的三个协议:
·地址解析协议 ARP Address Resolution Protocol
·网际控制报文协议 ICMP Internet Control Message Protocol
·网际组管理协议 IGMP Internet Group Managment Protocol
在讨论IP协议之前,我们看看如何创建这么庞大的互联网。
·如何寻址
·如何定义分组长度
·如何定义网络接入机制
·如何进行差错恢复/超时重传
·在网络中如何选择路由
为了适应网络需求,制造商们提供了几种中间设备:
(1)物理层使用的中间设备:转发器 repeater
(2)数据链路层使用的中间设备:网桥/桥接器bridge
(3)网络层使用的中间设备:路由器 router
(4)网络层以上使用的:网关
转发器和网桥只是把一个网络扩大了(相当于还是在局域网/以太网)
因此在讨论网络互联时,是指路由器进行网络互联和路由选择。路由器实际上
是一台专用计算机。当许多异构网络通过路由器连接时,采用相同的IP协议,
就使得网络层的讨论方便:
源主机h1发送一个IP数据报给目的主机h2,根据分组交换的存储转发原理,
h1首先查找自己的路由表看目的主机是否在本网络,若在则直接交付,不在则
把数据报发送给某个路由器R1,依次转发直至直接交付。
1.IP地址
IP地址是全球互联网中每个主机/路由器的唯一32位标识符
分类的IP地址——>子网的划分——>构成超网
A,B,C,D,E类地址
IP地址 ::= < 网络号 + 主机号 >
具有不同网络号的局域网必须使用路由器互联。
A,B,C类是单播地址(一对一通信),网络号字长为
1字节,2字节,3字节,主机号字长分别为3字节,2字节,1字节。
D类地址用于多播(一对多通信),E类保留使用。
IP地址与MAC地址区别
·MAC地址是物理层和数据链路层使用的地址
而IP地址是网络层及以上使用的地址,是一种逻辑地址,由软件实现
P122 很有道理,细细品味
2.ARP地址解析协议
已知一个主机/路由器的IP地址,如何找寻其硬件地址。
同样也可以反解析,如RARP协议,但是现在的DHCP协议已经包含了此功能。
待解答的问题:
·32位IP地址和48位物理地址如何映射?
·主机的硬件地址常有改变,如何更新?
解决方案:在ARP高速缓存中存放一个映射表并动态更新。
3.IP数据报格式
IP数据报有两部分组成:首部+数据
首部前面是固定长度的20字节,后面是可选字段
4.划分子网和组成超网
A,B,C类划分IP地址的利用率很低,
为了解决这个问题,在网络号之后添加了一个“子网号”,使两级IP地址变成三级IP地址。
划分子网一定程度上缓解了困难,但是马上问题又出现:
由于不能灵活分配地址,B类地址很快要分完了,IPV4的地址空间很快将被耗尽。为了灵活分配地址,适应不同大小的网络主机数,提出了CIDR无分类编制:
CIDR无分类编址
子网分类是子网号是固定长度的,现在将其合并,前面的编号为“网络前缀”,后面的为子网号,也就不存在A,B,C类。
IP地址 = < 网络前缀 + 主机号 >
斜线记法:128.14.35.7/20,表示前20位是网络前缀,代表网络号,后12位代表网路内的主机地址范围。
最长前缀匹配
由于采用了网络前缀,在查找路由表时可能不止一个结果,遵从的规则是选择最长的网络前缀的路由最为下一跳。
二叉线索查找路由表
将路由表存放在一个二叉搜索树中,
ICMP协议
功能:控制差错,提高交付成功率
分为:差错报文 、询问报文
封装在IP数据报中:
ICMP报文的几种类型:
如何实现IP多播?
1.网际组管理协议IGMP
IGMP协议是让本局域网的路由器知道是否有主机在本局域网中,
确切地说是主机的某个进程是否加入/退出了多播组
2.多播路由选择协议
尚未标准化。
常用方法:
(1)泛洪与剪除
(2)隧道技术
(3)基于核心的发现技术
距离向量多播路由选择协议DVMRP是第一个多播路由选择协议