进程 线程 节点 网络通信
文章平均质量分 80
yun6853992
走在不知道到知道,知道到懂得,懂得到做到,做到到试图分享的路上。
感激每一个对我提出问题的人,感谢每一个善意鼓励我的人。
展开
-
借助libcurl实现ftp文件上传,断点续传demo梳理。
公司业务,需要实现一个ftp大文件上传的功能,简单搭建一个ftp服务器,首先研究demo,以及断点上传的功能。1:首先了解文件上传相关协议,ftp,sftp或者基于http,其他自己实现等。2:确定基于ftp实现,搭建简单的ftp服务器并用工具确定服务器正常。3:基于现有的服务器,了解相关ftp开源库,使用代码实现文件上传最基本的功能。4:考虑到大文件的传输,首先考虑断点续传功能,后期用线程池/多线程方案进行适配优化。5:考虑使用场景,适配在windows上进行测试,基于qt。原创 2024-01-03 19:41:50 · 3059 阅读 · 1 评论 -
udp的简单整理
最近思考udp处理的一些细节,根据公开课,反复思考,终于有所理解,做整理备用。原创 2023-09-17 22:52:56 · 1003 阅读 · 0 评论 -
windows上先简单使用libevent,运行demo
使用libevent。原创 2023-08-20 23:13:46 · 364 阅读 · 0 评论 -
tcp 服务端接收数据处理思路梳理,以及select: Invalid argument报错 笔记
tcp服务端接收时业务思路梳理原创 2022-07-15 09:18:51 · 1699 阅读 · 0 评论 -
日常知识点之网络面试八股文(tcp,惊群现象,协程)
建立在一直学习的基础上,我总觉得对于下面的问题我能做出一些理解。但是我明白的知道,不做一做实际的整理或者测试,我的理解总有一种建立在理论之上,似懂非懂的感觉。结合百度,下面这些问题我按照自己的理解为自己做一些知识备份,如果有不对的知识点,请指正。。。0:总结把做以下梳理时,相关的理解写在前面。1:在整理listen和accept,以及半连接队列和全连接队列时,整理相关知识。listen后,开始三次握手,三次握手的过程中,内核协议栈会维持一个半连接队列和全连接队列。listen的参数backlo原创 2022-02-20 12:24:27 · 3426 阅读 · 0 评论 -
tcp拥塞控制整理
tcp拥塞控制相关整理每次面试的时候都会被聊到这个话题,但每当要说时,就发现并不能侃侃而言。按照自己的理解整理tcp拥塞控制一些知识,参考网络,做汇总笔记,如有不对,请指正~概述tcptcp是流式,可靠的传输控制协议。1:流式传输: 计算机数据的本质是0/1序列(文本流),tcp协议实现了端口到端口的通信,虚拟了文本流的通信。 但是,传输层的下一层是网络层,即ip层,会把数据打包发送,ip层的MTU长度限制,会使tcp协议将数据切割成片段,打包依次发送。2:可靠传输:为了保证数据的可靠传输,原创 2021-11-26 17:00:14 · 2689 阅读 · 0 评论 -
tcp业务层粘包和半包理解及处理
tcp粘包处理tcp是流式传输的,是安全的, 可靠的,顺序的。udp是数据报协议,是不可靠的。面试中经常被问到tcp粘包是如何处理的,通过百度和自己的理解,这里做笔记记录。如果有不对,请指正~参考:https://bbs.csdn.net/topics/380167545业务层认识tcp传输及分析方案tcp是流式传输的,tcp协议栈可以保证传输过程的顺序,可靠性: 也就是说,发送端调用send发送,接收端肯定能按照发送顺序依次接收到。tcp是流式传输的,协议栈只是把接收到的数据放入到对原创 2021-11-25 15:00:45 · 3024 阅读 · 0 评论 -
常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum相关思路和源码来自网络,自己只是整理, 做笔记用。并未完整完善正确归纳,只是个人理解初步做笔记记录。在实现业务需求过程中,通常要用到相关一些校验算法,简单整理常用校验算法并做笔记:常用校验算法简单说明:1:校验和:按每个字节,计算累加和,2:异或校验:定义初值,按每个字节异或,求结果。3:CRC校验:已有很多的标准及计算方式,可以返回8字节,16字节,32字节的结果。受益匪浅的文章:https://blo原创 2021-11-25 12:05:09 · 31564 阅读 · 1 评论 -
以前收集整理的一些tcp知识点
tcpselect poll epoll(通知机制多个回调)1: mac帧头和ip头和udp头ip头是核心,提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。IP协议往往被封装在以太网帧发送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。/*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6]; //目的mac地址 char m_cSrcM原创 2021-07-08 22:13:50 · 199 阅读 · 1 评论 -
arp,udp,icmp编码实现理解
一直关注tcp/ip的底层协议栈,终于有了大概的了解,通过ntytcp了解tcp相关的底层实现,发现除了tcp协议栈相关的东西,还有udp,arp,icmp(ping命令相关),以及通过netmap对网卡数据进行接收的相关基础知识点,幸好,听过king老师相关的课程,这里就简单的做一些整理。1:概念介绍:1:arp: 地址解析协议(ip层/数据链路层) 维护了计算机ip和mac地址(物理地址)的对应关系。 (因为网络通信时实际传输的是“帧”,帧里面是有目标主机的MAC地址的) ==》在TC原创 2021-07-08 22:07:26 · 3194 阅读 · 0 评论 -
对epoll相关知识做简单整理
对epoll相关知识做简单整理:最近一直在做网络通信相关的开发,对epoll的使用有了一定的认知,就有想法整理一下:相关内容来自网络,仅供个人笔记1:什么时候使用epoll 1:通常网络开发(tcp/udp)的时候,使用epoll(IO多路复用)对连接,可读,可写进行监听。 2:epoll事件中可以存储一个指针,这个特性可以用来实现一些复杂的网络处理。 3:用epoll事件中可以存储指针的特性,可以基于此基础上实现一个reactor模型。2:epoll使用的数据结构和函数在熟练使用ep原创 2021-06-24 22:31:08 · 2364 阅读 · 0 评论 -
tcp/udp的并发,一次公开课的收获
零声学院公开课的一次知识整理:1: 思考TCP的并发: 如何实现tcp的并发? 1:I/O多路复用是不错的选择。 2:如果是高并发的web服务器,应该怎么考虑? 1:保证连接数量可以达到一定的量。 (重点是文件fd的限制,和网络代码逻辑的设计) 2:保证在连接数的基础上,业务后台处理(数据库,业务,https等)能达到一定的量。 3:可以使用reactor模式进行实现 4:协程处理。 3:可以试试reactor模式的websocket的实现。 (思考reac原创 2021-06-21 00:00:04 · 237 阅读 · 1 评论 -
com串口通信测试代码
串口助手可以从这里下载:https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B72内容摘自网络:要实现AT指令的发送与接收,第一步先实现相关的串口通信接口:/******************************实现linux环境中端口的打开,关闭********************************///#include<stdio.h> /*标准输入输出定义*/ //#inc原创 2021-06-20 23:33:01 · 1226 阅读 · 0 评论 -
串口模拟工具实现测试
想要实现串口通信接口测试,手边却没有相对应的工具。了解相关的串口模拟工具,串口通信工具,实现模拟com口,实现两端通信的测试。1:模拟虚拟串口因为现在电脑都默认不带虚拟串口,虚拟串口一般也都需要USB转串口的工具,并且我手边也没有相关的串口硬件,这里尝试模拟串口进行测试。采用**VSPD(**Launch Virtual Serial Port Driver Pro)进行串口模拟,参考。https://blog.csdn.net/zyyujq/article/details/90116079添加原创 2021-06-20 23:30:39 · 4990 阅读 · 0 评论 -
对udp进行简单认识
认识udpudp:用户数据报协议提供面向事务的简单不可靠信息传送服务;udp不提供数据包分组、组装和不能对数据包进行排序。udp位于传输层。udp的可靠性由应用层负责。常用的UDP端口号有:53(DNS)、69(TFTP)、161(SNMP);使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP。udp编程接口#include <sys/types.h> #include <sys/socket.h>#include <sy原创 2021-06-20 23:11:42 · 512 阅读 · 0 评论 -
Epoll事件ET和LT模型分析
1:Epoll事件有两种模型: ET: (边沿触发) ==》缓冲区状态发生变化时,触发一次 LT:(水平触发) ==》有数据可读,读事件一直触发 有空间可写,写事件一直触发。使用时,不指定事件模型,则默认是水平触发。2:ET模型ET边缘触发模型,涉及以下问题:1:ET模式下,accept如果多个客户端同时触发,只返回一次的话,有丢失。 ==》处理应该用while循环,一次性处理完。if(epoll_events[i].data.fd == sockfd){ //因为是e原创 2021-06-20 23:08:25 · 700 阅读 · 0 评论