锐捷认证客户端在嵌入式linux平台上的移植

本文介绍了锐捷认证客户端在嵌入式Linux平台上的移植过程,涉及TCP/IP协议、锐捷认证原理、软硬件平台选择以及相关库与工具的编译配置,包括libpcap和dhclient的交叉编译。最终,文章详细阐述了mentohust-0.3.1的编译步骤和认证流程,实现了在嵌入式设备上成功接入锐捷网络。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、TCP/IP协议简介

IP协议用于将多个包交换网络连接起来,IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。如果出错可以通过ICMP报告,ICMP在IP模块中实现。I

  TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。

  TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

  如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

 

二、锐捷认证原理

锐捷认证协议以802.1X协议为基础。其认证过程如下:

1、主机现在不知道服务器的地址,发出第一帧数据,协议为生成树协议(Spanning-tree)。

2、服务器向主机发送EAP REQUEST Identity要求认证身份请求。

3、主机向服务器发送EAP RESPONSE Identity回应。

4、服务器向主机发送EAP REQUEST MD5 challenge要求认证密码MD5校验值。

5、主机向服务器发送EAP RESPONSE MD5 challenge回应。

6、服务器向主机发送EAP SUCCESS。

7、从DHCP服务器获取IP地址。

8、客户端版本校验。

9、发送数据包保持在线。

三、软硬件平台

硬件平台:s3c6410处理器 DM9000网卡

内核版本:linux-3.0.1

文件系统:可读的yaffs2文件系统

1、需要开启的内核支持:

# USB Network Adapters

CONFIG_USB_NET_DM9601=m或者y

usb网卡的支持,否则会找不到网卡。出现:!! 查找网卡失败: Can't open USB bus file /sys/kernel/debug/usbmon/1t: No such file or directory

# Networking options

CONFIG_PACKET=y

!! 打开网卡eth0失败: socket: Address family not supported by protocl

CONFIG_IP_PNP_DHCP=y

华师大学城是动态分配IP,所以还要在内核开启这条支持。

2、相关库与工具

(1)交叉编译器:4.2.2-eabi

编译内核和编译锐捷兼容包的如果不是同一个交叉编译器可能会出问题。如编译内核用支持eabi特性的编译器而编译锐捷的编译器不支持eabi则将导致不兼容,下载到板上后会找不到命令锐捷命令。

(2)编译libpcap:

libpcap是unix和linux平台下的网络数据包捕获函数包。编译生成的库libpcap.a在编译锐捷兼容客户端时要用到

1、下载libpcap,网址http://www.tcpdump.org

2、解压tar -zxvf libpcap-1.0.0.tar.gz,修改confiugre文件,注释掉下面两段:

#if test -z "$with_pcap"&nb

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值