网络体系结构

1.1 网络体系结构

世界上第一个网络体系结构由IBM公司提出(1974年,SNA),以后其他公司也相继提出自己的网络体系结构。为了促进计算机网络的发展,国际标准化组织ISO在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互连参考模型,即OSI/RM(Open System Interconnection Reference Model)。

ISO制定的OSI参考模型过于庞大、复杂招致了许多批评。与此相对,美国国防部提出了TCP/IP协议栈参考模型,简化了OSI参考模型,由于TCP/IP协议栈的简单,获得了广泛的应用,并成为后续因特网使用的参考模型。

TCP/IP参考模型

TCP/IP协议是一个开放的网络协议簇,它的名字主要取自最重要的网络层IP协议和传输层TCP协议。TCP/IP协议定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP参考模型采用4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求,这4个层次分别是:网络接口层、网络层(IP层)、传输层(TCP层)、应用层。

img

  • 物理层

    把电脑连接起来的物理手段,它主要规定了网络的一些电气特性,作用是传输0和1的电信号。

  • 数据链路层

    物理层是用于传输信号的介质,它传输的是0和1的电信号。但是关于电信号如何分组,每个信号位有何意义并没有规定。

    这就是数据链路层的功能,它在物理层的上方,确定了0和1的分组方式,用于两个设备(同一种数据链路结点)之间进行信息传递。

  • 网络层(IP层)

    数据链路层实现了用电信号保存数据,但是还不能把一个数据从一个设备传到另一个设备,如北京传到上海,那么远的距离,有那么多条线路,怎么选择出最优的线路进行传输呢,这就是网络层解决的问题。

    网络层是整个TCP/IP协议栈的核心。它的功能是把电信号分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。

    img
    • 路由

      我们来看上面这张图。左边的主机想和右边的主机通话,那么这个数据包一定会经过网络。中间灰色的圆圈是路由器,他们组成了一个网络,数据链路层只是把这个信息传递了“一跳”,也就是从介质的一端传递到另一端,在图里面比如说从路由器1传递到2.但是网络层做的事情是,规划好所有跳的路线,比如说数据包要依次经过1,2,3,6才能从左边主机到达右边主机,这就是网络层一个非常重要的作用,也就是提供“路由routing”。

      别看这个功能看似简单,实际上非常复杂,因为网络是动态可变的,每个链路成本可能都在变化,网络层需要时刻都对于每一个数据包给定最佳的路线,这就涉及到路由器的各种确定最佳路线的算法,比如距离矢量算法和链路状态算法等等,可以看文中末尾的拓展部分。

    • 存储、交换、转发

      具体来说这是具体的网络中路由器做的事情。路由器中存在着路由表,路由表的作用是为路由器提供包的方向依据。路由器会根据每个到达包的目的地址来确定他应该向那个方向转发这个包。这个就是转发的功能。当路由器接收包的速度要小于它转发包的作用时候,他就会把暂时发送不了的包缓存在自己的缓冲区里面,直到前面的都发出去再将其发出去,这就是存储。

    • 拥塞控制

      拥塞控制是网络设计的时候必不可少的功能。就像城市里面哪里堵车了,其他人就知道不要再去了,网络层也一样。比如上图中2,3路由器出现了严重的拥塞,那么左边主机往右边发送包就会从1236变成1456。拥塞控制对于网络的效率以及降低丢包率有着无可替代的作用。

    • 呼叫准入

      什么是呼叫准入呢?比如左边主机想传一个大的视频文件给右边的主机,但是网络这个时候非常拥挤很难传送。首先左主机先发送一个控制包给右主机,这个控制包说明了自己视频数据所需要的带宽等等信息,那么这个包所途径的路由器都会首先查看自己能不能满足这个需求,如果不能就返回一个不能的信息,如果能就按照路由表向右主机传送。所以一旦有一个路由器不能提供这个服务,那么呼叫建立就失败了,只有所有路由器许可,才能传送。呼叫准入是在网络层所选路径沿途的路由器,在真正数据交换之前握手协商状态信息。呼叫准入是为了保证网络的服务质量而设计的功能。

    网络层的核心就是路由器的功能,上面的几个功能,比如路由,存储转发,拥塞控制,呼叫准入都是路由器的功能,除此以外,路由器还有包分类的功能。比如说一个直播视频和一个ftp文件流都需要一个路由器转发,那么视频流肯定是优先级更高的,因为直播的高延迟是不可忍受的,所以路由器会根据不同包确定优先级,优先转发高优先级的,低优先级的需要在高优先级转发之后再转发。

  • 传输层(TCP层)

    我们知道传输层位于网络层之上,网络层提供了主机之间的逻辑通道。那既然已经把一个数据包从一个主机发到另一个主机上面了,为什么还需要传输层呢?这是因为传输层提供了应用进程之间的端-端连接。我们知道一个电脑可能有多个进程同时在使用网络连接,那么网络包达到主机之后,怎么区分自己属于那个进程?这就需要靠传输层的作用了。

    传输层协议能提供应用的多路复用/分用服务、可靠数据传送、带宽保证及延迟保证等。网络层提供的是“best effort”尽力而为的服务,网络层提供的无连接服务不可靠(丢包、重复),并且路由器可能崩溃,或者传输线路中断,所以传输层必须足够健壮来解决网络层不可靠,不稳定的问题,比如说传输层可检测到包丢失、损坏、乱序等差错情况,采取相应措施;或者当数据传输过程中网络连接中断,传输层可与远程传输实体建立一新的网络连接,在中断处继续数据的传输。

    • 多路复用和分用

      复用:当传输层从应用程序接收报文后要封装在传输层的段中再交给网络层发送。分用:当传输层从网络层接收数据后,必须将数据正确递交给某个应用程序。也就是传输层曾能够区分不同进程的数据并且加以区分处理。

    • 寻址

      定位应用程序在哪里。以及流量的控制,防止接收端速度太慢造成溢出和丢包的现象。流量控制和拥塞控制的区别是:流量控制只是端端之间,只需要管理两个端之间的流量传输即可,也就是局部的。但是拥塞控制是全局的,是整个网络所做的事情,需要所有的路由器主机一起努力完成的事情。在传输层,既有流量控制也有拥塞控制。

    传输协议要解决的问题取决于网络底层所能提供的服务质量。我们能看出来,传输层除了分用复用以外,好多功能都是针对性的弥补网络层的不足而产生的。

  • 应用层

    应用层为Internet中的各种网络应用提供服务;怎么从传输层获取传过来的数据。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值