TCP必须使用IP吗?

Pac*_*ier 115 tcp ip

这是真的,TCP是短期的TCP / IP和他们的意思是一回事吗?

TCP是否有可能建立在除IP之外的另一个协议之上?

Law*_*ceC 91

我还没有阅读整个RFC,但 1.4 节中的语言似乎表明可以使用任何“低级”协议。

TCP 和低层协议之间的接口基本上是未指定的,只是假设存在一种机制,使两个层可以异步地相互传递信息。通常,人们期望较低级别的协议指定此接口。TCP 旨在在互连网络的非常通用的环境中工作。本文档中假定的较低级别的协议是 Internet 协议。

  • IP 本身已经通过许多网络技术实现,甚至是[信鸽](http://en.wikipedia.org/wiki/IP_over_Avian_Carriers)。这些鸟实际上是用来演示 ICMP Ping 数据包的传送,有 55% 的数据包丢失(显然是由于操作员错误)和一到两个小时的延迟。在此之上运行 TCP 是可能的,但是连接设置需要很多鸟...... (102认同)
  • 防火墙上必须有一些非常大的孔才能让鸟类携带者通过。 (41认同)
  • 关于 RBERTEIG 的评论;考虑携带迷你 SDHC 卡的信鸽。延迟和吞吐量之间存在差异。:-) (22认同)
  • @MichaelKjörling 这不会与 RFC 1149 互操作:“IP 数据报打印在一小卷纸上”。 (17认同)
  • @kmkaplan 除非数据报打印在 SDHC 卡的标签上。这就像几部电影中的陈词滥调——“哦,它实际上在硬盘上!” (4认同)
  • @all 创意思维在所有盒子之外:-) (3认同)
  • @RBerteig 另一方面,通过鸟类载体的 FTP _可能_是实用的。 (3认同)
  • 关于带宽与延迟:在过去,我们曾经观察到很难超过一卡车 9 轨磁带卷轴提供的带宽。今天,带有 SDHC 卡的单个信封使这一数字黯然失色许多数量级。但在这两种情况下,延迟都非常高。另一方面,特技表明快递员(甚至鸟)和卡可以轻松击败大多数网络连接以进行大文件传输。 (3认同)
  • 一两家公司在 IPX 完全消亡之前就开发了 TCP over IPX 驱动程序。(或者它是基于 IP 的 SPX?)除了头部位的细节之外,IPX 基本上与 IP 相同,所以没有理由它不能工作。您可以轻松定义 PCP(明信片协议),利用 USPS 地址和基于背面的任何内容进行分段,并在其上运行 TCP。 (2认同)

Red*_*ick 79

互联网协议套件

TCP 不是 TCP/IP 的缩写。

TCP/IP 通常用作“ Internet 协议套件”的简写方式,并且通常包括其他标准协议。当人们说 TCP/IP 时,他们通常包括 IP 上的 UDP(其中使用 UDP 代替 TCP)和许多其他协议,例如 ARP、ICMP、DNS、SNMP 和其他应用层协议。

应用层

应用程序使用应用层协议,例如 SMTP(用于电子邮件)。它们位于两个传输层协议之一 - TCP 和 UDP。少数应用层协议将使用 UDP 和 TCP 中的一种或两种,但大多数仅与一种传输层协议一起使用。

传输层

TCP 和 UDP 是 Internet 协议套件中使用的两种传输层协议。如果还有其他我不知道的人,任何其他人都将代表一个非常小的专业用途。 已经定义了其他传输层协议 - 它们的使用可能仅占全球 IP 流量的一小部分

网络层

虽然理论上可能在 IP 之外的其他东西上使用 TCP,但实际上 TCP 总是在 IP 上使用 - 互联网协议。IP 在网络之间移动数据包(将 IP 视为将多个 LAN 连接在一起)

网络接口层

以太网只是承载 TCP/IP 的最流行的低级链路层协议系列,但 TCP/IP 也广泛用于 ATM 和其他协议。

IP 层图来自 bootdiscs.net


附录 1 - 关于传输层协议的说明

在使用 Internet 协议套件的网络上大量使用的唯一传输层协议是 TCP 和 UDP。

†只是为了好玩,我测量了我的(非常)小型 LAN 上的流量,其中包括 NetBIOS(通过 TCP)、SSH、Rsync、电子邮件、软件更新、DNS、一般的 Windows 盒聊天和一些其他类型的流量。Wirshark 协议层次统计

另请注意 Google常见问题解答中有关其 QUIC 协议的声明

你为什么不建立一个全新的协议,而不是使用 UDP?今天互联网上的中间框通常会阻止流量,除非是 TCP 或 UDP 流量

(我的重点)


tyl*_*erl 34

TCP/IP 之所以成为如此常见的缩写(而不是说 UDP/IP 或 SCTP/IP)是因为这两个协议是一起设计的,在 Vint Cerf 和 Bob Kahn 的原始论文中,这两个概念是组合成一个单一的协议。此后不久,它们被划分为提供路由的 IP 和提供流量控制、多路复用、错误检测等的 TCP。 直到六年后,才引入 UDP 以提供“轻量级”多路复用层,而没有其他部分与 TCP 相关的开销。

尽管如此,TCP 和 IP 是两个独立的东西,并且完全和有意地独立。TCP 不需要 IP 的事实很明显,因为 TCP 可以在 IPv4 和 IPv6 上未经修改地运行,这是两种完全不同的协议。

通过一些工作,您可以创建一个具有相同目的的 IP 竞争协议,但它可能必须包含大多数(如果不是全部)相同的功能,并且最终可能看起来很像 IP。您可能会争辩说,IP 的扩展(例如 IPSec)实际上是替代的第 3 层协议,所以就这样了。


Bob*_*coe 25

TCP 和 IP(v4 和 v6)绝对是可分离的,一个并不意味着另一个,正如 TCP over IPX(RFC 1791)的例子所证明的那样。

然而,TCP 不能仅仅建立在任何网络协议之上。两个原因:

  1. TCP 报头中没有段大小字段(只有数据偏移量,它给出了 TCP 报头的大小)。因此,TCP 将仅与包含足够信息来计算 TCP 段的大小(即,低层协议的有效载荷大小)的低层协议一起工作。该假设适用于 IPv4 ( RFC 791 )、IPv6 ( RFC 2460 ) 和 IPX ( RFC 1791 )。但一般情况下并非如此,例如,不适用于鸟类携带者(RFC 1149)(参见注释 a)。
  2. TCP 仅设计用于在无连接网络协议上工作。TCP 在某些面向连接的网络协议(例如,ATM 恒定比特率服务)上无法有效地工作,因为这两种速率控制功能会导致非常差或不可预测的性能。另一个退化的例子是 TCP 隧道上的 TCP。

TCP 规范RFC 793不是决定这个问题的好来源,因为它承认它与较低层的接口在很大程度上未指定。

注 a) 为了让 TCP 重新组装打印在小纸片上的数据报(无论是由鸽子携带还是由更智能的 Corvid 网络携带),有效载荷的大小必须写入标准位置。或者,适配层可以启发式地确定段大小。用于实现鸟类载体规范 ( RFC 1149 )的主机堆栈的光学扫描仪包括这样一个启发式适应层,但它仍然没有记录。

  • 技术上准确(据我所知),彻底,有参考资料支持,清晰,轻松。我会尽可能地给它一些赞成票。 (4认同)
  • 禽类的例子清晰而有趣! (2认同)

Mar*_*eed 22

您可以用其他东西替换 IP。事实上,这正是您在使用 TCP over IPv6 时所做的。TCP 仍然是 TCP,但 IP 是 v6 而不是 v4。

AFAIK,没有人创建了任何其他第 3 层协议来与它们之上的 TCP 一起工作,但是没有理由您不能。


Ton*_*E75 9

TCP 和 IP 就像面包上的黄油。

您可以配对其他任何与任一协议,但是这两部作品是如此的互补性,这只是一个美味可靠的方式传输数据,并与互联网数据填满肚子。它为管子加油,以允许其他干食品和数据握手等支持这种配对。但绝不是排他性的。

Q 但是,TCP 不能建立在 IP 之外的其他协议之上吗?

A 是的,这是可能的。我喜欢没有 IP 的 TCP 的 Morse Code 和 Pigeon 示例。


Syn*_*ech 6

我一直听说 TCP 是 TCP/IP 的缩写

实际上它代表Internet 协议上的传输控制协议

他们的意思是一样的。

那不正确。

首先,以太网是控制实际硬件部件如何工作的低级硬件系统。

接下来,将IP视为电话系统或交通标志。它提供将系统两点连接在一起的基本控制。

另一方面,TCP更像是一个消息系统或交通控制人员,它将消息/汽车引导到正确的点。

总而言之,TCP/IP 提供了一个系统,可以在任意两个连接的设备之间可靠地传输数据。

对于 Internet,当您想要发送或接收数据时,系统的 IP 部分是控制与电线(或无线电波)进行实际硬件连接的部分。系统的 TCP 部分是负责获取数据并对其进行分解、发送、重新组装接收到的数据以及检查数据并在必要时重新发送的软件。

无数可用的类比和技术细节的解释,尤其是视频形式。DifferenceBetween.net 有一篇关于这个确切主题的特别好的文章。

但是,TCP 是不是不可能建立在 IP 之外的另一个协议之上?

是的,您确实可以创建一个使用 IP 的TCP 替代系统。有关详细信息,请查看Internet 协议套件

  • 说 IP 提供了将两个点“连接”在一起的说法有点误导。IP 提供了一种从一台机器向另一台机器发送离散的单独*数据包*的方法;每个数据包都独立于所有其他数据包。TCP 提供了一种连续*连接* 的错觉,它实际上是通过 IP 发送的数据包序列。 (13认同)
  • 这个答案有很多错误,它完全错过了这个问题。首先,以太网只是一种用于承载 IP 的链路层协议。还有很多其他的,IP 不知道或不关心其中的任何一个。IP与硬件无关;它是网络之间的路由层,位于用于连接它们的硬件之上。问题的关键是您是否可以在 IP 以外的其他东西上使用 TCP,而不是您是否可以使用使用 IP 的 TCP 以外的其他东西(请参阅 UDP 的示例)。 (9认同)
  • IP 也与硬件或物理信号无关。这由较低级别的技术处理,例如以太网。 (4认同)
  • @synetech,问题是*不*“可以在IP上使用其他东西”。它是“TCP 可以用于其他用途吗”,即 * 没有 * IP。 (3认同)
  • `> !TCP 可以通过 IP 的事实并不一定意味着 TCP 可以通过 !IP 嗯?` psusi 试图通过使用“!”来变得聪明。作为“非运算符”。他的评论应该被理解为:“不是 TCP 的东西可以通过 IP 的事实并不一定意味着 TCP 可以通过不是 IP 的东西”。它是参考您答案的最后一句话而制作的,该句子表明存在“TCP 替代系统”。然而,表明存在 TCP 的替代方案并不一定意味着或暗示存在 IP 的替代方案。 (2认同)

Sur*_*ani 5

TCP 是第 4 层协议。它以有序流的形式提供有保障的数据从计算机上的一个进程到同一/另一台计算机上的另一个进程的传输。

IP 是第 3 层协议。它提供从一个主机到另一个主机的运输。

只要有一个协议可以进行主机到主机的数据传输,TCP 就可以工作。

因此,TCP 可以通过任何协议实现,但是,我们只制作了 IP。IP 很简单,而且很有效。

不需要另一个第 3 层协议。

  • IPv6 和 IPv4 是*相似的*,上层具有*相似的接口*,但肯定**不是相同的协议**,并且在功能上也不是完全等效的。 (3认同)