首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IKE使用UDP而不是TCP?

为什么IKE使用UDP而不是TCP?
EN

Network Engineering用户
提问于 2016-04-18 07:38:54
回答 2查看 3.3K关注 0票数 5

为什么IKE使用UDP,并处理任何重传本身?

(较大的IKE数据包可能会导致UDP碎片,并被一些ISP丢弃:undefined

EN

回答 2

Network Engineering用户

回答已采纳

发布于 2016-04-18 15:31:55

最初,UDP被选择而不是TCP,因为它具有较低的延迟和处理需求。此外,如果ISP遵循IETF标准,这将不是一个问题。有一个运动,增加TCP作为一个替代,并有一个草案RFC (因特网密钥交换草案的tcp传输-ietf-ipsecme-ike-tcp-01),这是过期的。

您所描述的问题实际上存在于两个方面:廉价的消费级设备和不符合IETF标准的ISP,尤其是在实现CGN时。IETF中的许多人对这两种情况都不同情,这就是为什么提议的RFC过期了,而且,我想问题是,当尾巴摇晃狗的时候,这些标准就变得毫无意义: IETF不想仅仅因为供应商和is不遵循其他现有的标准(例如处理碎片)而被欺压到新标准中。

一些设备供应商已经创建了解决方案(例如,由TCP封装的UDP数据包),但这还远远不是通用的或标准化的。

您可以游说或加入IETF来表达您对使用TCP的标准的支持。

票数 5
EN

Network Engineering用户

发布于 2016-04-18 15:45:04

IKE是用来封装其他通信的。如果“其他通信”需要TCP提供的所有L4错误更正,那么“其他通信”应该使用TCP。

这样,IKE/IPsec只负责创建安全传输。不是可靠的。

想象一下,通过IPsec/IKE隧道传输VOIP。VOIP主要(并且有意)使用UDP,但是如果这个VOIP流量通过IPsec隧道,而如果IPsec隧道使用TCP,那么您的呼叫可能会被延迟,而IPsec正在为丢弃的数据包安排重传--从而否定了使用UDP进行VOIP的好处。

换句话说,使用两个独立的函数来处理纠错并没有增加任何好处。如果您的数据流关心错误更正,请使用TCP。如果您的数据流不需要,或者希望管理错误更正本身,请使用UDP。这些UDP或TCP数据包的传输不应与您为数据选择的内容发生干扰或冲突。

唯一不会增加额外纠错的协议是UDP。

另一个例子:如果两个IPsec都使用TCP,而底层数据使用TCP,那么如果一个数据包在传输过程中被丢弃,IPsec函数和TCP函数都会请求重新传输。这不太理想。

票数 4
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/29669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档