《图解TCP/IP》随笔--第六章(二)--UDP协议

前言

特别写在前面

本文仅用学习记录及分享,不做他用.

如有不妥,请告知

一. 特点&目的

按照制作程序的那些用户行事

特点:

不提供复杂的控制机制,简单 & 高效

面向无连接的通信服务,可随时发送数据

收到数据后,按照原样发送回网络上

无法进行流量控制等避免网络拥堵的行为

传输过程中无论是丢包,不负责重发

没有纠错功能

用途:

包含量较少的通信 – DNS,SNMP

音视频等多媒体通信 – 即时通信

限定于 LAN 等特定的网络应用通信

广播通信,多播通信

二. 首部格式

1. UDP数据报格式

UDP数据报格式

名词长度解释
源端口-Source Port16bit可选项-发送端端口 ==0 可用于不需要返回的通信中
目标端口-Destination Port16bit接收端端口
包长度-Length8bitUDP首部 + 数据 总长度
校验和-Checksum-为了提供可靠UDP首部数据

2. 校验和

为了提供可靠的UDP首部数据

(1) 计算校验和

UDP首部校验和计算三部分:UDP首部 + UDP数据 + UDP伪首部

伪首部

UDP伪首部

参考

(1条消息) IP首部校验和计算及1的补码_cradmin的专栏-CSDN博客

(1条消息) tcp/udp校验和以及伪首部介绍_nice_wen的博客-CSDN博客_tcp 伪首部

TCP头校验和计算算法详解 - RodYang - 博客园 (cnblogs.com)

(2) 校验和加入"伪首部"目的 & 原因

TCP/IP 进行通信的应用需要5大要素

源 IP 地址目标 IP 地址协议号\源端口号目标端口

但是UDP只包含了

源 IP 地址目标 IP 地址

余下三项都包含在 IP 首部中

因此引入"伪首部" 可以避免因 IP首部中的三项要素出错而导致的不良后果

IPv6 中IP首部没有校验和

TCP/UDP 通过 伪首部 即可在 IP首部 不可靠的同时,进行可靠传输

结语

~ ~ ~


版权声明:本文为weixin_44113601原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。