计算机网络(六)---网关

网际控制报文协议ICMP

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP是因特网的标准协议。但ICMP不是高层协议(看起来好像是高层协议,因为ICMP报文是装在IP数据报中,作为其中的数据部分),而是IP层的协议。

ICMP报文的种类分两种:ICMP差错报告报文ICMP询问报文

ICMP差错报告报文共有五种:

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

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

3)时间超过     当路由器收到生存时间位零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预定规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文(路由器的超时指数据报中的TTL值为0,终点的时间超时指时间戳超时?)

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

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


所有的ICMP差错报告报文中的数据字段都具有同样的格式。把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。

http://image8.360doc.com/DownloadImg/2010/04/1316/2854728_19.jpg

下面是不应发送ICMP差错报告报文的情况:

1.对ICMP差错报告报文不再发送ICMP差错报告报文。

2.对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。

3.对具有多播地址的数据报都不发送ICMP差错报告报文。

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


常用的ICMP询问报文有两种:

1)回送请求和回答     ICMP回送请求报文是由主机或路由器向一个特定的目的主机发送的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。

2)时间戳请求和回答    ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用来进行时钟同步和测量时间。


ICMP的重要应用:分组网间探测PING(Packet InterNet Groper)

用来测试两个主机之间的连通性。

PING使用ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP。


其他应用: traceroute( UNIX )  tracert( Windows )

原理:Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报(使用了非法的端口号)。第一个数据报P1的生存时间TTL设置为1.当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减一。由于TTL等于零了,R1就把P1丢弃了,并向源主机发送一个ICMP时间超过差错报告报文。源主机接着发送第二个数据报P2,并把TTL设置为2。这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的TTL是1.主机不转发数据报,也不把TTL值减一。但因IP数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错报告报文。由此得出到达目的主机所经过的路由器的IP地址,以及到达其中的每一个路由器的往返时间。



因特网的路由选择协议

路由选择协议的核心就是路由算法,即需要何种算法来获得路由表中的各项目。

理想的路由算法应具有的特点:

1)算法必须是正确的和完整的。         “正确”的含义是沿着各路由表所指引的路由,分组一定能够最终到达目的网络和目的主机。

2)算法在计算上应简单。

3)算法应能适应通信量和网络拓扑的变化。       即自适应性。当网络中的通信量发生变化时,算法能自适应地改变路由以均衡各链路的负载。当某个或某些结点、链路发生故障不能工作,或者修理好了再投入运行时,算法也能及时地改变路由。有时称这种自适应性为“稳健性”

4)算法应具有稳定性。       在网路通信量和网络拓扑相对稳定的情况下,路由算法应收敛于一个可以接受的解,而不应使得出的路由不停地变化。

5)算法应是公平的。        路由选择算法应对所有用户(除对少数优先级高的用户)都是平等的。

6)算法应是最佳的。       路由选择算法应当能够找出最好的路由,使得分组平均时延最小而网络吞吐量最大。对于某些网络,网络的可靠性有时要比最小的分组平均时延或最大吞吐量更加重要。


从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分有两大类:静态路由选择策略(人工配置)和动态路由选择策略(自适应)

因特网采用的路由选择协议主要是自适应的(即动态的)、分布式路由选择协议。

由于以下两个原因,因特网采用分层次的路由选择协议:

1)因特网的规模非常大

2)许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议,但同时还希望连接到因特网上。

因特网将整个互联网划分为许多较小的自治系统(autonomous system),一般都记为AS。

一个AS使用了多种内部路由选择协议和度量,但一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。

一个大的ISP就是一个自治系统。因特网把路由选择协议划分为两大类:

1)内部网关协议IGP(Interior Gateway Protocol)   即在一个自治系统内部使用的路由选择协议。目前使用最多的如RIPOSPF协议

2)外部网关协议EGP(External Gateway Protocol)   若源主机和目的主机除在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。使用最多的外部网关协议是边界网关协议BGP的版本4(BGP-4)。


自治系统之间的路由选择也叫做域间路由选择(interdomain routing),而在自治系统内部的路由选择叫做域内路由选择(intradomain routing)

注意:早期RFC文档中未使用“路由器”而是使用“网关”这个名词。但在新的RFC文档中又使用了“路由器”,因此有的书把原来的IGP和EGP分别改为了IRP(内部路由器协议)和ERP(外部路由器协议)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值