数字化时代,各种信息以数据的形式充斥着我们的生活。什么是数据?数据又是如何传递的?

本章我们将通过网络参考模型去简单了解数据的“一生”。

学完本课程后,您将能够:

  • 理解数据的定义及传递过程

  • 理解网络参考模型概念及优势

  • 了解常见的标准协议

  • 掌握数据封装与解封装过程

目录 [展开]

应用和数据

故事的起源-应用

应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频等。

伴随着应用会有信息的产生。比如文本,图片,视频等都是信息的不同呈现方式。

应用的实现-数据

数据的产生:在计算机领域,数据是各种信息的载体。

数据传输:大部分应用程序所产生的数据需要在不同的设备之间传递。

计算机只能识别0和1的组成的电子数据(digital data)。它不具备读取各种信息的能力,所以信息需要通过一定的规则翻译成数据。

而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成 人能理解的信息。

对于一名网络工程师来说,需要更关注数据的端到端传递的过程。

网络参考模型与标准协议

OSI参考模型

7. 应用层

对应用程序提供接口。

6. 表示层

进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。

5. 会话层

在通信双方之间建立、管理和终止会话。

4. 传输层

建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。(TCP/UDP)

3. 网络层

定义逻辑地址(ip地址);实现数据从源到目的地的转发。

2. 数据链路层

将分组数据封装成帧;在数据链路上实现数据的点到点(单播)、或点到多点(总播)方式的直接通信;差错检测。

1. 物理层

在媒介上传输比特流;提供机械的和电气的规约

OSI 模型(Open Systems Interconnection Model),由国际化标准组织ISO (The International Organization for Standardization ) 收录在ISO 7489标准中并于1984年发布。

OSI参考模型又被称为七层模型,由下至上依次为:

  • 物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。

  • 数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

  • 网络层:定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。

  • 传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。

  • 会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

  • 表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。

  • 应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务

TCP/IP参考模型

因为 OSI 协议栈比较复杂 且 TCP 和 IP 两大协议在业界被广泛使用 所以 TCP/IP 参考模型成为了互联网的主流参考模型。

TCP/IP常见协议

TCP/IP 协议栈定义了一系列的标准协议 。

数据链路层

  • PPP(Point to Point Protocol ,点对点协议):一种点对点模式的数据链路层协议,多用于广域网。

  • Ethernet( 以太网协议 )):一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网技术。

  • PPPoE Point to Point Protocol over Ethernet ,以太网承载 PPP 协议): PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。

常见协议标准化组织

IETF(Internet Engineering Task Force)

负责开发和推广互联网协议(特别是构成 TCP/IP 协议族的协议)的志愿组织,通过 RFC 发布新的 或者取代老的协议标准。

IEEE(Institute of Electrical and Electronics Engineers)

IEEE 制定了全世界电子、电气和计算机科学领域 30% 左右的标准,比较知名的有IEEE802.3(Ethernet) 、 IEEE802.11( WiFi 等。

ISO(International Organization for Standardization)

在制定计算机网络标准方面, ISO 是起着重大作用的国际组织,如 OSI 模型,定义于 ISO/IEC7498-1 。

应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。

应用层的 PDU 被称为 Data (数据)。

常见应用层协议FTP

FTP File Transfer Protocol 是一个用于从一台主机传送文件到另一台主机的协议 用于文件的下载 和 上传 它采用 C/S Client/Server 结构 。

FTP客户端:提供本地设备对远程服务器的文件进行操作的命令 。 用户在 PC 上通过应用程序作为 FTPClient 并与 FTP 服务器建立连接后 可以对 FTP Server 上的文件进行操作 。

FTP服务器:运行 FTP 服务的设备 。 提供远程客户端访问和操作的功能 用户可以通过 FTP 客户端程序登录到服务器上访问设备上的文件 。

常见应用层协议Telnet

Telnet 是数据网络中提供远程登录服务的标准协议 。 Telnet 为用户提供了在本地计算机上完成远程设备工作的能力 。

用户通过Telnet 客户端程序连接到 Telnet服务器 。用户在 Telnet 客户端中输入命令,这些命令会在服务器端运行就像直接在服务端的控制台上输入一样 。

常见应用层协议-HTTP

HTTP HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议 。 设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法 。

传输层

传输层协议接收来自应用层协议的数据 封装上相应的传输层头部 帮助其建立 端到端Port to Port 的连接 。

传输层的 PDU 被称为 Segment 段 。

TCP和 UDP 报文格式

节(紧急数据放在本报文段数据的最前面)。长度为16 比特。

Options :选项字段(可选),长度为 0~40 字节。

UDP 报文头部:

Source Port: 源端口,标识哪个应用程序发送。长度为 16 比特。

Destination Port: 目的端口,标识哪个应用程序接收。长度为 16 比特。

Sequence number(序列号)、acknowledgement number(确认序列号)、Header length(头部长度,取值5~15)、Reserved(保留位)、Control bits(控制位)、window(滑动窗口)、Checksum(校验盒)、Urgent(紧急指针)。

Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为UDP报头已经占用了 8 字节。由于这个字段的存在,UDP 报文总长不可能超过65535 字节(包括8字节的报头,和65527 字节的数据)。

Checksum: 覆盖 UDP 头部和 UDP 数据的校验和,长度为 16 比特。

TCP和 UDP 端口号

客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;

源端口号一般为系统中未使用的,且大于 1023;

目的端口号为服务端开启的应用(服务)所侦听的端口,如 HTTP 缺省使用 80 。

TCP的建立 三次握手

任何基于 TCP 的应用 在发送数据之前 都需要由 TCP 进行 三次握手 建立连接。

Seq(sequence):序列号

SYN位:tcp头部当中的同步序列编号(Synchronize Sequence Numbers)

ACK位:确认编号(Acknowledgement Number)

TCP的关闭 四次挥手

当数据传输完成 TCP 需要通过 四次挥手 机制断开 TCP 连接 释放系统资源 。

以太网与MAC 地址

以太网是一种广播式数据链路层协议,支持多点接入。

个人电脑的网络接口遵循的就是以太网标准。

一般情况下,一个广播域对应着一个 IP 网段。

MAC (Media Access Control) 地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个 MAC 地址。

MAC 用于在一个 IP 网段内,寻址找到具体的物理设备。

工作在数据链路层的设备。例如以太网交换机,会维护一张MAC 地址表,用于指导数据帧转发。

地址解析协议(ARP)

ARP Address Resolution Protocol 地址解析协议:根据已知的 IP 地址解析获得其对应的 MAC 地址。