6.ARP Table


在前面实现的arp协议中,我们只能被动回复对方发来的arp请求。在网络通讯中,一个设备应该有一张自己的arp表,同时可以广播自己的arp。所以现在需要实现一个arp表,同时可以广播自己的arp。 工作模式 PC 1 只知道PC3 的IP地址是10.1.1.3, 但是不知道PC3的MAC, 现在想获取

7.ICMP Ping


icmp What ICMP是Internet Control Message Protocol(互联网控制报文协议)的缩写,它是在TCP/IP协议栈中的一种网络层协议。ICMP主要用于在IP网络中传输控制消息,以便在网络节点之间进行错误报告、诊断和路由选择。 ICMP消息通常由网络设备(如路由器或

8.Net Arch


截止到目前,对以太网数据包的处理包含了一下几种协议: udp arp icmp 从代码层次的角度来看,我们将所有的数据捕获都放在同一个线程里面;如果收到消息,就打印出来。这样显然是不对的,作为一个网络协议栈,需要包含多个缓冲区和封层设计。针对现在已经实现的部分,增加环形缓冲区和适当的分层设计提高当前

10.UDP Posix 2


UDP控制块 // udp ctrl block struct localhost { int fd; uint8_t localmac[RTE_ETHER_ADDR_LEN]; uint32_t localip; uint16_t localport;

9.UDP Posix 1


无论传感器的协议是什么,只要下位机可以转换为以太网数据包,我们的Data Driver驱动层都可以接收到数据并且处理。现在我们需要实现像Posix API那样的接口函数,用来写服务器接收和处理数据。这里内容比较多,分两天实现。 Unix UDP 先来看一下正常的Linux网络编程的UDP Serve