
Linux网络协议栈学习
文章平均质量分 76
Pou光明
看山是山,看山不是山,看山还是山
展开
-
libmodbus库的一些使用经历
最近对libModbus库的使用有深入了一点儿,主要是socket通讯部分,不过还有一些验证需要总结,最近也懒得弄了。1、问题来源上位机Linux系统使用libModbus TCP Client与mcu走网络通讯,上位机偶发报“临时资源不可获得”,即发送的报文在超时时间内未接收到,该情况在重试情况下有时可恢复有时无法恢复,无法恢复会导致后续的modbus通讯均失败;进一步获取情况,在...原创 2024-11-22 00:05:08 · 837 阅读 · 5 评论 -
tcp通信测试报告单1——connect和send
一、发送测试报告1.server未启动时&未设置connect超时耗时——2秒2.通过setsockopt设置连接超时——1.1秒setsockopt(clientfd, SOL_SOCKET ,SO_SNDTIMEO, (char *)&timeout, sizeof(struct timeval));3. setsockopt与select搭配服用,效果更佳——setsocko...原创 2024-12-03 19:55:20 · 696 阅读 · 0 评论 -
Modbus发送的报文何时等到应答
一、Modbus主站如何等待响应报文 一直以来对于tcp/ip client发送出去的数据,如何等待响应数据,一直是有些疑问的。一种做法是将接收注册为一个回调函数,在回调函数中处理接收到的报文,一般回调函数也是独立的一条线程,此时是异步的;另一种像modbus这种,发送出报文后,等待响应报文。这块就有操作空间了——等待多长时间?如何实现的?通过阅读libModbus库源码——使用select来...原创 2024-12-06 21:23:18 · 528 阅读 · 0 评论 -
7_计算机网络五层体系结构
它既复杂又不实用。TCP/IP体系结构则不同,但它现在却得到了非常广泛的应用。TCP/IP 是一个四层的体系结构 (图 148(b)), 它包含应用层、运输层、网际层和网络接口层 (用网际层这个名字是强调这一层是为了解决不同网络的互连问题 )。不过从实质上讲,TCP/IP 只有最上面的三层,因为最下面的网络接口层并没有什么具体内容。因此在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TC...原创 2024-12-08 16:41:46 · 1051 阅读 · 0 评论 -
1_linux系统网络性能如何优化——几种开源网络协议栈比较
之前合集《计算机网络从入门到放弃》第一阶段算是已经完成了。都是理论,没有实操,让“程序猿”很难受,操作性不如Modbus发送的报文何时等到应答和tcp通信测试报告单1——connect和send。开始是想看linux内核网络协议栈的源码,然后编译调试,找了下流程,感觉不适合刚开始接触网络协议栈的初学者。受益于之前Modbus UDP开源库的想法,萌生了找一些开源网络协议栈来学习的...原创 2024-12-10 23:52:36 · 1311 阅读 · 0 评论 -
记一次网络无法ping通的排查
网络ping不通的问题于我而言是不好排查的,因为网络相关知识比较薄弱。1、问题情景再现 刚在调试一个网络协议栈从站时,用模拟主站去连接时,连接失败。今天下午在调试时,反复用主站连接断开几次,后面也出现连接不上的情况,这些是表象也是表现,但并不是问题的核心。然后去ping Linux主机,发现ping不通。 为了隔离问题,我验证过不运行协议栈时是可以ping通的;一运行协议栈...原创 2024-12-19 00:01:20 · 1065 阅读 · 0 评论 -
2_linux下使用代码获取网卡信息
在 Linux 系统中,可以使用ethtool工具获取网卡的网速、双工模式以及自动协商状态。以下是具体步骤和示例:一、使用ethtool获取网卡信息1、获取网卡信息ethtool eth0 Settingsforeth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half10baseT...原创 2024-12-24 00:46:37 · 403 阅读 · 0 评论 -
linux下安装tun模块详细教程
原本是要看tcp/ip协议栈,找到了https://github.com/chobits/tapip这个。然后需要支持tun,完了开始安装。 TUN/TAP是一个虚拟网络设备,用于实现用户态程序和内核网络协议栈之间的数据交互。1、安装环境我的系统是ubuntu16.04 VMWare虚拟机,原来是这个版本。2、环境检查modinfotunmodinfo:ERROR: Module...原创 2024-12-30 20:20:17 · 1402 阅读 · 0 评论 -
3_TCP/IP连接三次握手与断开四次挥手
TCP/IP 通信是网络通信的基础协议,分为以下主要步骤:1、建立连接(三次握手)目的:保证双方建立可靠的通信连接。过程:1>客户端发送 SYN:客户端向服务器发送一个SYN(同步)标志位的包,请求建立连接。2>服务器回应 SYN-ACK:服务器收到后,返回一个带有SYN和ACK标志位的包,表示同意连接并确认客户端的请求。3>客户端发送 ACK:客户端收到SYN-AC...原创 2024-12-27 17:53:46 · 724 阅读 · 0 评论 -
linux下使用代码设置ip
一、linux下设置ip的几种方式在 Linux 系统中,设置 IP 地址有多种方法,具体取决于你使用的网络管理工具和配置文件。以下是常见的几种方式:1、使用ip命令设置临时IP地址ip命令是现代Linux中用于配置网络接口的推荐方法。查看网络接口:ip a设置临时IP地址:sudo ip addradd192.168.1.100/24dev eth0这将为eth0网络接口设置 IP地址19...原创 2024-12-22 20:49:57 · 1555 阅读 · 0 评论 -
linux内核网络层学习
我测试环境是ubutnu22.04,内核版本:6.8.0-49-generic。我下载的是linux-6.7.tar.gz。1、 内核源码下载网址。原创 2024-12-08 23:10:30 · 327 阅读 · 0 评论