计算机网络—— IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?

前言   

    今天在知乎上看到这样一个问题,觉得比较有意思,IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?对于这个问题,今天就来谈一谈我的一些想法吧。

 

打个比方

    我们都知道IP协议是无连接的,传输也是不可靠的。那为什么还要设计这个看似“鸡肋”的协议呢?

    在开始分析之前,我用一个比方先来解释下。我们应该都寄过信件吧,邮局的信件分为两种:平信和挂号信平信很像无连接的IP数据报文。每一封平信会通过不同的站点,同时平信也不保证不会丢失信件。如果发生平信丢失的情况,邮局是不负责任的。想要保证不丢失就要去寄挂号信。但是大家不会都采用挂号信的方式邮寄,因为平信也不是那么容易的丢失,或者是这封平信丢了也不会有太大的损失。况且挂号信的费用较高,可能还要排队寄信。总之,尽管寄平信可能会丢失,但还是有很多人会用这种方式。因为便宜,方便呀。

    我想看了上面的比方之后应该对这个问题的答案有所感悟了。

 

历史

要想真正的回答这个问题,还得从1969年开始说起。

    自从有了电话,电话的作为就是通信。传统的电信网的最主要的用途是进行电话通信。普通的电话机很简单,没有什么智能,因此电信公司就不得不把电信网设计得非常好,这种电信网可以保证用户通话时的通信质量。这点对使用非常简单的电话机的用户则是非常方便的。但电信公司为了建设能够确保传输质量的电信网则付出了巨大的代价

    数据的传送显然必须是非常可靠的。1969年美国国防部在设计 ARPANET 时有一个很重要的讨论内容就是:“谁应当负责数据传输的可靠性?”这时出现了两种对立的意见。一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明了人们可以将网络设计得相当可靠)。

但另一种意见则坚决主张由用户的主机负责数据传输的可靠性。这里最重要的理由是:这样可以使计算机网络便宜、灵活,同时还可以满足军事上的各种特殊的需求。

 

下面用一个简单例子来说明这一问题。

设主机 A 通过因特网向主机 B 传送文件(如下图所示)。怎样才能实现文件数据的可靠传输呢?

 

按照电信网的思路,就是设法(这需要花费相当多的钱)将不可靠的因特网做成为可靠的因特网。但设计计算机网络的人采用另外一种思路,即设法实现端到端的可靠传输。

 

    提出这种思路的人认为,计算机网络和电信网的一个重大区别就是终端设备的性能差别很大。电信网的终端是非常简单的、没有什么智能的电话机。因此电信网的不可靠必然会严重地影响人们利用电话的通信。但计算机网络的终端是有很多智能的主机。这样就使得计算机网络和电信网有两个重要区别。第一,即使传送数据的因特网有一些缺陷(如造成比特差错或分组丢失),但具有很多智能的终端主机仍然有办法实现可靠的数据传输(例如,能够及时发现差错并通知发送方重传刚才出错的数据)。第二,即使网络可以实现 100% 地无差错传输,端到端的数据传输仍然有可能出现差错。

 

分析

为了说明这点,我们可以用一个简单例子来说明这个问题。这就是主机 A 向主机 B 传送一个文件的情况。

文件是通过一个文件系统存储在主机 A 的硬盘中。主机 B 也有一个文件系统,用来接收和存储从 A 发送过来的文件。应用层使用的应用程序现在就是文件传送程序,这个程序一部分在主机 A 运行,另一部分在主机 B 运行。

现在讨论文件传送的大致步骤:

(1)主机 A 的文件传送程序调用文件系统将文件从硬盘中读出。然后文件系统将文件传递给文件传送程序。

(2)主机 A 请求数据通信系统将文件传送到主机 B。这里包括使用一些通信协议和将数据文件划分为适当大小的分组。

(3)通信网络将这些数据分组逐个传送给主机 B。

(4)在主机 B,数据通信协议将收到的数据传递给文件传送应用程序在主机 B 运行的那一部分。

(5)在主机 B,文件传送程序请求主机 B 的文件系统将收到的数据写到主机 B 的硬盘中。

 

在以上的几个步骤中,都存在使数据受到损伤的一些因素。例如:

(1)虽然文件原来是正确写在主机 A 的硬盘上,但在读出后就可能出现差错(如在磁盘存储系统中的硬件出现了故障)。

(2)文件系统、文件传送程序或数据通信系统的软件在对文件中的数据进行缓存或复制的过程中都有可能出现故障。

(3)主机 A 或 B 的硬件处理机或存储器在主机 A 或 B 进行数据缓存或复制的过程中也有可能出现故障。

(4)通信系统在传输数据分组时有可能产生检测不出来的比特差错或甚至丢失某些分组。

(5)主机 A 或 B 都有可能在进行数据处理的过程中突然崩溃。

    由此可看出,即使对于这样一个简单的文件传送任务,仅仅使通信网络非常可靠并不能保证文件从主机 A 硬盘到主机 B 硬盘的传送是可靠的。也就是说,花费很多的钱将通信网络做成为非常可靠的,对传送计算机数据来说是得不偿失的。既然现在的终端设备有智能,就应当把网络设计得简单些,而让具有智能的终端来完成“使传输变得可靠”的任务。

    于是,计算机网络的设计者采用了一种策略,这就是“端到端的可靠传输”。更具体些,就是在运输层使用面向连接的 TCP 协议,它可保证端到端的可靠传输。只要主机 B 的 TCP 发现了数据的传输有差错,就告诉主机 A 将出现差错的那部分数据重传,直到这部分数据正确传送到主机 B 为止。而 TCP 发现不了数据有差错的概率是很小的。采用这样的建网策略,既可以使网络部分价格便宜和灵活可靠,又能够保证端到端的可靠传输。

    这样,我们可以这样想像,将因特网的范围稍微扩大一些,即扩大到主机中的运输层。由于运输层使用了 TCP 协议,使得端到端的数据传输成为可靠的,因此这样扩大了范围的因特网就成为可靠的网络。

    因此,说“因特网提供的数据传输是不可靠的”或“因特网提供的数据传输是可靠的”这两种说法都可以在文献中找到,问题是是怎样界定因特网的范围。如果说因特网提供的数据传输是不可靠的,那么这里的因特网指的是不包括主机在内的网络(仅有下三层)。说因特网提供的数据传输是可靠的,就表明因特网的范围已经扩大到主机的运输层。

再回到通过邮局寄平信的例子。当我们寄出一封平信后,可以等待收信人的确认(通过他的回信)。如果隔了一些日子还没有收到回信,我们可以将该信件再寄一次。这就是将“端到端的可靠传输”的原理用于寄信的例子,也就是我们常说的TCP。而寄平信的方式就是UDP。

文章素材来源于《计算机网络》

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 互联网使用的IP协议是无连接的,主要有以下几个原因: 1. 网络效率:互联网是一个全球性的网络,数据传输的规模非常庞大。如果每个数据包都需要在发送和接收之间建立连接,会引入更多的延迟和额外的网络负载。无连接的协议可以减少这种开销,提高网络效率。 2. 网络灵活性:互联网是一个由各种不同类型的网络设备和协议组成的复杂网络。不同的网络设备可能使用不同的传输协议,而无连接IP协议可以与各种不同类型的设备兼容,提供更大的灵活性。 3. 数据包传输的不可靠性并非不可以解决:虽然互联网的无连接传输可能会带来一定的不可靠性,但是这个问题可以通过使用其他网络协议来解决。例如,为了增强可靠性,可以在IP协议之上使用传输控制协议(TCP)。TCP协议提供可靠的数据传输,通过序号、确认和重传机制来确保数据的完整性和可靠性。 4. 成本考虑:电话网的可靠传输是通过专门的网络设备和信号传输线路来实现的,而这种基础设施的建设和维护成本非常高昂。相比之下,互联网无连接传输的方式更为经济实惠,降低了网络建设和维护的成本。 总体而言,互联网使用无连接IP协议是出于网络效率、灵活性和成本考虑。同时,通过其他协议的补充,例如TCP协议,可以解决无连接传输的不可靠性问题。 ### 回答2: 互联网使用的IP协议是无连接的,主要有以下几个原因: 1. 网络拓扑复杂:互联网是一个庞大而分布式的网络系统,由许多不同的网络组成。在这样的网络架构中,保持每个数据包的状态信息是十分困难甚至不可能的。与之相比,电话网的拓扑结构相对简单,数据传输路径较为稳定,因此更容易实现可靠的传输。 2. 数据传输量大:互联网每天传输的数据量非常庞大,数以亿计的数据包需要传输。如果每个数据包都要维护状态信息,将会占用大量的存储空间和带宽资源,并且增加传输时延。相比之下,无连接的传输方式可以减少传输的开销和时延。 3. 网络延迟和丢包:互联网的传输受到了网络延迟和数据包丢失的影响。由于网络中的链路质量和拥塞情况的不断变化,无法保证数据包的时序和完整性。为了保证可靠的传输,传输协议需要采用错误检测、重传和流量控制机制,这不仅会增加系统的复杂性,也会增加网络的负担。 综上所述,互联网采用无连接的传输方式是为了适应复杂的网络环境和大规模数据传输的需求。虽然这种方式可能会带来一定的不可靠性,但通过其他协议和机制,可以在应用层或传输层上实现一定程度的可靠性保证。 ### 回答3: 互联网使用的IP协议是无连接的,即在传输数据时不需要在发送和接收之间建立持久的连接。 首先,将互联网传输设计可靠的会增加传输的复杂性和延迟。电话网采用的是电路交换技术,需要在通话之前建立连接,并且保持连接的稳定性,以确保通话的质量和可靠性。这种方式对于实时通信是必要的,但在互联网的场景下,用户通常更注重传输的速度和效率。 其次,互联网是一个开放、分布式的网络,包含着数以亿计的设备和用户。如果将互联网传输设计成像电话网那样是可靠的,需要大量的资源来维护连接和传输的稳定性。这将给网络的管理和维护带来极大的困难,并且需要投入庞大的资源来实现。 另外,互联网的设计初衷是为了实现计算机之间的数据交换,不仅仅是人与人之间的通话。因此,传输的速度和效率对于互联网更为关键。无连接IP协议可以将数据分割成较小的数据包进行传输,并且能够根据网络的拥塞情况和路由动态调整传输路径,从而提高数据的传输效率和速度。 综上所述,将互联网传输设计成像电话网那样是可靠的虽然可以提供更可靠的传输,但会增加网络的复杂性和延迟,对资源需求更大,并且不符合互联网传输的初衷。无连接IP协议可以在保证一定可靠性的情况下,提供更高效的数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值