OSI开放式互联参考模型
第一层:物理层–接口上原始比特流传输
第二层:数据链路层–物理寻址,并将原始比特流变为逻辑传输线路
第三层:网络层–控制子网的运行,如路由选择
第四层:传输层–接收上一层数据,交给网络层
第五层:会话层–不同机器上的用户之间建立及管理会话
第六层:表示层–信息的语法语义以及它们的关联,如加密解密
第七层:应用层
OSI的"实现":TCP/IP
TCP的三次握手
传输控制协议TCP简介:
面向连接的、可靠的、基于字节流的传输层通信层协议
将应用层的数据流分割成报文段并发送给目标节点的TCP层
数据包都有序号,对方收到则发送ACK确认,未收到则重传
使用校验和来检验数据在传输过程中是否有误
三次握手:
客户端从CLOSED状态发送报文给服务器,SYN=1,seq=x;服务器从CLOSED接收报文,进入LISTEN监听状态,同意则返回一个ACK包,seq=x+1;客户机处于SYN-SENT状态,接收到ACK包后进入ESTAB-LISHED状态,再向服务器发送ACK包,请求ip地址
TCP的四次挥手
"挥手"是为了终止连接
客户端发送连接释放请求,服务器接收并返回收到报文,客户端进入等待状态,而后服务器发送释放报文,客户端收到后发送收到报文,则服务器与客户机终止连接
TCP与UDP的区别
UDP的特点:
面向非连接
不维护连接状态个字节
支持同时向多个客户端传输相同的消息(可用于网络播报)
数据包报头只有8个字节
吞吐量只受限于数据生成速率、传输速率以及机器性能
不需要维持复杂的链接状态表
面向报文,不对应用程序提交的报文进行拆分或合并
区别:
面向连接VS无连接
可靠性VS不可靠行
有序性VS无序性
速度(TCP)<速度(UDP)
TCP的滑动窗口
RTT:发送一个数据包到收到对应的ACK,所花费的时间
RTO:重传时间间隔 (从发送请求包开始算,收到ACK则失效)