TCP/IP协议族

描述:一系列协议所组成的网络分层模型

为什么要分层?

因为网络不稳定,传输大数量的内容可能会失败,导致多次重传,这个时候有了分块传输,把一个数据分成几个小块来传输,如果某些没传过去就重传,这样就快捷多了,然后就有了分层模型:

TCP/IP协议族

TCP/IP四层模型:两方应用层都是HTTP,甲方把的应用层http数据传给TCP,TCP负责把数据分块,然后传给网络层的ip,ip负责来寻址,然后真正实现是通过数据链路层link来沟通双端的,数据发给乙方的LINK,LINK把数据网上传,到达TCP的时候会把数据拼接起来,传给应用层,如果有的没传到则通知甲方再重新传一下没传到的部分,甲方的TCP会重新发送未发到的部分,如果是用的TCP就不会重传了,TCP一般应用在游戏里,比如你游戏里卡了,队友不知道,过了一会你不卡了,当时的数据也没必要再传了,因为你需要的是实时的数据,当时的数据没有意义

 

 

具体分层:

TCP/IP协议族

 

TCP链接

什么是连接?

TCP有很多包,这些包需要拼接,并需要双方确认,这个过程需要建立起来,建立了这个确认过程就叫做建立了链接

 

TCP的链接建立和关闭?

链接:三次握手

TCP/IP协议族

 

链接关闭:四次挥手

TCP/IP协议族

链接关闭:客户端先给服务端发消息:我就不给你发消息了啊,服务端:OK,可是服务端可能还有消息要发给客户端,所以服务端也要发一下:我也不给你发消息了, 客户端回:okok

 

 

 

 

                长链接

概念:强制不让关闭的链接

 

为什么要长连接?

比如用手机,手机的网络都是运营商的局域网,所以手机处于网关中,如果跟外界沟通的话需要开端口,跟外界进行沟通,这时运营商为了节省资源,把在一段时间不发消息的端口直接关闭,这就造成了问题,如果发微信的话隔了很长时间才发或接受,就接收不到了,或者接受服务器推送的新闻接收不到了,等等,所以需要长连接

 

 

 长连接实现方式:心跳

  举个例子:比如我会隔一秒发送一个消息,来导致端口一致使用,来使端口不被占用

 

 

 

HTTPS

(HTTP over SSL)

HTTPS不是一个单独的协议,而是http简历在ssl的基础上

 

定义:在HTTP之下增加一个安全层,用于保证HTTP的加密传输,(在传输的时候加密,在接收的时候解密,安全层位于应用层和传输层之间)

 

本质:在客户端和服务端之间协商出一套对称**,每次发消息之前加密,接收到消息解密,达到内容的加密传输

 

为什么不直接用非对称加密?

非对称加密太慢,不过是用非对称加密来生成**,在用对称加密来加密解密

 

 

 

HTTPS链接

流程:

1.客户端请求建立TSL链接,这一步通过TCP

2.服务器发回证书

3.客户端验证服务器证书

4.客户端信任服务器后,和服务器协商对称**

5.使用对称**开始通信