OSI体系结构——网络层详解

前言

网络层是OSI参考模型中的第三层,同时也是TCP/IP模型的第二层。它介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。主要内容有:虚电路分组交换和数据报分组交换、路由选择算法、阻塞控制方法、X.25协议、综合业务数据网(ISDN)、异步传输模式(ATM)及网际互连原理与实现。

一、功能目的

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

网络层提供的两种服务:

1.网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,以及每一个分组独立交付的策略。

2.网络层不提供服务质量的承诺。

虚电路服务与数据报服务的对比:



二、网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一,同时IP协议也是最重要的互联网标准协议之一。

与IP协议配套使用的还有三个协议:
(1)地址解析协议 ARP( address resolution protocol )

(2)网际控制报文协议 ICMP( internet control message protocol )

(3)网际组管理协议 IGMP( internet group management protocol )

网际协议IP及其配套协议:

如上图所示,ARP在靠近网络接口层的位置,因为IP经常使用ARP协议,而ICMP和IGMP经常使用IP协议,故放在靠近运输层的地方。

虚拟互联网络

从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有一下四种不同的中间设备:
(1)物理层使用的中间设备,集线器 repeater

(2)数据链路层使用的中间设备,网桥,bridge

(3)网络层使用的中间设备,路由器,router

(4)在网络层以上使用的中间设备,网关,gateway。用网关连接两个不兼容的系统需要在高层进行协议的转换。

在这里需要提一下关于数据传输过程中的冲突检测问题。

CSMA/CD:是一种争用型的介质访问控制协议,主要应用于现场总线Ethernet中。工作原理是: 发送数据前 先侦听信道是否空闲 ,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。

CSMA/CA:
1、 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间DIFS后,就发送整个数据帧。

2、 否则(检测到信道忙),站点就要等检测到信道空闲并经过时间DIFS后,执行CSMA/CA协议的退避算法,启动退避计时器。在退避计时器减少到零之前,一旦检测到信道忙,就冻结退避计时器。一旦信道空闲,退避计时器就进行倒计时。

3、 当退避计时器时间减少到零时(这时信道只可能是空闲的),站点就发送整个的帧并等待确认。

4、 发送站若收到确认,就知道已发送的帧被目的站正确收到了。这时如果要发送第二帧,就要从上面的步骤(2)开始,执行CSMA/CA协议的退避算法,随机选定一定退避时间。若源站在规定时间内没有收到确认帧ACK(由重传计时器控制这段时间),就必须重传此帧(再次使用CSMA/CA协议争用接入信道),直到收到确认为止,或者经过若干次的重传失败后放弃发送。

CSMA/CD原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发
CSMA/CA原理简单总结为:冲突停发,随机重发,发时不听

比较:CSMA/CD控制方式的优点是:原理比较简单,技术上易实现,网络中各工作站处于平等地位,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。主要用于总线型以太网。

CSMA/CA带有冲突避免的载波监听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。CSMA/CD主要用于无线局域网802.11a/b/g/n。

1.分类的IP地址

IP地址是Internet地址的一种表示形式。IP地址由网络号与主机号两部分组成,网络号标识一个逻辑网络,主机号标识网络中一台主机。

IP地址 ::={<网络号>,<主机号>}

“ ::= ”表示 “ 定义为 ”,从IP地址结构来看,IP地址不仅指明一台主机,而且还指明了主机所连接到的网络。

IPv4地址是一种分层的地址结构,IP地址都是32位二进制,为了提高可读性,通常把IP地址的每8位插入一个空格,但是机器中没有空格,所以就用等效的十进制数字表示,在这些数字之间加上“.”,即点分十进制法。

IPv4地址按照网络号和主机号的长度被分为五大类。A、B、C类用于为Internet(单播地址)中的设备接口分配地址,以及其他特殊情况下使用。类由地址中的头几位来定义:
0为A类,10为B类,110为C类,1110为D类,1111为E类。D类地址供组播使用,E类地址保留。分类如下图所示:

由此可得出按此分类方式得到的IPv4地址空间划分:

A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。

B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模规模的网络,每个网络所能容纳的计算机数为6万多台。

C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。

2.IP地址的一些特点

IP 地址是一种分等级的地址结构。IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间和路由查找时间。

IP 地址是标志一个主机(或路由器)和一条网络链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多接口主机(multihomed host)。由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。

注:用转发器或网桥(交换机)连接起来的若干个局域网,虽然在物理上是多个网络,但在逻辑上仍为一个网络,因此这些局域网都具有同样的网络号 net-id。所有分配到网络号net-id的网络,不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

除了上面三种类型的IP地址外,还有几种特殊类型的IP地址,TCP/IP协议规定,凡IP地址中的第一个字节以“lll0”开始的地址都叫多点广播地址。因此:

任何第一个字节大于223小于240的IP地址是多点广播地址
IP地址中的每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;
IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;

IP地址中凡是以“llll0”的地址都留着将来作为特殊用途使用;IP地址中不能以十进制“127”作为开头,27.1.1.1用于回路测试,同时网络ID的第一个6位组也不能全置为“0”,全“0”表示本地网络。

3.IP地址与硬件地址

从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层次使用的地址,是一种逻辑地址。

在发送数据时,数据从高层到低层,然后才到通信链路上传输。IP数据报交给数据链路层后就被封装成MAC帧了。MAC帧在传输时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部中。

4.地址解析协议ARP

在实际应用中,经常会遇到这样的问题:网络层使用的是IP地址,但在实际网络的链路上传输数据帧时,还是需要知道该网络的硬件地址。即已知某机器的IP地址,需要找到相应的硬件地址。要解决这个问题,需要使用ARP协议。

ARP协议解决问题的方式是在,每一台主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表动态更新。
当主机A向本局域网上的主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址,若有,则检索出对应的硬件地址,并把这个硬件地址写入MAC帧,然后将MAC帧发出。

ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除。

5.IP数据报的格式

IP数据报由首部和数据部分组成,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。固定部分后面的是可选字段,其长度可变。

IP 数据报首部各字段的意义:

(1)版本( version ),4 位,IP 协议的版本。0100 V4版本,0110 V6版本。

(2)首部长度( header length ),4 位,含固定部分和可变部分首部长度。

(3)区分服务( differentiated services field ),8 位,优先级和 ToS

(4)总长度( total length ),16 位,首部和数据之和的长度,单位字节。

(5)标识( identification ),16 位,确保拥有相同标识字段值的分片能够重新组装成为原来的数据报。

(6)标志 ( flag ),3 位,目前只有后两位有实际意义。最低位为 MF=1,即表示后面还有分片,MF=0,即表示这是最后一个分片。中间的一位为 DF,意为不能分片。只当 DF=0 时才可允许分片。

(7)片偏移( falgment offset ),13 位,较长的分组在分片后,某片在原分组中的相对位置。

(8)生存时间( TTL,Time to live ),8 位,数据报在因特网中至多可经过几个路由器,最大跳数255。TTL=1 表示该数据报只能在本局域网内传输。

(9)协议( Protocol ),8 位,表示数据报所携带的数据是使用何种协议,以便上交给上层谁来负责处理。如 TCP UDP OSPF IPv6 EGP IGP IGMP ICMP ESP 等。

(10)首部检验和( header checksum ),16 位,只检验数据报的首部,不包括数据部分。

(11)源地址( source ip address ),32 位。

(12)目的地址( destination ip address ),32 位。

(13)可变部分,1 个字节到 40 个字节不等。包含可选字段和填充字段。极少用。

6.IP层转发分组的流程

路由表:主要包含以下两个信息:(目的网络地址,下一跳地址)

注意:

(1)IP 数据报最终一定可以找到目的主机所在的目的网络上的路由器。

(2)只有到达最后一个路由器时,才试图向目的主机进行直接交付。

路由器在接收到一个待转发的数据报,从路由表得出下一跳路由器的 IP 地址后,不是把这个 IP 地址填入 IP 数据报,而是送交数据链路层的网络接口软件。网络接口软件负责把下一跳路由器的 IP 地址转换成硬件地址(使用 ARP ),并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。



三、划分子网和构造超网

1.子网划分

子网划分的若干个好处:

①减少网络流量

②提高网络性能

③简化管理

④可以更为灵活的形成大覆盖范围的网络

当我们对一个网络进行子网划分时,基本上就是将它分成小的网络。比如,当一组IP地址指定给一个公司时,公司可能将该网络“分割成”小的网络,每个部门一个。这样,技术部门和管理部门都可以有属于它们的小网络。通过划分子网,我们可以按照我们的需要将网络分割成小网络。这样也有助于降低流量和隐藏网络的复杂性。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。

例:已知子网192.168.15.19/28,求属于该子网的主机范围

思路:首先,还是先将IP地址转换为二进制:11000000.10101000.00001111.00010011
,然后写出他的子网掩码(网络位为1,主机位为0):
11111111.11111111.11111111.11110000
然后将两组数据进行按位与操作(相同为1,不同为0),得:
11000000.10101000.00001111.00010000,转换为十进制即为192.168.15.16。
主机位为32-28=4位,故总主机数为2^4=16,可分配主机数为16-2=14。
可分配主机范围即192.168.15.17-172.168.15.30
总主机范围为192.168.15.16-172.168.15.31

PS:当主机数均为0时为该网段的单播地址,主机数全为1时为该网段的广播地址。故主机数全为0或1时不能作为可分配的主机地址(掐头去尾),故减2。

2.子网掩码

子网掩码(subnet mask)又称“网络掩码”、“地址掩码”,它是一种用来指明一个IP地址的哪些位标识的是主机所在的网络地址与主机地址的位掩码。子网掩码和IP地址的表示方法是相同的,在IPv4中是点分十进制四组表示法或表示为一个八位十六进制数。子网掩码的好处是不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND)即得出网络地址来。

3.无类别域间路由选择CIDR

划分子网在一定程度上缓解了互联网在发展中遇到的困难。然而在1992年互联网仍然面临着三个必须尽早解决的问题:

B类地址已经分配了近一半,很快将分配完毕
互联网主干网的路由表中的项目数急剧增长
整个IPv4的地址空间最终将耗尽。2011年IANA宣布IPv4全部分配完毕。
IETF很快就研究出无类别域间路由选择CIDR(classless inter-domain routing)。

CIDR最主要的特点有两个:

CIDR 消除了传统的ABC类地址和划分子网的概念。

CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块。只需要知道CIDR地址块的任何一个地址,就可以知道这个地址块的起始地址和地址块中的地址数。

4.最长前缀匹配原则

因为路由表中的每个表项都指定了一个网络,所以一个目的地址可能与多个表项匹配。
最明确的一个表项,即子网掩码最长的一个,就叫做最长前缀匹配。
之所以这样称呼它,是因为这个表项也是路由表中,与目的地址的高位匹配得最多的表项。



四、网际控制报文协议ICMP

为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文封装在IP数据报中的数据部分。

几种常见的ICMP报文类型:

常用发ICMP询问报文有两种:

回送请求和回答:ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
时间戳请求和回答:ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表1990年1月1日期到当前时刻一共有多少秒。时间戳请求与回答可用于时钟同步和时间测量。



结语

至此,网络层的知识已基本介绍完了。至于互联网的路由协议,后面会以实验的形式进行重点的介绍。此篇文章存在的不足欢迎大家留言指正。

最近注册了公众号,打算把计算机网络和计算机基础的知识从头整理一遍分享给大家。公众号刚刚起步,内容正在加紧赶制,相信不久文章存量会相当可观。文末是公众号的二维码,欢迎各位看官关注

原文地址:https://blog.51cto.com/14671287/2484185

时间: 2024-10-06 22:08:43

OSI体系结构——网络层详解的相关文章

OSI体系结构——数据链路层详解

前言 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间.数据链路层在物理层提供的服务的基础上向网络层提供服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路.为达到这一目的,数据链路必须具备一系列相应的功能.本文就数据链路层具有的功能进行相关介绍. 一. 数据链路的概念以及相关基础知识 上图为两台主机通过互联网进行通信时数据链路层所处的地位. 本文只关心在协议栈中水平防线的各数据链路层

java classLoader体系结构使用详解

原创整理不易,转载请注明出处:java classLoader体系结构使用详解 代码下载地址:http://www.zuidaima.com/share/1774052029516800.htm jvm classLoader architecture: Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. Extension ClassLoader/扩展类加载器  主要负

软件系统的体系结构&Tomcat详解&Web应用&http协议

? day08 软件系统体系结构 ? 常见软件系统体系结构B/S.C/S 1.1 C/S C/S结构即客户端/服务器(Client/Server),例如QQ: 需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户端程序: 缺点:软件更新时需要同时更新客户端和服务器端两端,比较麻烦: 优点:安全性比较好. ? 1.2 B/S(*****) B/S结构即浏览器/服务器(Browser/Server): 优点:只需要编写服务器端程序: 缺点:安全性较差. ? 2 WEB资源 2.1 We

OSI七层详解之三 网络层(Network layer)

一.简介 在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网.网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送.网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地 址信息- -源站点和目的站点地址的网络地址. 如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是"数据包"问题,而不是第2层的"帧".IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP).有关路由的一

网络层详解----1

网络层提供的两种服务 虚电路服务:当两个计算机进行通信时,先建立连接,以保证双方通信所需的一切网络资源. 数据报服务:网络层只向上提供简单灵活的.无连接的.尽最大努力交付的数据报服务.网络在发送分组时不建立连接,每一个分组独立发送,与其前后分组无关,也不提供服务质量承诺. IP协议 IP协议配套使用的还包括ARP(地址解析协议).RARP(逆地址解析协议).ICMP(网际控制报文协议).IGMP(网际组管理协议). 虚拟互连网络 将网络互连需要通过一些中间设备:转发器物理层().网桥或桥接器(数

OSI七层详解之二 数据链路层(DataLinkLayer)

一.简介 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列. 数据链路层在不可靠的物理介质上提供可靠的传输.该层的作用包括:物理地址寻址.数据的成帧.流量控制.数据的检错.重发等. 在这一层,数据的单位称为帧(frame). 数据链路层协议的代表包括: SDLC.HDLC.PPP.STP.帧中继等. 链路层的主要功能: 链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现.链路层应具备

OSI七层详解之四 传输层(Transport)

一.简介 第四层的数据单元也称作数据包(packets).但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为"数据报(datagrams)".这个层负责获取全部信息,因此,它必须跟踪数据单元碎片.乱序到达的数据包和其它在传输过程中可能发生的危险.第4层为上层提供端到端(最终用户到最终用户)的透明的.可靠的数据传输服务.所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节.  传输层协议的代表包括: T

OSI七层详解之五 会话层(Session)

一.简介 这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文.会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制.如服务器验证用户登录便是由会话层完成的. 会话层提供的服务可使应用建立和维持会话,并能使会话获得同步.会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信.这种能力对于传送大的文件极为重要.会话层,表示层,应用层构成开放系统的高3层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上