TCP/IP是什么?为什么需要?
TCP/IP是什么东西?为什么需要这个东西?
TCP/IP全称Transmission Control Protocol/Internet Protocol,就是传输控制协议/网际协议,说人话就是TCP/IP是很多协议组成的一个协议套件,里面的所有协议都只有一个作用,用于解决一个很简单的问题:让不同电脑之间实现连接。
TCP/IP包含了一整个网络传输协议家族,是网络中的设备互连和传输数据的基础通信架构。至于为什么叫TCP/IP,原因是该协议家族的两个核心协议:TCP和IP是该家族中最早通过的标准。
TCP/IP将通信过程抽象成四个抽象层,这个模型不断发展改良,因此战胜了其他一些网络协议的方案,比如国际标准化组织ISO的OSI模型。
是不是有点绕口,又是ISO又是OSI。ISO(International Organization for Standardization)是制定全世界工商业国际标准的国际标准建立机构,现有164个会员国。而OSI(Open System Interconnection Model)是开放式系统互联模型,是ISO提出的一种概念模型,为了让各种计算机在世界范围内互相连接的网络标准框架
看到这里可能已经开始有点晕了?我来简单说一下,为什么要有这个模型?为什么要有TCP/IP。
一个很重要的原因是电脑与电脑之间的通信涉及的环节太多,一个人比较难甚至说基本不太可能完全精通每个环节的传输情况,因此将传输过程进行有效的分割、模块化之后,每个环节的人只专心负责自己的环节即可保证通信正常进行,且因为长时间接触会很熟悉,还能不断对自己的环节进行迭代更新。
一个简单粗略的例子:一个工厂生产一把手机,一条流水线的工人,有的负责电路板,有的负责屏幕,有的负责外壳,有的负责螺丝,这样一套流程下来,一把手机就组装好了,但是每个工人只需要知道自己的这个环节怎么做就可以了,因为不断做还能有很多经验,知道怎样做才能做的更好。
就是处于这样的原因,才需要抽象模型来知道每一个环节的工作。协议也是如此,那么多协议,都认不全,但是【每个协议只负责一个功能】,这个是一个最基本的原则,这个原则一直指导着这些标准化制定的进程,可称为“初心”。
你要传输文件你只需要稍微研究一下FTP这个协议,如果你要收发邮件你可能要看看IMAP、SMTP、POP3这些协议。这就是每个协议只做一件事,关于这个东西后面可以说一件轶事。
进一步理解TCP/IP
现在应该大概明白TCP/IP是什么了,以及为什么需要,那我们来继续深入看看。
还是这张模型图,我们来看看TCP/IP的抽象模型有四层,分别是应用层、传输层、网络层和数据链路层。很简单的一个理解方法就是,必须先将两台电脑物理连接起来(数据链路层),然后建立网络连接(网络层),基于连接之上可以开始传输数据了(传输层),数据要在电脑上展示出来给用户看(应用层)
我们来看一个简单的场景
电脑A想发一句“你好”给电脑B,如果是用TCP/IP的四层模型来看整个传输过程的话,是这样的
对于上一层传输下来的数据,都会被当做是数据而不管其内部是什么结构,对这个数据加装一下东西在数据前面依次传给下一层,最后转换成二进制数据流,再通过电信号或者光信号(可以表示二进制的0和1)经物理介质传输到电脑B,电脑B接收到逆向操作,先将二进制数据流转回,然后每一次识别首部,拆除后传给上一层,这样层层而上,最后再应用层给应用程序后就能显示出“你好”这个消息了
这就是TCP/IP抽象模型的意义,用于指导通信过程中的每个环节。每一层都会有相应的协议来处理上层或者下层传来的数据。图中的首部内容就是每个协议都不同了,就是用于识别数据包的,比如一个数据包经过网线来到电脑C,这个时候电脑C会把数据包抓起来拆开IP的首部,看看里面的目标IP地址是不是自己所在的IP地址,如果是就拆了首部往上层送,如果不是就丢回让其去到属于他的电脑