随笔分类 -  网络编程

摘要:一. ZeroMQ概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。 Zero 阅读全文
posted @ 2019-07-15 20:20 yuxi_o 阅读(1635) 评论(0) 推荐(0) 编辑
摘要:一. iptables简述 防火墙的作用就在于对经过的报文匹配(match)“规则”(rules),然后执行对应的“动作”(target)。 防火墙的发展史就是从墙到链再到表的过程,也即从简单到复杂的过程,为什么规则越来越多,因为互联网越来越不安全了,所有防火墙的规则也越来越复杂。 ipfirewa 阅读全文
posted @ 2019-01-26 15:53 yuxi_o 阅读(2359) 评论(0) 推荐(0) 编辑
摘要:linux可通过五元组唯一确定一个链接:源IP,源端口,目的IP,目的端口,传输层协议。而一个端口不允许被两个及以上进程占用(一个进程可同时占用多个端口),据此是否可以推测一台linux服务器最多可以同时处理2^16(65536,或65K)个链接即并发请求呢? 一台服务器到底能够支持多少TCP并发连 阅读全文
posted @ 2019-01-05 16:34 yuxi_o 阅读(6836) 评论(0) 推荐(0) 编辑
摘要:1.Background Winsock kernel buffer To optimize performance at the application layer, Winsock copies data buffers from application send calls to a Wins 阅读全文
posted @ 2018-08-25 15:06 yuxi_o 阅读(6543) 评论(0) 推荐(0) 编辑
摘要:一、简述 http://libevent.org/ https://github.com/libevent/libevent http://www.wangafu.net/~nickm/libevent-book/ http://www.wangafu.net/~nickm/libevent-2.1 阅读全文
posted @ 2018-07-21 17:20 yuxi_o 阅读(348) 评论(0) 推荐(0) 编辑
摘要:转载:http://blog.csdn.net/wangtaomtk/article/details/51811011 1 C10K问题 大家都知道互联网的基础就是网络通信,早期的互联网可以说是一个小群体的集合。互联网还不够普及,用户也不多。一台服务器同时在线100个用户估计在当时已经算是大型应用了 阅读全文
posted @ 2018-06-21 20:26 yuxi_o 阅读(213) 评论(0) 推荐(0) 编辑
摘要:一. 什么是netfilter netfilter is a set of hooks inside the Linux kernel that allows kernel modules to register callback functions with the network stack. 阅读全文
posted @ 2017-11-25 14:41 yuxi_o 阅读(514) 评论(0) 推荐(0) 编辑
摘要:1. 什么是 Netlink 1. 什么是 Netlink 什么是Netlink?Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式,一般不用Netlink。 阅读全文
posted @ 2017-11-25 13:26 yuxi_o 阅读(644) 评论(0) 推荐(0) 编辑
摘要:转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型。 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层、应用层到内核的调用过程是这样的:首先把描述符、接受数据缓冲地址、大小传递给内核,但是如果此时 该与该套接口相应的缓冲区没有数据,这个时候就r 阅读全文
posted @ 2017-09-02 22:12 yuxi_o 阅读(230) 评论(0) 推荐(0) 编辑
摘要:首部检验和字段是根据 I P首部计算的检验和码,它不对首部后面的数据进行计算。 I C M P、I G M P、U D P和T C P在它们各自的首部中均含有同时覆盖首部和数据检验和码。 为了计算一份数据报的 I P检验和,首先把检验和字段置为 0。然后,对首部中每个 16 bit进行二进制反码求和 阅读全文
posted @ 2017-06-25 13:48 yuxi_o 阅读(7578) 评论(0) 推荐(0) 编辑
摘要:在socket网络编程中经常用到一些宏定义、结构和函数,这些经常包含在相关的头文件中,使用时直接include相关头文件即可。下面简单描述下相关的一些结构及头文件。 1. sockaddr / bits/socket.h socket编程最基本的就是socket地址,其定义在bits/socket. 阅读全文
posted @ 2017-06-24 17:37 yuxi_o 阅读(2667) 评论(0) 推荐(3) 编辑
摘要:ping程序目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求(icmp消息类型0x8,ICMP_ECHO)报文给主机,并等待返回ICMP回显应答(消息类型0x0,ICMP_ECHOREPLY)。 ping程序还能测出到这台主机的往返时间,以表明该主机离我们“多远”。 用tcpdump 阅读全文
posted @ 2017-06-24 10:51 yuxi_o 阅读(428) 评论(0) 推荐(0) 编辑
摘要:TCP(SOCK_STREAM)和UDP套接口(SOCK_DGRAM)可以满足大部分需求,但要获取底层协议内容就需要原始套接字。相比前两者,SOCK_RAW具有如下优点: 1)使用原始套接字可以读写ICMP及ICMP6,如ping程序就是使用原始套接字发送ICMP应答请求。 2)使用原始套接字可以读 阅读全文
posted @ 2017-06-23 20:54 yuxi_o 阅读(2880) 评论(0) 推荐(0) 编辑
摘要:1. 根据ifconfig中相应网口的RUNNING字段检查 int check_net(const char *eth) { int ret = 1; char buf[256]; FILE *fp; memset(buf, 0, 256); sprintf(buf, "ifconfig %s | 阅读全文
posted @ 2016-11-21 01:19 yuxi_o 阅读(824) 评论(0) 推荐(0) 编辑
摘要:UDP program UDP常用函数:recvfrom和sendto recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr * from, socklen_t *addrlen 阅读全文
posted @ 2015-11-29 12:52 yuxi_o 阅读(272) 评论(0) 推荐(0) 编辑
摘要:setsockopt()设置socket描述符的选项 man 7 socket The socket options listed below can be set by using setsockopt(2) and read with getsockopt(2) with the socket 阅读全文
posted @ 2015-11-28 22:45 yuxi_o 阅读(263) 评论(0) 推荐(0) 编辑
摘要:1、基础 虽然网络socket也可用于同一台主机的进程间通讯(通过lo地址127.0.0.1),但是unix domain socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包/计算校验和/维护信号和应答等。只是将应用层数据从一个进程拷贝到另一个进程。这是因为IPC机制本质上是可靠的 阅读全文
posted @ 2015-11-28 16:48 yuxi_o 阅读(2839) 评论(0) 推荐(0) 编辑
摘要:一. TCP协议协议格式 0 16 31 |16位源端口 | 16位目标端口| | 32位序号 | | 32位确认序号 | |4位首部长度|保留(6位)|URG|ACK|PSH|RST|SYN|FIN|16位窗口大小| |16位校验和| 16位紧急指针| |选项| |数据| 解析: 16位窗口大小用 阅读全文
posted @ 2015-11-22 22:38 yuxi_o 阅读(575) 评论(0) 推荐(0) 编辑
摘要:UDP udp段格式 0 16 31 |16位源端口号 |16位目的端口号| |16位UDP长度 |16位UDP校验和| |数据(如果有)| 解析 UDP长度:包含UDP首部和UDP层payload(数据)长度。 UDP校验和:包含UDP首部和UDP层payload的校验和。 UDP协议不面向连接, 阅读全文
posted @ 2015-11-22 22:32 yuxi_o 阅读(266) 评论(0) 推荐(0) 编辑
摘要:IP数据包格式 0 4 8 16 31 |4位版本 | 4位首部长度 | 8位服务类型 | 16位总长度(字节数)| |16位标识 | 3位标志 | 13位片偏移 | |8位生存时间| 8位协议 | 16位首部校验和 | |32位源IP地址| |32位目的IP地址| |选项(可无)| |数据| ne 阅读全文
posted @ 2015-11-22 19:02 yuxi_o 阅读(5156) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示