我们经常看到或者听到网络协议,那么网络协议到底是什么?
为了说明这个问题,我来举一个常见的例子:
网络信息的传输
你在黑龙江用你的苹果电脑上的通讯软件给朋友发了一条信息,朋友很快收到。然后他用他位于海南三亚的家中台式电脑给你回复了一条信息。
看起来这再平常不过了,但是你仔细想过没有:
你和你朋友用的是不同公司生产的电脑,可能从CPU、主板到网卡都不一样。
你和你朋友用的是不同的操作系统,而且是不同公司的闭源(源代码不开放)操作系统。
虽然都是同一个通讯软件,但是版本不同,不同操作系统的同款软件不能通用。
你和你朋友的网络环境也不相同,他使用有线网,你可能用无线网。(为了提高可读性就不提网络拓扑和网络设备也是不同的)
你和你朋友可能距离4000公里,发送的网络信息可能经历十几个路由器(往最少说),发送的路程中经历了各种情况。(当然我们用户不知道)
原来在网络上传输一条信息就要考虑这么多情况,现在中国网络用户达8亿,我们同时还发送各种图片、视频、音频信息,处理比这个复杂得多的情况。
可是好像网络并没有瘫痪,甚至还很流畅。如此复杂的问题是怎么规划和解决的?
我认为很大部分可以归功于各种网络协议。
网络协议说起来其实很简单:是一种规则和约定,凡是在网络上传输的信息,都要遵守这个规则或者约定,否则就无法在网络上传输。
网络协议设计 OSI模型和TCP/IP模型
而设计这个规则的是一帮搞计算机网络的大聪明(偶尔也犯蠢),他们组织了一些网络标准制定组织(比方说IEEE),然后通过讨论制定出这一套规则,称之为网络协议。
网络协议是用软件写好的,不需要普通人用来操心。操作系统中包含绝大部分网络协议,它会帮助你在极其复杂的网络条件下安全无错误的顺畅地发送接受网络信息。
当然,如果你自己写一套这样的规则出来也不是不行,但是由于你影响力有限,可能只有自己使用。这就失去了网络的意义。
作者,简洁通俗讲解网络知识。