用户数据报协议就是UDP。是一个面向数据报的简单传输层协议,进程的每一次输出操作只产生一个UDP数据报。进程通过internet的接口函数,来访问UDP。

  • 每次发送UDP的时候,要指定目的的IP和端口号。
  • 每次接受UDP的时候,可以收到源IP和端口号。

主要实现。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  • 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在哪一层?做了什么事情?这些只是抽象的概念。标准是否得到推广,还是取决于设计思路。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄