【文档说明】计算机网络基础-第-4-章--网络层课件.ppt,共(153)页,2.231 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76557.html
以下为本文档部分文字说明:
第4章网络层4.1网络层提供的两种服务4.2网际协议IP(重点)4.3划分子网和构造超网(重点、难点)4.4网际控制报文协议ICMP4.5因特网的路由选择协议(重点、难点、在组网部分讲)4.6IP多播(不讲)4.7虚拟专用
网VPN和网络地址转换NAT(不讲)网络层数据链路层负责在相邻两个节点间实现数据帧透明传输。而网络层的任务要以分组为单位将数据信息从源节点传送到目的节点,。4.1网络层提供的两种服务―面向连接”、“无连接”。争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负
责?是网络还是端系统?分组交换虚电路服务数据报服务应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层虚电路服务H1H2虚电路H1发送给H2的所有分组都沿着同一条虚电路传送因特网采用的设计思路—数据报服
务网络层只向上层提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关。网络层不提供服务质量的承诺。应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层数据报服
务H1H2IP数据报丢失H1发送给H2的分组可能沿着不同路径传送虚电路服务与数据报服务的对比对比的方面虚电路服务数据报服务思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证连接的建立必须有不需要终点地址仅在连接建立阶段使用,每个分组使用短的虚
电路号每个分组都有终点的完整地址分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会
发生变化分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责4.2网际协议IP网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配套使用的还有四个协议:地址解析协议ARP(AddressRes
olutionProtocol)逆地址解析协议RARP(ReverseAddressResolutionProtocol)网际控制报文协议ICMP(InternetControlMessageProtocol)网际组管理协议IGMP(InternetG
roupManagementProtocol)网际层的IP协议及配套协议各种应用层协议网络接口层(HTTP,FTP,SMTP等)物理硬件运输层TCP,UDP应用层ICMPIPRARPARP与各种网络接口网络层(网际层)IGMP互连在一起的网络要进行通信,会遇到许多问题需要解决,如:不同
的寻址方案不同的最大分组长度不同的网络接入机制不同的超时控制不同的差错恢复方法不同的状态报告方法4.2.1虚拟互连网络互连在一起的网络要进行通信,会遇到许多问题需要解决,如:不同的路由选择技术不同的用户接入控制不同的服务(面向连接服务和无
连接服务)不同的管理与控制方式4.2.1虚拟互连网络虚拟互连网络所谓虚拟互连网络也就是逻辑互连网络,指利用IP协议将虽然在物理上是由很多不同标准的异构的网络互连起来,使这些性能各异的网络从用户看起来好像是一个统一的网络。虚拟互连网络
使用IP协议的虚拟互连网络可简称为IP网。使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。互连网络与虚拟互连网络网络网络网络网络网络(a)互连网络
(b)虚拟互连网络路由器虚拟互连网络(互联网)5432154321主机H1主机H2R1R4R5R2R3R1R2R3H1R5H2R4间接交付间接交付间接交付间接交付3221132211322113221132211分组在互联网中的传送从
网络层看IP数据报的传送如果我们只从网络层考虑问题,那么IP数据报就可以想象是在网络层中传送。网络层网络层网络层网络层网络层网络层网络层IP数据报H1R1R2R3R4R5H24.2.2分类的IP地址我们把整个因特网看成为
一个单一的、抽象的网络。IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。IP地址现在由因特网名字与号码指派公司ICANN(InternetCorporationforAss
ignedNamesandNumbers)进行分配。IP地址的编址方法分类的IP地址。子网的划分。构成超网。分类IP地址每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id,
它标志该主机(或路由器)。两级的IP地址可以记为:IP地址::={<网络号>,<主机号>}(4-1)::=代表“定义为”net-id24位host-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-
id16位B类地址C类地址011host-id8位D类地址1110多播地址E类地址保留为今后使用111101net-id24位host-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址0
11host-id8位D类地址1110多播地址E类地址保留为今后使用111101A类地址的网络号字段net-id为1字节net-id24位host-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址011ho
st-id8位D类地址1110多播地址E类地址保留为今后使用111101B类地址的网络号字段net-id为2字节net-id24位host-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址011hos
t-id8位D类地址1110多播地址E类地址保留为今后使用111101C类地址的网络号字段net-id为3字节net-id24bithost-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地
址C类地址011host-id8位D类地址1110多播地址E类地址保留为今后使用111101A类地址的主机号字段host-id为3字节net-id24位host-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址h
ost-id16位B类地址C类地址011host-id8位D类地址1110多播地址E类地址保留为今后使用111101B类地址的主机号字段host-id为2字节net-id24位host-id24位net-i
d16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址011host-id8位D类地址1110多播地址E类地址保留为今后使用111101C类地址的主机号字段host-id为1
字节net-id24位host-id24位net-id16bitnet-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址011host-id8位D类地址1110多播地址E类地
址保留为今后使用111101D类地址是多播地址net-id24位host-id24位net-id16bitnet-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址011host-id8位D类地址1110多播地址E类
地址保留为今后使用111101E类地址保留为今后使用点分十进制记法10000000000010110000001100011111机器中存放的IP地址是32位二进制代码10000000000010110000001100011111每隔8位插入一个空格能够提高
可读性采用点分十进制记法则进一步提高可读性128.11.3.3112811331将每8位的二进制数转换为十进制数2.常用的三种类别的IP地址IP地址的使用范围网络最大第一个最后一个每个网络类别网络数可
用的可用的中最大的网络号网络号主机数A126(27–2)112616,777,214B16,383(2141)128.1191.25565,534C2,097,151(2211)192.0.1223.255.255254IP的各种类别的地址所拥有的地址数目的比例如下图所示。A类地址B类地址
C类地址D类地址E类地址A类B类C类D类E类特殊IP地址的使用场合Net-idHost-id源地址目的地址含义00可以不可本网络中的本主机0Host-id可以不可本网络中主机号为Host-id的主机全1全1不可可以对本地网络广播Net-id全1不可可以对指定网络Ne
t-id广播127非全0或全1的任何数可以可以环回测试(回送地址)专用IP地址RFC1918定义的专用IP地址:10.0.0.0—10.255.255.2551个A类地址;172.16.0.0—172.31.255.25516个连续的B类地址;192.168.0
.0—192.168.255.255256个连续的C类地址。专用IP地址这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报
一律不进行转发。IP地址的一些重要特点(1)IP地址是一种分等级的地址结构。分两个等级的好处是:第一,IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考
虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。路由器转发分组的步骤先按所要找的IP地址中的网络号net-id把目的网络找到。当分组到达目的网络后,再利用主机号host-id将数据报直接交付给目的主机。IP地址的一些重要特点(2)实际上IP地址是标
志一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号net-id必须是不同的。这种主机称为多归属主机(multihomedhost)。由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络
转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。IP地址的一些重要特点(3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。(4)所有分配到网络号net-id的网络,范
围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222
.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.
1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R
1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3
.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。互联网中的IP地址B222.1.1.222.1.1.1222.1.1.
2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2
222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的IP地址。路由器的每一个接口都有一个不同网络
号的IP地址。互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.12
22.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1
.5.222.1.6.N1LAN2LAN1互联网两个路由器直接相连的接口处,可指明也可不指明IP地址。如指明IP地址,则这一段连线就构成了一种只包含一段线路的特殊“网络”。现在常不指明IP地址。……………………………………………
…………………………4.2.3IP地址与硬件地址TCP报文IP数据报MAC帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上使用IP地址IP地址HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网通信
的路径H1→经过R1转发→再经过R2转发→H2查找路由表查找路由表HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP
5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从协议栈的层次上看数据的流动HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由
器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1
到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从虚拟的IP层上看IP数据报的流动HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网
局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报在链路上看MAC帧的流
动IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MA
C帧IP数据报在IP层抽象的互联网上只能看到IP数据报图中的IP1→IP2表示从源地址IP1到目的地址IP2两个路由器的IP地址并不出现在IP数据报的首部中IP1HA1HA5HA4HA3HA6HA2I
P6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报路由器只根据目的站的IP地址的网络号进行路由选择IP1HA1HA5HA4HA3HA6H
A2IP6主机H1主机H2路由器R1IP层上的互联网IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2MAC帧从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报在具体的物理网络的链路层
只能看见MAC帧而看不见IP数据报IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2
MAC帧从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或主机和路由器之间的通信4.2.4地址解析协议
ARP和逆地址解析协议RARPIP地址物理地址ARP物理地址IP地址RARP地址解析协议ARP每一个主机都设有一个ARP高速缓存(ARPcache),里面有所在的局域网上的各主机和路由器的IP地址到硬
件地址的映射表。当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。ARP响应
AYXBZ主机B向A发送ARP响应分组主机A广播发送ARP请求分组ARP请求ARP请求ARP请求ARP请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-00-2B-00-EE-0A我是2
09.0.0.5,硬件地址是00-00-C0-15-AD-18我想知道主机209.0.0.6的硬件地址我是209.0.0.6硬件地址是08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15
-AD-18ARP高速缓存的作用ARP高速缓存:保存IP地址和硬件地址的映射项目增大数据的传输效率。为每一个映射地址项目设置生存时间。应当注意的问题ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主
机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。使用ARP的四种典型情况发送方是主机,要把IP数据报发送
到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。使用ARP的四种典型情况发送方是路由器,要把IP数
据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。什么我们不直接使用硬件地址进行通信?由于全世界存在着各
式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作。连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用
ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。逆地址解析协议RARP逆地址解析协议RARP使只知道自己硬件地址的主机能够知道其IP地址。这种主机往往是
无盘工作站。因此RARP协议目前已很少使用。4.2.5IP数据报的格式一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。固定部分可变部分04816192431版本标志生存时间协议标识
区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分数据部分首部IP数据报首部发送在前可变部分首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度
数据部分数据部分首部IP数据报固定部分发送在前首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分数据部分首部IP数据报固定部分可变部分区分服务发送在前首部
04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分版本——占4位,指IP协议的版本目前的IP协议版本号为4(即IPv4)。
若使用IPv6协议,则为6。区分服务1.IP数据报首部的固定部分中的各字段首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分首部长度——占4位,可表示的最大数值是15个单位(一个单
位为32位即4字节),因此IP的首部长度的最大值是60字节。区分服务首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分区分服务——占8位,用来获得更好的服务在旧标准中叫做服务类型,但实际
上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段区分服务首部04816192431版本标志生存时间协议标识总长度
片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分总长度——占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传
送单元MTU。区分服务首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分标识(identification)占
16位,它是一个计数器,用来产生数据报的标识。区分服务首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分标志(flag)占3位,目
前只有前两位有意义。标志字段的最低位是MF(MoreFragment)。MF1表示后面“还有分片”。MF0表示最后一个分片。标志字段中间的一位是DF(Don'tFragment)。只有当DF0时才允许分片。首部04816192431版本标志生存时间协议
标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分片偏移(12位)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。区分服务偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=3501400
28003799279913993799需分片的数据报数据报片1首部数据部分共3800字节首部1首部2首部3字节0数据报片2数据报片314002800字节0【例4-1】IP数据报分片设MTU为1420字节首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选
字段(长度可变)位首部长度数据部分固定部分可变部分生存时间(8bit)记为TTL(TimeToLive),这是为了限制数据报在网络中的生存时间,其单位最初是秒,但为了方便,现在都用“跳数”作为TTL的单位。数据报每经过一个路由器,其TTL值就减1。当TTL
为0且尚为传送到,则丢弃该数据包。区分服务首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分协议(8位)字段指出此数据报携带的数据使用何种协议,以便目的主机
的IP层将数据部分上交给哪个处理进程。区分服务常用的一些协议和相应的协议字段值协议名ICMPIGMPTCPEGPIGPUDPIPv6OSPF协议字段值12689174189首部04816192431版本标志生存时间协议标识总长度片偏移
填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分首部检验和(16位)字段只检验数据报的首部,不检验数据部分。这里不采用CRC检验码而采用简单的校验和法。区分服务首部04816192
431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分源地址和目的地址都各占4字节区分服务首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填
充首部检验和源地址目的地址可选字段(长度可变)比特首部长度数据部分固定部分可变部分IP报头长必须是4B的整数倍,填充字段就是为最后满足这一条件而设置的。其值为全0。………………………………………………………………………IP首部的选项字段主要用来支持排错、测量以及安全等措施。选项字
段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。有些选项需要多个字节,这些选项是连续出现的,中间无须添加任何分隔符。增加首部的选项字段是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。IP数据报首部
的可选项字段4.2.6IP层转发分组的流程1.直接交付和间接交付直接交付是指源站或路由器将IP数据报直接传送到目的站,中间不需要再经过其他路由器转发,否则就是间接交付。当主机A要向另一个主机B发送数据报时,先要检查目的主机B是否与源主机A连接在同一个网络上。(方法就是主机A从目的
IP地址中把网络号抽取出来,并和自己IP地址中的网络号相比较,如果相同,表示它们在同一个物理网络上,否者就不在同一个物理网络上。)直接交付和间接交付如果是,就将数据报直接交付给目的主机B而不需要通过路
由器。但如果目的主机与源主机A不是连接在同一个网络上,则应将数据报发送给本网络上的某个路由器,由该路由器按照转发表指出的路由将数据报转发给下一个路由器。这就属于间接交付。直接交付和间接交付直接交付和间接交付间接交付间接交付间接交付ABC
直接交付直接交付………………………………………………………………………2.路由举例:有四个A类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。但若按主机所在的网络地址来制作路由表,
那么每一个路由器中的路由表就只包含4个项目。这样就可使路由表大大简化。网110.0.0.0网440.0.0.0网330.0.0.0网220.0.0.010.0.0.440.0.0.430.0.0.220.0.0.920.0.0.7目的主机所在的网络下一跳
地址20.0.0.030.0.0.010.0.0.040.0.0.020.0.0.730.0.0.1直接交付,接口1直接交付,接口0路由器R2的路由表30.0.0.1R2R3R101在路由表中,对每一条路由,最主要的是(目的网络地址,下一
跳地址)下一跳地址指明下一步把数据报发往何处,它是通过单个物理网络直接可以到达的节点。查找路由表根据目的网络地址就能确定下一跳路由器,这样做的结果是:IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。只有到
达最后一个路由器时,才试图向目的主机进行直接交付。特定主机路由这种路由是为特定的目的主机指明一个路由。采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。默认路由(defaultroute)路由器还可采用默认路由以减少路由表所占
用的空间和搜索路由表所用的时间。这种转发方式在一个网络只有很少的对外连接时是很有用的。如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。N1R1
因特网目的网络下一跳N1直接N2R2默认R1路由表N2R2只要目的网络不是N1和N2,就一律选择默认路由,把数据报先间接交付路由器R1,让R1再转发给下一个路由器。必须强调指出当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口
软件。网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。分组转发算法从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N,查找路由表。if网络N与此路由器直接
相连,then把数据报直接交付目的主机D;elseif路由表中包含一个到D的特定主机路由then把数据报发送到路由表中所指明的下一跳路由器………………………………………………………………………分组转发算法elseif路由表中包含到达网络N的路由,then把数据报发送到路由表指明的下一跳路由
器elseif路由表中有一个默认路由,then把数据报发送到路由表中所指明的默认路由器else宣布转发分组出错………………………………………………………………………4.3划分子网和构造超网4.3.1划分子网在ARPANET的早期,IP地址的设计确实不够合
理。IP地址空间的利用率有时很低。给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。两级的IP地址不够灵活。从1985年起在IP地址中又增加了一个“子网号字段”,使两级的IP地址变成为三
级的IP地址。这种做法叫作划分子网(subnetting)。划分子网已成为因特网的正式标准协议。1.三级的IP地址划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。从主机号借用
若干个位作为子网号subnet-id,而主机号host-id也就相应减少了若干个位。IP地址::={<网络号>,<子网号>,<主机号>}(4-2)划分子网的基本思路网络号net-id主机号host-id两级IP地址三级IP地址net-idhost-idsubnet-id
凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net-id,先找到连接在本单位网络上的路由器。然后此路由器在收到IP数据报后,再按目的网络号net-id和子网号subnet-id找到目的子网。最后就将IP数据报直接交付目的主机。划分子网的基本思路(续
)从一个IP数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码(subnetmask)可以找出IP地址中的子网部分。子网掩码采用32位的二进制表示,正确的子网掩码是高位全部为
1,低位全部为02.子网掩码子网掩码的取值问题未划分子网时,网络号全1,主机号全0划分子网后,网络号、子网号全1,主机号全0(IP地址)AND(子网掩码)=网络地址网络号net-id主机号host-id两级IP地址网络号三级IP地址主机号net-idhost-idsubnet-id
子网号子网掩码子网的网络地址11111111111111111111111100000000net-idsubnet-id0逐位进行AND运算111111111111111111111111000000000000
000000000000111111111111111111111111000000000000000000000000net-idnet-idhost-id为全0net-id网络地址A类地址默认子网掩码25
5.0.0.0网络地址B类地址默认子网掩码255.255.0.0网络地址C类地址默认子网掩码255.255.255.0host-id为全0host-id为全0默认子网掩码子网掩码是一个重要属性子网掩码是一个网络或一个子网的重要属性。
路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。141
.14.01000000111111111111111111000000【例4-2】已知IP地址是141.14.72.24,子网掩码是255.255.192.0。试求网络地址。(a)点分十进制表示的I
P地址(c)子网掩码是255.255.192.000000000141.14.72.24141.14.64.0.001001000141.14..24(b)IP地址的第3字节是二进制(d)IP地址与子网掩码逐位相与(e)网络地址(点分十进制表示)141.14
.01000000111111111111111111100000【例4-3】在上例中,若子网掩码改为255.255.224.0。试求网络地址,讨论所得结果。(a)点分十进制表示的IP地址(c)子网掩码是255.255.224.000000000141.14.72.241
41.14.64.0.001001000141.14..24(b)IP地址的第3字节是二进制(d)IP地址与子网掩码逐位相与(e)网络地址(点分十进制表示)不同的子网掩码得出相同的网络地址。但不同的掩码的效果是不同的。子网划分的方法根据需求确定子网号和主机号1、假设某个部门要划分成N个子
网可以通过2x-2>=N来确定X,也就是确定子网号2.假设某个单位当中子网的主机数最多为A,可以通过2Y-2>=A来确定Y,也就是确定主机号。根据子网号和网络号确定子网掩码确定每个子网主机地址范围若使用较少比特数的子网号,则每一个子网上可连
接的主机数就较大。反之,若使用较多比特数的子网号,则子网的数目较多但是每个子网上可连接的主机数就较少。划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。子网划分的特点习题1.以下有四个子网掩码,哪些是不推荐使用的?(1)176.0.0.0,(2)96.0.0.0,(3)127.192
.0.0,(4)255.128.0.0答:只有(4)是连续的1和连续的0的掩码,是推荐使用的。习题2.试找出可产生以下数目的A类子网的子网掩码(采用连续掩码)(1)2,(2)6,(3)20,(4)62,(5)
122,(6)250习题3.某单位分配到一个B类IP地址,其net-id为129.250.0.0。该单位有4000台机器,平均分布在16个不同的地点。如选用子网掩码为255.255.255.0,试给每一地点分配一个子网号码,并计算出每个
地点主机号码的最小值和最大值。答:4000/16=250,平均每个地点250台机器。如选255.255.255.0为掩码,则每个网络所连主机数=28-2=254>250,共有子网数=28-2=254>16,能满足实际需求。
可给每个地点分配如下子网号码地点子网号子网网络号主机IP的最小值和最大值1:00000001129.250.1.0129.250.1.1---129.250.1.2542:00000010129.250.2.0129.250.2.1---129.250.2.2543:00000011129
.250.3.0129.250.3.1---129.250.3.2544:00000100129.250.4.0129.250.4.1---129.250.4.2545:00000101129.250.5.0129.250.5.1---129.250.5.2546
:00000110129.250.6.0129.250.6.1---129.250.6.2547:00000111129.250.7.0129.250.7.1---129.250.7.2548:00001000129.250.8.0129.250.8.1
---129.250.8.2549:00001001129.250.9.0129.250.9.1---129.250.9.25410:00001010129.250.10.0129.250.10.1---129.250.10.254
11:00001011129.250.11.0129.250.11.1---129.250.11.25412:00001100129.250.12.0129.250.12.1---129.250.12.25413:00001101
129.250.13.0129.250.13.1---129.250.13.25414:00001110129.250.14.0129.250.14.1---129.250.14.25415:00001111129.250
.15.0129.250.15.1---129.250.15.25416:00010000129.250.16.0129.250.16.1---129.250.16.254在不划分子网的两级IP地址下,从IP地址得出网络地
址是个很简单的事。但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。因此分组转发的算法也必须做相应的改动。4.3.2使用子网掩码的分组转发过
程在划分子网的情况下路由器转发分组的算法(1)从收到的分组的首部提取目的IP地址D。(2)先用与路由器直接相连的各网络的子网掩码和D逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接
交付,执行(3)。(3)若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。(4)对路由表中的每一行的子网掩码和D逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行
指明的下一跳路由器;否则,执行(5)。(5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。(6)报告转发分组出错。128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33
.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口0接口1R2128.30.33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R1的路由
表(未给出默认路由器)R11R2子网2:网络地址128.30.33.128子网掩码255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.01
28.30.36.12【例4-4】主机H1向H2发送分组。主机H1要发送分组给H2128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.
255.128255.255.255.0接口0接口1R2R1的路由表(未给出默认路由器)128.30.33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130
R11R2子网2:网络地址128.30.33.128子网掩码255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.12要发送的
分组的目的IP地址:128.30.33.138请注意:H1并不知道H2连接在哪一个网络上。H1仅仅知道H2的IP地址是128.30.33.138因此H1首先检查主机128.30.33.138是否连接在本网络上如果是,则直接交付;否则,就送交路由器R1,并逐项查找路由表。因此H1必
须把分组传送到路由器R1然后逐项查找路由表128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口0接口1R2R1的路由表(未给出默认路
由器)128.30.33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R11R2子网2:网络地址128.30.33.128子网掩码255.255.255.128H2128.30.33.13801128.30.33.
129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.124.4网际控制报文协议ICMPIP协议是一种不可靠、无连接的包传送协议,也是一种尽最大努力服务的协议。包在传
送过程中,当出现目的主机不响应、超时等情况时,IP协议将无能为力。因为它没有差错报告和差错纠正机制。然而,这些问题又必须处理,为此在网络层引入了一个子协议——网际控制报文协议(internetcontrolmessageprotocol,ICMP)ICMP允许主机或路由器报告差错情况和提供
有关异常情况的报告。ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP数据报的数据,加上IP数据报的首部,组成IP数据报发送出去。ICMP报文的格式首部ICMP报文0数据部分检验和类型代码(这4个字节取决于ICM
P报文的类型)81631IP数据报前4个字节都是一样的ICMP的数据部分(长度取决于类型)4.4.1ICMP报文的种类ICMP报文的种类有两种:ICMP差错报告报文ICMP询问报文ICMP差错报告报文共有5种终点不可达(3)源点抑制(Sourcequench)(4
)时间超过(11)参数问题(12)改变路由(重定向)(Redirect)(5)不应发送ICMP差错报告报文的几种情况对ICMP差错报告报文不再发送ICMP差错报告报文。对第一个分片的数据报片的所有后续数据报片都不发送
ICMP差错报告报文。对具有多播地址的数据报都不发送ICMP差错报告报文。对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。ICMP询问报文有两种回送请求和回答报文(8)或(0)时间
戳请求和回答报文(13)或(14)下面的几种ICMP报文不再使用:信息请求与回答报文掩码地址请求和回答报文路由器询问和通告报文4.4.2ICMP的应用举例(1)ping用来测试两个主机之间的连通性。ping这个单词源自声纳定位,它利用ICMP协议包来侦测另一个主机是否可达。
原理是用类型码为8的ICMP请求,受到请求的主机则用类型码为0的ICMP应答。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。32代表发送的字节大小time是响应时间TTL生存期TTL=32Windows9x/MeTT
L=64LINUXTTL=128Windows200x/XPTTL=255UnixC:\DocumentsandSettings\Administrator\ping172.16.250.250Pinging172.16.250.250with32bytesofdata
:Replyfrom172.16.250.250:bytes=32time=2msTTL=64Replyfrom172.16.250.250:bytes=32time=1msTTL=64Replyfrom17
2.16.250.250:bytes=32time=4msTTL=64Replyfrom172.16.250.250:bytes=32time=3msTTL=64Pingstatisticsfor172.
16.250.250:Packets:Sent=4,Received=4,Lost=0(0%loss),Approximateroundtriptimesinmilli-seconds:Minimum=1ms,Maximum
=4ms,Average=2ms(2)traceroutetraceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说过,ping工具也可以进行侦测,但是,因为IP头的限制
,ping不能完全的记录下所经过的路由器。所以traceroute正好就填补了这个缺憾。首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了
,并同时产生一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器IP。从而避开了IP头只能记录有限路由IP的问题
。在Windows下,该命令的使用方法是tracertIP(或主机名)traceroute的原理Traceroute的应用举例4.5因特网的路由选择协议4.5.1有关路由选择协议的几个基本概念1.理想的路由算法算法必须是正确的和完整的。算法在计算上应简单。算法应能适应通信量和网络拓扑的
变化,这就是说,要有自适应性。算法应具有稳定性。算法应是公平的。算法应是最佳的。2.分层次的路由选择协议因特网采用分层次的路由选择协议的原因:因特网的规模非常大。许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由
选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。自治系统AS(AutonomousSystem)•自治系统AS的定义:一个自治系统就是处于一个管理机构控制之下的路由器和网络群组。它可以是一个路由器直接连接到一个LAN上,同时也连到Internet上;
它可以是一个由企业骨干网互连的多个局域网。在一个自治系统中的所有路由器必须相互连接,运行相同的路由协议,同时分配同一个自治系统编号。因特网有两大类路由选择协议内部网关协议IGP(InteriorGatewayProto
col)即在一个自治系统内部使用的路由选择协议。RIP和OSPF协议。外部网关协议EGP(ExternalGatewayProtocol)若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EG
P。在外部网关协议中目前使用最多的是BGP-4。自治系统和内部网关协议、外部网关协议用内部网关协议(例如,RIP)自治系统B自治系统A用外部网关协议(例如,BGP-4)R1R2用内部网关协议(例如,OSPF)自治系统之间的路由选择
也叫做域间路由选择(interdomainrouting),在自治系统内部的路由选择叫做域内路由选择(intradomainrouting)4.5.2内部网关协议RIP(RoutingInformationProtocol)1.工作原理RIP是一种分布式的基于距离向量的路由选择协议。
RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。“距离”的定义从一路由器到直接连接的网络的距离定义为1。从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1。RIP协议中的“距离”也称为“跳数
”(hopcount),因为每经过一个路由器,跳数就加1。这里的“距离”实际上指的是“最短距离”,“距离”的定义RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”。RIP允许一条路径最多只能
包含15个路由器。RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。RIP协议的三个要点仅和相邻路由器交换信息。交换的信息是当前本路由器所知道的全部信息,即自己的路由表。按固定的时间间隔交换路由
信息,例如,每隔30秒。2.距离向量算法收到相邻路由器(其地址为X)的一个RIP报文:(1)先修改此RIP报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1。(2)对修改后的RIP报文中的每一个项
目,重复以下步骤:若项目中的目的网络不在路由表中,则把该项目加到路由表中。否则若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。否则若收到项目中的距离小于路由表中的距离,则进行更新,否则,什么也不做。(3)若3分钟还没有收到相邻路由器的更新路由表,则把此相邻
路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。(4)返回。路由器之间交换信息RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息。RIP协议的优缺点RIP存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的
路由器。RIP协议最大的优点就是实现简单,开销较小。RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。R2R1网1网3网2正常情况1112R1R1说:“我到网1
的距离是1,是直接交付。”“1”表示“从本路由器到网1”“1”表示“距离是1”“”表示“直接交付”R2R1网1网3网2正常情况1112R1R2说:“我到网1的距离是2,是经过R1。”“1”表示“从本路由器到网1”“2”表示“
距离是2”“R1”表示经过R1R2R1网1网3网2R2R1网1网3网2网1出了故障正常情况1111612R112R1R1说:“我到网1的距离是16(表示无法到达),是直接交付。”但R2在收到R1的更新
报文之前,还发送原来的报文,因为这时R2并不知道R1出了故障。R2R1网1网3网2R2R1网1网3网2网1出了故障正常情况1111612R112R1R1收到R2的更新报文后,误认为可经过R2到达网1,于是更新自己的路由表,说:“我到网1的距离是3,下一跳经过R2”。然后将此更新信息发送给R
2。13R2R2R1网1网3网2R2R1网1网3网2网1出了故障正常情况1111612R112R1R2以后又更新自己的路由表为“1,4,R1”,表明“我到网1距离是4,下一跳经过R1”。13R214R1R2R1网1网3网2R
2R1网1网3网2网1出了故障正常情况11…11613R215R2116R212R112R114R1116R1…这样不断更新下去,直到R1和R2到网1的距离都增大到16时,R1和R2才知道网1是不可达的。这就是好消息传播得
快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是RIP的一个主要缺点。4.5.3内部网关协议OSPF(OpenShortestPathFirst)1.OSPF协议的基本特点“开
放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPFOSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。是分布式的链路状态协议。三个要点向本自治系统中所有路由器发送信
息,这里使用的方法是洪泛法。发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。只有
当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。4.5.4外部网关协议BGPBGP是不同自治系统的路由器之间交换路由信息的协议。BGP较新版本是2006年1月发表的BGP-4(BGP第4个版本),即RFC4271~4278。可以将BGP-4简写
为BGP。4.5.6路由器在网际互连中的作用1.路由器的结构路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。下
一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。典型的路由器的结构路由选择路由选择处理机路由选择协议路由表3输入端口3交换结构输入端口输出端口分组转发转发表分组处理输出端口……11133122223——网络层2——数据链路层1—
—物理层“转发”和“路由选择”的区别“转发”(forwarding)就是路由器根据转发表将用户的IP数据报从合适的端口转发出去。“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。路由表是根据路
由选择算法得出的。而转发表是从路由表得出的。输入端口对线路上收到的分组的处理数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。物理层处理数据链路层处理网络层处理分组
排队交换结构输入端口的处理从线路接收分组查表和转发输出端口将交换结构传送来的分组发送到线路当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
物理层处理数据链路层处理网络层处理分组排队输出端口的处理向线路发送分组缓存管理交换结构分组丢弃若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要
原因。