network
文章平均质量分 80
致守
这个作者很懒,什么都没留下…
展开
-
Linux C 获取本机所有网卡的 IP,Mask
虚拟机软件:Oracle VM VirtualBox 6。本机系统:Windows 10。虚拟机系统:Ubuntu 18。备注:转载请注明出处并附加链接。作者:PikapBai。」许可协议进行许可。转载 2024-08-20 10:50:20 · 42 阅读 · 0 评论 -
Linux C 获取主机网卡名及 IP 的几种方法
在进行Linux时,经常会需要获取本机IP地址,除了常规的读取配置文件外,本文罗列几种个人所知的编程常用方法,仅供参考,如有错误请指出。转载 2024-08-20 10:49:15 · 135 阅读 · 0 评论 -
常用车载总线CAN、CAN FD、LIN、FlexRay、Ethernet介绍
摘要:相信做汽车电子行业的小伙伴,对CAN等常用车载总线并不陌生,当然了,可能不做汽车电子的也知道CAN,因为CAN的使用范围不再局限于汽车行业了。航空航天、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械等都会使用到。总线那么多,你是否也和我一样,懵懵懂懂,搞不清楚他们之间的区别呢?下面简单介绍一下,有个初步的了解,希望能帮助你区分它们CAN总线CAN总线详细介绍CAN FD总线详细介绍LIN总线详细介绍FlexRay总线详细介绍。转载 2024-07-30 15:49:38 · 98 阅读 · 0 评论 -
汽车网关(gateway)系统的作用原理及部分车型网关位置
就按刚才说的,用火车站转换旅客的过程来说明网关的工作原理最为合适,在某个车站,站台1到达一列动车组(驱动CAN总线,数据传输速率为500kbit/s)车上有数百名旅客(数据),在站台2已经有一列普快列车(车身BCM信息CAN总线,数据传输速率为100kbit/s),在等待,有一些旅客就要换到这列普快列车上,有一些乘客要换乘到特快列车继续旅行,当然,也有很多时候旅客是从这一列火车上下来到候车厅去等待相应的车次,这相当于网关信息的缓冲作用。保时捷的网关在主驾驶座椅下,无线智能网关在副驾驶手套箱前方;转载 2024-07-30 14:10:26 · 99 阅读 · 0 评论 -
汽车中央网关功能详解
汽车厂商通过 OTA (Over-The-Air Technology, 空中下载技术)可以将更新的软件、固件、配置等程序文件从云端传输到车辆中心网关,然后再通过汽车网关进行信息的分发,对车辆的电子控制单元(ECU)进行升级、修复和优化。IDS(Intrusion-Detection System,入侵检测系统)部署在车载网络流量集中的中央网关上,通过对车载网络报文的实时检测,能够有效识别异常报文和冗余报文,从而对车主和整车厂进行实时预警。密钥管理是指一套规则和方法,用于生成、存储、分发和维护密钥。转载 2024-07-30 14:09:38 · 171 阅读 · 0 评论 -
计算机网络中间设备(网关,路由器,交换机,网桥,中继器,集线器)
交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。物理层设备和其他层次的设备(如:交换机、网桥、路由器)最大的区别在于:集线器和中继器工作在同一个网段下的,而交换机、路由器等设备是工作在不同网段下的。网桥、交换机工作在2层,靠物理地址工作,解决CSMA/CD的冲突问题,网桥基于软件,现在用的不多,只有个概念,交换机是基于硬件的网桥(ASIC)。转载 2024-07-30 14:06:27 · 576 阅读 · 0 评论 -
Linux下查看与测试端口tcp、udp连通性
当测试端口 udp 连通性时,若 nc 测试的 IP 开启了防火墙,则 nc 命令是收不到任何测试 IP 发来的消息,而且这种情况下 nc 命令会认为该端口是可以连通的,但是实际上数据都已经被防火墙拦截了(此种情况只能是直接发udp消息,看 IP 端口能否收到数据了)注意:使用 telnet 是基于tcp协议的,只能测试改端口tcp的连通性,想测试端口udp的连通性需要用 nc 命令。nc -vuz 127.0.0.1 6000 测试6000 udp连通性(加上 u 参数测试udp连通性)转载 2024-07-29 14:26:57 · 693 阅读 · 0 评论 -
动画图解 socket 缓冲区的那些事儿
编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的socket API。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用listen方法,可以让程序作为服务器监听其他客户端的连接。用connect,可以作为客户端连接服务器。用send或write可以发送数据,recv或read可以接收数据。在建立好连接之后,这个socket文件就像是远端机器的"代理人"一样。比如,如果我们想给远端服务发点什么东西,那就只需要对这个文件执行写操作就行了。转载 2024-07-25 20:26:00 · 61 阅读 · 0 评论 -
TCP 、UDP、IP包的最大长度
首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。其中以太网(Ethernet)的数据帧在链路层IP包在网络层TCP或UDP包在传输层TCP或UDP中的数据(Data)在应用层它们的关系是 数据帧{IP包{TCP或UDP包{Data}}}不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。转载 2024-07-25 20:01:29 · 640 阅读 · 0 评论 -
关于UDP-读这篇就够了(疑难杂症和使用)
本文为转载文章原文链接:https://www.qcloud.com/community/article/848077001486437077版权归原文所有关于UDP面向报文的传输方式决定了UDP的数据发送方式是一份一份的,也就是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。那么UDP的报文大小由哪些影响因素呢?UDP数据包的理论长度是多少,合适的UDP数据包应该是多少呢?(1)UDP报文大小的影响因素,主要有以下3个。转载 2024-07-25 19:53:58 · 179 阅读 · 0 评论 -
proc/sys/net 详解(即时调整内核网络参数)
到这里,想必读者已经对/proc/sys/net/目录下的/proc/sys/net/core/和/proc/sys/net/ipv4/这两个目录,已经有了一定了解了。在/proc/sys/net/目录下有两个目录,与现在的IPV4网络的运行息息相关,调整这两个目录下的某些文件的参数,能为我们的网络应用带到意想不到的效果,这两个目录就是/proc/sys/net/core/目录和/proc/sys/net/ipv4/目录,下面笔者将会对这两个目录中的重要文件分别作一个详细的说明。转载 2024-07-25 19:51:43 · 98 阅读 · 0 评论 -
解密IP分片与重组:数据传输中的关键技术
本章节中,我们深入探讨了IP分片与重组的工作原理。不同的数据链路具有不同的最大传输单元(MTU),当数据包的大小超过MTU限制时,IP分片将数据包分割为多个较小的分片进行传输,到达目的地后通过IP重组机制重新组合成完整的数据包。TCP分段的目的是为了让IP层不再进行分片,并在发生重传时只重传已经分段的小份数据,提高传输效率和可靠性。然而,在整个传输链路中可能存在其他网络层设备,它们的MTU可能小于发送端的MTU,因此数据包仍会在这些设备的IP层进行再次分片。转载 2024-07-25 16:08:29 · 72 阅读 · 0 评论 -
终于有人能讲清楚了 UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?
或者卟卟卟卟卟卟卟卟…对于一些多点通信的场景,如果采用有连接的 TCP,那么就需要和多个通信节点建立其双向连接,然后有时在 NAT 环境下,两个通信节点建立其直接的 TCP 连接不是一个容易的事情,在涉及 NAT 穿越的时候,UDP 协议的无连接性使得穿透成功率更高.采用 udp 协议,通过服务器中转方式。UDP是没有流量控制的;或者,UDP 每次都是发巨大的 UDP 包,包大小是 MTU 的几百倍,这样会造成下层 IP 层的大量分片,大量分片的情况下,其中某个分片丢失了,就会导致整个 UDP 包的无效。转载 2024-07-25 16:07:28 · 116 阅读 · 0 评论 -
浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)
UDP数据包长度在本机(loopback)传输,可以根据需要设置MTU,但记住,UDP最大理论长度65507。在内网传输,最好控制在1472字节(1500-8-20)。在internet上传输,最好控制在548字节(576-8-20)以内。UDP收包能力UDP处理能力非常可观,在日常的业务情形中,UDP一般不会成为性能瓶颈。随着进程个数的增加,处理能力未明显上升,但是丢包个数明显下降。采用多进程监听不同端口的模型,而不是多进程或多线程监听同一个端口。转载 2024-07-25 16:06:20 · 108 阅读 · 0 评论 -
UDP分包与组包
TCP/IP卷一:54---UDP之(用户数据报协议(UDP)简介、UDP数据报格式、UDP校验和)_udp4784-CSDN博客,或者其他关于UDP的文章。转载 2024-07-25 16:05:28 · 86 阅读 · 0 评论 -
万字图解 | 深入揭秘IP层工作原理
想必不少同学在面试过程中,会遇到「在浏览器中输入www.baidu.com后,到网页显示,其间发生了什么」类似的面试题。本专栏将从该背景出发,详细介绍数据包从HTTP层->TCP层->IP层->网卡->互联网->目的地服务器 这中间涉及的知识。本系列文章将采用自底向上的形式讲解每层的工作原理和数据在该层的处理方式。转载 2024-07-25 16:04:37 · 22 阅读 · 0 评论 -
万字图解|深入揭秘(数据链路层、物理层)工作原理
想必不少同学在面试过程中,会遇到「在浏览器中输入www.baidu.com后,到网页显示,其间发生了什么」类似的面试题。本专栏将从该背景出发,详细介绍数据包从HTTP层->TCP层->IP层->网卡->互联网->目的地服务器 这中间涉及的知识。本系列文章将采用自底向上的形式讲解每层的工作原理和数据在该层的处理方式。到目前为止,我们已经把数据链路层和物理层的原理说完了。在最后提到了ip地址和路由器,关于ip地址和路由器的更多细节,我们将在介绍IP层时详细介绍。转载 2024-07-25 16:02:10 · 26 阅读 · 0 评论 -
到底什么是瘦AP、胖AP、AP+AC、Mesh?
AC负责管理所有的AP,只要在AC上进行统一配置,就可以自动同步到所有的AP节点,并且所有AP的工作状态都可以在AC上进行实时监控,维护起来也非常方便。既然胖AP不好管理,我们可以把它再进行拆分,只保留最基本的接入功能,将配置管理功能独立出来,组建为一个全新的设备:接入控制器(Access Controller,AC),普遍简称作AC。这样一来,我们在AC的后面再接上一个PoE交换机,再把所有等AP换成可以支持PoE的型号,就可以实现PoE供电了,省去了多处拉电源线的烦恼,顿时感觉网络清爽了许多。转载 2024-07-22 19:51:01 · 2603 阅读 · 0 评论 -
Linux系统修改网卡名(eth0-3)
内核启动参数net.ifname,如果在启动参数中增加net.ifname=0,这个文件会在/lib/udev/rule.d/80-net-name-slot.rules体现使用价值,则告诉系统不用scheme的方式来命名,这个时候,会恢复ethx这种不确定性的命名方式;五、 不要用ethX去命名内核在boot 过程是默认使用ethX方式来命名的,每次启动的时候都不确定,启动会后再通过udev等方式去rename,转载 2024-06-08 16:34:51 · 492 阅读 · 0 评论 -
端口扫描技术
因为在实现过程中需要自己完成对应答数据报的查找、分析,使用多线程容易发生数据报的串位现象,也就是原来应该这个线程接收的数据报被另 一个线程接收,接收后,这个数据报就会被丢弃,而等待线程只好在超时之后再发送一个SYN数据报,等待应答。若端口扫描没有完成一个完整的 TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接, 使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。转载 2024-05-31 11:19:07 · 133 阅读 · 0 评论 -
select poll epoll三者之间的比较
由于每次select和poll调用都返回整个用户注册的事件集合(其中包括就绪的和未就绪的),所以应用程序索引就绪文件描述符的时间复杂度为O(n)。2. 这三个参数既是输入参数,也是输出参数,因此,在每次调用select之前,都得对fd_set进行重置;1. 只能通过三个结构体参数处理三种事件,分别是:可读、可写和异常事件,而不能处理更多的事件;测试程序会统计在不同的文件描述符集合的情况下,1s 内poll与epoll调用的次数。而epoll采用与select和poll完全不同的方式来管理用户注册的事件。转载 2024-05-31 11:12:29 · 25 阅读 · 0 评论 -
用网线做RS485总线,需要注意这些!
专用通信电缆的“专用”主要是指,电缆的特性阻抗在120Ω,因为大多数RS485设备的内置阻抗匹配电路都是按照120Ω设计的,如果电缆的特性阻抗不是120Ω,就会阻抗不匹配,反射波会干扰原始信号导致失真。网线也是同样的,如果你用的网线特性阻抗刚好是120Ω,那么直接用RS485的120Ω终端电阻,就能很好阻抗匹配,很不幸的是,大多数网线的特性阻抗是100Ω。双绞线是抵抗差模干扰的好手,而屏蔽线则是抵抗共模干扰的利器,所以,尽量用带屏蔽层的网线,能有效改善共模干扰带来的影响,尤其是工作环境有大功率设备的时候。转载 2024-04-18 14:45:26 · 1925 阅读 · 0 评论 -
192.168.2.1如何访问192.168.1.1的服务器?
第一个可能的解决办法:添加三层转发设备你说第一种情况,192.168.2.1和192.168.1.1,它们的掩码都是24位,不在同一个网段,展开就是192.168.2.1/24,192.168.1.1/24。这也是说你不专业的原因,写IP地址时,一定要把掩码加上,不然相同的IP地址可能在不同的网段。如果是这种情况,你的问题就可以简化为两个不同网段的主机如何互访?转载 2024-04-13 10:39:56 · 7354 阅读 · 0 评论 -
ioctl -- get/set网卡接口信息
【代码】ioctl -- get/set网卡接口信息。转载 2024-04-12 17:13:20 · 226 阅读 · 0 评论 -
Linux通过c语言函数管理网络(1)-----获取/修改IP和MAC地址
在Linux下编写程序经常遇到需要对网卡进行管理,但是在glic库中或者其他函数库中却发现没有境界能用的API。有的人在程序中通过system()执行ifconfig命令进行配置,但是获取参数却很麻烦,也有的人通过int getifaddrs(但是处理原始的netlink消息非常麻烦,且容易出错。但是netlink的功能相比于上面的方法要强大,比如现在ioctl()接口是不能处理ipv6的。netlink还可以轻松的获取路由信息。去获取ip地址等信息,但是只能获取,却不能配置。转载 2024-04-12 17:10:39 · 513 阅读 · 0 评论 -
详细的网络协议之ARP请求
对于 ARP 协议,你想知道的,可能包括以下几点:ARP 是啥为啥需要 ARPARP 是怎么工作的ARP 报文格式长啥样ARP 安全吗有哪些命令可以操作 ARPARP 有哪些内核配置参数带着这些问题,下面我们就来一一解答。转载 2024-04-12 17:08:58 · 1202 阅读 · 0 评论 -
ARP协议报文格式及ARP表
不会被老化,也不会被动态ARP表项覆盖。如果出接口是VLAN虚接口,短静态ARP表项不能直接用于报文转发,当要发送IP数据包时,先发送ARP请求报文,如果收到的相应报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将接受ARP响应报文的接口加入该静态表项中,之后就可以用于IP数据包的转发了。ARP是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协议)进行封装。转载 2024-04-12 17:07:48 · 249 阅读 · 0 评论 -
5种C++ 多线程框架概览
TBB框架相较于传统多线程编程具有很大的优势,它不仅能够实现显式地任务分解,还可以根据任务的大小和系统负载自动调节线程数量,并且具有较低的线程启动和销毁成本。总的来说,boost::thread具有良好的可移植性,并且提供丰富的线程控制方法,使得C++多线程编程更加灵活和高效。boost::thread是Boost C++ Libraries中提供的一个跨平台多线程编程库,它是对C++11标准库std::thread的拓展。具有这种能力的系统包阔对称处理机、多核心处理器以及芯片级多处理或同时多线程处理器。转载 2024-03-18 17:37:22 · 612 阅读 · 0 评论 -
【Linux】多线程详解,一篇文章彻底搞懂多线程中各个难点!!
尽管如此, 活锁的确会降低性能。事实上并不是这样的。释放线程资源的时候, 若进程可能再次创建线程, 而频繁地munmap和mmap会影响性能, 所以将该栈缓存起来, 放到一个链表之中, 如果有新的创建线程的请求, 会首先在栈缓存链表中寻找空间合适的栈, 有的话, 直接将该栈分配给新创建的线程。注意, 条件等待是个阻塞型的接口, 不单单是注册在事件的等待队列上, 线程也会因此阻塞于此, 从而导致互斥量无法释放, 其他线程获取不到互斥量, 也就无法通过改变共享数据使等待的条件得到满足, 因此这就造成了死锁。转载 2024-03-15 17:10:21 · 424 阅读 · 0 评论 -
Linux gdb调试正在运行中的程序
这里的重点是命令 c,就是让程序继续跑起来,因为当你gdb之后,程序是已经停下来了的,接下来就可以用 单步啊、next啊,来查看你的内存变量了。可以看到线程是停留在了msisdn.c:920,这里有一个while循环,所以接下来设置断点,让程序重新跑起来。能清晰的知道,Thread 4是我想调试的线程。可以看到,当前有20个线程正在运行。1. 获取所要调试程序的进程号。是查看当前线程的堆栈情况。转载 2024-03-15 17:04:41 · 367 阅读 · 0 评论 -
知乎问题:同局域网内,两台电脑同MAC 同IP,能正常使用吗?
还有,如果这2台主机用相同的源端口,访问相同IP的服务器、相同的目的端口,那么2个四元组完全一样,这会带来冲突,可能会造成通信障碍。如果这2台主机,连接的是集线器(Hub)而不是交换机,它们都可以正常访问网络,只是它们之间无法通信。在网关的眼里,这2台具有相同IP、相同MAC的主机,仅仅只是一台主机,因为网关没有办法区分它们。稍后,主机A的返程流量到达交换机,交换机查询MAC地址表,发现指向B。瞬间之后,主机B的出向流量到达交换机,交换机将MAC指向B。如果这2台主机,连接的是交换机,问题就来了。转载 2024-03-12 14:51:33 · 536 阅读 · 0 评论 -
TCP Socket性能优化秘籍:掌握read、recv、readv、write、send、sendv的最佳实践
合理选择 TCP Socket 的选项和参数:如 SO_REUSEADDR、SO_KEEPALIVE、TCP_NODELAY、TCP_QUICKACK 等选项和参数,根据具体情况进行设置,以优化 TCP Socket 的性能和行为。因此,在进行测量和对比时,应尽量在相同的环境和条件下进行,并考虑到可能的干扰因素。根据服务器的负载情况,合理调整 TCP Socket 的选项和参数,如 SO_REUSEADDR、SO_KEEPALIVE、TCP_NODELAY、TCP_QUICKACK 等,以优化性能和行为。转载 2024-03-11 13:11:41 · 758 阅读 · 0 评论 -
深入理解TCP协议及其源代码——send和recv背后数据的收发过程
函数向被服务端监听的socket发起一个连接请求,即发起一次TCP连接的三次握手。函数的缓冲区分别是buff和ubuf指向的内存空间,我们从源码中看一看这两个缓冲区中的数据是如何被处理的。只管拷贝,真正的发送和接收是由TCP连接负责的。为了实现数据的收发,每个TCP socket在内核中都维护了一个发送缓冲区和一个接收缓冲区,函数把应用缓冲区中的数据拷贝到TCP发送缓冲区中,接下来的发送过程由TCP负责;函数创建一个socket对象,生成一个socket文件描述符,然后通过。可以看到,这两个函数相当复杂。转载 2024-03-11 13:09:20 · 926 阅读 · 1 评论 -
netcat
说明:该指令将尝试连接traget的20-250,500-600,5990-7000端口;说明:当未指定参数运行netcat时,netcat打印Cmd line提示用户输入命令参数,随后从stdin读取一行内容,并将其分解为参数。1 当netcat接收到入站udp连接时,它会创建一个“连接的套接字”返回到连接的源(udp反向连接回去),然后使用write()发送数据。2 基于这个特性,当客户端中断udp连接后再次连接时源端口发生改变,此时服务端将不再接收连接,除非指定源端口为最初的端口。转载 2024-03-09 17:50:36 · 109 阅读 · 0 评论 -
libmodbus官方手册中文翻译
ctx。转载 2024-03-07 14:43:04 · 815 阅读 · 0 评论 -
socketpair机制
而pipe和socketpair创建的描述符之间的区别就是: pipe创建的描述符一端只能用于读,一端用于写,而socketpair创建的描述符任意一端既可以读也可以写。socketpair创建的只适用于父子进程或者线程间通信,不能用于两个进程之间通信。如果要实现两个进程之间的双向通信,则需要将socketpair创建的一个描述符fd发送给另一个进程,这相当于两个两个不同的进程访问同一个文件。使用socketpiar创建的是一对相互连接的socket,任意一段既可以做发送,也可以做接受端。转载 2024-03-07 14:38:59 · 81 阅读 · 0 评论 -
Linux原始套接字实现分析
并将套接字结构的ops设置为inet_sockraw_ops,将套接字结构的sk_prot设置为raw_prot。网卡驱动收到报文后在软中断上下文中由netif_receive_skb()处理,匹配是否有注册的链路层原始套接字,若匹配上就通过skb_clone()来克隆报文,并将报文交给相应的原始套接字。对于IP报文,在协议栈的ip_local_deliver_finish()函数中会匹配是否有注册的网络层原始套接字,若匹配上就通过skb_clone()克隆报文并交给相应的原始套接字来处理。转载 2024-03-01 18:16:45 · 277 阅读 · 0 评论 -
libpcap使用
【代码】libpcap使用。转载 2024-03-01 18:08:50 · 60 阅读 · 0 评论 -
libpcap介绍(一)
Libpcap是Packet Capture Libray的英文缩写,即数据包捕获开源的C函数库,用于捕获网卡数据或分析pcap格式的抓包报文。Tcpdump和wireshark均是以此为基础的。主要功能有:网络报文抓取;网络报文的构建;抓包文件的分析;自定义BFP过滤。转载 2024-03-01 18:05:42 · 726 阅读 · 0 评论 -
深入理解ICMP协议
首先,向目的服务器上执行ping命令,主机会构建一个 ICMP 回显请求消息数据包(类型是8,代码是0),在这个回显请求数据包中,除了类型和代码字段,还被追加了标识符和序号字段。我们通过执行 traceroute 192.168.1.1,来分析一下他的原理,它的原理就是利用 IP 包的 TTL 从 1 开始按照顺序递增的同时发送 UDP 包,强制接收 ICMP 超时消息的方法。通过上面的叙述,我们初步了解了 ICMP 协议的内容,那么下面我们来看一下ICMP 的具体实现与应用吧,首先我们来了解。转载 2024-03-01 16:09:30 · 115 阅读 · 0 评论