4-3:TCP协议之UDP协议

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4-3:TCP协议之UDP协议相关的知识,希望对你有一定的参考价值。

一:UDP协议格式

在这里插入图片描述

  • 16位UDP长度:指的是整个数据包(首部+数据)的最大长度
  • 若校验和出错,则直接丢弃

二:UDP特点

无连接:知道对端的IP和端口号就可以直接传输,而无需建立连接

不可靠:没有确认机制,没有重传机制;如果因网络故障导致该段无法发到对方,UDP协议也不会给应用层返回任何错误信息

面向数据报:不能够灵活的控制读写数据的次数和数量,应用层交付给UDP不管多长的报文,UDP都会原样发送,不会拆分也不会合并

三:UDP的缓冲区

UDP没有真正意义上的缓冲区。调用sendto会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作

UDP具有接受缓冲区,但是该缓冲区并不能保证收到的UDP报的顺序和发送的是一致的,如果缓冲区满了,后来的数据包将会被丢弃

四:基于UDP的应用层协议

  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议

五:UDP在内核中的实现

UDP在内核中的实现也是一个结构体,使用到的就是C语言学习时学到的位段

struct udphdr {
	__be16	source;//源
	__be16	dest;//目的
	__be16	len;//长度
	__sum16	check;//校验和
};

以上是关于4-3:TCP协议之UDP协议的主要内容,如果未能解决你的问题,请参考以下文章

Netty之1-TCP_UDP协议

传输层协议之TCP/UDP

传输层协议之TCP/UDP

传输层协议之TCP/UDP

基础:C#Socket编程之TCP与UDP简介

每日一点比较TCP协议与UDP协议的相同与不同之处