Answers:
TCP和IP(v4和v6)绝对是可分离的,并且一个并不暗示另一个,正如通过IPX的TCP(RFC 1791)所证明的那样。
但是,TCP不能仅通过任何网络协议来构建。两个原因:
TCP规范RFC 793并不是决定此问题的好方法,因为它承认它与较低层的接口在很大程度上未指定。
注意a)为了使TCP重组打印在小纸片上的数据报(无论是鸽子携带的还是更智能的corvid网络),有效载荷的大小必须写在标准位置。替代地,适配层可以启发式地确定段大小。在实施禽鸟规范(RFC 1149)的主机堆栈中使用的光学扫描仪包括这样的启发式适配层,但仍未记录。
我还没有阅读完整的RFC,但是1.4节中的语言似乎暗示可以使用任何“较低级别”的协议。
除了假定存在一种机制,TCP和较低层协议之间的接口可以使两个层之间彼此异步传递信息外,该接口基本上未指定。通常,人们期望较低级别的协议来指定此接口。TCP被设计为在非常通用的互连网络环境中工作。在本文档中始终采用的较低层协议是Internet协议。
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(Internet协议)上使用。IP在网络之间移动数据包(将IP视为将多个LAN连接在一起)
以太网只是承载TCP / IP的最流行的低级链路层协议系列,但是TCP / IP也广泛用于ATM和其他协议。
在使用Internet协议套件的网络上,重要使用的唯一传输层协议是TCP和UDP。
†仅出于娱乐目的,我测量了(非常)小型LAN上的流量,其中包括NetBIOS(通过TCP),SSH,Rsync,电子邮件,软件更新,DNS,常规Windows-box chatter和其他几种流量。
还请注意Google 常见问题中关于QUIC协议的这一声明
为什么不建立一个全新的协议,而不是使用UDP?如今,Internet上的中间盒通常会阻止流量,除非它是TCP或UDP流量
(我的重点)
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层协议,因此您可以使用。
TCP和IP就像面包上的黄油。
您可以配对其他任何与任一协议的工作原理,但是这两个是如此互补的,这只是一个美味可靠的方式来传输数据,并与互联网数据填满肚子。它给管子上油,以允许其他干食品和数据握手一样支持这种配对。但这绝不是排他的。
问: 但是,TCP是否不能建立在IP之外的其他协议之上?
答 :可以。我喜欢没有IP的TCP的摩尔斯电码和Pigeon示例。
我一直听说TCP是TCP / IP的缩写
实际上,它代表基于Internet协议的传输控制协议
他们是同一回事。
那是不对的。
首先,以太网是控制实际硬件各部分功能的底层硬件系统。
接下来,将IP视为电话系统或交通标志。它提供了将系统两点连接在一起的基本控制。
另一方面,TCP更像是一个消息传递系统或流量控制人员,它将消息/汽车定向到正确的位置。
总而言之,TCP / IP提供了一个可靠的与任何两个连接的设备之间来回传输数据的系统。
在Internet上,当您要发送或接收数据时,系统的IP部分是控制通过电线(或无线波)进行实际硬件连接的部分。系统的TCP部分是负责获取数据并将其分解,发送,重组接收到的数据,检查数据并在必要时重新发送的软件。
有无数类比的解释和可用的技术细节,尤其是视频形式。DifferenceBetween.net对此主题特别擅长。
但是,TCP是否不能建立在IP以外的其他协议之上?
是的,您确实可以为使用IP的TCP创建备用系统。看一下Internet Protocol Suite,了解一些详细信息。
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?
psusi试图通过使用“!”来变得聪明。作为“非运算符”。他的评论应理解为:“非TCP的东西可以通过IP传输的事实并不一定意味着TCP可以通过非IP的东西传输”。它是参考您的答案的最后一句做出的,该句表明存在“ TCP的备用系统”。但是,表明存在TCP替代方案并不一定意味着也不暗示IP替代方案存在。
TCP是第4层协议。它以有序流的形式保证从计算机上的一个进程到同一台计算机上的另一个进程的数据传输。
IP是第3层协议。它提供从一个主机到另一主机的传输。
只要存在可以在主机之间进行数据传输的协议,TCP就会起作用。
因此,TCP可以通过任何协议来实现,但是,我们仅制造了IP。IP很简单并且可以工作。
无需其他第3层协议。
在设计网络时,必须为每个“层”(您可以想象为不同的抽象级别)选择一组协议(基本上是机器之间的通信规则集),网络设计师喜欢创建和组合协议时请牢记)。
更简单的版本:协议就像我们在其中放入消息的盒子。这些盒子的大小不同,您可以将消息放入最小的盒子中,然后再将最小的盒子放到更大的盒子中,依此类推。选择一组协议就是针对每种“信息”。
TCP和IP是用于两个独立层的协议,它们是一起创建的并且可以一起使用。但可以很好地与其他协议一起使用。这种情况经常发生:您可以将IP与非TCP协议一起使用,也可以将TCP与非IP协议一起使用。
TCP / IP之所以如此通用的缩写,是因为这两个协议共同构成了Internet的基础,并且是Internet成功的关键。
(TCP和IP确实具有专门为它们一起工作而设计的一些功能,这是纯粹主义者经常抱怨的事情,但是它们并不能真正阻止您将它们与其他协议接口)
但是,TCP是否不能建立在IP以外的其他协议之上?
除了经典的TCP / IPv4和TCP / IPv6,还设计了一些实验协议,例如:
作为Net100和Probe努力改善高速,高延迟网络上的批量传输的一部分,我们已经开发了可在UDP上运行的可调试TCP版本。UDP类似TCP的传输充当测试线束,用于在类似于TReno的应用程序级别上尝试类似TCP的控件。
而iproxy:运行在UDP TCP服务,这是更有趣:
iproxy包括一个客户端代理和一个服务器端代理,它允许任意TCP / IP服务在广播,多播或单播UDP上运行。最初,它被认为是一种使用基于Web的界面配置在LAN上未获得IP地址的服务器的方法。
因此,您将看到:单播UDP上的TCP,甚至广播或多播UDP上的TCP!
AFAIK仅TCP / IPv4和TCP / IPv6享有大型部署。
答案是不!例如,有一个旧的RFC描述了IPX上的TCP:http : //tools.ietf.org/html/rfc1791
对于那些记忆力较弱的人,IPX是Novell Netware协议:http : //en.wikipedia.org/wiki/Internetwork_Packet_Exchange
在支持基本数据报传输的各种协议之上的TCP实现已经存在。实际上,甚至不需要指定路由信息(TCP甚至不需要IP,仅具有隐式接收者的serila链接就足够了)。
因此,您已经在UDP之上实现了TCP(优势:您可以在“服务器”端使用单个端口,也可以将其嵌入现有的连接上,以传输各种多路复用通道)。仅IP级别提供路由,但TCP不需要路由。重要的是,MTU的概念是由较低层提供的。
这允许协议绕过NAT遍历的限制,而无需为特定主机注册UPnP转换端口。它允许对MTU和MSS进行独立调整,并针对每个客户端而不是每个中间共享路由器进行了优化。其他路由协议也是可能的(包括通过多播和广播网络的传递)。您可以选择安全机制。
一个使用示例是Gogo6.net(它使用TCP over UDP v4的重新实现在TCP会话上实现其IPv6传输通道(它可在大多数仍具有IPv4地址且并不总是支持UPnP方法的家庭接入路由器上工作) ;即使用户未运行,也无需用户使用特定于应用程序的恒定端口号对其进行配置)
其他示例是使用本机的“流式”扩展来封装基于HTTP(或HTTPS)1.1版的TCP。大多数允许通过Internet桥接网络的VPN都将执行相同的操作。网桥甚至可以封装多种协议:以太网,PPP,IPv4和IPv6(仅扩展本地LAN或以太网网段),NetBEUI / LanMan,路由器发现(在桥接网络内),包括原始模式(允许DHCPv4或DHCPv6)桥接网络。之所以使用HTTPS,是因为HTTPS上的封装还允许加密以及用于建立和保护网桥的身份验证,但是不需要通过桥接网络对客户端和服务器进行端到端的身份验证/加密,并且因为路由器针对HTTP进行了高度优化和HTTPS。