2018-06-02 05:40
⁄ 工业·编程
⁄ 共 1500字
1.招聘的顺口溜而已。其实大多数需要的是熟悉socket编程。
tcp/ip是协议族,协议定义的东西包括报文格式,流控,控制块fsm之类。
socket是个编程界面,不用管什么syn/ack/rst/sequence number之类。
(以前还有所谓传输界面编程,另一组api,淘汰了)socket编程并不太关心协议是什么样,stream可以不是tcp,dgram可以不是udp的。当然现在基本没有别的协议在用了。当然如果实现socket库(估计没人重新发明轮子),
或开发路由器...
TCP, 网络协议阅读全文
2018-05-26 05:35
⁄ 工业·编程
⁄ 共 1235字
三次握手,所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。
第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1...
TCP, 网络协议阅读全文
2018-05-19 22:41
⁄ 工业·编程
⁄ 共 458字
一 混杂模式基本概念
一般情况下,网卡往往只会接收目的地址是它的数据包而不会接收目的地址不是它的数据包。
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下,网卡只把发给本机的包(包括广播包)传递给上层程序,其他的包一律丢弃。
混杂模式就是指网卡能接受所有通过它的数据流,无论是什么模式、什么地址的。当网卡处于这种“混杂”模式时,它对所有遇到的每一个数据帧都产生一个硬件中断,以提醒...
网络编程阅读全文
2018-05-12 22:27
⁄ 工业·编程
⁄ 共 3628字
基本功能就是来捕获所有流经本网卡的数据包。
实现流程:
查找网络设备
打开网络设备
查找设备信息
输入过滤规则
编译输入规则
设置输入规则
开始捕获数据包
调用数据包分析模块
输出MAC,IP,协议以及数据帧
结束
具体实现代码:
#include <stdio.h>
#include <pcap.h>
#include <time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h&g...
Libpcap阅读全文
2018-05-05 22:18
⁄ 工业·编程
⁄ 共 4930字
1.获取网络接口
char * pcap_lookupdev(char * errbuf) //上面这个函数返回第一个合适的网络接口的字符串指针,如果出错,则errbuf存放出错信息字符串,errbuf至少应该是PCAP_ERRBUF_SIZE个字节长度的
int pcap_lookupnet(const char * device, bpf_u_int32 * netp, bpf_u_int32 * maskp, char * errbuf) //可以获取指定设备的ip地址,子网掩码等信息 //netp:传出参数,指定网络接口的ip地址 ...
Libpcap阅读全文
2018-04-29 22:08
⁄ 工业·编程
⁄ 共 1578字
1.Libpcap简介
Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。
著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。
Libpcap提供了用户级别的网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap可以在绝大多数Linux...
Libpcap, 网络安全阅读全文
2018-04-25 06:29
⁄ 工业·编程
⁄ 共 993字
NetBSD 是一个继承自 BSD 的自由、安全且支持诸多处理器架构的类 Unix 操作系统。其源代码完全开源,开发活跃,应用广泛。NetBSD 项目于 4 月 23 日宣布了 NetBSD 8.0 的第一个发布候选。相较于 7.0 版本,NetBSD 8.0 包含诸多更新。部分显著更新如下:
重制 USB 栈,支持 USB3;
内核内置混音器;
可重现的构建;
在某些支持细粒度内存保护且有合适 ELF 格式的架构(i386、amd64、evbarm、landisk 及 pmax)中默认...
BSD, NetBSD, 操作系统阅读全文
2018-04-22 20:31
⁄ 工业·编程
⁄ 共 2266字
DPI 全称为“Deep Packet Inspection”,称为“深度包检测”。所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测”仅分析IP包的层4 以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型,而DPI 除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容。
DPI技术原理
DPI 的技术关键是高效的识别出网络上的各种应用。
普通报文检测是通过端口号来识别应用类型的。如检测到端口号为80时,则...
DPI, 网络安全阅读全文
2018-04-15 20:24
⁄ 工业·编程
⁄ 共 3130字
深度数据包检测(Deep packet inspection,缩写为 DPI)是一种特殊的网络技术,一般网络设备只会查看以太网头部、IP头部而不会分析TCP/UDP里面的内容这种被称为浅数据包检测;与之对应的DPI会检查TCP/UDP里面的内容,所以称为深度数据包检测。
DPI一般是一个硬件或者软件,一般用“旁挂”的方式接入到网络。它会对网络中的每个数据包进行检查,识别出应用层协议,根据识别的协议采取一定的措施(比如记录HTTP访问行为)。对于TCP协议它...
DPI, 网络安全阅读全文
2018-04-08 23:04
⁄ 工业·编程
⁄ 共 4585字
libevent将IO事件、信号事件和定时器事件很好的结合在一起,采用了统一的事件源方式,即把信号事件也转换成IO事件,然后采用同一套IO复用机制去监听。
libevent的事件循环通过event_base_loop完成,另外一个事件循环函数是event_base_dispatch,其功能上即为没有设置标志的 event_base_loop(base, 0)。即event_base_dispatch()将一直运行,直到没有已经注册的事件了,或者调用了event_base_loopbreak()或者event_base_loo...
libevent阅读全文