1 计算机网络概述

  • 计算机网络的定义

根据目前的计算机网络特征,计算机网络可以定义为:以能够相互共享资源的方式互联起来的自治计算机系统的集合。
上述定义包含三层含义

  • 目的:资源共享
  • 组成单元:分布在不同地理位置的多台独立的 “自治计算机”
  • 网络中的计算机必须遵循的统一规则——网络协议


  • 计算机网络的组成

    • 从组成部分看,计算机网络由硬件、软件、协议三大部分组成
    • 从工作方式看,计算机网络由边缘部分、核心部分组成。
      • 边缘部分由所有连接到因特网上、用户直接使用的主机组成;
      • 核心部分由大量的网络和连接这些网络的路由器组成
    • 从功能组成上看,计算机网络由通信子网、资源子网组成。
  • 计算机网络的分类

    • 按覆盖范围可以分为
      • 广域网(WAN)

广域网通常指覆盖范围很广的长距离网络,是因特网的核心部分。
广域网不等于互联网,互联网可以使用路由器连接不同类型的网络(既可以连接局域网,又可以连接广域网)
广域网由一些结点交换机及连接这些结点交换机的链路组成。结点交换机不是路由器,结点交换机和路由器都用来转发分组,它们的工作原理也类似,但是结点交换机在单个网络(广域网)中转发分组,而路由器在多个网络构成的互连网中转发分组。

  1. - **城域网(MAN)**
  2. - **局域网(LAN)**
  3. - **个人局域网(PAN)**

上述网络类型中的节点仅需要MAC地址

  • 按传输技术可以分为
    • 广播式网络

所有联网计算机共享一个公共通信信道,如果一台计算机发送报文分组时,所有其他的计算机都会收到这个分组
局域网属于广播式网络

  1. - **点对点网络**

每条物理线路连接一对计算机。如果通信的两台主机之间没有直接连接的线路,那么它们之间的分组传输需要通过中间节点来进行转发,直至目的节点。
广域网属于点对点网络
是否采用分组存储转发与路由选择机制是点对点网络与广播式网络的重要区别

  • 网络协议(Network Protocol)
    • 协议是规则的集合
    • 在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则,这些规则明确规定了所交换的数据的格式及相关的同步问题。这些为进行网络中数据交换而建立的规则、标准或约定称为网络协议
    • 网络协议是控制多个实体进行通信的规则的集合,是水平的,不对等实体之间是没有协议的。如节点A的传输层和节点B的传输层之间存在协议,但节点A的传输层和节点B的网络层之间不存在协议
    • 网络协议由语法、语义同步三部分组成
      • 语法

规定了传输数据的格式

  1. - **语义**

规定了所要完成的功能,即需要发出何种控制信息、完成何种动作以及做出何种应答

  1. - **同步**

规定了执行各种操作的条件、时序关系等,是事件实现顺序的详细说明

  • 一个完整的网络协议通常包括线路管理(线路的建立、释放)、差错控制、数据转换
  • 接口

接口是同一节点相邻两层间交换信息的连接点

  • 服务

    • 服务是指下层为紧邻的上层提供的功能调用,是垂直的
    • 本层能为上一层提供服务,但要实现本层的协议还需要下一层所提供的服务
    • 被服务的层是看不到下层的协议的,因为协议是水平的而服务是垂直的,服务是由下层通过层间接口来向上层提供的
    • 并非在一层内完成的全部功能都称为服务,只有能被高一层实体看见的功能才称为服务。
  • 计算机网络提供的服务可按以下三种方法分类

面向连接服务与无连接服务

  • 面向连接服务

通信前双方必须先建立连接,分配相应的资源(如缓冲区),传输结束后释放连接连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段
TCP就是一种面向连接服务的协议

  • 无连接服务

通信前双方不需要先建立连接,需要发送数据时可直接发送,由系统选定路线进行传输。
这是一种不可靠的服务,通常被描述为“尽最大努力交付”,并不保证通信的可靠性。
IP、UDP就是一种无连接服务的协议
可靠服务和不可靠服务

  • 可靠服务

可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。

  • 不可靠服务

不可靠服务是指网络只能尽量正确、可靠地传送,而不保证数据正确、可靠地传送到目的地,是一种“尽力而为”的服务。
对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。如果用户接收到不正确的信息,用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务

2 计算机网络体系结构

1 OSI参考模型

  • 概述
    • 国际标准化组织(ISO)提出的网络体系结构模型,称为“开放系统互连参考模型(OSI)”,通常简称为OSI参考模型。
    • OSI有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

低三层统称为通信子网,是为了联网而附加的通信设备,完成数据的传输功能
高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能。
传输层承上启下。

  • OSI参考模型的层次结构图

image.png

  • OSI参考模型各层的功能

物理层

  • 物理层的传输单元是比特
  • 物理层的任务是透明的传输比特流
  • 物理层的功能是在物理媒体上为数据端设备透明地传输原始比特流,主要研究:通信链路与通信结点的连接需要一些电路接口,物理层规定了这些接口的一些参数。物理层也规定了通信链路上传输的信号的意义和电气特征

数据链路层

  • 数据链路层的传输单元是
  • 数据链路层的任务是将网络层传来的IP数据报组装成帧
  • 数据链路层的功能可以概括为成帧、差错控制(检测出物理连接在传输比特流时可能发生的错误)、流量控制和传输管理等。
  • 数据链路层的协议包括SDLC、HDLC、PPP、STP

网络层

  • 网络层的传输单位是数据报,它关心的是通信子网的运行控制
  • 网络层的主要任务是网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务。
  • 网络层的功能是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互联等功能
  • 网络层的协议包括IP、IPX、ICMP、IGMP、ARP、RARP、OSPF

传输层

  • 传输层也称运输层,传输单位是报文段(TCP)或用户数据报(UDP)
  • 传输层负责主机中两个进程之间的通信
  • 传输层的功能是为端到端连接提供可靠的传输服务,并提供流量控制、差错控制、服务质量、数据传输管理等服务
  • 通信子网提供的是点到点的通信,而传输层提供的是端到端的通信

点到点可以理解为主机到主机之间的通信,一个点是指一个硬件地址或IP地址。
端到端的通信是指运行在不同主机内的两个进程之间的通信,一个进程由一个端口来标识

  • 使用传输层的服务,高层用户可以直接进行端到端的数据传输,从而忽略通信子网的存在。
  • 传输层的协议有TCPUDP

会话层

  • 会话层允许不同主机上的各个进程之间进行会话
  • 会话层利用传输层提供的端到端的服务,向表示层提供服务。
  • 会话层负责管理主机间的会话进程,包括建立、管理及终止不同主机的进程间的会话

表示层

  • 表示层主要处理在两个通信系统中交换信息的表示方法
  • 为了使不同表示方法的数据和信息之间能相互交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式
  • 电脑从网卡收到一串数据时,这些数据在电脑中都是都是二进制的格式,我们人类是看不懂二进制的,就需要表示层帮忙将这些二进制转换成我们能够识别的数据。
  • 所以表示层的基本作用就是对数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。

应用层

  • 应用层是用户与网络的界面
  • 应用层为特定类型的网络应用提供访问OSI环境的手段
  • 因为用户的实际应用多种多样,这就要求应用层采用不同的应用协议来解决不同类型的应用要求
  • 应用层的协议有用于文件传输的FTP、用于电子邮件的SMTP、用于万维网的HTTP


2 TCP/IP模型

  • 概述

    • ARPA提出了TCP/IP模型,模型从低到高依次为网络接口层(对应OSI参考模型中的物理层和数据链路层)、网际层传输层应用层(对应OSI参考模型中的会话层、表示层和应用层)
    • TCP/IP由于得到广泛应用而成为事实上的国际标准
  • TCP/IP模型的层次结构图

image.png

  • TCP/IP模型各层的功能

网络接口层

  • 网络接口层的功能类似于OSI的物理层和数据链路层,表示与物理网络的接口
  • 实际上TCP/IP体系本身并未真正描述这一部分(因此数据链路层的协议并不属于TCP/IP协议族),只是指出主机必须使用某种协议与网络连接,以便在其上传递IP分组
  • 网络接口层的作用是从主机或节点接收IP分组,并把它们发送到指定的物理网络上

网际层

  • 网际层是TCP/IP体系的关键部分,它和OSI网络层在功能上非常相似
  • 网际层的功能是将分组发往任何网络,并为之独立地选择合适的路由,但它不保证各个分组有序地到达,各个分组的有序交付由高层负责
  • 网际层定义了标准的分组格式以及唯一的协议IP,而IP协议是因特网中的核心协议

传输层

  • 传输层的功能和OSI中的传输层类似,即使得发送端和目的端主机上的进程进行对话。
  • 传输层使用以下两种协议
    • TCP协议
    • UDP协议

应用层

  • 应用层包含所有的高层协议,如Telnet、FTP、DNS、SMTPHTTP


3 TCP/IP模型与OSI参考模型的比较

image.png

  • TCP/IP模型与OSI参考模型的相似之处

    • 两者都采取分层的体系结构,将庞大且复杂的问题划分为若干较容易处理的、范围较小的问题
    • 两者都可以解决异构网络的互联,实现世界上不同厂家生产的计算机之间的通信
  • TCP/IP模型与OSI参考模型的区别

    • OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,通用性良好,但模型设计者在协议方面没有太多经验,不知道把哪些功能放到哪一层更好

TCP/IP模型产生在协议发明之后,模型实际上是对已有协议的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合于任何其他非TCP/IP的协议栈

  • OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。

TCP/IP模型则认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式

  • OSI参考模型不流行的原因
    • 无论是OSI参考模型还是TCP/IP模型,都不是完美的。OSI参考模型试图建立一个全世界的计算机网络都要遵循的统一标准,这也导致基于OSI参考模型的软件效率极低。
    • OSI参考模型缺乏市场与商业动力,结构复杂,实现周期长,运行效率低,这是它未能达到预期目标的重要原因。

3 使用通信协议栈进行数据传输

  • 基本概念
    • PCI(protocol control information)

协议控制信息,控制协议操作的信息

  • SDU(service Data Unit)

服务数据单元,为完成用户所要求的功能而应传送的数据

  • PDU( Protocol Data Unit)

协议数据单元,对等层次之间传送的数据单位

  • PCI、SDU、PDU之间的关系

image.png

  • PDU和相应层的协议有关,不同协议对应各自的PDU长度,用户的数据要进行通信必须封装到PDU中,实现对等层之间的信息交换。
  • 用户数据可以理解为SDU,它的长度可能大于或者小于PDU,要想进行通信,则必须将SDU分割或者拼接为PDU长度。
  • 使用协议栈进行通信的过程
    1. 协议栈的最顶端是一个面向用户的接口,下面各层是为通信服务的协议
    2. 用户传输一个数据报时,数据报通常是用户能够理解的自然语言,然后通过应用层,将自然语言转化为用于通信的通信数据。
    3. 通信数据到达传输层作为传输层的数据部分(即传输层SDU),再加上传输层的控制信息(即传输层PCI),组成传输层的PDU,然后交到网络层。
    4. 传输层的PDU下放到网络层后,就成为网络层的SDU,然后加上网络层的PCI,又组成网络层的PDU,继续下放。
    5. 数据经过层层下放,层层包裹,最后形成的数据报通过通信链路传输,到达接收方节点协议栈,接收方再逆向地逐层把数据拆开,最后递交给用户。