总结¶
Wrap Up
有说法认为,构建互联网解决了迄今为止世界上最复杂的工程问题。互联网的设计和工程始于50多年前,在过去的50年中不断改进和演变,并将继续发展。
如今,互联网连接着数十亿台计算机,使用数千个路由器和链路级连接。互联网如此复杂,以至于从未完全运行。互联网不在于“完美”,而在于适应问题、故障、错误、数据丢失及其他许多不可预见的问题。互联网的设计旨在灵活应对遇到的各种问题。
为了构建一个可大规模运行的整体解决方案,将互联网工程问题分解为四个独特的层次是非常重要的:
-
链路/物理层包括在单个“跳跃”中移动数据所需的所有复杂工程,无论是无线 WiFi、有线以太网、光纤还是卫星连接。
-
互联协议(IP)层负责如何在一系列跳跃中路由数据,以快速有效地从数十亿个源计算机中的任何一个传输到任意一个目的地计算机。IP 层会根据网络负载、链路性能或网络故障动态调整和重新路由数据。虽然 IP 层高度可靠且速度快,但有时会丢失或甚至丢弃数据。IP 层并不负责确保整个网络的可靠性,只是尽力移动数据。
-
传输层补偿 IP 层或链路层中的任何缺陷。传输层确保丢失的数据包被重传,乱序到达的数据包在传递给接收应用程序之前被重新排序。传输层还在发送和接收应用程序之间充当流量控制,以确保在网络快速且链路未过载时快速传输数据,并在使用较慢或负载较重的链路时减缓数据传输。传输层中的数据流动和速率限制使得即使在网络负载较重时,互联网也能继续顺畅运行。
-
其他三个层使应用层的网络使用变得非常简单。应用程序只需几行代码即可建立网络连接并在该连接上发送/接收数据。通过简化网络的使用,应用程序可以专注于解决终端用户需要解决的问题。由于应用程序能够以新的和不同的方式轻松使用网络,我们看到了众多高度创新的应用程序的出现,而这些应用程序在互联网协议上无需任何更改。
如果不将互联网的工程和构建问题分解为这四个独特的层次,构建和部署不断改进的网络版本将更加困难。如果每个应用程序都需要完全了解使用互联网所需的所有复杂细节,那么这将极大限制我们今天所拥有的网络应用程序的丰富性和多样性。
令人惊讶的是,在过去的50年中构建互联网所取得的成就。但在某种程度上,我们仅仅是开始了构建网络应用程序的工程之旅。我们可以想象一个每个电灯开关、灯泡、冰箱、桌子、汽车、道路、飞行无人机和椅子都有互联网地址并且彼此想要通信的互联网。将需要解决新的工程问题,甚至可能需要使四层网络模型演变以应对这些新挑战。
正如杰出的工程师设计和演变网络协议,以便从数百台网络连接的计算机发展到数十亿台网络连接的计算机,我们现在和未来的工程师也一定会解决我们在网络演变以连接万亿台计算机时面临的问题和挑战。
It has been said that building the Internet solved the world's most complex engineering problem to date. The design and engineering of the Internet started well over 50 years ago. It has been continuously improving and evolving over the past 50 years and will continue to evolve in the future.
The Internet now connects billions of computers using many thousands of routers and link-level connections. The Internet is so complex that it is never fully operational, The Internet is less about being "perfect" and more about adapting to problems, outages, errors, lost data, and many other unforeseen problems. The Internet is designed to be flexible and adapt to whatever problems are encountered.
In order to build an overall solution that works at scale, it was important to break the Internet engineering problems down into four distinct layers:
-
The Link/Physical layer includes all of the complex engineering required to move data across a single "hop", whether the hop is a wireless WiFi, wired Ethernet, fiber optic, or satellite connection.
-
The Internetwork Protocol (IP) layer is how data is routed across a series of hops to get quickly and efficiently from one of a billion source computers to any of a billion destination computers. The IP layer dynamically adjusts and reroutes data based on network load, link performance, or network outages. While the IP layer is highly reliable and fast, at times it loses or even throws away data. The IP layer is not responsible for insuring the overall reliability of the network. It just moves the data the best that it can.
-
The Transport layer compensates for any imperfections in the IP or Link layers. The Transport layer makes sure that any lost packets are retransmitted and packets that arrive out of order are put back into order before being passed on to the receiving application. The Transport layer also acts as flow control between the sending and receiving applications to make sure that data is moved quickly when the network is fast and the links are not overloaded, and to slow the transfer of data when using slower or heavily loaded links. The data flow and rate limitation in the Transport layer allow the Internet to continue to function smoothly even when it is heavily loaded.
-
The other three layers make the use of the network very simple for the Application Layer. An application can make a network connection and send/receive data on that connection with just a few lines of code. By making the use of the network simple, applications can focus on solving the end-user problems they need to solve. Because it is so easy for applications to use the network in new and different ways, we have seen the emergence of a wide range of highly innovative applications that work without any changes required to the Internet protocols.
Without breaking the problem of engineering and building the Internet into these four distinct layers, it would be far more difficult to build and deploy ever-improving versions of the network. And if every single application needed to be fully aware of all of the complex details required to use the Internet, it would greatly limit the richness and diversity of the networked applications that we have today.
It is amazing to realize what has been accomplished in building the Internet over the past 50 years. But in a way, we have only just begun the engineering journey of building networked applications. It does not take much to imagine an Internet where every light switch, lightbulb, refrigerator, table, automobile, roadway, flying drone, and chair has an Internet address and they all want to communicate with one another. New engineering issues will have to be solved, and perhaps even the four-layer network model will need to evolve to meet these new engineering challenges.
But just like brilliant engineers designed and evolved network protocols to move from hundreds of network-connected computers to billions of network-connected computers, our present and future engineers will certainly solve the problems and challenges we will face as the network evolves to connect trillions of computers.
创建日期: 2024年9月19日