网络编程入门
一. 自然界的通信
网络编程本质上要做的事情就是交流,我们先来分析一下人与人交流,见上图,我们发现人与人的通信是分层结构的,这里以一个人对另一个人说“Hello World!”为例。
(1) 一个人说了“Hello World!”后它就是一个信息,这个是信息首先可以直接说出来,我们也可以使用暗号来代替。这就是说信息可以选择明文或者密文来传输,还可以用不同的加密方法。
(2) 当然我们还可以说”世界,你好!”,这里选择汉语,上文用的是英语,但是表达了同一个意思。这就说明信息可以用不同的编码方式。
(3) 我们可以对某一个人说,我们也可以对着当街的人大喊。这里说明信息总要有一个发送者和接受者,可能有多个接受者。
(4) 然后我们可以直接对别人说,也可以打电话,可以发短信。这说明信息总要有一个传播介质。
二. 计算机的通信
(1)OSI七层模型
说到计算机的通信,自然要说OSI七层模型啦,关于它的详细就不说了,网上一大堆,这里不想重复。
你们发现这就是把我们自然界的通信方式搬过来而已,大家琢磨一下吧。
(2)TCP/IP的四层模型
OSI七层模型是个比较理想的模型,我们的网络应用可能没有每层都用到,但是TCP/IP四层模型是必须都要用到的几层。
三、分层次结构的目的
网络通信的确是个比较复杂的过程,我们将通信分层不同的层次,每一层可以单独分析和设计,这样将复杂的问题给分割成几个更简单点的问题来处理,这样在实际的应用中也更好开发和部署。