首页 > 代码库 > 网络层(一)
网络层(一)
网络层向上只提供简单灵活的,无连接,尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每一个分组独立发送,与其前后分组无关。网络层不提供服务质量的承诺。
网际协议IP
与IP协议配套使用的协议还有ARP(地址解析协议),RARP(逆地址解析协议),ICMP(网际控制报文协议),IGMP(网际组管理协议)
ARP和RARP是最下面的,IP经常使用这两个协议。ICMP,IGMP在IP的上面,他们经常使用IP协议。
网络互连需要一些中间设备,根据中间设备所在的层次。分为:
1物理层使用转发器
2数据链路层使用网桥或桥接器
3网络层使用路由器
4网络层以上网关,网关连接两个不兼容的系统需要在高层进行协议的转换。
当中间设备是转发器或网桥的时候,仅仅是把一个网络扩大了,从网络层的角度,仍是一个网络。路由器其实是一台专用计算机,用来在互联网中进行路由选择。
TCP/IP 体系在网络互连上采用的做法是在网络层采用了标准化协议,但相连的网络可以是异构的。
主机H1把一个IP数据报发送给目的的主机H2,主机H1首先查找自己的路由表,看目的主机是否在本网络上,如果在就直接交付,如果不是,把IP数据报发送给某个路由器R1,R1在查找自己路由表后,知道应该把数据报转发给R2进行间接交付。这样一直转发下去,最后路由器R5知道自己是和H2连接在同一个网络上,就不需要再转发了,直接交付H2。R1到R4之间的三个网络可以是任意类型的网络,互联网可以由多种异构网络互连组成。
整个因特网是一个单一的,抽象的网络,IP地址是因特网每一个主机的每一个接口分配的唯一的32位标示符。
IP地址编码经历三个历史阶段
1分类的IP地址
2子网的划分
3构成超网
IP地址 ::={<网络号>,<主机号>}
IP地址分类
A类地址网络号占一个字节,只有七位,第一位固定为0,可以指派网络号是126个(2^7-2),-2的原因,第一,IP地址中全为0的IP地址是保留地址,意义为本网络。第二,网络号127保留作为环回测试。若主机发送一个目的地址为127.0.0.1,的IP数据报,则主机中的协议软件处理数据报中的数据,不会把数据报发送到任何网络。A类主机号占3个字节,因此每个A类网络中最大主机数为2^24-2个。-2的原因,全0主机号表示IP地址是本主机接收到的单个网络地址。全1表示的所有的,因此全1的主机号字段,表示该网络上的所有主机。
B类地址网络号有2个字节,前面10已经固定,剩下14位,这里不存在-2的情况,因为任何组合也不会出现全1和全0的情况。但128.0.0.0是不指派的。可指派的最小网络地址是128.1.0.0。B类的可指派数为2^14-1。B类最大主机数为2^16-2
C类地址有3个字节的网络号,前面是110,有21位可以分配。C类的192.0.0.0也是不可指派的。可指派的最小网络地址是192.0.1.0因此,C类地址可指派的网络总数是2^21-1。
IP地址特点:
1,每个IP地址都由网络号主机号组成。IP地址管理机构在分配IP地址只分配网络号,剩下的主机号自行分配。路由器仅根据目的主机所连接的网络号转发分组,使路由表的项目大幅度减少,减少路由表占的储存空间以及查路由表的时间。
2,IP地址是标志一个主机和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具备两个IP地址,网络号必须是不同的。这主机称为多归属主机。由于一个路由器至少应当连接到两个网络,因此路由器至少应当有两个不同的IP地址。
3,一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干局域网仍为一个网络。
4,在IP地址中,所有分配到网络号的网络都是平等的。
1,同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。
2,网桥互连的网段仍然是一个局域网,只能有一个网络号。
3,路由器总是有两个或两个以上的IP地址。
4,两个路由器相连,在连线的接口处,可以分配也可以不分配IP地址。
IP地址与硬件地址
物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
发送数据,数据从高层下到底层,使用IP地址的IP数据报一旦交给数据链路层,就被封装MAC帧,MAC帧源地址和目的地址都是硬件地址。写在MAC帧首部。接受MAC帧的时候,看不见MAC帧数据中的IP地址,只有当剥去MAC帧的时候才可以看到。
IP地址在IP数据报的首部,硬件地址放在MAC帧的首部,在网络层和网络层以上,使用IP地址,数据链路层及以下使用硬件地址。在数据链路层中MAC帧看不见IP数据报,它只是MAC帧的数据。
1,IP层抽象的互联网上只能看到IP数据报
2,虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。
3,在局域网的链路层,只能看见MAC帧。
ARP地址解析协议主要是解决通过IP得到物理地址,在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常更新。
当主机A要向局域网中的B发送IP数据报时,在ARP缓存中查看是否有B的IP地址,如果有,在ARP高速缓存中查出它的硬件地址,把地址写入MAC帧,通过局域网把该MAC帧发送此硬件地址。也可能查不到,可能是B才入网,也可能是主机A刚刚加电,缓存是空的。这样A自动运行ARP,按照以下步骤找B的硬件地址。
1,ARP进程在本局域网广播发送一个ARP请求分组。
2,在本局域网上的所有主机上运行的ARP进程都收到此请求分组。
3,主机B在ARP请求分组中见到自己的IP地址,向主机A发送ARP相应分组,写入自己的硬件地址。其余的不理睬这个请求。
4,主机A收到主机B的ARP响应分组后,在ARP高速缓存中写入主机B的IP地址到硬件地址映射。
为了减少网络上的通信量,主机A发送ARP请求分组,就把自己的IP地址到硬件地址的映射写入ARP请求分组。
ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间。超过生存时间的项目就从高速缓存中删掉。
ARP是解决局域网上的主机或路由器的IP地址映射。如果不在同一个局域网,H1就无法解析出主机2的硬件地址。
ARP四种情况
1发送方是主机,把IP数据报发送给本网络另一台主机,用ARP找到目的主机的硬件地址。
2发送方是主机,把IP数据报发送到另一个网络的主机,用ARP找到另一个路由器的硬件地址,剩下由路由器完成。
3发送方是路由器,把IP数据报发送到本网络的主机,用ARP找到目的主机硬件地址。
4发送方是路由器,把IP数据报发送另一个网络的主机,ARP找到本网络上的路由器硬件地址,剩下由路由器处理。
网络层(一)