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

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

Server Fault用户
提问于 2020-06-23 11:42:04
回答 1查看 1.3K关注 0票数 1

根据IKEv2 RFC 7296,它是一种可靠的协议。

由于UDP是一种数据报(不可靠)协议,IKE在其定义中包括从传输错误中恢复,包括丢包、分组重放和数据包伪造。

此外,它还具有重传定时器(第2.1节)、以消息id (第2.2节)和窗口大小(第2.3节)形式表示的序列号。虽然RFC清楚提到窗口大小的目的不是为了达到拥塞控制。

窗口大小通常是特定实现的(可能是可配置的)属性,与拥塞控制无关(例如,与TCP中的窗口大小不同)。

我的问题是,为什么IKEv2使用UDP,而不是利用TCP呢?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-06-23 13:05:20

一个原因是与IKEv1的向后兼容性。另一个是与NAT遍历(UDP封装,RFC 3948)的兼容性,因为它利用IKE连接创建的现有NAT映射在NAT上传输ESP (通过TCP这样做可能会严重影响性能,参见下文)。

然而,现在可以将TCP封装用于IKEv2和ESP (甚至可以在TLS中进行隧道操作)。此扩展是在RFC 8229中定义的,如果无法通过UDP建立连接(例如,由于防火墙),则作为后备。

正如RFC的第12条中所描述的那样,在使用它时可能会产生一些负面的性能影响(例如TCP中的TCP),所以使用UDP通常是可取的。因为它是一个相对较新的扩展,所以对它的支持还不是很广泛( Linux内核支持它,从5.6开始,它于2020年3月/4月发布)。

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

https://serverfault.com/questions/1022981

复制
相关文章

相似问题

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