
02 网络参考模型
数字化时代,各种信息以数据的形式充斥着我们的生活。什么是数据?数据又是如何传递的?
本章我们将通过网络参考模型去简单了解数据的“一生”。
学完本课程后,您将能够:
理解数据的定义及传递过程
理解网络参考模型概念及优势
了解常见的标准协议
掌握数据封装与解封装过程
目录 [展开]
应用和数据
故事的起源-应用
应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频等。
伴随着应用会有信息的产生。比如文本,图片,视频等都是信息的不同呈现方式。
应用的实现-数据
数据的产生:在计算机领域,数据是各种信息的载体。
数据传输:大部分应用程序所产生的数据需要在不同的设备之间传递。
计算机只能识别0和1的组成的电子数据(digital data)。它不具备读取各种信息的能力,所以信息需要通过一定的规则翻译成数据。
而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成 人能理解的信息。
对于一名网络工程师来说,需要更关注数据的端到端传递的过程。
网络参考模型与标准协议
OSI参考模型
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 地址。