谁来保证可靠性
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统(即是网络层还是运输层)?
方案一:让网络负责可靠交付(借鉴电信网的成功经验)
面向连接的通信方式,建立虚电路(VirtualCircuit),以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。但虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
方案二:网络层不提供服务质量的承诺。
即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。
方案一与方案二的比较:
因特网采用方案二的原因:
由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配套使用的还有四个协议:
地址解析协议ARP
(Address ResolutionProtocol)
逆地址解析协议RARP
(Reverse Address ResolutionProtocol)
网际控制报文协议ICMP
(Internet Control MessageProtocol)
网际组管理协议IGMP
(Internet Group ManagementProtocol)
地址解析协议ARP
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个ARP高速缓存(ARPcache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。 如果没有主机A发送其ARP分组请求,如下图所示,当主机 B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。然后主机A得到主机B的地址映射后就将谢入到自己的ARP高速缓存中。然后就开始给B主机发送IP报文。
注:
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知