云计算与虚拟化概述 资料来源 http://liangweilinux.blog.51cto.com/8340258/1729162云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用程序,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。在云计算之前的模式和技术 1、IDC托管 2、IDC租用
vxlan 1、概述 (1)VXLAN是建立在物理IP(overlay)网络之上的虚拟以太网 使用UDP封装完整的内层以太帧,封装报文头共五十个字节 (2)VXLAN使用24位VXLAN网络标识符(VLAN为12位) 最大支持16,000,000个逻辑网络 (3)VXLAN可跨越物理三层网络
setsockopt 总结 setsockopt设置socket状态 1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));如果
centeros 下安装crash kdump linux内核发送崩溃时,kdump会生成一个内核转储文件vmcore。 可以通过分析vmcore分析出内核崩溃的原因。 crash是一个被广泛应用的内核奔溃转储文件分析工具。 使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo。安装、配置、启动kdump安装kdump: yum search kexec-tools yum i
接口层输出 概述每个CPU有一个单独的softnet_data实例,用来存储与网络中断处理相关的报文输出和输出队列。在输出过程中会用到softnet_data中的output_queue和completion_queue队列。/* * Incoming packets are placed on per-cpu queues so that * no locking is needed. */struc
接口层输入 NAPI和非NAPI的区别NAPI使用中断+轮询的方式,中断产生之后暂时关闭中断然后轮询接收完所有的数据包,接着再开中断。而非NAPI采用纯粹中断的方式,一个中断接收一个数据包NAPI都有自己的struct napi结构,非NAPI没有NAPI有自己的poll函数,而且接收数据都是在软中断调用poll函数时做的,而非NAPI使用公共的process_backlog函数作为其poll函数,接收数
linux 套接口缓存 概述Linux网络核心数据结构是套接字缓存(socket buffer),简称skb。它代表一个要发送或处理的报文,并贯穿于整个协议栈。套接字缓存 skb由两部分组成: (1) 报文数据:它保存了实际在网络中传输的数据; (2) 管理数据:供内核处理报文的额外数据,这些数据构成了协议之间交换的控制信息。当应用程序向一个socket传输数据之后,该socket将创建相应的套接字缓存,
网络体系概述 协议栈模型链路层:设备驱动程序 物理层:网络介质,串口联路。 网络层:接受发送转发报文。 传输层:数据传输、数据控制、端端数据控制。 应用层:具体业务,如HTTP.SMTP协议栈层次结构系统调用接口 套接口 传输层 网络层 邻居子系统 网络设备接口 驱动套接口通过网络协议栈通信都需要通过套接口操作,套接口层是协议无关接口,他提供一些接口支持各种协议。Linux中用socket 结
用户空间与内核空间通讯接口之procfs 概述procfs是比较老的一种用户态与内核态的数据交换方式,内核的很多数据都是通过这种方式出口给用户的,内核的很多参数也是通过这种方式来让用户方便设置的。除了sysctl出口到/proc下的参数,procfs提供的大部分内核参数是只读的。创建实例struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct
预先创建线程池的服务器程序 1) 定义存放已连接套接字描述符共享数组 2)创建线程池 3)等待用户连接 4)等待为之服务的客户描述符#include <time.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <string.h>#include <unistd.h>#include <stdio.
一款简单易用的 DNS 发包工具 #include <stdio.h>#include <string.h>#include <netinet/in.h>#include <netdb.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <signal.h>#include <pthr
LocalDNS 授权服务器 背景知识1) DNS:域名系统。 2)LocalDNS:提供缓存和递归的服务。 3)授权DNS:提供权威解析。 4)原始问题:用户发送的DNS请求所查询的问题。 5)派生问题:在进行递归查询的过程中会不断派生新问题,称之为派生问题。 6)活动派生问题:在递归的整个过程中已向授权服务器发出请求,还未收到响应的派生问题。工作流程用户发送DNS请求到LDNS系统,首先到达缓存模块,如果缓存模块缓
CDN 技术浅析 CDN 背景基本及概念直接解释为内容分发网络,主要任务是将客户需要提供给使用者的内容从源站传递到客户端,简单理解就是一中介,房产中介,加快租房或者买房的速度,为什么需要CND呢主要有几个方面 1)网站接入互联网的带宽有限。业务繁忙时就会拥塞。 2)不同运营商互联互通拥塞 3)长途骨干传输容易成为互联网瓶颈 由此产生CDNCDN 工作过程 1)用户点击本地URL,经过本地DNS解析,DNS会
使用线程的TCP回射服务器程序 使用线程缘由1)fork 代价昂贵 2)fork 返回之后父子进程信息传递需要通过IPC机制同一进程内的线程除共享全局变量外还共享: a)进程指令 b)大多数数据 c)打开的文件描述符 d)信号处理函数和处理 e)当前工作目录 f)用户ID和组ID不过每个线程有各自的a)线程ID b)寄存器集合 c)栈 d)errno e)信号掩码 f)优先级
IO 复用 I/O复用典型的场景1)客户处理多个描述符时 2)如果TCP服务器既要处理监听套接字,又要处理已连接套接字。 3)一个服务器既要处理UDP又要处理TCP时 4)一个服务器要处理多个服务或者协议时I/O模型1)阻塞式 2)非阻塞式 3)IO复用 select poll等 4)信号驱动I/O 5)异步I/O
避免僵死进程 http://blog.csdn.net/divlee130/article/details/49048881中 如果服务器主机子进程终止会给父进程发送一个sigchld 信号,但是父进程并没有处理该信号,所以子进程进入僵死状态,在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进
tcp 客户、服务器程序示例 1)client 从标准输入读入一行文本,并写给服务器。 2)服务器从网络输入读入这行文本,并回射给客户。 3)客户从网络输入读入这行回射的文本,显示在标准输出上标准输入—–fgets—-> tcp 客户—write——————-read–>tcp 服务器标准输出<—-fputs—–tcp 客户<—read——————-write—tcp 服务器client 代码#include <stdio.
TCP时间获取socket程序 客户服务器设计范式之迭代服务器,不过这种服务器使用范围很有限,因为这种服务器无法处理已等待服务的新用户。#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <arpa/inet.h>#include <unistd.h>#include <strin
DPDK 之ubuntu安装 概要本文环境为ubuntu虚拟机。主要讲解如何在虚拟机下安装DPDK开发环境步骤1.安装VM-Workstation处理器数量至少2个核一个用于DPDK报文处理一个用于内核处理,2个网络适配器一个用于DPDK报文处理一个用于内核处理。就用默认的NAT模式即可。2.进入DPDK-2.0.0 目录执行./tools/setup.sh依次执行 9 编译 12 安装igb_uio驱动, 14
linux 防火墙配置规则 基础知识Linux系统内核内建了netfilter防火墙机制。Netfilter(数据包过滤机制),所谓的数据包过滤,就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决该连接为放行或阻挡的机制。Netfilter提供了iptables这个程序来作为防火墙数据包过滤的命令。Netfilter是内建的,效率非常高。我们可以通过iptables命令来设置netfilter的过滤机制。i