概述
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。
在实现网络层功能时,需要解决的主要问题如下:
寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
从占用通信子网资源方面看:虚电路服务将占用结点交换机的存储空间,而数据报服务对每个 其完整的目标地址独立选径,如果传送大量短的分组,数据头部分远大于数据部分,则会浪费带宽。
从时间开销方面看:虚电路服务有创建连接的时间开销,对传送小量的短分组,显得很浪费;而数据报服务决定分组的去向过程很复杂,对每个分组都有分析时间的开销。
从拥塞避免方面看:虚电路服务因连接起来的资源可以预留下来,一旦分组到达,所需的带宽和结点交换机的容量便已具有,因此有一些避免拥塞的优势。而数据报服务则很困难。
从健壮性方面看:通信线路的故障对虚电路服务是致命的因素,但对数据报服务则容易通过调整路由得到补偿。因此虚电路服务更脆弱。
数据报网络
不会这么完美的,其他=缺省路由,所以,如下
IP报文段的首部格式
IP数据报(IP datagram),更准确的说法叫分组(packet)。
(分组指IP数据报既可以是一个IP数据报,也可以是IP数据报的一个片(fragment))
IP传输给网络接口层的数据单元称作IP数据报。
版本:占4位,指IP协议的版本。通信双方使用的
IP协议版本必须一致。日前广泛使用的 IP协议版本号为 4 (即 IPv4)。
IPv6 目前还处于起步阶段。
首部长度:占 4 位,可表示的最大十进制数值是 15。请注意,
这个字段所表示数的单位是32位字 ( 1 个32位字长是4 字节),
因此,当 IP 的首部长度为 1111 时 (即十进制的 15),
首部长度就达到 60字节。当 IP 分组的首部长度不是4字节的整数倍时,
必须利用最后的填充字段加以填充。
因此数据部分永远在 4字节的整数倍开始,
这样在实现 IP协议时较为方便。
首部长度限制为 60字节的缺点是有时可能不够用。
这样做的目的是希望用户尽量减少开销。
最常用的首部长度就是 20 字节 (即首部长度为 0101),
这时不使用任何选项。
服务:占 8 位,用来获得更好的服务。
这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。
1998年IETF把这个字段改名为区分服务 DS (DifferentiatedServices)。
只有在使用区分服务时,这个字段才起作用。
总长度:总长度指首都及数据之和的长度,单位为字节。
因为总长度字段为 16位,所以数据报的最大长度为 2的16次方-1=65 535字节。 在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
生存时间:占 8位,生存时间字段常用的英文缩写是
TTL (Time To Live),其表明数据报在网络中的寿命。
由发出数据报的源点设置这个字段。
其目的是防止无法交付的数据报无限制地在因特网中兜围子,
因而白白消耗网络资源。最初的设计是以秒作为 TTL的单位。
每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。
若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。
当 TTL值为 0时,就丢弃这个数据报。
协议:占 8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
首部检验和:占 16位。这个字段只检验数据报的首部,
但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。
源地址:占32位。目标地址:占32位。没什么好说的。
IP数据包的总长度过大,超过链路的最大MTU时,数据包就会被分成多片,
而在如今的IPv4的网络中,数据传输时不可靠的,是尽力而为的,
所以这些分片的数据单元到达对端的链路和时间都是不同的,
对端根据IP首部中的标示符(Identification)、标志(Flag)、段偏置值字段
重组数据包。
标识 (Identification):占 16位。
IP软件在存储器中维持一个计数器,每产生一个数据报,
计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号,
因为 IP是无连接的服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的 MTU 而必须分片时,
这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为
原来的数据报。
标志 (Flag):占3 位,但目前只有2位有意义。
标志字段中的最低位记为 MF (More Fragment)。
MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片
中的最后一个。
标志字段中间的一位记为 DF(Don’t Fragment),
意思是“不能分片”。只有当 DF=0时才允许分片。
片偏移:占 13位。较长的分组在分片后,
某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,
该片从何处开始。片偏移以 8个字节为偏移单位。
这就是说,每个分片的长度一定是 8字节 (64位)的整数倍。
实例
6个
IP地址类型
IP地址=网络地址+子网地址+主机地址
最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
1. A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.255.255.255。可用的A类网络有126个,每个网络能容纳16777214个主机。
2. B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
3. C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
4. D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
5. E类IP地址
以“llll0”开始,为将来使用保留。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
A类地址的第一组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。
B类地址的第一组数字为128~191。
C类地址的第一组数字为192~223。
A类地址
A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络掩码为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。
- B类地址
B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络掩码为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。
C类地址
C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络掩码为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。
实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。
私有IP地址是一段保留的IP地址。只使用在局域网中,无法在Internet上使用。
子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。
**掩码的意思,就是把一部分的代码掩盖住,同时露出另一部分代码
我想到佐罗用黑布把眼睛掩盖住只露出半张脸的样子………..
子网掩码,是为了掩盖住“网络号net_id”,暴露出“主机号host_id”
用1表示掩盖
用0表示暴露**
IP地址写法:10.10.10.1/24 10.10.10.1/25
24说明了子网掩码遮住了24位,也说明了这个IP的“网络号net_id”是24位,网段占了24位
25说明了子网掩码遮住了25位,也说明了这个IP的“网络号net_id”是25位,网段占了25位
因为10.10.10.1/24 和 10.10.10.1/25的“网络号”不同,网段不同
而网络地址(第一个IP地址),通过IP地址(二进制)和子网掩码(二进制)进行与操作得出
10.10.10.1/24中的10.10.10.1二进制为10101010.10101010.10101010.00000001
10.10.10.1/24中的子网掩码为11111111 11111111 11111111 00000000
所以10.10.10.1/24中的网络地址为 10101010.10101010.10101010.00000000,即10.10.10.0
10.10.10.1/24中的广播地址为 10101010.10101010.10101010.11111111,即10.10.10.255
所以这个网段里,能分配给主机使用的一共有254个IP地址,从10.10.10.1~10.10.10.254
10.10.10.1/25中的10.10.10.1二进制为10101010.10101010.10101010.00000001
10.10.10.1/25中的子网掩码为11111111 11111111 11111111 10000000
所以10.10.10.1/25中的网络地址为 10101010.10101010.10101010.00000000,即10.10.10.0
10.10.10.1/25中的广播地址为10101010.10101010.10101010.01111111,即10.10.10.127
(在网络地址变广播地址的时候,因为子网掩码掩盖了25位,所以只能最后27位变成1)
所以在这个网段能,能分配给主机使用的一共有126个地址,从10.10.10.1~10.10.10.126
224(十进制) = 11100000(二进制)
“IP地址/ 数字” 是什么意思?
答:数字是子网掩码位(数),例如 192.168.5.12 / 21 ,说明子网掩码由21个1组成,即 子网掩码是:
11111111 11111111 11111000 00000000 ,也就是255.255.248.0
同样的IP地址和不同的子网掩码可以得出相同的网络地址;
一个C类网络进行子网划分,就是对第四个八位组进行划分,比如划分成八个子网,三个比特(224(十进制) = 11100000(二进制))
红色的每个子网的子网地址,绿色的是每个子网的广播地址,这些都是无法分配给主机使用的;但是没有划分子网的时候,是只有.0和.225不能使用的;
由此,得出的结论是划分子网增加了灵活性,但是减少了能够连接在网络上的主机总数
最后
以上就是兴奋砖头为你收集整理的网络层:虚电路:IPV4:子网掩码的全部内容,希望文章能够帮你解决网络层:虚电路:IPV4:子网掩码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复