信息时代,有大量的信息产生、传输和消费。之所以人们认为是信息时代,主要原因之一,是因为信息的传输速度大大增加。历史上,信息的远程传输方式由步行、快马、飞鸽,发展到书信邮局、电报、传真,BB机留言、大哥大、小灵通、诺基亚,再到PC端应用程序的即时通信,和现在应用广泛的移动端通信方式。现代的通信方式几乎离不开互联网,那么互联网到底是如何通信的?
信息从发送端到接收端,再到发送端,完成一次完整的通信。
互联网的信息从物理层面来说是,通过线缆、光纤、无线电磁波等作为传输介质来传输的。
而传输的具体信息的载体,可以认为是光和电。通过光电效应,传输方和信息的接收方,看到的是高低电平,也就是在机器看来,高电平是1,低电平是0,所以大家会说,机器只会看0和1.
经过各种算法,逻辑与或非,算术加减乘除取余,等各种算法。机器帮人类完成了人类语言转换成0和1,然后0和1再转换成人类语言,实现了数据的互联网传输。也就是数据的产生、传输和消费。
那么针对整个传输的过程,如果没有标准,那么各个相关的网络科技公司,所制造的产品,使用的通信方式是不同的,也就是A公司的产品可以和自家公司的产品进行网络通信,而和B公司生产的通信产品无法通信。这样就形成了车同轨,书同文,同一度量衡之前的状态。
这种无标准的通信方式,使得互联网通信方式不能更好的服务人们的需求。
所以国际化标准组织ISO,没错,就是那个ISO9001的ISO,制定了一个OSI七层模型,分别包含
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
将数据通过网络传输的方式进行了一个分层的结构划分,让人们对网络通信的认识变得有层次了,清晰了,这个标准得到了很多网络通信公司的认可,所以大家按照这个分层的模型制造通信产品。
在这个的同时,每一层大家制定了很多协议,比如应用层的http协议和https协议,我们通过浏览器访问互联网网站,基本都是通过这个协议的。也就是说,网站的数据是按照这个协议生产的,浏览器或app帮助客户端来访问这些数据,也用的是同样的协议,也就是说,大家的沟通都是用的同一种语言,然后才能互相识别信息,形成有效的沟通。
再比如传输层的TCP协议,这里就有了一个端后的概念,比如一个网站它的数据访问协议是用的https(端口号443),而用户通过http协议(端口号80)去访问的话,是访问不了的。所以客户端也需要用https协议去访问这个网站。之所以普通用户感觉不到这一点,是因为浏览器已经帮用户把这一步做了,用户只需要输入域名或者关键字,浏览器就能跳转到响应的网站。
这里的TCP协议就用到了一个三次握手和四次挥手的通信方式,目的是建立可靠的连接,保证数据的完整性。
与TCP通信协议对应的一个是UDP协议,UDP协议讲究的是传输的快,有一点点不够精确也是可以接受的,典型的应用场景就是网络游戏,比如大家可能会听到游戏掉帧等表达。就是因为大量的数据要传输,而且使用的是UDP协议,有一点点不精确,对于游戏的超大量传输数据来说,影响也相对有限。
这里说说TCP协议,TCP属于互联网通信模型传输层的通信协议,TCP类型数据的封装格式中,有一段控制位,控制位这里有6个标志位,每个标志位表示一个控制功能。
三次握手:
第一次:A主机给B主机发送一个数据包,里面SYN标志位=1(表示请求建立连接)
第二次:B主机接收到A主机的数据包,然后给A主机回应一个数据包,里面ACK标志位=1(表示同意建立连接) + SYN标志位=1 (表示请求建立连接)
第三次:A主机给B主机回应一个数据包,里面ACK标志位=1(表示同意建立连接)
等于双方你客气一次,等对方同意。
我也客气一次,等对方同意。
是不是有点古代电视剧里面当官的,相互寒暄的感觉。对,就是这样。
SYN是英文syncronization的缩写,什么意思,就是同步的意思。
ACK是英文acknowledged的缩写,就是嗯,我知道了,行。
四次挥手:
第一次:A给B发送一个数据包,里面FIN标志位=1(表示请求断开连接)
第二次:B给A发送一个数据包,里面ACK标志位=1(表示同意断开连接)
第三次:B给A发送一个数据包,里面FIN标志位=1(表示请求断开连接)
第四次:A给B发送一个数据包,里面ACK标志位=1(表示同意断开连接)
FIN应该是英文finish的缩写。意思是结束,完成。
以上就是传输层网络通信协议TCP的三次握手和四次挥手的通信方式。