11·iOS 面试题·TCP UDP 有什么区别?

作者: pengxuyuan | 来源:发表于2018-10-15 16:22 被阅读5次

前言

计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP 和 UDP 都属于传输层协议。在实际开发过程中,需要根据实际需求的来选择适当的传输协议。

在这里我们简单总结下 TCP、UDP 的特点和区别以及实际开发中如何选择。

TCP 和 UDP 的定义

TCP 是面向有连接,可靠的流协议。保证两端通讯主机之间的通信可达,可以处理丢包、乱序等异常,可以有效利用带宽、缓解网络拥堵。

UDP 是面向无连接,不可靠的数据报协议。不会处理丢包、乱序等异常,一般交给上层的应用层处理。

UDP 的特点及使用场景

UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务,随时都可以发送数据,处理简单且高效,经常用于以下场景:

  • 包总量较小的通信(DNS、SNMP)
  • 视频、音频等多媒体通信(即时通信)
  • 广播通信

TCP 的特点及使用场景

相对于 UDP,TCP 实现了数据传输过程中的各种控制,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

在对可靠性要求较高的情况下,可以使用 TCP,即不考虑 UDP 的时候,都可以选择 TCP。

总结

这里简单总结下:

  1. TCP 是面向连接的,UDP 是面向无连接的;故 TCP 需要建立连接和断开连接,UDP 不需要。
  2. TCP 是流协议,UDP 是数据包协议;故 TCP 数据没有大小限制,UDP 数据报有大小限制(UDP 协议本身限制、数据链路层的 MTU、缓存区大小)。
  3. TCP 是可靠协议,UDP 是不可靠协议;故 TCP 会处理数据丢包重发以及乱序等情况,UDP 则不会处理。

参考文献

书籍-图解TCP/IP

书籍-图解HTTP

网络编程懒人入门(四):快速理解TCP和UDP的差异

相关文章

  • 11·iOS 面试题·TCP UDP 有什么区别?

    前言 计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP 和 UDP 都属于传输层协议。在实际开发过程中...

  • 前端面试题集

    面试题 1.TCP与UDP的区别? TCP可靠、面向连接,相对UDP较慢UDP不可靠、不面向连接,相对TCP较快 ...

  • 面试知识点复习

    Java: 1.tcp udp http什么区别 tcp udp 是属于传输层,http是基于tcp的一种应用层,...

  • 带你了解TCP/IP,UDP,Socket之间关系

    概述 什么是 TCP/IP? TCP,UDP 有什么区别? 什么是 Socket? 网上这方面的资料有很多,但都很...

  • web入门基础知识

    Python知识总结 1. 什么是TCP,什么是UDP,他们两者有什么区别? TCP(Transmission C...

  • TCP和UDP协议之间的区别,前端基础面试题

    前端基础面试题,TCP和UDP协议之间的区别 tcp和udp作为传输层的两个协议,主要区别: 1,tcp 是面向链...

  • TCP UDP有什么区别

    计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP 和 UDP 都属于传输层协议。在实际开发过程中,需要...

  • iOS Wireshark抓包

    级别:★☆☆☆☆标签:「Wireshark for mac」「iOS TCP抓包」「iOS UDP抓包」作者: X...

  • iOS面试题:TCP和UDP的区别于联系

    原文:iOS面试题大全 TCP为传输控制层协议,为面向连接、可靠的、点到点的通信; UDP为用户数据报协议,非连接...

  • 网络通信经典面试题

    络网相关的面试题个人经常使用,分享: tcp&udp面试题[http://it.agr-api.com/netwo...

网友评论

    本文标题:11·iOS 面试题·TCP UDP 有什么区别?

    本文链接:https://www.haomeiwen.com/subject/hlnfzftx.html