网络层

原创 2015年07月08日 22:50:35

因特网设计思路:网络层只向上提供简单的灵活的,无连接的,尽可能最大努力支付的数据报服务。也就是说,网络在发送分组时不需要建立连接,每一个分组独立发送,与前后分组无关,网络层不提供质量保护的承诺,也就是说网络层不提供端到端的可靠的传输服务,而是让运输层去提供,因此使得网络造价大大降低,运行方式灵活,能适应各种应用。
网际协议IP 是TCP/IP体系中最重要的两个协议之一,与IP协议配套使用的协议还有三个协议:地址解析协议(ARP)、网际控制报文协议(ICMP)、网际组管理协议(IGMP)。由于网际协议IP是用来使互连起来的许多计算机网络能够进行通信,因此TCP/IP体系中的网络层也被叫做网际层,或IP层。
虚拟互连网络 :因为用户的需求是多种多样的,没有一种单一的网络能够适应所有用户的需求。将网络互连起来要使用一些中间设备,从下往上依次为物理层(转发器),数据链路层(网桥),网络层(路由器),网络层以上使用的设备为网关,利用网关连接两个不兼容的系统需要在高层进行协议转换。其中,转发器和网桥的作用只是将网络作用扩大,并没有实现网络互连,因此我们所说网络互连,都是指的路由器进行网络互连或路由选择。路由器其实也是一台专用计算机,用来进行路由选择。由于参加互连的网络都使用的相同的网际协议IP,因此可以看成一个虚拟互连网络。所谓虚拟互连也就是逻辑互连网络,它的意思是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以把性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP协议的虚拟互连网络我们简称为IP网(IP网是虚拟的)。其优点为:IP网上主机进行通信时,好像在单个网络上通信一样,他们看不见各网络具体异构细节。互连网络可以是多种异构网络构成。
分类的IP地址
1、IP地址及表示方法:IP地址就是给因特网Internet上每一个主机分配一个32位的标识符。IP地址结构可以使我们很方便的寻址。IP地址编址方法 有三种:(1)分类的IP地址(2)子网的划分(3)构成超网。分类的IP地址就是将IP地址划分为若干个固定类,每一类的地址都由两个固定长度的字段构成,其中第一个字段是网络号,它是标识主机所连接的网络。网络号在整个因特网必须是唯一的。第二个字段是主机号,标识该主机,一个主机号在前面的网络号范围内是唯一的
IP地址 ::={<网络号>,<主机号>}
A类地址:前八位是网络号,且第一位为0。网络号为1个字节长,第一位为类别位为0 ,主机号为3个字节
B类地址:前16位是网络号,且前两位为10。网络号为2个字节长,前两位为类别位为10,主机号为2个字节
C类地址:前24位是网络号,且前三位为110。网络号为3个字节长,前三位为类别位 为110,主机号为1个字节
D类地址:1110+多播地址
E类地址:1111+保留为今后使用
以上看出,IP地址不仅指明了主机,而且指明了主机所连的网络。其等效的十进制数字表示,并在数字之间加一个点,叫做点分十进制记法。
A类地址:全为0的网络号意为本网络,全为1的保留作为回环测试。因此可指派数目为2^k-2。例如127.0.0.1就是回环测试,并不是一个网络地址。而主机号可指派的数目也是2^k-2,全为0代表本主机所连的单个网络地址,全为1的表示该网络上所有主机。整个A类大约有2^31个,约50%
B类地址:128.0.0.0的一般不指派,最小的网络地址为128.1.0.0,所以个数为2^14-1,而主机号的全0和全1扣除掉,所有有2^16-2个,整个约2^30个,约25%
C类地址:11000000 00000000 00000001 00000000 为最小的网络地址,即192.0.1.0,全为0也不指派,即有2^21-1个,主机号部分舍弃两个为2^8-2个,总共约为2^29个,约12.5%
IP地址分等级的地址结构好处:第一、方便IP地址管理,第二、路由器仅根据目的主机所连接的网络号进行转发分组,大大减少路由表中的项目,减少了路由表所占用的存储空间,以及查找路由表的时间。
实际上IP地址是标识一个主机和一个链路接口。当一个主机连接多个网络就会分配多个IP地址,这种主机称为多归属主机。因为一个路由器至少连接两个网络,因此路由器至少有两个不同IP地址。
按照Internet因特网的观点,一个网络是具有相同net-id网络号的所有主机的集合。因此用转发器和网桥连接起来的若干个局域网任然是一个网络。因为这些局域网都有相同的网络号。具有不同网络号的局域网必须使用路由器互连。
IP地址中,所有分配到的网络号是平等的。

!!!!IP地址与MAC地址区别。IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。在网络层及以上使用的IP地址。在数据链路层和物理层使用的是MAC地址,当IP数据报送到数据链路层后,整个IP数据报就是MAC帧的数据部分,因此数据链路层看不到IP地址。

路由传输过程中,IP层只能看到IP数据报,虽然IP数据报要经过路由器,但是首部中源地址和目的地址并不会变化,而且路由器只会根据目的站的IP地址网络号进行路由选择。而局域网的数据链路层只能看见MAC帧,并且转发过程中MAC帧的首部中源地址和目的地址都会发生变化。尽管互连网络很复杂,但IP层却屏蔽了下层复杂的环节,只要能在网络层讨论问题就能够使用统一的抽象的IP地址研究主机和主机或路由器之间的通信。

地址解析协议(ARP):ARP协议的用途是为了从网络层使用的IP地址解析出数据链路层使用的硬件地址。地址解析协议ARP解决的办法是在主机ARP高速缓存中存放IP地址到硬件地址的映射表,并且映射表是动态更新的。其过程为:当主机A要给主机B发送IP数据报,则查找ARP高速缓存查找IP对应的物理地址,并封装在MAC帧的首部,然后把MAC帧发送到该物理地址,若是没有找到,主机A就会发送ARP的请求分组,请求分组是以广播的形式发送,为了获得主机B的IP地址对应的物理地址,而所有主机接收到之后,由于只有B主机的IP地址与之相同,所有只有主机B进行ARP响应分组,主机A获得响应分组之后,就把IP地址跟物理地址写入ARP高速缓存,在发送时,主机A就会将自己的IP地址与物理地址写入ARP请求分组,所以B也会将A的IP地址与物理地址的映射写入主机B的ARP高速缓存中,减少网络通信量。ARP高速缓存会设置生成周期,超过的会删掉,防止IP地址对应的物理地址主机更换适配器。
注意:ARP协议是解决在同一个局域网上的主机或路由器IP地址到物理地址的映射。通过路由器不断的转发就可以实现给不是局域网的主机发送IP数据报。该解析过程是自动进行的,主机用户对地址解析过程是不知道的
为什么不直接使用物理地址? 因为全世界存在各式各样的网路,他们使用的物理地址都不同。要相互通信就必须进行非常复杂的硬件地址转换工作,由用户和用户机完成是不可能的,但统一的IP可以解决,因此,在虚拟的IP网络上IP地址通信给广大计算机用户带来了巨大的方便。

IP数据报格式:由首部和数据部分组成。首部前一部分是固定字长,共20字节,是所有IP数据报必须有的,首部后面是一些可选字段,长度可变。版本:现在使用的都是IPv4,以后使用IPv6, 首部长度:首部长度表示的单位是32位字,因此最小为5,最大为15(5*4=20,前面有固定20字节,即最少20),若IP分组首部不是4的整数就要使用字符填充。区分服务:8位,一般不使用,当要区分服务获得更好的服务时才使用。总长度:指的首部和数据之和的长度,单位为字节,该部分字段长度为16位,因此数据报最大长度为65535(2^16-1)。由于数据链路层有最大传送单元MTU,因此IP协议规定,因特网所有主机必须接受长度不超过576字节的IP数据报(512字节合理数据+60字节首部+4字节富裕量),若超过,就询问主机是否接受。标识:使得分片都的数据报都含有这个标识,以便分片后的数据报能恢复,正确组装成原来的数据报。标志:占3位,最低位为MF,为1表示后面还有数据报,为0表示这是若干数据报中最后一个,中间一位记为DF,当为1表示不能分片,为0表示可以分片。片偏移:占13位。表示在分片之后该分片在原来数据报中的相对位置,它以8个字节为偏移单位,因此每个分片长度一定是8字节整数倍。生存时间:表示数据报在网络中寿命,占8位。以前单位为秒,现在为跳数。其意义在于数据报在因特网中至少可以经过多少路由器。当其数值为0,就舍弃该数据报。协议:占8位,表示次数据报所携带的数据是何种协议,以便让目的主机知道将数据报交给谁处理。首部检验和:检验数据报的首部,不包括数据部分。因为每经过一次路由器都会发生变化,要重新计算首部检验和。不采用CRC方法,采用将首部划分为许多16位字序列,进行反码相加之后,得到的和的反码写入检验和字段,接收方再把首部计算一遍,若和为0则未发生变法,否则变化了,进行舍弃。源地址和目的地址分别占4个字节。

分组转换算法如下
(1)从数据报的首部提取目的主机的IP地址D,得到目的网络地址为N。
(2)若N为此路由器直接相连的网络,就直接交付,直接把数据报交给目的主机(D转化为硬件地址,数据报封装成MAC帧,发送帧),否则间接交付。
(3)若路由表有目的地址为D的特定主机路由,则直接把数据报传送给路由表中指明的下一个路由器,否则执行(4)。
(4)若路由表有到达网络N的路由,则把数据报传送给路由表中指明的下一个路由器,否则执行(5)。
(5)若有默认路由,则传给所指明的默认路由器,否则执行(6)。
(6)报告转发分组错误。
划分子网:也叫子网寻址,或子网路由选择。基本思路:划分子网是内部的事情,单位外部是看不见这个网络有多少子网组成的,因此对外表现任然是一个网络。划分子网的方法是从主机号借用若干位作为子网号subnet-id,主机号减少相应的位数。于是单位内部就变为了三级IP地址,网络号-子网号-主机号。从其他网络发送给本单位时,仍然根据目的网络号查找本单位的路由器,但此路由器接收IP数据报之后,在按照目的网络和子网号找到目的子网,再把IP数据报交付主机。
子网掩码就是出去主机号的位全部用1填充,主机号用0填充得到,子网掩码和目的IP相与得到子网号,通过子网号可以知道目的子网。
构成超网,就是采用网络前缀+主机号的方法,前缀长度越短,包含的地址数越多。每个CIDR地址块都能包含多个C类地址,所以叫做构成超网。路由匹配方法采用最长前缀匹配,,从路由匹配的结果中选择网络前缀最长的的路由,这样就越具体。
网际控制报文协议ICMP:ICMP是因特网标准协议,但不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。应用在ping通主机,ping使用了ICMP的回送请求与回送回答报文。PING是应用层直接使用网络层的例子。
内部网关协议IGP:即在AS自治系统内部使用的路由选择协议,而这与在互联网中的其他自治系统选择什么协议无关,这类协议使用最多,如RIP,OSPF。其中RIP 叫做路由信息协议。是一种基于距离向量的路由选择协议,最大的优点就是简单。这里的距离是跳数。RIP认为好的路由就是通过它通过的路由器少,RIP允许一条路径最多包含15个路由器,因此距离等于16相当于不可达。可见RIP只适用于小型互联网。RIP是选择一条最少路由器的路由,即使有更高速的存在。RIP协议特点就是,两个路由之间不经过路由就是相连路由,而不相连路由不交换信息。路由器交换的信息是路由表,即本路由器所知道的全部信息。也就是本AS中到所有网络最短距离。按固定的时间交换信息。OSPF:全网拓扑结构,更新的是相连的路由信息,在RIP协议上改进
外部网关协议EGP:处于不同自治系统中,当数据报传到一个自治系统边界就要使用外部网关协议,将选择信息传入AS内,使用最多的外部网关协议是BGP-4。
自治系统之间的路由选择也叫做域间路由选择,自治系统之内的路由选择也叫做域内路由选择。
IGMP网际组管理协议(2),多播路由选择协议:IGMP是本地使用范围。IGMP不知道IP多播组包含的成员数目,IGMP是让连接在本地局域网上的多播路由器知道本地局域网上是否有主机参加或退出某个多播组。因为连接在局域网的多播路由器还必须和因特网上的其他多播路由器协同合作,以便把多播数据用最小的代价传送给多播路由选择协议。
多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。IGMP跟ICMP一样,是把IP首部和IGMP的报文组成IP数据报进行传递。但是他也向IP提供服务,因此,我们把IGMP看成单独的协议但是属于网际协议IP的一部分。
VPN:虚拟专用网,利用公共的因特网作为本机构个专用网之间的通信载体。其中所有的因特网传送的数据都要进行加密。
网络地址转换NAT:需要安装NAT路由软件,安装了这个软件的路由叫做NAT路由器,它至少有一个有效的外部全球IP地址。
隧道技术:多播数据报封装到一个单播数据报之中,可穿越不支持多播的网络,到达另一个支持多播的网络。
IGMP分为两个阶段,第一是当有主机加入多播组的时候,该主机应向多播组的多播地址发送IGMP报文,声明自己成为多播组成员,本地多播组收到IGMP报文之后,将成员关系转发给因特网上其他多播组。第二是因为组员关系是动态的,因此本地多播组要周期性探测本地局域网上的主机,以便知道这些主机是否是多播组成员,只要有一个主机响应,就认为这个多播组是活跃的,一个多播组经过多次探测没有响应,就不再把这个成员关系转发给多播组。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ZigBee协议网络层

  • 2014-11-24 17:44
  • 2.29MB
  • 下载

网络层基础知识

  • 2015-03-19 08:57
  • 2.42MB
  • 下载

iOS应用架构谈 网络层设计方案(转)

前言 网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASI...

ISO15765-2网络层协议

  • 2015-07-24 17:10
  • 588KB
  • 下载

网络层的转发和路由

  • 2015-12-23 15:38
  • 340KB
  • 下载

项目网络层重构总结

引入网络抽象层,主要包括以下部分:Request: 通用的Request的实现结构,承载如下职责: 网络请求信息的承载和封装。 为Interceptor提供切面回调。 为第三方库的Request**...

高性能服务器网络层代码

  • 2013-01-10 16:33
  • 846KB
  • 下载

基于网络层的信息隐藏

  • 2012-03-13 16:53
  • 267KB
  • 下载

(三)网络层——网际协议IP

一、网络层提供的两种服务1、面向连接:在通信的双方之间先建立一条虚电路实现可靠的传输。 2、无连接:不需要建立连接,每个分组都有终点的完整地址,可能发生丢失、错序等问题。 注意:目前因特网提供的是...

网络层交换

  • 2012-11-12 22:09
  • 4.99MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)