Web基础——COOKIE与SESSION的区别
如上表格,区别总结如下:
1)、连接性质不同: TCP是面向有连接,而UDP是面向无连接的。
所谓的面向有连接,通俗讲是指传输数据时,是否需要先建立通讯,确认对方在,并且有空接收数据;
面向无连接,是不管三七二十一,不管对方死活,直接传输数据。
TCP协议通过三次握手建立连接,通过四次挥手断开连接,而UDP没有这个机制。
2)、传输的可靠性不同: TCP可靠,UDP不可靠;
对于TCP,可靠性主要通过如下机制来保证:
A、连接管理:
B、校验和:
C、序列号:
D、确认应答:
F、超时重传:发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据;
G、流量控制:通过滑动窗口机制实现
H、拥塞控制:通过慢开始( slow-start )、拥塞避免( congestion avoidance )、快重传( fast retransmit )和快恢复( fast recovery )
对于UDP,它没有重传等机制,出现丢包是正常的,是协议本身允许的。
PS:所谓的滑动窗口机制:
大概就是接收方可以告诉发送方,当前发送的速率怎么样?让发送方的发送速率不要太快,要让接收方来得及接收。
3)、传输效率不同: TCP的传输效率较低,UDP传输效率较高
因为TCP协议要保证传输的可靠,它要干的活就多,需要消耗更多的时间与空间。
4)、传输对象不同: TCP传输的是字节流,UDP协议传输的是数据报文段。
5)、协议首部大小不同: TCP首部长度为20-60字节。其中,前20字节是固定的,后面部分是根据需要而增加的选项,最大为40字节;UDP首部固定为8字节。
6)、适用场景不同: TCP协议适用于对可靠性要求比较高的场景;UDP协议适用于对传输速度要求比较高的场景,比如当下流行的网络直播,肯定是基于UDP协议传输的。