为了传递数据,在网络中有几个特别重要的抽象。最终提供服务或者享受服务的设备,称为终端(Terminal),或者端系统(End System),有时候简单称为主机(Host)。比如说:电脑、手机、冰箱、汽车等,我们都可以看作是一个主机(Host)。
然后,我们可以把网络传输分成两类,
一类是端到端(Host-to-Host)的能力,由 TCP/IP 协议群提供。
还有一类是广播的能力,是一对多、多对多的能力,可以看作是端到端(Host-to-Host)能力的延伸
你可以思考一下,一个北京的主机(Host)向一个深圳的主机(Host)发送消息。那么,中间会穿越大量的网络节点,这些节点可以是路由器、交换机、基站等。在发送消息的过程中,可能跨越很多网络、通过很多边缘,也可能会通过不同的网络提供商提供的网络……而且,传输过程中,可能会使用不同材质的通信链路(Communication Link),比如同轴电缆、双绞线、光纤,或者通过无线传输的 WI-FI、卫星等。
网络基础设施往往不能一次性传输太大的数据量,因此通常会将数据分片传输。比如传输一个 MP3,我们会将 MP3 内容切分成很多个组,每个组也称作一个封包,英文都是 Packet。这样,如果一个封包损坏,只需要重发损坏的封包,而不需要重发所有数据。你可以类比下中文的活字印刷技术
另一方面,网络中两点间的路径非常多,如果一条路径阻塞了,部分封包可以考虑走其他路径。发送端将数据拆分成封包(Packet),封包在网络中遇到岔路,由交换器和路由器节点决定走向,图 9 中是对封包交换技术的一个演示。