引言

什么是计算机网络

通过同一种技术​相互连接的计算机就构成一种计算机网络。

容易被混淆的概念:

  • 通信\计算机

    通信处理数据从一个实体到另外一个实体的传输

    计算机负责帮助人类处理信息

  • 通信网络\计算机网络

    通信网络就是一个负责传输信息的链接和节点

    计算机网络是一组相互链接的互联网

  • 分布式系统\计算机网络

    分布式系统:将一系列独立的计算机组成一个逻辑上的计算机

    系统内部是对用户透明的

计算机网络不是:

  • Internet:全球唯一的巨大互联网
  • internet:多个计算机网络链接构成的计算机网络
  • www:一种基于计算机网络提供的服务\应用

计算机网络的硬件组成

  • 计算机\主机host​​\终端系统End System​​
  • 通信链接:有线\无线
  • 交换机switch​​\路由器router​​

拓扑结构

通过图的形式表示网络中节点,包括交换机和路由器,之间的连接关系。

计算机网络的组成

  • 硬件
  • 软件:操作系统以及一些应用软件
  • 计算机的标识:IP地址、域名
  • 通信规则

计算机网络的应用

商业应用

  • 资源共享
  • 同用户的交流通信

移动网络用户

计算机网络的分类

按照使用的范围进行分类

  • 个域网

    通常采用蓝牙等技术进行链接

  • 局域网LAN

    将主机同边缘路由器连接起来

    共有一个链接链路,一般是星型组网

  • 城域网MAN

    通常是广电网络

    通常是树形组网

  • 广域网WAN

    存储转发、分组交换、通过路由算法决定路由路径

    为了保证可靠性通常采用网孔型组网

按照传输技术分类

  • 广播网络

    将数据包发送给所有的目标主机,每个主机再来检查数据包的目标地址,如果这个数据包就是发给这台主机的就接受这个数据包,反之忽略这个数据包

    在局域网中广泛应用

    同时发送数据包可能存在冲突

  • 点对点网络

    数据包直接从源地址发送到目的地址

    在广域网中应用广泛。

按照在互联网络中的位置

  • 接入网Access Networks

    在网络的边缘,主要辅助用户来接入互联网

  • 核心网Core Networks

    将接入网和其他核心网连接在一起

网络架构和网络协议

分层的网络体系结构

网络是按照一个层栈的方式组成起来的。这样做可以:

  • 这样设计简化了设计的复杂性

  • 每一层向更高层提供来具体的服务,同时屏蔽了具体实现的细节

  • 每一层都会和相邻的层之间进行交互(不是通信),每一层都和对方的对等层Peers​之间有着通信,协议就规定来对等层之间通信的协议

  • 相邻的两层直接通过接口定义了允许的操作和服务

  • 数据的流向实际上是U型的,发送系统自顶向下,最底层实际传输数据,接受系统自底向上

  • 每层可能在上一层交付数据的基础上进行封装,加上本层的控制信息,构成本层的数据包,控制信息和添加的方式是由协议规定的。每次构成的数据包称作协议数据包PDU

层次设计过程中需要注意的问题

  • 可靠性

    • 差错检测和回复
    • 路由选择
  • 网络演进

    • 协议的分层设计:将问题细分,隐藏每层实现的细节
    • 地址:标识不同的发送者和接受者
    • 网络的互通性
    • 协议的可扩展性
  • 资源定位

    • 统计复用Statistical Multiplexing
    • 流量控制:防止过快的发送倒是数据在接受方丢失
  • 服务质量QoS

  • 安全

层需要指定的标准

同层之间通信的协议:

  • 语法Syntax​:协议的消息格式
  • 语义Semantics​:消息的字段区某个值的含义

向上一层提供的服务接口

服务接口可以分成两种类型:

  • 面向连接的Connection-oriented

    在连接的过程中连接就被建立起来,需要的资源就已经被分配好了,后续的数据将按照这条已经建立的道路前进

    连接将会使可靠的

    在建立连接的时候需要完整的地址,在之后只需要指定连接的就可以完全发送

  • 无连接的Connectionless

    资源将会是动态分配的

    但是连接是不可靠的,数据包可以会丢失、放弃和乱序

    每次连接都需要完整的地址来建立连接

连接类型服务例子
面向连接的可靠的消息流页面序列
面向连接的可靠的字节流远程登录
面向连接的不可靠的连接数字通话
无连接的不可靠的数据报电子垃圾邮件
无连接的订阅数据报注册邮件
无连接的查询-回复数据库查询

服务原语Service Primitives​:描述层与层之间提供服务的方法。一个服务就是有一组服务原语来定义的。

在计算机中实现服务原语:

如果协议栈是由操作系统实现的:服务原语通过是通过系统调用的方式提供的。

如果需要定义一个简单的面向连接的服务,一般需要5个服务原语:

  • 监听:阻塞直到收到一个连接请求
  • 连接:同对应层建立一个连接
  • 接收:阻塞直到收到数据
  • 发送:发送数据
  • 断开连接:终止一个连接

服务和协议的关系

服务定义了本层对外提供的操作,而协议定义了同层之间通信的方式。

服务是通过协议实现的,在服务不变的情况下,层可以自由改变协议。

参考模型

OSI参考模型

模型将设备分为两类:主机和节点。

主机不负责数据的转发,但是需要负责数据的处理,主机具有完整的七层。

节点负责数据的转发,不具有处理数据的能力,节点只具有三层。

参看模型的七层具体为:

  • 物理层Physical​​

    直接通过通信设备处理字节流。

    定义了1​位和0​位的电压范围和位的数据率,定义了传输是全双工还是半双工的,定义了初始连接如何建立和终止,定义了接口的物理规格。

  • 数据链路层Data Link​​

    通过逻辑通道进行原始数据的传输。

    发送者会将数据封装为发送,接受者会在收到数据之后发送确认帧给发送者以确保服务的可靠性。数据链路层还会提供流量控制的功能,避免过快的发送阻塞了接受者。广播网络和单点网络的区分也是在数据链路层产生的。

  • 网络层Network​​

    控制子网上的操作。

    网络层主要的功能就是转发数据,路由的功能就主要在网络层实现。除此之外,网络层还提供拥塞控制,服务质量的控制等功能。

  • 传输层Transport​​

    端到端层。从上层接受数据,将数据分成较小的数据包并且通过网络层正确的传输到对方。

    同一计算机上不同进程的区分也是在传输层完成的。

  • 会话层Session

    提供会话控制、令牌管理和同步的功能。

  • 表示层Presentation

    获得传输信息的语法和语义。

    在这层可以提供数据加密和数据压缩等的功能。

  • 应用层Application​​

    直接被用户使用的各种应用协议。

TCP/IP参考模型

该模型一般只有四层:

  • 链路层Link
  • 网络层/网际层Internet
  • 传输层Transport
  • 应用层Application

链路层

协议并未强制规定,具体的实现由其他的机构规定,比如Ethernet​,WiFi​和SDH​。

只负责传输IP​数据包。

网络层

主要协议是IP​协议,是一个不可靠的传输协议。

传输层

TCP​传输协议:面向连接的可靠传输协议,传输字节流。

UDP​传输协议:无连接的不可靠传输协议,传输字节流。

应用层

由用户使用的各种应用协议。

OSI和TCP/IP参考模型的对比

image

OSI模型的特点、优缺点

特点:

  • 服务:某层实体对于上一层实体的支持
  • 结构:定义某层实体对于上一层提供的原语操作
  • 协议:两个系统同层之间同喜需要遵守的规范

OSI模型没有能够取得主导地位的问题:

  • 生不逢时
  • 技术设计上有缺陷,比如会话层和展示层比较简单而且和应用关系密切,不算是很合适的抽象

TCP/IP模型的特点、优缺点

  • 服务、接口和协议没有很清晰的划分
  • 不算是很通用的模型
  • 链路层实际上不算层,并没有严格的规定
  • 物理层和数据链路层上没有区分
  • 部分老旧协议

混合模型

注意:这个模型并不是实际标准化的模型,只是学习的过程中便于学习而提出的。

两个模型都存在缺陷,因此为了较好的描述整个体系,我们将两个模型混合在一起:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层