TCP和UDP的区别

关键点

  1. TCP 是面向连接的,UDP 是面向无连接的
  2. UDP程序结构较简单
  3. TCP 是面向字节流的,UDP 是基于数据报的
  4. TCP 保证数据正确性,UDP 可能丢包
  5. TCP 保证数据顺序,UDP 不保证
  6. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性比较高的通讯或广播通信。
  7. TCP连接只能是点到点的,UDP支持一对一,一对多和多对多的交互通信。

TCP

TCP包头中包含较多内容。

包的序号,用于解决乱序问题。

确认序号,发出去的包有确认,这样能知道对方是否收到,如果没收到就应该重新发送,这个解决的是不丢包的问题。

状态位。SYN 是发起一个链接,ACK 是回复,RST 是重新连接,FIN 是结束连接。因为 TCP 是面向连接的,因此需要双方维护连接的状态,这些状态位的包会引起双方的状态变更

TCP三次握手建立连接

1、客户端发送请求【寻址请求】
2、服务器端收到报文请求,回应客户端【确认请求】
3、客户端收到服务端的报文进行回应。【连接请求】
三次握手完成,TCP客户端和服务端成功地建立连接,可以传输数据。

TCP四次握手断开连接

1、数据验证请求码
2、传输结束标记
3、确认结束标记
4、连接断开标记

UDP

UDP包头中包含,源端口号,目的端口号,UDP长度和UDP校验。

部分面试问题

TCP 为什么是可靠连接

通过 TCP 连接传输的数据无差错,不丢失,不重复,且按顺序到达。
TCP 报文头里面的序号能使 TCP 的数据按序到达
报文头里面的确认序号能保证不丢包,累计确认及超时重传机制
TCP 拥有流量控制及拥塞控制的机制

TCP 的顺序问题,丢包问题,流量控制
这些都是通过滑动窗口来解决的
拥塞控制是通过拥塞窗口来解决的

Reference

  1. https://blog.csdn.net/zhang6223284/article/details/81414149
  2. https://www.jianshu.com/p/8cb4b1f2afb3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值