TCP/IP UDP: 用户数据报协议
用户数据报协议就是UDP。是一个面向数据报的简单传输层协议,进程的每一次输出操作只产生一个UDP数据报。进程通过internet的接口函数,来访问UDP。
- 每次发送UDP的时候,要指定目的的IP和端口号。
- 每次接受UDP的时候,可以收到源IP和端口号。
主要实现。
- 1全局变量:UDP检验,表头,ip, 数据报。
- 2统计量:udpstat
- 3SNMP变量
UDP的protosw结构
- 没什么意思。。。作为UDP的协议交换入口
UDP的首部
- 一个结构体而已,具体可以在其他地方看到。
udp_init函数
- 顾名思义,是一个初始化函数,在系统初始化的时候调用。
udp_output函数
- 无聊的过程,一个UDP的输出。。。。重要的是插口函数和对应的IP目的地址。
- 1在前面加上IP/UDP首部和mbuf簇。
- 2UDP检验和计算和伪首部。无聊。。
UDP_input函数
- 1对收到的UDP数据报的一般确认。
- 2分用单播数据报。
- 3分用多播和广播数据报。
- 4UDP插口和多接口主机。
udp_saveopt函数
- 无聊的函数,当进程指定IP_RECVDSTADDR接口选项,系统就调用该函数,用来接收目的IP地址。。。。够无聊的。。醉了这玩意无非是为了降低代码的耦合性。。。
udp_ctlinput函数
- 无聊的函数,为什么呢? 面面俱到的介绍意义不大,不懂的可以查字典。。。百度啊
udp_usrreq函数
- 这个函数是用来处理用户请求的函数,针对的是用户。所以和PCB有一定关系,插口指针转换成PCB指针。主要用来增加和删除UDP PCB。
udp_sysctl函数
- 看名字就知道是什么意思,无聊。
实现求精
- 用来优化功能。
- UDP PCB 高速缓存
- UDP检验和
小结
- 就这样,没什么意思,大概过程要自己写一遍才能有更深刻的认识,不过懂得基础的UDP就够了,叫什么名字不重要,UDP在哪一层?做了什么事情?这些只是抽象的概念。标准是否得到推广,还是取决于设计思路。