TCP 必须使用 IP 吗?

TCP 必须使用 IP 吗?

是真的吗TCP是 TCP/IP 的缩写,它们的意思相同吗?

有可能吗TCP建立在另一个协议之上知识产权

答案1

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 来说,要重新组装打印在小纸片上的数据报(无论是由鸽子携带还是由更智能的鸦科网络携带),有效载荷的大小必须写在标准位置。或者,适配层可以启发式地确定段大小。鸟类携带者规范的主机堆栈实现中使用的光学扫描仪(RFC 1149) 包含了这样一个启发式适配层,但它仍然没有记录。

答案2

我还没有读完整本请求函数但第 1.4 节中的语言似乎表明可以使用任何“较低级别”的协议。

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

答案3

互联网协议套件

TCP 不是 TCP/IP 的缩写。

TCP/IP 通常被用作“互联网协议套件“并且通常还包括其他标准协议。当人们说 TCP/IP 时,他们通常包括 UDP over IP(其中使用 UDP 代替 TCP)和许多其他协议,例如 ARP、ICMP、DNS、SNMP 和其他应用层协议。

应用层

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

传输层

TCP 和 UDP 是 Internet 协议套件中使用的两种传输层协议。如果还有其他协议,我不知道,而且其他协议也只代表极小一部分专业用途。 已定义了其他传输层协议 - 它们的使用可能仅占全球 IP 流量的一小部分

网络层

虽然理论上可以使用 TCP 而不是 IP,但实际上 TCP 总是通过 IP(互联网协议)使用。IP 在网络之间移动数据包(将 IP 视为将多个 LAN 连接在一起)

网络接口层

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

IP 层图 来自 bootdiscs.net


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

在使用互联网协议套件的网络上,唯一被广泛使用的传输层协议是 TCP 和 UDP。

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

另请注意 Google 的QUIC 协议常见问题解答

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

(我强调)

答案4

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

据我所知,没有人创建任何其他第 3 层协议来与其上的 TCP 协同工作,但没有理由你不能这样做。

相关内容