EMC 院士和早期网络设计的先驱之一Radia Perlman在伦敦 QCon 上发表了主题演讲,探讨了网络协议和技术如何发展成为今天的互联网。在她的演讲中,她回答了一些常见问题(例如,为什么我们需要以太网和IP )并探讨了如果今天设计这些东西会是什么样子。
Perlman 首先表示她并不总是同意专业人士谈论网络协议的方式,记住一切部署方式的细节,例如:TCP/IP 以其惊人的完美从天而降到平板电脑上,其他任何东西都不存在她认为标准更像是移动的目标,而不是稳定的参考点。此外,制定标准的专家组有时更像体育迷,而不是专业技术人员。
接下来,Perlman 深入研究了网络层。即使现实世界的网络实现细分为附加层、组合层或在查看其他层的标头时执行层冲突,她还是建议对演讲进行以下分类:
第 1 层。物理层 - 发送比特信号的地方。
第 2 层。将在第 1 层发出信号的位构造成数据包:标记数据包的开始和结束,可能是校验和。数据包被发送到邻居。
第 3 层:交换机将数据包从一条链路转发到另一条链路,以通过网络将数据包从源传送到目的地。
因此,第 2 层仅与邻居通信,第 3 层从一个链路转发到另一个链路。
即使以太网最初是为多台机器通过同一条线路进行通信(第 2 层连接)而设计的,它最终也可以在第 3 层工作。在第 3 层,以太网数据包的转发只有一个额外的字段——跳数——用于跟踪数据包被转发的次数。最初使用的协议是载波侦听多路访问/冲突检测 ( CSMA/CD )。简而言之:为网络实施的常识 - 如果有人在说话,请不要说话,如果发生这种情况,请根据随机选择的时间重新开始对话。这适用于位于建筑物内的网络,但不适用于整个互联网。仅查看 60% 的流量就意味着碰撞太多。
在与认为不同以太网之间不需要通信的行业代表意见不一致后,她被指派建造一个“魔盒”,使以太网能够相互通信。还提供了一个重要的约束:Perlman 不能修改尾注或以太网数据包。她开发的基本功能概念是一座桥梁:
网桥只是混杂地听,并在“以太”空闲时转发到其他端口[...]这需要没有循环的拓扑,生成树算法的最初目的是拥有一个可扩展的、高效的算法(无论节点数量如何,它都需要相同数量的内存)来识别无环路拓扑。由于设计算法所需的时间远远少于她手头的时间,而且她的主管正在休假且无法访问,她写了一个“算法押韵”作为她研究论文的摘要。
根据 Perlman 的说法,她编写的路由算法应该适用于任何底层协议,而不仅仅是 IP 或DECNet。当以太网发挥作用时,她需要将节点集成到一个网络中。如果她考虑了算法中的每个节点组合,她最终会得到 n*n 的节点组合,这会大大增加查找数据库的大小。相反,她考虑了“伪节点”方法,这意味着只有 n+1 个节点,如下图所示。
Perlman 认为无连接模式网络协议是 IP 和以太网的改进替代方案,后者需要零配置。
世界采用 IP 作为第 3 层的标准,即使它是配置密集型的。例如,从路由器的一侧移动到另一侧意味着第 3 层地址必须更改。用她的方式来说:
人们说:感谢上帝赐予 IP,没有它,就没有互联网。这就像说:感谢英语,没有它就没有现代文明。英语不是一门伟大的语言,但它可以胜任。
即使坚持使用 IP 而不是 CLNP 是“最糟糕的决定”,但还是有一些好处:
动态主机配置协议- 发明是为了弥补 IP 需要配置的事实。除了允许动态地址分配外,DHCP 还增强了隐私性,并且 MAC 地址不会在第 3 层对话中四处漫游。
网络地址转换 (NAT) - 它通过在专用网络中重复使用相同地址并将它们转换为公共互联网上的全球地址来弥补 IP 地址不足这一事实。
Perlman 在结束她高度个性化和有趣的演讲时说:
互联网上根本没有安全保障
为了捍卫她的强硬声明,她回顾了互联网上安全通信的理论,包括 DNS 和密码学如何发挥作用以确保端到端安全。之后,她带着一件相关的个人轶事回到了现在。她分享了自己在网上更新驾照时如何被骗。尽管她了解基本的网络理论甚至写了其中的一部分,但还是发生了这种情况。
使用流行的网络搜索引擎,Perlman 从她的许可证更新查询中选择了第一个搜索结果,这是一个指向恶意网站的广告。没有意识到这一点,她输入了她的银行详细信息进行付款,而犯罪分子试图对她的账户进行多次收费。最终,她的银行阻止了欺诈交易。尽管如此,这仍然提醒我们,尽管现代互联网的基础是在考虑安全的情况下构建的,但它仍然容易受到犯罪利用。
关于作者,奥林匹克流行乐,具有从财务软件到 IAM 的实时应用程序经验的软件工程师。热衷于工具和优化开发流程。在 mindit.io 担任首席技术官,这是一个为各个行业提供价值的软件爱好者社区。特兰西瓦尼亚 JUG 协调员 - 我很乐意做更多这样的事情。Voxxed Romania 和 Devoxx UK 的项目委员会成员,505updates.com 网络安全和开源主题的会议发言人和播客。JavaAdventCalendar 的主要编辑和麻烦制造者。