上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
摘要: 1、网络通信时,为了确保数据不丢包,早在几十年前就发明了tcp协议!然而此一时非彼一时,随着技术进步和业务需求增多,tcp也暴露了部分比较明显的缺陷,比如: 建立连接的3次握手延迟大; TLS需要至少需要2个RTT,延迟也大 协议缺陷可能导致syn反射类的DDOS攻击 tcp协议紧耦合到了操作系统, 阅读全文
posted @ 2022-03-13 21:34 第七子007 阅读(2156) 评论(0) 推荐(1) 编辑
摘要: 1、为了在进程间通信,linux推出了信号量、共享内存、消息队列、管道、信号等IPC的方式;为了提高IPC效率,android又进一步优化共享内存,推处了binder机制(本质就是把不同进程的虚拟内存映射到同一块物理内存)。进程间通信的问题解决了,线程间也需要通信,android是怎么解决的了?回顾 阅读全文
posted @ 2022-03-09 21:26 第七子007 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1、协程只是一种思路,并且没有操作系统层面的参与,所以全靠3环的应用开发人员自己实现。市面上有各种协程框架,这里以微信的libco库为例,看看协程到底是怎么落地实现的!libco 是微信后台开发和使用的协程库,号称可以调度千万级协程;从使用上来说,libco 不仅提供了一套类 pthread 的协程 阅读全文
posted @ 2022-03-06 21:34 第七子007 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 1、协程原理阐述 (1)为了提升数据处理的效率,用户的应用程序通常采用多线程的形式,典型的就是生产者-消费者模型:生产者往共享内存块写数据,消费者从共享内存块读数据后处理!这种经典的模型具体落地实现时有两点需要特别注意: 多线程之间的互斥/同步:一般情况下共享内存块同时只能有1个线程写,写线程之间必 阅读全文
posted @ 2022-03-03 12:25 第七子007 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 1、linux提供了好几种IPC的机制:共享内存、管道、消息队列、信号量等,所有IPC机制的核心或本质就是在内核开辟一块空间,通信双方都从这块空间读写数据,整个流程图示如下: 这种通信方式天生的缺陷看出来了么? A进程把数据拷贝到内核,B进程从内核再拷贝走,同一份数据可能在内存存放了3份,同时还复制 阅读全文
posted @ 2022-02-25 11:08 第七子007 阅读(1246) 评论(0) 推荐(0) 编辑
摘要: 众所周知,linux的理念是万物皆文件,自然少不了对文件的各种操作,常见的诸如open、read、write等,都是大家耳熟能详的操作。除了这些常规操作外,还有一个不常规的操作:mmap,其在file_operations结构体中的定义如下: 这个函数的作用是什么了? 1、对于读写文件,传统经典的a 阅读全文
posted @ 2022-02-23 16:47 第七子007 阅读(6216) 评论(2) 推荐(2) 编辑
摘要: 为了确保进程数据的安全,cpu在硬件级别就支持不同进程的内存隔离了,采用的手段分别是:LDT和分页;每个进程都有自己的ldt描述符,严格规定了该进程使用的物理内存!同时还有分页机制,不同进程就算是同样的虚拟地址,也会映射到不同的物理地址!这两项措施严格保证了进程之间的物理内存是严格隔离的,互相无法读 阅读全文
posted @ 2022-02-20 21:25 第七子007 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 1、从网络问世直到10来年前,tcp拥塞控制采用的都是经典的reno、new-reno、bic、cubic等经典的算法,这些算法在低带宽的有线网络下运行了几十年。随着网络带宽增加、无线网络通信的普及,这些经典算法逐渐开始不适应新环境了: 手机、wifi等的无线通信在空口段由于信道竞争等原因导致数据包 阅读全文
posted @ 2022-02-12 21:44 第七子007 阅读(1969) 评论(0) 推荐(0) 编辑
摘要: 网络拥塞的概念大家一定不陌生,肯定都有亲生体会:比如节假日的高速路堵车。本来车流量已经很大了,如果再不限制高速口的车进入,整条路只会越来越堵,所以交管部门可能会临时限流,只允许车辆下高速,不允许上高速!互联网刚发明的那会还没有拥塞的概念,各个节点死命地传输数据,导致网络中各种路由设备的buff瞬间被 阅读全文
posted @ 2022-02-09 19:50 第七子007 阅读(1719) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了用来管理存放网络数据包的sk_buff,以及描述通信协议的socket和sock结构体,现在终于轮到怎么和远程的计算机通信了!从常识上讲,通信之前必须要建立连接,比如有线的键盘给电脑发送信号,需要先让键盘通过usb接口连接到电脑,否则电脑怎么接受键盘的电信号了?同理:我要想使用鼠标,比如先 阅读全文
posted @ 2022-02-04 17:38 第七子007 阅读(920) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页