【计算机网络】网络层知识要点

来源:互联网 发布:画图软件使用方法 编辑:程序博客网 时间:2024/06/05 05:11

网络层的功能是实现计算机主机在网络中的互联,是建立在数据链路层基础上,将全世界的所有的网络全部互联的一个网络层次。网络层向上层只提供简单的、灵活的、无连接的、尽最大努力交付的数据报服务,它并不保证数据的质量。数据的质量由TCP协议保证,面向连接。IP层的最根本的就是在各种异构网络的 基础上覆盖一层,实现数据的无障碍传输。

一、IP协议

IP协议一起配套使用的还有ARP协议、ICMP协议、IGMP协议。 TCP/IP协议族采用了标准化的协议,但实际上相互连接的网络都是异构的,因为没有任何一种网络能够适应所有的应用要求;此外,采用的路由协议的不同也会造成网络结构的不同。所以,IP网络实际上是虚拟的互联网络,从逻辑上看,它是具有统一规范的网络,而实际上则是不同的网络。

IP地址分为5类,结构是网络号和主机号一起构成:
A类地址第一位0表示地址类型,第一个字节表示网络号,剩下三个字节表示主机号;
B类地址前两位表示地址类型,前两个字节表示网络号,后两个字节表示主机号;
C类地址前三位表示地址类型,前三个字节表示网络号,最后一个字节表示主机号;
D类地址前四位表示地址类型,主要是用于多播;
E类地址前四位表示地址类型,但是现在已经被分配完了。

由于ABC类地址的构造比较僵硬,因为强硬的规定了网络号和主机号的大小一定是按照字节来的,这就造成了IP地址的浪费,所以,就需要采用子网的方式来进行切分。子网掩码就是这个功能,且现在所有的网络都必须具备子网掩码的功能。但是划分出来的子网对外的表现仍然是一个网络,从外部看不到内部到底划分了多少个子网。此时,IP地址就变成了三级,网络号,子网号,主机号。需要指出的是,划分子网增强了灵活性,但是实际上减少了能够连接的主机的数量,理论上。

另一种解决网络地址不够用的方法是CIDR,无分类域间路由选择。无分类即取消了IP地址的类别划分,也没有子网的概念。CIDR指出了IP地址的划分包括网络前缀和主机号两部分,且用斜线表示前多少位是网络前缀,后面的是主机号。这个斜线的含义称为地址掩码,和子网掩码的含义比较类似。具有所有CIDR相同网络前缀的地址叫做地址块,概念类似于一个网络,但是不同的是,网络只是网络本身而已,地址块则可能包含多个目的网络,毕竟网络号是不一样的,完全可以在网络前缀的基础上进行细分,因此,所有的网络前缀构成一个超网。在路由表中,一个条目可以表示一个地址块,却可以表示多个网络,因此,超网提高了路由器的工作效率,因为搜索查询路由表的条数少了。在此基础上,就有了最长前缀匹配算法,含义是当路由器匹配到多个IP地址时,要先从具有最长网络前缀的网络开始,这样就能避免数据在网络中不停地传输,造成兜圈子。

常见的IP地址
0.0.0.0表示本地地址,即本机地址;
127.0.0.1表示环回测试的地址,如果程序在运行中遇见的IP地址是这个,表示本机的协议软件不会讲数据报交给网络,而是直接交给本机自己处理。
172.16.0.0等数量的地址,专用地址,比如DOCKER容器中的内部地址;
192.168.0.0等数量的地址,专用地址,比如以太网中的内部地址,这样的地址不往互联网上传数据。

IP地址是一种逻辑上的虚拟地址,可以根据需要改变,也可以自己配置,也可以根据DHCP协议自动配置,但是MAC地址即物理地址,硬件地址,这个地址是不可以随意更改的地址。MAC地址放置在MAC帧数剧的首部,而IP地址放置在IP数据报的首部。所以数据在以太网中传输的时候,由于地址就在自己内部,所以没有分组转发,只经过MAC层,所以传输速率非常高。

地址解析协议ARP:主要功能就是根据IP地址找出硬件地址,方便路由器转发IP数据报的时候能够知道自己的下一条是哪里。这个协议配置在路由器当中。相反的,根据MAC地址找出IP地址的RARP协议已经被封装在应用层的DHCP协议当中了。
由于主机并非直接连接到互联网上,所以每一个主机上都有一个ARP高速缓存,用来存放ARP映射到本网络内部的其他主机上的MAC地址的表单,也包括代表网络连接互联网的路由器。当本主机ARP cache上不知道某一个IP地址的MAC地址时,就会在以太网中广播信息,请求对应的IP地址做响应。也就是ARP请求发出方向是广播,返回方向是单播。
每一个ARP缓存的项目都有一个生存时间,主要是为了防止设备的更换造成传输数据出错。可以看到,整个ARP工作的范围就是在局域网内。如果发送的IP地址是另一个网络中的地址,则首先将信息发送ARP请求分组,将数据交给路由器,剩下的工作由路由器完成。此时填写的是路由器的硬件地址。

网际控制报文协议ICMP:ICMP数据报放在IP数据报的数据部分当中。主要功能就是监控IP数据报的传输是否有问题,并且进行回传。ICMP报文的格式主要包括:差错报文的类型、差错报文的代码、检验和。
类型主要有5种:终点不可达(即数据报没有交付到终点,至于为什么,比如网络拥堵,丢失,终点拒绝等等),源点抑制(让发送方将数据报的传输速率降低一些,以免发生拥塞,比如TCP中的网络控制和流量拥塞控制),时间超过(终点无法收到一个数据报的所有数据报片时,向源点发送超时),参数问题(首部出现错误,这个是指参数就是错误的,而非校验和工作不力),改变路由(重定向,给路由器指路)。
PING就是不经过传输层,只根据IP层和ICMP协议传回错误报文的工具。

IP数据报的格式:首部+数据部分
首部:版本号,
首部长度、
区分服务(用来区别对待以提供更好的服务、一般都不使用这个字段)、
总长度(首部和数据部分的总长度、如果发送的数据过长,超过了接收方可以接收的范围,则需要分片传输,搞成多个数据报,这主要是MAC帧决定的)、
片偏移(记录分片的数据的链接)
标识和标志(记录可否分片等一些信息)
生存时间(数据报在网络中的生存时间,如果发生错误但是没有生存时间限制的话,IP数据报始终在网络中,造成网络的拥堵)
协议(指出数据报中的数据使用的是哪种协议)
首部检验和(只检验首部信息是否正确,总共16位,循环冗余码)

路由器的两端一定具有两个IP地址,如果是代表以太网的路由器,则需要经过NAT转换。且路由器在进行分组转发的过程中,还会设置一个默认路由,以减少计算的开销和路由表的 开销。这个过程就是分组转发算法。这是数据能够在网络间传递的基本过程。

为了提高路由器转发的效率,应当使用二叉线索 方法,二叉线索就是一颗二叉树,将IP地址表示成树形结构,当路由表中的IP地址具有唯一前缀时,就只按照唯一前缀来搜索,也就是避免了每次都从头开始匹配的问题。因为每一次查找和匹配都是从第一位开始的,这就造成了资源的 大量浪费。

路由算法是重点。算法的要求:正确和完整,保证数据报一定到达最终的网络和主机;简单,不能造成路由器的计算负担;自适应性,能根据网络的变化自行变化;稳定性,即算法收敛;公平性,让所有主机和网络都能进行通信,而非有偏好,造成网络资源的不均衡。

分层路由选择,在内部网关中选择一般是RIP协议和OSPF协议。外部网关一般是BGP协议。一个内部网关也叫一个自治系统。
RIP协议:仅交换相邻路由器之间的 信息,按固定的时间间隔交换信息。只适用于小型的互联网,存在的问题是如果路由表有错误,则必须在等较长时间之后才能更新整个网络中路由表的信息。使用UDP数据报传播信息。
OSPF协议:djstra算法,由于有洪泛算法,所以错误信息更新快,直接使用IP数据报传播,不经过传输层。
BGP协议:一个自治系统AS中有一个代言人,它可以代表AS来和外界沟通信息,代言人可能有两个或者多个,它是AS系统中和其它AS沟通的桥梁,物理位置在边界上。

IP多播
多播的目的是减少网络分组在网络上的传输,提高效率。多播专门有多播路由器来进行处理转发,且多播只能用于目的地址,不产生ICMP报文,也就不需要采用ICMP协议,因为多播不会理财重传,毕竟其应用场合一般是电视会议、视频广播等等。

网际组管理协议IGMP:其功能是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。

二、VNP和NAT

VPN实际上是一种特殊的PN,可以看成是一个局域网,只不过采用了隧道技术和加密技术,将两个远地的网络组成了一个局域网,传输速率一定是受到限制的。实际上是IP数据报的嵌套,将局域网内部的地址嵌套到外层经过网络的IP数据报的数据部分。

NAT是将一部分不连接互联网的主机利用路由器上的NAT转换IP地址,从内部地址转换为外部地址,这样可以用来节省地址空间。实现方式依然是IP数据报嵌套,只不过内部的IP数据报的地址是专用地址。这样节省了很多的带宽和空闲时间。

原创粉丝点击