OSI参考模型
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
TCP/IP参考模型
网络接口层
网络层
传输层
应用层
Ip协议
网络层协议
TCP/UDP协议
传输层协议,解决数据在网络中如何传输(2进制)
TCP无边界(速度快,但是由于需要建立连接,丢包重传,拥塞,流量控制等机制导致效率低)
客户端分多次发送数据给服务器,若服务器的缓冲区够大,那么服务器端会在客户端发送完之后一次性接收过来,所以是无边界的;
TCP 传输控制协议(面向连接的协议)
面向字节的传输方式
三次握手
A B
syn
(seq=x)
syn+ack
(ack=x+1,seq=y)
ack
(seq=x+1,ack=y+1)
syn(同步信号)
连接建立中syn=1,连接完成后syn=0
四次挥手
A B
fin
(seq=x)
ack
(ack=x+1)
fin
(seq=y)
ack
(ack=y+1)
易被攻击,可靠,但是速度慢
UDP 用户数据包协议(无连接协议)
面向报文的传输方式
较安全,不可靠,但效率高
UDP有边界(速度慢,但由于无连接,无那些复杂的机制导致效率高)
客户端每发送一次,服务器端就会接收一次,也就是说发送多少次就会接收多少次,因此是有边界的。
总结:虽然TCP传输速度快(网络完美的状态),但由于各种机制,实际上的传输速度比UDP慢
视频,音频等可用UDP
文件等可用TCP
Socket
对TCP/UDP协议的封装,为程序员提供一个编程接口
http/https(基于TCP的)
应用层协议,解决如何包装数据(可识别的数据)
持续性(http1.1默认持续性)
浏览器与服务器建立tcp连接后,可用传送多个对象
非持续性(http1.0默认非持续性)
浏览器与服务器建立tcp连接后,只能传送一个对象
流水线:不必等到收到服务器的回应就发送下一个报文。
非流水线:发出一个报文,等到响应,再发下一个报文。类似TCP。
无连接:服务端处理完客户断的请求,并得到客户端的应答后,即断开连接
Keep-Alive用来保持连接,不过Keep-Alive也有自己规定的保持时间
无状态:不对之前传送的信息有记忆性,每次断开连接就要重连
https:SSL+http,对传输的数据进行加密,验证身份,端口号443
Cookie(客户端) Session(服务端)
网友评论