
network
文章平均质量分 81
致守
这个作者很懒,什么都没留下…
展开
-
HTTP协议超级详解
HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。转载 2025-03-07 21:30:07 · 106 阅读 · 0 评论 -
3-1 HTTP全解(IP、端口port、域名、URL、curl命令)
1.前言HTTP:超级文本传输协议protocol:协议、礼节、入门李爵士发明的三样东西:WWW=URL+HTTP+HTML。转载 2025-03-04 09:21:10 · 56 阅读 · 0 评论 -
【Postman】Postman模拟服务(mock)使用教程
这样我们就得到了一个mock server的地址,也就是说,这个mock server是postman在自己的服务器上为我们创建的,只要我们打开postman,我们都可以直接用这个地址来访问mock的API。点击下图中的Example,在出现的界面内点击“Add Example”,就会创建一个该Request的一个Response。点击新创建的测试用例旁边的箭头,再点击“Mocks”,在切换出的界面中,点击“Create a mock server”。”,选择“Add Request”添加请的请求。转载 2025-03-04 09:19:21 · 101 阅读 · 0 评论 -
并发之C语言中的poll函数技术详解
poll函数是C语言网络编程中一个重要的工具,它通过监控多个文件描述符的状态,实现了高效的非阻塞式IO操作。本文详细介绍了poll函数的基本使用和工作原理,并通过代码案例展示了其应用方法。在下一部分,我们将进一步探讨poll函数的高级用法和优化策略。本部分深入探讨了poll函数的高级用法和优化策略,并通过实际应用案例展示了其在网络编程中的强大功能。poll作为一个多平台支持的IO多路复用技术,虽然在某些方面可能已经被更先进的IO多路复用技术所取代,但在许多场景下仍然是实现高性能网络应用的关键工具。转载 2025-01-05 19:15:37 · 127 阅读 · 0 评论 -
IO多路复用,select、poll、epoll总结
文件描述符的行为,与函数是没关系的,这些函数都是去检测文件描述符的读写缓冲区,是文件描述符导致的,所以去修改文件描述符的属性,把文件描述符设置为非阻塞。通过测试 如果 epoll_wait()只通知一次,并且接收端接收数据的缓存比较小,导致服务器端通信的文件描述符中的数据越来越多,数据如果不能全部读出,就无法处理客户端请求,如何解决这个问题?4. 内核根据传递的集合中的数据,对文件描述符进行线性检测,如果有满足条件的文件描述符,内核会通知调用者。转载 2025-01-05 19:11:40 · 37 阅读 · 0 评论 -
poll方法的基本概念
select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理。转载 2025-01-05 19:05:39 · 63 阅读 · 0 评论 -
图解Linux poll机制,终于集齐IO复用三剑客(精华篇)
和epoll机制,select和epoll两种IO复用方式用的人比较多,就像一家人一样,epoll相当于大哥,select相当于弟弟,而poll相当于二哥,家里的老二通常是很容易被忽视的对象,poll这种IO复用方式也很容易被忽视。socket检测到读,写,异常事件后,会通过注册到socket等待队列的回调函数poll_wake将进程唤醒,唤醒的进程将再次轮询poll_list链表。poll传入的是struct pollfd数组,并指定了数组长度,可以减少无效的轮询,提高轮询效率。转载 2025-01-05 19:03:39 · 106 阅读 · 0 评论 -
muduo杂谈(一)Complete type
这种做法能使当T为不完整类型时编译报错。(当T为不完整类型时,sizeof(T)给出的是0,根据代码规则,-1是不能作为数组的size的,因此,这里相当于强制编译器给出error而不是 warning)。在C++中,类型有Complete type和Incomplete type之分,对于Complete type, 它的大小在编译时是可以确定的,而对于Incomplete type, 它的大小在编译时是不能确定的。用delete删除一个只有声明但无定义的类型的指针(即不完整类型),是危险的。转载 2024-12-25 18:22:17 · 23 阅读 · 0 评论 -
libevent、libev、libuv、IOCP、asio、muduo优劣分析、QT下编译libevent静态库
不同的事件对应不容的处理方法。欲使用开源网络库libevent、libev、libuv、IOCP、asio、muduo中的一个,经过对比分析,因本服务器系统目前于windows下运行,考虑到未来跨平台的支持,最终选定libevent开源网络库。看到很多技术牛人写的文章,受益匪浅,也很羡慕,羡慕他们的技术还有文采。这是一个用纯c++写的库,仅在linux下使用,one loop per thread的思想贯穿其中,将I/O 定时 信号都通过文件描述符的方式融合在一起,三类事件等同于一类事件来看待。转载 2024-12-25 16:54:23 · 176 阅读 · 0 评论 -
当今乱世,谁能夺得C++标准网络库宝座?
也许未来C++标准网络库的宝座还是会一直空下去,但我真诚祈祷能有一个网络库能脱颖而出,结束这纷争的乱世。然而,当前确实没有一款网络库能够有资格当选标准网络库,C++委员会也是秉承宁缺毋滥的精神,让标准网络库这个宝座一直空着。答案很羞于出口,不是不想提供,不能提供,而是没有一个库能当选标准网络库。C++标准库最大的痛是什么,毋庸置疑,那就是缺少网路库,犹如三军之中缺少主帅。一般优秀的高性能服务,完善C++的网络生态,延续C++的万世繁荣。是一个支持多种协议的客户端库,熟悉命令行的同学一定不陌生,转载 2024-12-25 16:53:21 · 66 阅读 · 0 评论 -
网络库libevent、libev、libuv、libhv对比
本文非原创,而是转摘自Libevent、libev、libuv三个网络库,都是c语言实现的异步事件库。异步事件库本质上是提供异步事件通知(Asynchronous Event Notification,AEN)的。异步事件通知机制就是根据发生的事件,调用相应的回调函数进行处理。事件是异步事件通知机制的核心,比如fd事件、超时事件、信号事件、定时器事件。转载 2024-12-25 16:46:27 · 168 阅读 · 0 评论 -
TCP/IP流协议(处理粘包):readline—包尾\n(recv/send
返回值> 0 成功接收数据大小= 0 另外一端关闭了套接字= -1 错误,需要获取错误码errno参数:flagsMSG_OOB 带外数据 紧急指针MSG_PEEK 偷窥缓冲区中的数据(预先读缓冲区,不将数据从缓冲区中读走)注意:recv只能用于socket流;read可以用于socket流和文件。转载 2024-11-16 15:21:14 · 77 阅读 · 0 评论 -
Unix/Linux编程:分散输入和集中输出------readv() 、 writev()
limits.h>转载 2024-11-16 15:19:40 · 68 阅读 · 0 评论 -
socket recv函数系列,recv,recvfrom,recvmsg,一文彻底弄懂,可作参考手册
文件描述符接收函数,可用于套接字批量接收操作接收。套接字接收函数,能够获取对端套接字地址信息。图 2 struct msghdr结构体解析。文件描述符接收函数,可用于套接字接收。套接字批量接收函数。转载 2024-11-16 14:25:38 · 571 阅读 · 0 评论 -
linux 内核tcp接收数据的实现
最后在分析tcp_v4_rcv和tcp_recvmsg之前,我们要知道tcp_v4_rcv还是处于软中断上下文,而tcp_recvmsg是处于进程上下文,因此比如socket_lock_t才会提供一个owned来锁住对应的sock。接收数据这里和3层的接口是tcp_v4_rcv(我前面的blog有介绍3层和4层的接口的实现).而4层和用户空间,也就是系统调用是socket_recvmsg(其他的读取函数也都会调用这个函数).而这个系统调用会调用__sock_recvmsg.下面我们就先来看下这个函数。转载 2024-11-16 14:24:15 · 114 阅读 · 0 评论 -
深入理解IOCP 8.10:高效处理并发I/O操作
IO完成端口(IO Completion Ports,简称IOCP)是Windows平台上一种高效的I/O模型。其主要目标是处理大量的异步I/O请求,并提供了一种机制将这些操作的完成通知给应用程序。IOCP允许开发者利用多线程技术以非阻塞的方式提高程序的性能,尤其适合处理并发量大的网络服务器应用。在Windows平台上,IO完成端口(IOCP)对象的创建是通过函数实现的。这一API是IOCP机制的核心,用于创建一个或多个I/O完成端口,并且可以将文件句柄与这些端口关联起来。转载 2024-11-13 19:36:52 · 112 阅读 · 0 评论 -
IOCP模型与网络编程
嘿嘿,不过好像是一个挺好玩的东西,挺好奇是什么东西来的,又是一个新知识啦~于是,开始去寻找一大堆的资料,为这个了解做准备,只是呢,有时还是想去找一本书去系统地学习一下,毕竟网络的资料还是有点零散。之前说过,很通俗地理解可以理解成是用于高效处理很多很多的客户端进行数据交换的一个模型,那么,它具体的优点有些什么呢?转载 2024-11-13 19:34:53 · 52 阅读 · 0 评论 -
技术派-epoll和IOCP之比较
当然你也可以说,也很有可能是,L店的打印机是时速30张/分钟,W店打印机时速120张/分钟,非常正确,但是这就属于硬件配置的范畴了,这就等于是i9处理器与二十年前的赛扬II处理器在比较了。你会发现,你节省了排队的时间,等到你能获得打印机资源的时候,告诉你来处理。2、告诉店小二说,我先排队,轮到我了帮打印下,好了通知我(也假定你来回路上不耗时);而W店的工作人员,工作任务巨多,慢慢悠悠,边工作边吃饭边聊天,很久才轮到你的打印。如果L店的工作人员,工作任务少,效率非常高,很快就轮到你打印了;转载 2024-11-13 15:46:02 · 99 阅读 · 0 评论 -
Linux - nc命令参数及用法详解--功能超级强大的网络工具netcat
参考 :http://www.linuxso.com/command/nc.htmlNC 全名 Netcat (网络刀),作者是 Hobbit && ChrisWysopal。因其功能十分强大,体积小巧而出名,又被大家称为“瑞士军刀”。nc - TCP/IP swiss army knife 5) 模拟HTTP Headers 来源:NC工具的使用说明教程_nc: cannot use -p and -l-优快云博客nc的使用转载 2024-11-11 19:02:36 · 230 阅读 · 0 评论 -
localhost、127.0.0.1、 ::1 的区别
首先,这是个IPv4地址。IPv4地址有32位,一个字节有8位,共4个字节。其中127 开头的都属于回环地址,也是IPv4的特殊地址,没什么道理,就是人为规定的。而127.0.0.1是众多回环地址中的一个。之所以不是127.0.0.2,而是127.0.0.1,是因为源码里就是这么定义的,也没什么道理。12ping 是应用层命令,可以理解为它跟游戏或者聊天软件属于同一层。而 ping 作为一个小软件,它的功能比较简单,就是尝试发送一个小小的消息到目标机器上,判断目的机器是否可达。转载 2024-10-21 17:00:48 · 1307 阅读 · 0 评论 -
Linux C 获取本机所有网卡的 IP,Mask
虚拟机软件:Oracle VM VirtualBox 6。本机系统:Windows 10。虚拟机系统:Ubuntu 18。备注:转载请注明出处并附加链接。作者:PikapBai。」许可协议进行许可。转载 2024-08-20 10:50:20 · 92 阅读 · 0 评论 -
Linux C 获取主机网卡名及 IP 的几种方法
在进行Linux时,经常会需要获取本机IP地址,除了常规的读取配置文件外,本文罗列几种个人所知的编程常用方法,仅供参考,如有错误请指出。转载 2024-08-20 10:49:15 · 519 阅读 · 0 评论 -
常用车载总线CAN、CAN FD、LIN、FlexRay、Ethernet介绍
摘要:相信做汽车电子行业的小伙伴,对CAN等常用车载总线并不陌生,当然了,可能不做汽车电子的也知道CAN,因为CAN的使用范围不再局限于汽车行业了。航空航天、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械等都会使用到。总线那么多,你是否也和我一样,懵懵懂懂,搞不清楚他们之间的区别呢?下面简单介绍一下,有个初步的了解,希望能帮助你区分它们CAN总线CAN总线详细介绍CAN FD总线详细介绍LIN总线详细介绍FlexRay总线详细介绍。转载 2024-07-30 15:49:38 · 411 阅读 · 0 评论 -
汽车网关(gateway)系统的作用原理及部分车型网关位置
就按刚才说的,用火车站转换旅客的过程来说明网关的工作原理最为合适,在某个车站,站台1到达一列动车组(驱动CAN总线,数据传输速率为500kbit/s)车上有数百名旅客(数据),在站台2已经有一列普快列车(车身BCM信息CAN总线,数据传输速率为100kbit/s),在等待,有一些旅客就要换到这列普快列车上,有一些乘客要换乘到特快列车继续旅行,当然,也有很多时候旅客是从这一列火车上下来到候车厅去等待相应的车次,这相当于网关信息的缓冲作用。保时捷的网关在主驾驶座椅下,无线智能网关在副驾驶手套箱前方;转载 2024-07-30 14:10:26 · 764 阅读 · 0 评论 -
汽车中央网关功能详解
汽车厂商通过 OTA (Over-The-Air Technology, 空中下载技术)可以将更新的软件、固件、配置等程序文件从云端传输到车辆中心网关,然后再通过汽车网关进行信息的分发,对车辆的电子控制单元(ECU)进行升级、修复和优化。IDS(Intrusion-Detection System,入侵检测系统)部署在车载网络流量集中的中央网关上,通过对车载网络报文的实时检测,能够有效识别异常报文和冗余报文,从而对车主和整车厂进行实时预警。密钥管理是指一套规则和方法,用于生成、存储、分发和维护密钥。转载 2024-07-30 14:09:38 · 1758 阅读 · 0 评论 -
计算机网络中间设备(网关,路由器,交换机,网桥,中继器,集线器)
交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。物理层设备和其他层次的设备(如:交换机、网桥、路由器)最大的区别在于:集线器和中继器工作在同一个网段下的,而交换机、路由器等设备是工作在不同网段下的。网桥、交换机工作在2层,靠物理地址工作,解决CSMA/CD的冲突问题,网桥基于软件,现在用的不多,只有个概念,交换机是基于硬件的网桥(ASIC)。转载 2024-07-30 14:06:27 · 2672 阅读 · 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 · 1597 阅读 · 0 评论 -
动画图解 socket 缓冲区的那些事儿
编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的socket API。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用listen方法,可以让程序作为服务器监听其他客户端的连接。用connect,可以作为客户端连接服务器。用send或write可以发送数据,recv或read可以接收数据。在建立好连接之后,这个socket文件就像是远端机器的"代理人"一样。比如,如果我们想给远端服务发点什么东西,那就只需要对这个文件执行写操作就行了。转载 2024-07-25 20:26:00 · 205 阅读 · 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 · 1426 阅读 · 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 · 338 阅读 · 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 · 292 阅读 · 0 评论 -
解密IP分片与重组:数据传输中的关键技术
本章节中,我们深入探讨了IP分片与重组的工作原理。不同的数据链路具有不同的最大传输单元(MTU),当数据包的大小超过MTU限制时,IP分片将数据包分割为多个较小的分片进行传输,到达目的地后通过IP重组机制重新组合成完整的数据包。TCP分段的目的是为了让IP层不再进行分片,并在发生重传时只重传已经分段的小份数据,提高传输效率和可靠性。然而,在整个传输链路中可能存在其他网络层设备,它们的MTU可能小于发送端的MTU,因此数据包仍会在这些设备的IP层进行再次分片。转载 2024-07-25 16:08:29 · 176 阅读 · 0 评论 -
终于有人能讲清楚了 UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?
或者卟卟卟卟卟卟卟卟…对于一些多点通信的场景,如果采用有连接的 TCP,那么就需要和多个通信节点建立其双向连接,然后有时在 NAT 环境下,两个通信节点建立其直接的 TCP 连接不是一个容易的事情,在涉及 NAT 穿越的时候,UDP 协议的无连接性使得穿透成功率更高.采用 udp 协议,通过服务器中转方式。UDP是没有流量控制的;或者,UDP 每次都是发巨大的 UDP 包,包大小是 MTU 的几百倍,这样会造成下层 IP 层的大量分片,大量分片的情况下,其中某个分片丢失了,就会导致整个 UDP 包的无效。转载 2024-07-25 16:07:28 · 306 阅读 · 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 · 373 阅读 · 0 评论 -
UDP分包与组包
TCP/IP卷一:54---UDP之(用户数据报协议(UDP)简介、UDP数据报格式、UDP校验和)_udp4784-优快云博客,或者其他关于UDP的文章。转载 2024-07-25 16:05:28 · 219 阅读 · 0 评论 -
万字图解 | 深入揭秘IP层工作原理
想必不少同学在面试过程中,会遇到「在浏览器中输入www.baidu.com后,到网页显示,其间发生了什么」类似的面试题。本专栏将从该背景出发,详细介绍数据包从HTTP层->TCP层->IP层->网卡->互联网->目的地服务器 这中间涉及的知识。本系列文章将采用自底向上的形式讲解每层的工作原理和数据在该层的处理方式。转载 2024-07-25 16:04:37 · 126 阅读 · 0 评论 -
万字图解|深入揭秘(数据链路层、物理层)工作原理
想必不少同学在面试过程中,会遇到「在浏览器中输入www.baidu.com后,到网页显示,其间发生了什么」类似的面试题。本专栏将从该背景出发,详细介绍数据包从HTTP层->TCP层->IP层->网卡->互联网->目的地服务器 这中间涉及的知识。本系列文章将采用自底向上的形式讲解每层的工作原理和数据在该层的处理方式。到目前为止,我们已经把数据链路层和物理层的原理说完了。在最后提到了ip地址和路由器,关于ip地址和路由器的更多细节,我们将在介绍IP层时详细介绍。转载 2024-07-25 16:02:10 · 55 阅读 · 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 · 4630 阅读 · 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 · 677 阅读 · 0 评论 -
端口扫描技术
因为在实现过程中需要自己完成对应答数据报的查找、分析,使用多线程容易发生数据报的串位现象,也就是原来应该这个线程接收的数据报被另 一个线程接收,接收后,这个数据报就会被丢弃,而等待线程只好在超时之后再发送一个SYN数据报,等待应答。若端口扫描没有完成一个完整的 TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接, 使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。转载 2024-05-31 11:19:07 · 509 阅读 · 0 评论