网络简单介绍大全 网络简单介绍( 三 )


4、网络层
网络层向传输层提供服务 , 它既可以基于虚电路 , 也可以基于数据报 。在这两种情形下 , 它的主要任务是将数据包从源端路由到接收方 。在数据报网络中 , 路由决定针对每一个数据包而作;在虚电路网络中 , 路由决策在建立虚电路时做出 。
计算机网络用到了许多路由算法 。泛洪是最简单的算法 , 它把数据包发送到所有的路径上 。大多数算法寻找一条最短路径 , 并能自适应网络拓扑的变化 。主要的算法是距离矢量算法和链路状态算法 。大多数网络实际使用了其中的某一个算法 。其他重要的路由话题包括大型网络的层次路由、移动主机的路由、广播路由、组播路由和选播路由 。
网络很容易变得拥塞 , 从而增加了数据包延迟和丢失 。网络设计者企图通过一系列手段来避免拥塞 , 其中包括设计具有足够容量的网络、选择未拥堵的路由、拒绝接受更多的流量、给源端发信号降低速度以及负载脱落 。
处理拥塞控制的下一步是努力获得所承诺的服务质量 。一些应用程序在乎吞吐量而另一些应用程序却更关心延迟和抖动 。提供不同服务质量的方法包括流量整型、路由器上的资源预留以及准入控制 。专门被设计用于提供良好服务质量的几种途径包括IETF的综合服务(包括RSVP)和区分服务 。
网络在很多方面都有所不同 , 所以 , 当多个网络相互连接时 , 问题就出现了 。当不同的网络具有不同的最大数据包长度时 , 可能需要分段 。不同网络内部可运行不同的路由协议 , 但外部必须运行公共的路由协议 。有的时候 , 隧道一个数据包穿越一个敌对网络能解决问题 , 但是 , 如果源网络和目标网络的类型不同 , 这种方法就会失败 。
Internet的网络层有丰富多样的协议 。这些协议包括数据报协议IP和控制相关协议 , 比如ICMP、ARP和DHCP 。一个称为MPLS的面向连接协议携带IP数据包穿过某些网络 。网络中使用的主要路由协议是OSPF , 穿越网络用的路由协议是BGP 。Internet正快速消耗着IP地址 , 所以IPv6作为IP的新版本已经开发出来 , 并正在被如此之慢地部署着 。
5、传输层
传输层是理解分层协议的关键 。它提供了各种服务 , 其中最重要的服务是一个从发送端至接收端的端到端的、可靠的、面向连接的字节流 。通过一组服务原语可以访问此服务 , 原语可用来建立、使用和释放连接 。Berkeley套接字提供了一个常用的传输层接口 。传输协议必须能在不可靠的网络上完成连接管理工作 。由于延迟的重复数据包可能会重新出现在不恰当的时刻 , 因而连接的建立过程非常复杂 。为了处理这些问题 , 需要使用三次握手法来建立连接 。释放连接比建立连接要容易得多 , 但由于存在两军对垒问题 , 释放连接也并非轻而易举 。
即使网络层完全可靠 , 传输层也有大量的工作要做 。它必须处理所有的服务原语、管理连接和计时器、拥塞控制与分配带宽以及运行大小可变的滑动窗口流量控制 。
拥塞控制应该在竞争流之间公平地分配所有可用带宽 , 并跟踪网络使用的变化 。AIMD控制法则能收敛到公平和有效的带宽分配 。
Internet有两个主要的传输协议:UDP和TCP 。UDP是一个无连接的协议 , 它主要对IP数据包进行了包装 , 由此引入了多个进程复用和分用一个IP地址这一特性 。UDP可以被用于客户机-服务器之间的交互(比如RPC) , UDP也可以被用来建立实时协议(比如RTP) 。

推荐阅读