目录
1 规则
1.1 通信基础知识
1.2 通信协议
1.3 规则建立
1.4 网络协议要求
1.5 消息编码
1.6 消息格式和封装
1.6.1 生活例子
1.6.2 网络
1.7 消息大小
1.7.1 生活例子
1.7.2 网络
1.8 消息时序
1.9 消息传输方式
2 协议
2.1 网络协议概述
2.2 网络协议的功能
2.3 协议交互
3 协议簇
3.1 网络协议簇
3.2 协议簇的演变
3.3 TCP/IP 协议示例
3.3 TCP/IP 协议簇
3.3.1 应用层协议
3.3.2 传输层协议
3.3.3 互联网层协议
3.3.4 网络接入层层协议
4 标准组织
4.1 开放标准
4.2 互联网标准
4.3 电子和通信标准
5 参考模型
5.1 使用分层模型的优点
5.2 OSI参考模型
5.3 TCP/IP 协议模型
5.4 OSI 模型与 TCP/IP 模型的比较
6 数据封装
6.1 对消息分段
6.2 排序
6.3 协议数据单元
6.4 封装和解封
7 数据访问
7.1 地址
7.2 第 3 层逻辑地址
7.3 同一网络中的设备
7.4 数据链路层地址的作用:相同的IP网络
7.5 网络层地址的作用
7.6 数据链路层地址的作用:不同的IP网络
7.7 数据链路层地址
不同网络的规模、形状和功能都存在很大差异。它们可以复杂到通过互联网来连接设备,也可以简单到直接将两台计算机用一根电缆连接,或者是介于这两种之间。然而,只是完成终端设备之间的有线或无线物理连接并不足以实现通信。为了进行通信,设备必须要知道“如何”通信。
人们使用许多不同的通信方式来交流观点。然而,所有通信方法都有以下三个共同要素:
无论是面对面通信还是通过网络通信,消息的发送都是由被称为协议的规则来管理的。不同类型的通信方式,会有不同的特定协议。在日常的个人通信中,通过一种介质(如电话)通信时采用的规则不一定与使用另一种介质(如邮寄信件)时的规则相同。
发送信件的过程类似于计算机网络中的通信。
在彼此通信之前,个人必须使用既定规则或协议来管理会话。例如,请考虑以下消息:
人际沟通规则。格式不正确以及不遵守既定规则和协议的消息很难理解。A estrutura da gramatica, da lingua, da pontuacao e do sentence faz a configuracao humana compreensivel por muitos individuos diferentes.
请注意,由于消息格式不正确,因此很难读取消息。它应使用有效沟通所必需的规则(即协议)来编写。该示例显示的消息现在已正确格式化为语言和语法。
人际沟通有一定的规则。格式不正确以及不遵守既定规则和协议的消息很难理解。语法结构、语言、标点符号和句子使不同的个人能够通过思维相互理解。
协议必须考虑到以下要求,才能成功地传递被接收者理解的消息:
网络通信中使用的协议共享许多基本特质。除了识别源和目的地之外,计算机和网络协议还定义了消息在网络中如何传输的细节。常用的计算机协议包含以下要求:
在发送消息时,首先执行的步骤之一是编码。编码是将信息转换为另一种广为接受的形式的过程,目的是为了便于传输信息。解码是编码的逆向过程,用来解释信息。
当消息从源发送到目的地时,必须使用特定的格式或结构。消息格式取决于消息的类型和传递信道。
在人际沟通中要求正确格式的一个常见例子是发送信件的时候。信封上有寄信人和收信人的地址,分别写在信封适当的位置。如果目的地址和格式不正确,信件就无法投递。
将一种消息格式(信件)放入另一种消息格式(信封)的过程称为封装。收件人从信封中取出信件的过程就是解封。
与发送信件类似,通过计算机网络发送的消息也要遵循特定的格式规则才能被发送和处理。
互联网协议 (IP)是一种具有与信封示例类似功能的协议。在图中,互联网协议版本 6 (IPv6) 数据包的字段标识数据包的来源及其目的地。IP 负责通过一个或多个网络将消息从消息源发送到目的地。
注意: IPv6 数据包的字段将在另一个模块中详细讨论。
通信的另一条规则是消息大小。
人们在相互交流时,他们发送的消息通常会分成较小的部分或较短的句子。这些句子的大小限制为接收方一次可以处理的大小。
编码在计算机通信中也会发生。
主机之间的编码必须采用适合介质的格式。通过网络发送的消息先由发送主机转换成位。根据用来传输的网络介质,将每个位编码成声音、光波或电子脉冲等信号形式。目的主机接收并解码信号,解释收到的消息。
消息时序在网络通信中也非常重要。消息时序包括以下内容:
例如:一个女人和一个男人同时说话。女人说,电影什么时候开始?而男人在说,什么时候吃晚餐?因为他们同时说话,谁也听不懂对方的话,所以他们都会说:很抱歉。我不明白你的意思。
消息可以通过不同的方式传送。
比如说:有时候,我们需要传达信息给某个人。而在另一些时候,我们需要同时向一群人甚至同一区域的所有人发送信息。
对于网络:
网络通信也具有类似的传输方式,有三种类型的数据通信传输方式:
您知道,要使终端设备能够通过网络进行通信,每个设备都必须遵守相同的一套规则。这些规则被称为协议,它们在网络中有许多功能。本主题概述了网络协议。
网络协议定义了用于设备之间交换消息的通用格式和规则集。协议由软件、硬件或两者中的终端设备和中间设备实现。每个网络协议都有自己的功能、格式和通信规则。
该表列出了在一个或多个网络上通信所需的各种协议类型。
协议类型 | 描述 |
---|---|
网络通信协议 | 这类协议使两个或多个设备能够在一个或多个网络上通信。以太网技术家族涉及多种协议, 例如IP,传输控制协议(TCP), 超文本传输协议(HTTP)等。 |
网络安全协议 | 这类协议保护数据以提供身份验证、数据完整性和数据加密。安全协议的示例包括安全外壳协议 (SSH)、安全套接字层协议 (SSL) 和传输层安全协议 (TLS)。 |
路由协议 | 这类协议使路由器能够交换路由信息,比较路径信息,然后选择到达目标网络的最佳路径。路由协议的示例包括开放最短路径优先协议 (OSPF)和边界网关协议 (BGP)。 |
服务发现协议。 | 这类协议用于设备或服务的自动检测。 服务发现协议的示例包括发现用于IP地址分配服务的动态主机配置协议(DHCP), 和用于执行域名到IP地址转换的域名系统(DNS)。 |
网络通信协议负责在终端设备之间进行网络通信所需的各种功能。例如,在图中,计算机如何跨多个网络设备向服务器发送消息?
图中显示了如何使用协议IPv4从计算机跨网络向服务器发送消息。在图的中心是三个路由器连接在一起形成一个三角形。左侧的路由器连接到一台计算机。右侧的路由器连接到一台服务器。计算机下方的一条消息显示:我将在网络上使用 IPv4 报头发送此消息。路由器下方的一条消息显示:因为我理解 IPv4 报头,所以我可以转发此消息。服务器下方的一条消息显示:因为我理解 IPv4,所以我能够接受此消息。
计算机和网络设备使用商定的协议进行通信。下表列出了这些协议的功能。
功能 | 描述 |
---|---|
编址 | 这使用已定义的编址方案来标识消息的发送者和预期的接收者。提供编址的协议示例包括以太网,IPv4和IPv6。 |
可靠性 | 此功能提供了有保证的传输机制, 以防消息在传输过程中丢失或损坏。TCP 提供可靠的传输。 |
流量控制 | 此功能可确保数据在两个通信设备之间高效传输。TCP 提供流量控制服务。 |
排序 | 此功能唯一地标记每个传输的数据段。接收设备使用排序信息正确地重组信息。如果数据段丢失,延迟或未按顺序接收, 这将很有用。TCP 提供排序服务。 |
差错检测 | 此功能用于确定传输过程中数据 是否已损坏。提供差错检测的各种协议包括以太网,IPv4,IPv6和TCP。 |
应用接口 | 此功能包含用于网络应用程序之间的进程间通信的信息。例如,访问网页时, 使用HTTP或HTTPS协议在客户端和服务器Web进程之间进行通信。 |
通过计算机网络发送的消息通常需要使用多种协议,每种协议都有自己的功能和格式。该图显示了当设备向web服务器发送web页面请求时使用的一些常见网络协议。
一个小型网络图显示,从左到右,一台连接到互联网云的笔记本电脑连接到一台服务器。一个信封正在跨越笔记本电脑和云之间的连接。信封下面是设备向web服务器发送网页请求时使用的协议列表。
在许多情况下,协议必须能够与其他协议配合使用,以便让在线体验为您提供网络通信所需的一切。协议簇旨在相互无缝协作。
执行某种通信功能所需的一组内在相关协议称为协议簇。
要形象地表现协议簇中的协议如何互动,最佳方法之一就是将这种互动看成一个堆栈。协议栈展示了协议簇中的单个协议是如何实施的。协议显示为分层结构,每种上层服务都依赖于其余下层协议所定义的功能。协议栈的下层负责通过网络传输数据和向上层提供服务,而上层则负责处理发送的消息内容。
如图所示,我们可以使用分层结构来描述面对面通信中出现的活动。底层是物理层,有两个人用声音大声说出词语。中间是规则层,规定了通信的要求,包括必须选择一种通用语言。顶部是内容层,这是实际说出通信内容的地方。
协议簇是提供全面的网络通信服务的一组协议。自20世纪70年代以来,出现了几种不同的协议簇,有些是由一个标准组织开发的,有些是由不同的供应商开发的。
在网络通信和互联网的发展过程中,出现了几个相互竞争的协议簇,如图所示。
TCP/IP协议可用于应用层、传输层和互联网层。网络接入层中没有 TCP/IP 协议。最常见的网络接入层LAN协议是以太网和WLAN(无线LAN)协议。网络接入层协议负责通过物理介质传输 IP 数据包。
图中显示了用于在主机的web浏览器和web服务器之间发送数据包的三种TCP/IP协议的示例。HTTP、TCP 和 IP 是所使用的 TCP/IP 协议。在网络接入层,示例中使用了以太网。然而,这里也可以使用一种无线标准,如WLAN或蜂窝服务。
如今,TCP/IP 协议簇包含许多协议,并且不断发展以支持新服务。图中显示一些较为常用的协议。
TCP/IP 是当今互联网和网络使用的协议簇。TCP/IP对于供应商和制造商来说有两个重要的方面:
域名系统
主机配置
邮件
文件传输
Web和Web服务
面向连接
无连接
Internet 协议
消息传送
路由协议
地址解析
注意:您可能会看到其他文档状态,表明 ARP 在互联网层(OSI 第 3 层)运行。但是,在本课程中,我们声明 ARP 在网络接入层(OSI 第 2 层)运行,因为它的主要目的是发现目标的 MAC 地址。MAC 地址是第 2 层地址。
数据链路协议
当购买汽车的新轮胎时, 有许多制造商可供您选择. 他们每家都至少有一种轮胎适合您的车。这是因为汽车行业在制造汽车时采用了标准。它与协议是一样的。尽管有许多不同的网络组件制造商,但他们都必须使用相同的标准。在网络中,标准是由国际标准组织制定的。
开放标准鼓励互操作性、竞争和创新。它们还能确保没有任何一家公司的产品能够垄断市场或占有不公平竞争优势。
关于这一点有个不错的例子,您需要购买一个家用无线路由器。有出自众多供应商的许多不同路由器供您选择。这些路由器都融合了标准协议,例如 IPv4、IPv6、DHCP、SLAAC、以太网和 802.11无线局域网。这些开放标准还能够使运行 Apple 的 OS X 操作系统的客户端从运行 Linux 操作系统的 Web 服务器上下载网页。这是因为两种操作系统都实施开放标准协议,例如 TCP/IP 协议簇中的协议。
标准组织通常是中立于厂商的非营利性组织。它的建立是为了发展和推广开放标准的概念。这些组织对维护一个开放的互联网,允许自由访问规范和协议并允许所有供应商实施这些规范和协议起着至关重要的作用。
标准组织可能会独立起草规则集,也可能在其他情况下将某个专有协议作为一个标准的基础。如果要使用专有协议,通常就会涉及到创建了该协议的供应商。
各个组织在互联网和 TCP/IP 协议标准的推广和建立方面具有不同的责任。
该图显示了参与互联网开发和支持的标准组织。
该图显示了参与互联网开发和支持的标准组织,包括 IANA 和 ICANN。
其他标准组织有责任推广和建立电子与通信标准,这些标准用于通过有线或无线介质将 IP 数据包作为电子信号传输。
这些标准组织包括:
您不能真正的看到真实的数据包在真实的网络中传输,就像您不能看到汽车的零部件在装配线上组装一样。所以,有一种网络的思考方式是有帮助的,这样您就可以想象正在发生的事情。模型在这些情况下很有用。
诸如网络运行方式之类的复杂概念可能很难解释和理解。因此,可以使用分层模型将网络的运行模块化为可管理的层。
这些是使用分层模型来描述网络协议及其工作方式的优点:
如图所示,有两个分层模型用于描述网络运行:
开放式系统互联(OSI)参考模型和TCP/IP 参考模型
OSI 参考模型详细罗列了每一层可以实现的功能和服务。 这种类型的模型通过描述特定层必须完成什么但不规定如何完成来保持各类网络协议和服务中的一致性。
它还描述了各层与其上、下层之间的交互。本课程中所讨论的 TCP/IP 协议同时围绕 OSI 和 TCP/IP 模型而构造。下表显示了OSI模型每一层的详细信息。在本课程中,随着我们对协议更加详细的讨论,各层的功能和层与层之间的关系将变得更加明显。
OSI 模型层 | 描述 |
---|---|
7 - 应用层 | 应用层包含用于进程间通信的协议。 |
6 - 表示层 | 表示层用常用方式表示数据在应用层服务之间的传输。 |
5 - 会话层 | 会话层向表示层提供服务,组织对话并管理数据交换。 |
4 - 传输层 | 传输层定义服务以对数据进行分段,传输和重组,以进行终端设备之间的单独通信。 |
3 - 网络层 | 网络层为所标识的终端设备之间通过网络交换独立的数据的片段提供服务。 |
2 - 数据链路层 | 数据链路层协议描述了设备之间通过公共介质交换数据帧的方法。 |
1 - 物理层 | 物理层协议描述了机械的、电气的、功能的 和程序化的方法,以激活,维护和解除物理连接, 实现与网络设备之间的位设备。 |
注意: 我们提及 TCP/IP 模型的各层时只使用其名称,而提及 OSI 模型的七个层时则通常使用编号而非名称。例如,物理层指 OSI 模型的第 1 层,数据链路层指第2层,诸如此类。
用于网际通信的 TCP/IP 协议模型建立于二十世纪七十年代早期,有时称为互联网模型。 这种类型的模型与特定的协议簇结构紧密配合。TCP/IP 模型描述了 TCP/IP 协议簇中每个协议层实现的功能,因此属于协议模型。TCP/IP 也用作参考模型。下表显示了TCP/IP模型每一层的详细信息。
TCP/IP 模型层 | 描述 |
---|---|
4 - 应用层 | 向用户提供数据,以及编码和对话控制。 |
3 - 传输层 | 支持各种设备之间通过不同网络通信。 |
2 - 互联网层 | 确定通过网络的最佳路径。 |
1 - 网络接入层 | 控制组成网络的硬件设备和介质。 |
标准的定义和 TCP/IP 协议都在公开的论坛中讨论,并在向公众开放的 IETF RFC集中加以定义。RFC由网络工程师撰写,并发送给其他 IETF 成员征求意见。
还可以根据 OSI 参考模型描述构成 TCP/IP 协议簇的协议。在 OSI 模型中,TCP/IP 模型的网络接入层和应用层被进一步划分,用于描述这些协议层需要实现的不同功能。
TCP/IP 协议簇在网络接入层并没有指定通过物理介质传输时使用的协议,而只是描述了从互联网层到物理网络协议的传递。而 OSI 模型第 1 层和第 2 层则论述了接入介质所需的步骤以及通过网络发送数据的物理手段。
主要相似性在于传输层和网络层;然而,这两种模型在与每层的上下层的相关方式上不同:
当您学习数据在网络中移动时如何封装的时候,了解 OSI 参考模型和 TCP/IP 协议模型就会派上用场。它不像通过邮件系统发送的实体信件那么简单。
理论上来说,可以将一次通信的内容(如音乐视频或有很多很大的附件的电子邮件)作为一大块连续的高容量比特流,通过网络从源发送到目的地。但是,这会给其他需要使用相同通信通道或链路的设备带来问题。这种大型数据流会导致严重的延迟。而且,一旦互联网络基础架构中的任何链路在传输期间出现故障,那么整个消息都会丢失,必须全部重传。
所以,更好的办法是先将数据划分为更小、更易于管理的片段,然后再通过网络发送。分段是将数据流划分成更小的单元,以便在通过网络传输的过程。分段是必要的,因为数据网络使用TCP/IP协议簇以单独的IP数据包发送数据。每个数据包都是单独发出的,类似于把一封长信作为一系列独立的明信片寄出。包含同一目的地数据段的数据包可以通过不同的路径发送。
这导致消息分段有两个主要好处:
使用分段和多路复用在网络上传输消息要面临的挑战是增加了该过程的复杂程度。试想一下,这就如同您要邮寄一封 100 页的信件,但每个信封里只能装一页纸。因此,将需要100个信封,每一个信封都需要分别写好地址。100个不同的信封装着的100页的信有可能顺序是混乱的。因此,信封中的信息需要包含一个序列号,以确保接收者可以按适当的顺序重新组装页面。
在网络通信中,每个消息段也必须经过类似的过程才能确保其到达正确目的设备并重新组装成原始消息的内容,如图所示。TCP 负责对单独的数据段进行排序。
在通过网络介质传输应用程序数据的过程中,随着数据沿协议栈向下传递,每层都要添加各种协议信息。此过程称为封装。
注意: 虽然PDU被称为数据报,但IP数据包有时也被称为IP数据报。
一段数据在任意协议层的表示形式称为协议数据单元 (PDU)。在封装过程中,后续的每一层都根据使用的协议封装其从上一层接收的 PDU。在该过程的每个阶段,PDU 都以不同的名称来反映其新功能。尽管目前对 PDU 的命名没有通用约定,但本课程中根据 TCP/IP 协议簇的协议来命名 PDU。图中显示了每种形式数据的 PDU。
注意:如果传输报头是TCP,那么它是一个数据段。如果传输报头是 UDP,那么它是一个数据报。
封装:在网络中发送消息时,封装过程自上而下工作。在各层,上层信息被视为封装协议内的数据。例如,TCP 分段被视为 IP 数据包内的数据。
解封:接收主机上的过程与之相反,称为“解封”。解封是接收设备用来删除一个或多个协议报头的过程。数据在朝着最终用户应用程序沿协议栈向上移动的过程中被解封。
正如您刚刚了解到的,在网络中对消息进行分段是必要的。但是,如果未正确编址这些分段的消息,它们将无处可去。本主题概述了网络地址。您还将有机会使用Wireshark工具,它将帮助您“查看”网络流量。
网络层和数据链路层负责将数据从源设备传输到目的设备。如图所示,两层中的协议都包含源地址和目的地址,但它们的地址具有不同的用途。
IP 地址是网络层(或第 3 层)逻辑地址,用于将 IP 数据包从原始源设备传输到最终目的设备,如图所示。
IP 数据包包含两个 IP 地址:
**源 IP 地址 - 发送设备(数据包的始源设备)的 IP 地址。
**目的 IP 地址 - 接收设备(数据包的最终目的设备)的 IP 地址。
IP 地址表示始源IP地址和最终目的IP地址。无论源和目的地在同一IP网络上还是在不同的IP网络上,都是如此。
IP 地址包含两部分:
注意: 子网掩码(IPv4)或前缀长度(IPv6)用于将IP地址的网络部分与主机部分区分开来。
在本示例中,客户端计算机 PC1 与同一 IP 网络中的 FTP 服务器进行通信。
注意图中源 IPv4 地址和目的 IPv4 地址的网络部分在同一网络中。注意图中,源IPv4地址的网络部分和目的IPv4地址的网络部分是相同的,因此,源和目的地在同一个网络上。
当 IP 数据包的发送方和接收方处于同一网络中时,数据链路帧将直接发送到接收设备。在以太网中,数据链路地址称为以太网介质访问控制(MAC)地址,在图中突出显示。
MAC 地址是以太网网卡的物理内嵌地址。
现在可以将封装有 IP 数据包的帧从 PC1 直接传送到 FTP 服务器。
但是当设备与远程网络中的另一设备通信时,网络层地址和数据链路层地址的作用是什么?在这个示例中,客户端计算机 PC1 与另一 IP 网络中名为 Web 服务器的服务器进行通信。
当数据包的发送方与接收方位于不同网络时,源 IP 地址和目的 IP 地址将代表位于不同网络的主机。这将由目的主机 IP 地址的网络部分来表明。
注意图中源 IPv4 地址和目的 IPv4 地址的网络部分在不同的网络中。
当 IP 数据包的发送方和接收方位于不同网络时,以太网数据链路帧不能直接发送到目的主机,因为在发送方的网络中无法直接到达该主机。必须将以太网帧发送到称为路由器或默认网关的另一设备。在我们的示例中,默认网关是 R1。R1 有一个以太网数据链路地址与 PC1 位于同一网络中。这使 PC1 能够直接到达路由器。
现在可以将封装有 IP 数据包的以太网帧传送到 R1。R1 将数据包转发到目的地(Web 服务器)。这可能意味着 R1 会将数据包转发到另一个路由器,或者如果目的地所在的网络与 R1 相连的话直接转发到 Web 服务器。
必须在本地网络的每台主机上配置默认网关的 IP 地址。所有指向远程网络中目的地的数据包都会发送到默认网关。以太网 MAC 地址和默认网关将在其他模块中详细讨论。
数据链路层(第 2 层)物理地址具有不同的作用。数据链路层地址的作用是将数据链路层帧从一个网络接口传输到同一网络中的另一个网络接口。
在 IP 数据包可以通过有线或无线网络发送之前,必须将其封装成数据链路层帧,以便通过物理介质传输。
当 IP 数据包从主机到路由器、从路由器到路由器和最终从路由器到主机传输时,沿途中的每个点上都会将 IP 数据包封装到新的数据链路层帧中。每个数据链路层帧包含发送帧的 NIC 卡的源数据链路层地址和接收帧的 NIC 卡的目的数据链路层地址。
第 2 层,数据链路层协议仅用于在同一网络中的 NIC 之间传输数据包。路由器会将其 NIC 上收到的第 2 层信息删除,添加新的数据链路层信息,然后将数据包从通往最终目的地路径的出口 NIC 上转发出去。
IP 数据包会封装到包含以下数据链路层信息的数据链路层帧中:
简单来说,在每次进行下一跳的时候都会替换数据帧的源mac地址和目的mac地址。在上面第一幅图中,由于是两个不同网段的IP地址进行通信,那么就会触发路由功能。这个时候数据帧上的源mac地址为PC1的mac地址,目的mac地址为网关对应的mac地址。以此类推,但是不管数据帧上的源mac地址和目的mac地址如何变化,源IP地址和目的IP地址是不会变的。这里就涉及到了ARP表、路由表、mac地址表。