返回列表 发布新帖
查看: 14|回复: 0

网络 UDP 和 TCP / IP详细介绍

发表于 昨天 17:31 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
好的,我们来详细介绍一下 UDP 和 TCP/IP。这是一个计算机网络的核心概念。
首先,需要澄清一个常见的误解:TCP/IP 是一个协族(一组协议),而 UDP 是这个家族中的一员。它们通常被放在一起比较,是因为它们都工作在传输层,但提供了完全不同的服务。
为了更清晰,我们将内容分为几个部分:
  • TCP/IP 协议族概述传输层简介
  • 用户数据报协议(UDP)详细介绍
  • 传输控制协议(TCP)详细介绍
  • UDP 与 TCP 的核心对比

1. TCP/IP 协议族概述
TCP/IP 是一套用于互联网通信的协议族,它得名于其中两个最重要的协议:TCP 和 IP。它遵循一个四层模型(有时也会被映射到 OSI 七层模型)。


TCP/IP 模型层
核心协议
功能简介

应用层HTTP, HTTPS, FTP, DNS, SMTP为应用程序提供网络服务,定义数据格式。
传输层TCP, UDP提供端到端的通信,负责数据的分段、传输和流量控制。
网络层IP, ICMP, ARP负责将数据包从源主机路由到目标主机(寻址和路由)。
网络接口层Ethernet, WiFi负责在物理网络上传输原始数据帧。

IP 协议 是网络层的核心,它提供了不可靠的、无连接的数据包传输服务。它只关心将数据包从源头送到目的地,但不保证顺序、不保证送达、也不进行错误恢复。这个“智能”的任务就交给了传输层。
2. 传输层简介
传输层位于应用层和网络层之间,它的主要目标是为运行在不同主机上的应用进程提供逻辑通信它通过端口号来区分同一主机上的不同应用程序。
传输层有两个主要协议:UDP 和 TCP。它们本质上是为应用程序提供了两种不同的“运输服务”。
  • UDP:像“邮政平信”服务。便宜、快捷,但不保证对方一定能收到,也不保证按顺序收到。
  • TCP:像“快递包裹”服务。提供门到门的、可靠的交付。有签收、有跟踪,如果丢件了会重发。

3. 用户数据报协议(UDP)详细介绍
UDP 是一个非常简单、轻量级的传输层协议。
核心特点:
  • 无连接:

    • 在发送数据之前不需要先建立连接。直接发送即可。
    • 优点:减少了建立和断开连接的开销,延迟极低。

  • 不可靠交付:
    • 不保证数据包能到达目的地。
    • 不保证数据包按发送顺序到达。
    • 不提供拥塞控制。如果网络拥堵,UDP 数据包会大量丢失,但它自己不会调整发送速率。

  • 面向报文:
    • 应用层交给 UDP 多长的报文,UDP 就原样发送,既不合并,也不拆分。它只是在报文前面加上一个简单的 UDP 首部,就交给网络层。
    • 因此,应用程序必须选择合适大小的报文。太长了,IP 层需要分片,降低效率;太短了,效率不高。


优点:
  • 速度快、延迟低:没有连接建立和确认的开销。
  • 头部开销小:只有 8 字节,而 TCP 有 20 字节或更多。
  • 无连接状态:服务器无需为每个客户端维护连接状态,可以支持大量并发客户端。
  • 应用层可控:应用可以构建自己所需的任何可靠性或流量控制机制,更加灵活。

4. 传输控制协议(TCP)详细介绍
TCP 被设计为一个可靠的、面向连接的字节流协议。
核心特点:
  • 面向连接:

    • 通信双方在传输数据前,必须通过 三次握手 建立一个 TCP 连接。
    • 数据传输结束后,需要通过四次挥手 来断开连接。

  • 可靠传输:通过以下机制保证:
    • 确认和重传:接收方收到数据后会发送确认(ACK)。如果发送方在一定时间内没有收到 ACK,就认为数据丢失并重新发送。
    • 序列号和确认号:每个字节都被编号。序列号保证了数据能按顺序组装,确认号告诉发送方下一个期望接收的字节序号。
    • 校验和:用于检测数据在传输中的任何错误,有错误则丢弃并重传。

  • 流量控制:
    • 使用 滑动窗口 机制。接收方通过告知发送方自己的接收窗口大小,来控制发送方的发送速率,防止接收方缓冲区被填满。

  • 拥塞控制:
    • 为了整个网络的健康,TCP 会动态探测网络的拥堵程度,并主动降低自己的发送速率。核心算法包括慢启动、拥塞避免、快速重传、快速恢复。

  • 面向字节流:
    • TCP 把应用程序交下来的数据仅仅看成是一连串的、无结构的字节流。它不保证发送的数据报与接收的数据报具有对应的大小关系。接收方收到的字节流与发送方发出的字节流完全一样。


5. UDP 与 TCP 的核心对比


特性
TCP(传输控制协议)
UDP(用户数据报协议)

连接性面向连接(三次握手)无连接
可靠性可靠(确认、重传、排序)不可靠(可能丢失、乱序)
传输单位面向字节流面向报文(数据报)
速度与延迟较慢,延迟较高(有连接和确认开销)极快,延迟低(无开销)
流量控制有(滑动窗口)无
拥塞控制有(复杂算法)无(可能加剧网络拥堵)
头部开销大(至少20字节)小(8字节)
数据顺序保证按顺序到达不保证顺序
连接数量一对一支持一对一、一对多、多对多

总结一下:
  • 当你需要可靠、有序、不丢失的数据传输时,选择 TCP。 它是互联网可靠通信的基石。
  • 当你追求速度、低延迟,或者应用本身能处理可靠性问题时,选择 UDP。 它为实时和快速响应的应用提供了基础。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.110537 second(s), 8 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表