应用层:主机中正在运行的程序间的通信和交互规则。
运输层:向两台主机进程之间的通信提供通用的数据传输服务。通用:多种应用程序使用同一个运输层服务。
复用:多个应用程序可以同时使用下面运输层的服务
分用:运输层把收到的信息分别交付上面应用层中的相应进程
传输控制协议 TCP :面向连接,可靠数据传输服务
用户数据协议UDP:无连接,不可靠
网络层:选择合适的网间路由和交换节点,确保数据及时传送,把运输层产生的报文段封装成分组和包进行传送;
数据链路层:两个相邻节点传送数据时,将网络层交下来的ip数据报组装成帧,每一帧包括数据和控制信息(同步信息,地址信息,差错控制)
物理层:屏蔽具体传输介质和物理设备的差异。
TCP 三次握手:建立可靠通信信道,双方确认自己与对方发送与接收都是正常的
回传SYN(同步序列编号)是为了建立并确认从服务端到客户端到通信
TCP 四次挥手:一方发送FIN进入半关闭状态,一段时间当另一方再无数据发送,完全关闭TCP连接
TCP协议如何保证可靠传输:
- 应用数据被分割成 TCP 认为最适合发送的数据块。
- TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
- 校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
- TCP 的接收端会丢弃重复的数据。
- 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)
- 拥塞控制: 当网络拥塞时,减少数据的发送。
- ARQ协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
- 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
短连接:每进行一次HTTP操作,就建立一次连接
长连接:保持连接特性。响应头:Connection:keep-alive
Session:服务端记录用户状态(redis)
Cookie:客户端(浏览器)保持用户状态(token)