网络层提供的两种服务
根据OSI参考模型,网络层关注的是如何将源端数据包一路送到接收端。所以,网络层是处理端到端数据传输的最底层。这个时候就有了两种思路:有人认为应当借鉴电话网的成功经验,网络应该提供面向连接的,可靠的数据传输。这样可以有效的提供很好的服务质量;但Internet阵营一边则主张网络层只向上提供无连接的、灵活的、尽最大努力交付的数据报服务。因为端系统比电话机智能的多,差错检测的功能完全可以交给上层去做。
数据报与虚电路
- 数据报服务:如果提供的是无连接的服务,那么所有的数据包(数据包通常又被成为数据报)都被独立地注入到网络中,并且每个数据包独立路由,不需要提前建立任何设置。这样的服务成为数据报服务,对应的网络为数据报网络。
- 虚电路:如果提供面向连接的服务,那么在发送数据包之前,必须首先建立起一条从源路由器到目标路由器之间的路径。这个连接称为虚电路,类似于电话系统中建立的物理电路,对应的网络称为虚电路网络。
经过实践最后证明,采用数据报服务更适合Internet的发展,这种服务的好处是:
- 网络的造价大大降低
- 运行方式灵活
- 能够适应多种应用
虚电路服务与数据报服务的对比
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组时的顺序 | 总是按发送顺序达到终点 | 到达终点的时间,不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
网际协议IP
网际协议IP是TCP/IP协议体系中两个最主要的协议之一,也是最重要的因特网标准协议之一。与之配套使用的还有三个协议:
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
虚拟互连网络
我们知道,如果要在全世界范围内把数以百万计的网络都互连起来,并且能够相互通信,一定是一个非常复杂的任务,需要考虑的问题非常多,这个时候有人就考虑能不能让所有人使用同一个网络,答案肯定是不行的,因为不同的用户需求不同,没有一种单一的网络能够适应所有用户的需求。而且随着技术的发展,互联网也在不断推进,需要推出新的网络。
所以,我们在连接不同网络的时候需要一些中间设备。根据其所在的层次,可以有一下四种:
- 物理层使用的中间设备叫做转发器(集线器)
- 数据链路层使用的中间设备叫做网桥(包括交换机)或桥接器
- 网络层使用的中间设备叫做路由器
- 在网络层以上使用的中间设备叫做网关。用网关来连接两个不兼容的系统需要在高层进行协议的转换
通过集线器和网桥进行连接的网络,仅仅是把一个局域网扩大了,从网络层的角度看,仍然还是一个网络。一般把用路由器进行互连的网络称为网络互连。
TCP/IP体系在网络互连上采用的做法是在网络层(即IP层)采用了标准化协议,但相互连接的网络可以是异构的。这样,参加互连的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成如下图所示的一个虚拟互连网络。
计算机数据通信全过程
上图是数据包在互联网中的传送
上图是对数据包在互联网中传送的一个详细解读!!!
从图中我们可以看到有两个局域网通过两个路由器相连。我们现在假设图中PC4给PC3发送数据。
发送端PC4
- 1、应用程序准备要传输的文件
- 2、传输层 将文件分段并编号 数据段
- 3、网络层 将分好段的数据加IP地址封装成包 数据包
- 4、数据链路层 两种情况:
- 使用自己的子网掩码 判断自己在哪个网段
- 使用自己的子网掩码 判断目标地址在哪个网段
- 如果是同一个网段,则使用ARP协议解析目标IP的MAC地址
- 如果不是同一个网段,则使用ARP协议解析网关的MAC地址,将数据包交给路由器
- 将数据包加上MAC地址和帧检验序列(FCS)交给物理层进行发送