TCP和UDP协议

1 什么是TCP?

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

  • 面向连接。即两个使用TCP的应用(通常是一个客户端和一个服务器)在彼此交换数据包之前,必须先建立一个TCP连接。
  • 可靠的。在一个TCP连接中,仅有两方进行彼此通信,广播和多播不能用TCP。TCP协议的作用是:保证数据通信的完整性和可靠性,防止丢包。

UDP使用三次握手协议建立连接、四次握手断开连接。

三次握手建立连接

1. 客户端发送请求【寻址请求】
2. 服务器端收到报文请求,回应客户端【确认请求】
3. 客户端收到服务器的报文进行回应。【连接请求】

三次握手完成,TCP客户端和服务端成功建立连接,可以传输数据。

四次挥手终止连接

1. 客户端向服务器端发送“断开TCP连接”的报文
2. 服务器收到断开请求,回复报文表示已收到
3. 不会马上断开连接,会等待一会。等到服务器确认数据传输完毕后,再主动发送“我准备好了,可以断开”
4. 客户端回复“断开连接”

服务器收到客户端的回复后,执行断开连接。

2 什么是UDP?

UDP(User Datagram Protocol 用户数据报协议)是参考模型中一种无连接、不可靠、基于报文的传输层协议。提供面向事务的,简单不可靠信息传送服务。

UDP协议主要被广泛应用到,对网络数据传输的实时性很高,对数据准确性不是非常高的场合。

3 TCP 和 UDP的区别是什么?

  1. TCP面向连接;UDP是无连接的

    • 因此导致UDP更适合于消息的多播发布,可以向多个点传送消息(因为没有繁琐的握手机制与挥手机制)。同时也导致UDP适用于快速传输的协议,对信息的时实性要求严格的协议。(为了时实性牺牲写可靠性)
      由于UDP的速度快,所以适合于在线视频媒体,电话视频聊天,qq聊天,电视广播,多人在线游戏这些项目。
  2. TCP是可靠的传输协议;UDP是不可靠的

    • 通过TCP连接传送的数据,无差错、不丢失,不重复,按序到达;
    • UDP尽最大努力交付,即不保证可靠交付
  3. TCP连接只能是点到点的;UDP支持一对一、一对多、多对多的交互通信。

  4. TCP面向字节流;UDP面向报文。

  5. TCP首部开销20字节;UDP首部开销只有8个字节

    • 因为TCP要保证可靠性和有序性,所以TCP数据报报头的信息量大,报头大小是20个字节,TCP占用的系统的开销大。
  6. TCP的逻辑通信信道是全双工的可靠信道;UDP 则是不可靠信道

  7. TCP有流量控制,UDP没有。

    • UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等)
    • TCP通常在发送包之前会测试网络的快慢情况,(就好比我们在linux中投的ping命令)通过往返的时间和丢包率来评估网路的状况,来调动滑动窗口的大小。(这项机制增加了TCP的可靠性)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值