描述:一系列协议所组成的网络分层模型
为什么要分层?
因为网络不稳定,传输大数量的内容可能会失败,导致多次重传,这个时候有了分块传输,把一个数据分成几个小块来传输,如果某些没传过去就重传,这样就快捷多了,然后就有了分层模型:
TCP/IP四层模型:两方应用层都是HTTP,甲方把的应用层http数据传给TCP,TCP负责把数据分块,然后传给网络层的ip,ip负责来寻址,然后真正实现是通过数据链路层link来沟通双端的,数据发给乙方的LINK,LINK把数据网上传,到达TCP的时候会把数据拼接起来,传给应用层,如果有的没传到则通知甲方再重新传一下没传到的部分,甲方的TCP会重新发送未发到的部分,如果是用的TCP就不会重传了,TCP一般应用在游戏里,比如你游戏里卡了,队友不知道,过了一会你不卡了,当时的数据也没必要再传了,因为你需要的是实时的数据,当时的数据没有意义
具体分层:
TCP链接
什么是连接?
TCP有很多包,这些包需要拼接,并需要双方确认,这个过程需要建立起来,建立了这个确认过程就叫做建立了链接
TCP的链接建立和关闭?
链接:三次握手
链接关闭:四次挥手
链接关闭:客户端先给服务端发消息:我就不给你发消息了啊,服务端:OK,可是服务端可能还有消息要发给客户端,所以服务端也要发一下:我也不给你发消息了, 客户端回:okok
长链接
概念:强制不让关闭的链接
为什么要长连接?
比如用手机,手机的网络都是运营商的局域网,所以手机处于网关中,如果跟外界沟通的话需要开端口,跟外界进行沟通,这时运营商为了节省资源,把在一段时间不发消息的端口直接关闭,这就造成了问题,如果发微信的话隔了很长时间才发或接受,就接收不到了,或者接受服务器推送的新闻接收不到了,等等,所以需要长连接
长连接实现方式:心跳
举个例子:比如我会隔一秒发送一个消息,来导致端口一致使用,来使端口不被占用
HTTPS
(HTTP over SSL)
HTTPS不是一个单独的协议,而是http简历在ssl的基础上
定义:在HTTP之下增加一个安全层,用于保证HTTP的加密传输,(在传输的时候加密,在接收的时候解密,安全层位于应用层和传输层之间)
本质:在客户端和服务端之间协商出一套对称密钥,每次发消息之前加密,接收到消息解密,达到内容的加密传输
为什么不直接用非对称加密?
非对称加密太慢,不过是用非对称加密来生成密钥,在用对称加密来加密解密
HTTPS链接
流程:
1.客户端请求建立TSL链接,这一步通过TCP
2.服务器发回证书
3.客户端验证服务器证书
4.客户端信任服务器后,和服务器协商对称密钥
5.使用对称密钥开始通信