计算机网络
文章平均质量分 78
网络编程相关。
ka__ka__
软件工程师
展开
-
Linux 网络IO: 同步、异步、阻塞与非阻塞
对于Linux,当前主流的网络I/O还是同步I/O,对于处理高并发,采用的方案就是I/O复用,多线程,多进程。具体选择要根据业务场景的特点来选择。同步、异步和阻塞、非阻塞针对的是两个不同的维度:同步的关键是有序,强调的有序的任务序列,下一步操作依赖这一步。异步的关键是处理调用的对象在处理完成后主动通知,可通过回调,通知,状态变更等,依赖具体的实现机制。这里的机制很关键,CPU调度的最小...原创 2016-11-23 00:11:19 · 1028 阅读 · 0 评论 -
Linux网络编程:TCP Socket通信的基本用法
从 TCP/IP 协议说起通信必然要求参与通信的双方约定好规则,这就是协议。当今世界的互联网基本就是跑在 TCP/IP 协议族上。两台主机通信最底层就是网卡对外发送的以太网帧。下面从报文结构的角度从底向上说说协议: 以太帧头, 以太头有本对端MAC地址,主要 用来二层交换, MAC地址是固化在网卡中的,一个主机可以插多个网卡。IP头, 有本对端IP地址,主要用来路由,一个网卡可以配多...原创 2016-05-30 00:29:52 · 1626 阅读 · 0 评论 -
HTTP1.1 基础: 请求和响应的消息交互细节
HTTP 基础概念都8102年了,即使不是一名web程序员,也还是需要了解一下http基本知识的。下面是RFC2616对HTTP的描述: The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia informatio...原创 2018-08-26 16:36:01 · 3420 阅读 · 0 评论 -
HTTP1.1 基础: 用C语言实现200行内的极简http server
对HTTP协议有了基础的了解后,可以看这篇: HTTP 基础: 请求和响应的消息交互细节, 就可以用纯C来实现一个极简的http server了。这个的http server主要完成此功能: 通过URL访问server根目录的html类型文件。代码如下:#include <sys/types.h>#include &原创 2018-09-02 23:38:55 · 6323 阅读 · 4 评论 -
Linux网络编程:基于epoll的IO多路复用并发模型
Linux网络编程用的比较多的就是基于epoll的IO多路复用模型。高性能Web服务器Nginx底层使用的就是epoll。常见的并发模型对比多线程模型多线程并发模型一般使用同步IO,每个连接起一个线程,编程相对直观容易,但是连接数非常受限,在IO密集型场景吞吐量就比较低。一台计算机同时可以执行的线程取决于CPU核数,即使开了CPU超线程,也并不会增加多少可以真正并发的线程。而且,每个线程都需...原创 2018-12-09 00:05:27 · 1262 阅读 · 2 评论 -
网络安全:非对称加密RSA算法
非对称加密RSA算法对极大整数做因数分解的难度决定了RSA算法的可靠性。加密RSA加密过程简单描述如下:选两个大质数 p,qp, qp,q,计算n=p⋅qn=p\cdot qn=p⋅q;随机选一个整数eee,满足eee和(p−1)(q−1)(p-1)(q-1)(p−1)(q−1) 互质;数据xxx加密后为yyy,那么y=xemod &ThinSp...原创 2019-03-31 20:48:03 · 613 阅读 · 0 评论