系列文章目录
什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
- 系列文章目录
- UDP
- UDP存在的价值是什么?
- UDP校验和(checksum)
UDP
UDP即User Datagram Protocol (RFC 768)
-
基于Internet IP协议
- 实现多路复用/分用
- 实现简单的错误校验机制
-
遵循 “尽力而为 ”的服务模型,所以UDP段可能会丢失、非按序到达
-
无连接
- UDP发送方和接收方之间不需要握手(建立连接)
- 每个UDP段的处理独立于其他段
UDP存在的价值是什么?
- 无需建立连接 (减少延迟)
- 实现简单,无需维护连接状态
- 头部开销少
- 上层应用可以更好的控制发送时间和速率,因为没有拥塞控制
UDP常用于:
- 流媒体应用。这类应用的特点是能够容忍数据丢失,但对速率敏感
- UDP还用于DNS和SNMP
我们仍然可以在UDP上实现可靠数据传输,只不过需要应用开发人员在应用层增加可靠性机制。
UDP校验和(checksum)
目的:检测UDP段在传输中是否发生错误(如位翻转)。
实现:
-
发送方计算校验和,然后填充到报文段中。
- 将段的内容视为16-bit整数
- 校验和计算:计算所有整数的和 ,进位加在和的后面,将得到的值按位求反,得到校验和
- 将校验和填充到校验和字段
-
接收方
- 计算所收到段的校验和
- 将其与校验和字段进行对比。若不相等则数据在传输的过程中出现错误了,若相等则没有检测出错误(但仍然有可能发生错误)
有些错误能够检测出来,有的则检测不出来,检测不出来不代表没有错误。