您的位置  > 互联网

网络体系结构协议主要用途/IPHTTP、SMTP等

TCP/IP

HTTP、SMTP、IP、ICMP、TCP、UDP 等

主要用于互联网和局域网

IPX/SPX

IPX、NPC、SPX

主要用于个人计算机局域网

AEP、ADP、DDP

苹果现有产品互联

ISO在制定标准化OSI模型之前,充分讨论了网络架构相关问题,最终提出了OSI参考模型作为通信协议设计指标。 该模型将通信协议中必要的功能分为7层。 通过这 7 层,更复杂的协议被简化。

图1-5

在OSI标准模型中,各层协议接收其下层提供的特定服务,并负责向上层提供服务。 上层协议和下层协议之间通常存在开放的接口,同一层之间交互所遵守的协议称为协议。

OSI 标准模型

上图只是简单介绍了各层之间的通信规范以及上层与下层之间的通信规范。 它没有介绍具体的网络协议分层。 事实上,OSI标准模型将复杂的协议组织并划分为易于理解的协议。 共7层。如下图

图1-6

互联网的通信协议都对应7层中的某一层。 通过这个,我们可以了解协议在整个网络模型中的作用。 总体来说,各层的主要功能如下

图1-7

TCP/IP协议族

TCP/IP协议是我们程序员接触最多的协议。 事实上,TCP/IP也被称为TCP/IP协议簇。 它并不特指简单的TCP和IP协议,而是容纳许多网络。 协议。

OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。但是这显然有些复杂,所以在TCP/ IP协议,它们被简化为四个级别

图1-8

与OSI七层网络协议的主要区别如下:

我们的主要研究对象是TCP/IP的四层协议。

下面我就和大家说说TCP/IP协议簇中的具体协议。

IP协议

IP是英文 ,位于网络层。 IP协议是整个TCP/IP协议族的核心,也是互联网的基础。 IP可以向传输层提供数据分发,也可以组装数据供传输层使用。 它将多个网络连接成互联网,可以提高网络的可扩展性,实现大规模网络互连。 二是分割顶层网络与底层网络的耦合关系。

ICMP协议

ICMP 协议是一种消息控制协议。 英文中,ICMP协议主要用于在IP主机和路由器之间传输控制消息。 ICMP是网络层的协议。 当IP无法访问目标,IP路由器无法按照当前的传输速率转发数据包时,就会自动发送ICMP报文。 从这个角度来看,ICMP协议可以看作是错误检测和报告。 该机制允许我们检查网络状态并确保连接的准确性。

ARP协议

ARP协议是地址解析协议,英文是 ,它可以根据IP地址获取物理地址。 当主机发送信息时,它会向本地网络上的所有主机广播包含目标IP的ARP请求,并接受返回消息以确定物理地址。 收到报文后的物理地址和IP地址会在ARP中缓存一段时间,下次查询可以直接从ARP中查询。

TCP协议

TCP 是传输控制协议。 用英文来说,它是一种面向连接的、可靠的、基于字节流的传输协议。 TCP协议位于传输层。 TCP协议是TCP/IP协议族中的核心协议。 它最大的特点是提供可靠的数据传输。 TCP的主要特点是慢启动、拥塞控制、快速重传和恢复。

UDP协议

UDP协议是User ,英文User,UDP也是传输层协议。 与TCP相比,UDP提供了不可靠的数据传送,也就是说UDP协议不保证数据是否到达目标节点。 消息发送后,无法知道它是否安全完整地到达。 UDP 是一种无连接协议。 源端和终端在传输数据之前不需要建立连接。 不需要检查和修改数据报,也不需要等待对方的响应。 可能会出现丢包、重复、乱序等情况。 但UDP比TCP协议具有更好的实时性和更高的工作效率。

FTP协议

FTP协议是文件传输协议,英文File,应用层协议之一,是TCP/IP协议的重要组成部分。 FTP协议分为两部分:FTP服务器和FTP客户端。 FTP服务器用于存储文件,FTP客户端用于访问FTP服务器上的文件。 FTP传输效率比较高,因此FTP一般用于传输大文件。

DNS协议

DNS协议是域名解析协议,英文Name。 它也是应用层协议之一。 DNS 协议是一个分布式数据库系统,它将域名和 IP 相互映射。 DNS缓存可以加速对网络资源的访问。

SMTP协议

SMTP协议是邮件传输协议,英文Mail,应用层协议之一。 SMTP主要用作邮件发送和接收协议。 SMTP服务器是遵循SMTP协议的发送邮件服务器,用于发送或中继用户发送的电子邮件。

SLIP协议

SLIP协议是指 Line ,英文为Line,是一种点对点的链路层通信协议,支持串行通信线路上的TCP/IP协议。

PPP协议

PPP协议是一种点对点协议,英文Point to Point,是一种链路层协议,设计用于在平等单元之间传输数据包。 设计目的主要用于建立点对点连接,通过拨号或专线发送数据,使其成为各种主机、网桥和路由器之间简单连接的通用解决方案。

网络核心概念传输方法

网络可以按照传输方式来分类,一般分为面向连接的网络和面向无连接的网络。

分组交换

在互联网应用中,各个终端系统可以相互交换信息。 该信息也称为消息()。 一条消息是一个综合的消息。 它可以包括您想要的任何内容,例如文本、数据、电子消息等。电子邮件、音频、视频等。为了将消息从源目的地发送到终端系统,长消息需要被分成小消息数据块。 这个数据块称为()。 换句话说,消息是由小块组成的。 团体构成。 在端系统和目的地之间,每个数据包必须通过通信链路和数据包交换机。 数据包在端系统之间交互需要一定的时间。 如果两端系统之间需要交互的报文为L比特,链路的传输速率为R比特/秒,则传输时间为L/R秒。

一端系统需要通过交换机向另一端系统发送数据包。 当报文到达交换机后,交换机能否直接转发? 不,开关没那么无私。 您需要我为您转发包裹吗? 好的,首先你需要给我整个数据包数据,然后我会考虑发送给你。 这就是存储转发传输。

存储转发传输

下面是存储转发传输的示意图。

图1-9

从图1-9可以看出,组1、组2、组3发送给交换机,交换机已经收到组1发送的比特,此时交换机会直接转发吗? 答案是否定的,交换机会先在本地缓存你的数据包。 这就像考试作弊一样。 一个优等生必须通过差生A把答案传给差生B。差生A收到答案后,是否可以直接把试卷传给他呢? 同学A说,等我抄完答案(保存功能)再给你试卷。 当然,非常有资格的A同学会有另外的发言权。

排队延迟和丢包

什么? 您认为一台交换机只能连接到一个通信链路吗? 那你就完全错了。 这是一个开关。 怎么可能只有一个通讯链路呢?

所以我相信你一定能想到这个问题。 当多个端系统同时向交换机发送数据包时,必然存在顺序到达和排队问题。 事实上,对于每个连接的链路,分组交换机都会有一个输出缓冲区()和与之对应的输出队列(队列),用于存储路由器准备发送到每个链路的分组。 如果到达的数据包发现路由器正在接收其他数据包,则新到达的数据包将在输出队列中排队。 等待数据包转发所花费的时间也称为排队延迟。 如上所述,分组交换机在转发分组时存在等待。 这种等待称为存储转发延迟,所以我们现在知道有两种延迟,但实际上有四种延迟。 这些延迟不是静态的,而是根据网络拥塞程度而变化。

由于队列有容量限制,当多个链路同时发送数据包而输出缓冲区无法接受多余的数据包时,这些数据包就会丢失。 这种情况称为丢包。 该数据包将被丢弃。

下图展示了一个简单的数据包交换网络。

图1-10

下面是一个场景模拟:假设主机 A 和主机 B 想要向主机 E 发送数据包,主机 A 和主机 B 首先将数据包通过 100 Mbps 以太网链路发送到第一台路由器,然后路由器将这些数据包定向到15 Mbps 链路。 如果数据包到达路由器的速率(转换为每秒比特数)在短时间内超过 15 Mbps,则路由器将发生拥塞,直到数据包在传输到链路之前在链路输出缓冲区中排队。 例如,如果主机A和主机B同时连续发送5个数据包,则这些数据包中的大部分将在队列中等待一段时间。 事实上,这种情况与许多普通情况完全相同,例如当我们在银行柜员排队或在收费站前等待时。

转发表和路由器选择协议

正如我们刚才所说,路由器连接到多条通信线路。 如果每个通信链路同时发送数据包,则可能会导致排队和丢包。 然后数据包就在队列中等待发送。 现在我有一个问题。 您将队列中的数据包发送到哪里? 这是什么机制决定的?

换个角度思考问题,路由的作用是什么? 在不同的终端系统中存储和转发数据包。 在互联网中,每个终端系统都会有一个IP地址。 当主机发送数据包时,主机的IP地址将被添加到数据包的标头中。 每个路由器都会有一个转发表。 当数据包到达路由器时,路由器会检查数据包中的部分目的地址,并用目的地址查找转发表,找到合适的传输链路,然后将其映射到输出链路。 用于转发的路由。

那么问题来了,路由器内部的转发表是如何设置的呢? 我们稍后会详细讨论,但这里只是一个粗略的概述。 路由器内部还有一个路由协议,用于自动设置转发表。

电路交换

在计算机网络中,通过网络链路和路由传输数据的另一种方式是电路交换()。 电路交换与分组交换的不同之处在于资源预留。 这是什么意思?

即分组交换不保留端系统之间每个交互分组的缓存和链路传输速率,因此每次都会排队等待传输; 而电路交换会保留这个信息。 举个简单的例子来帮助大家理解:这就好像有两家餐厅,A餐厅需要预约,B餐厅不需要预约。 对于可以预订的餐厅A,我们必须提前联系它,但是当我们到达目的地时,我们可以立即入座并选择菜肴。 对于不需要预订的餐厅,你可能不需要提前联系他们,但到达目的地时你必须承担排队的风险。

下图显示了电路交换网络

图1-11

在此网络中,4 个链路用于 4 个电路交换机。 每个链路都有 4 个电路,因此每个链路可以支持 4 个并行链路。 每台主机都直接连接到交换机,当两台主机需要通信时,网络会在两台主机之间创建专用的端到端链路。

分组交换和电路交换的比较

分组交换的支持者经常说分组交换不适合实时服务,因为它的端到端延迟是不可预测的。 分组交换的支持者认为分组交换比电路交换提供更好的带宽共享; 它比电路交换更简单、更高效且实施成本更低。 但目前的趋势更倾向于分组交换。

分组交换网络的延迟、丢包和吞吐量

互联网可以被看作是为终端系统上运行的分布式应用程序提供服务的基础设施。 我们希望计算机网络中任意两端系统之间的数据传输不会造成数据丢失。 这是一个极高的目标,在实践中很难实现。 因此,在实践中需要限制端系统之间的吞吐量来控制数据丢失。 如果端系统之间引入延迟,则不能保证不会发生数据包丢失。 那么让我们从三个层面来看待计算机网络:延迟、丢包和吞吐量。

数据包交换延迟

计算机网络中的数据包从主机(源)开始,通过一系列路由器传输,并在另一端系统结束其旅程。 在整个传输过程中,数据包会涉及四个主要延迟:节点处理延迟(节点延迟)、排队延迟(延迟)、传输延迟(总节点延迟)和传播延迟(延迟)。 这四个延迟的总和就是总节点延迟。

如果用dproc dpop分别表示处理延迟、排队延迟、传输延迟和传播延迟,则节点的总延迟由以下公式确定:= dproc + + + dpop。

延迟类型

下面是一个典型的延迟分布图。 让我们从图中分析不同的延迟类型。

图1-12

数据包通过通信链路从端系统传输到路由器 A。 路由器 A 检查数据包标头以映射适当的传输链路并将数据包发送到该链路。 只有当链路上没有其他数据包正在传输并且没有其他数据包在该数据包前面排队时,该数据包才能在该链路上自由传输。 如果链路当前繁忙或者有其他数据包在该数据包前面排队,则新到达的数据包将被添加到队列中。 下面我们分别讨论这四种类型的延迟。

节点处理延迟

节点处理延迟分为两部分。 第一部分是路由器检查数据包的头信息; 第二部分是决定将数据包传输到哪个通信链路所需的时间。 一般来说,高速网络的节点处理延迟在微秒量级或更小。 处理延迟完成后,数据包将被发送到路由器的转发队列。

排队延迟

在队列转发过程中,报文需要在队列中等待传输,等待报文传输的时间称为排队时延。 排队延迟的长度取决于在该数据包之前到达队列的数据包的数量。 如果队列为空且当前没有报文在传输,则报文的排队时延为0。如果网络处于高流量时期,链路上传输的报文较多,则报文的排队时延会变大。被延长。 实际的排队延迟也可以达到微秒级。

传输延迟

队列是路由器使用的主要数据结构。 排队的特点是先进先出,进入食堂的先拿到饭菜。 传输延迟是每单位时间传输比特所需的理论时间。 例如,报文长度为L位,R表示路由器A到路由器B的传输速率,则传输时延为L/R。 这是将所有数据包推送到链路上所需的时间。 在这种情况下,传输延迟通常在毫秒到微秒范围内。

传播延迟

从链路起点传播到路由器B所需的时间就是传播时延。 该位以链路的传播速率传播。 该传播速率取决于链路的物理介质(双绞线、同轴电缆、光纤)。 如果使用公式计算,传播延迟等于两个路由器之间的距离/传播速率。 即传播速率为d/s,其中d是路由器A和路由器B之间的距离,s是链路的传播速率。

传输延迟和传播延迟的比较

计算机网络中的传输延迟和传播延迟有时很难区分。 我在这里解释一下。 传输延迟是路由器推出数据包所需的时间。 它是数据包长度和链路传输速率的函数,与两个路由器不同。 它们之间的距离无关紧要。 传播延迟是一个比特从一个路由器传播到另一个路由器所需的时间。 它是两个路由器之间距离的倒数,与数据包长度和链路传输速率无关。 从公式中还可以看出,传输时延为L/R,即数据包的长度/路由器之间的传输速率。 传播延迟的公式为d/s,即路由器之间的距离/传播速率。

排队延迟

在这四种延迟中,人们最感兴趣的延迟可能是排队延迟。 与其他三个延迟(dproc、dpop)不同,不同数据包的排队延迟可能不同。 例如,如果10个数据包同时到达队列,则第一个到达队列的数据包将没有排队延迟,而最后到达的数据包将经历最大排队延迟(需要等待其他9个延迟)待传送)。

那么如何描述排队时延呢? 或许可以从三个方面来考虑:流量到达队列的速率、链路的传输速率、到达流量的性质。 即无论流量是周期性到来还是突然到来,如果用之前提到的a来表示报文到达队列的平均速率(a的单位是/秒,即pkt/s),则R代表传输速率,因此可以从队列中得到比特率(以bps为单位,即b/s比特单位)推导出来。 假设所有数据包均由 L 位组成,则到达队列的平均位速率为 La bps。 则La/R之比称为交通强度( )。 如果La/R > 1,则比特到达队列的平均速率超过比特从队列传输出的速率,在这种情况下队列趋于无限增长。 因此,在设计系统时,流动强度不能大于1。

现在考虑La/R