TCP与UDP

1.TCP协议

1.1介绍

  • TCP是Transmission Control Protocol缩写,中文名为传输控制协议.
  • TCP协议是一种面向连接的,可靠的,基于字节流的传输层通信协议(流式传输).
  • TCP协议是点对点的,并且效率不如UDP.
  • TCP协议为了保证不发生丢包,会给每个包一个编号,接收端会按编号进行接收,成功收到后会向发送端发送一个相应的确认.如果发送端在一定时间内没有接收到这个确认消息,就认为这个包已经丢失并重新发送.
  • TCP适合连续传输大量数据,对可靠性要求较高的应用环境,例如下载,邮件等.

1.2三次握手,四次挥手

三次握手:

四次挥手:

1.3黏包

黏包现象是由于TCP协议的算法和特点导致的,目的在于可以将本来分两条发的消息合并成一条发送,减少了一次回执的过程

黏包现象的成因在于发送端或接受端:

  1. 发送端因为合包机制,如果连续send数据,很容易黏包.
  2. 接收端因为网络延迟等原因,导致TCP是无边界的流式传输,接收不及时,导致两个包同时被缓存.

但是对于应用层来说,黏包并不是好的现象,黏包会使我们发送的多条消息变成一条消息,从而造成一直阻塞.

解决方法:

在连续传输时,可以通过自定义协议,每次发送一个固定长度的报头,来通知接收端接下来接收数据的长度.

2.UDP

  • UDP是User Datagram Protocol的缩写,中文名为用户数据报协议.
  • UDP协议是一种面向传输的,不可靠的,高效率的传输层通信协议.
  • UDP传输数据不需要建立连接,占用的资源比TCP要少.
  • UDP适合一次性只传输少量数据,对可靠性要求不高的应用环境.例如社交类软件(qq,微信等).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值