概述
通过《原始套接字实例:发送 UDP 数据包》的学习,我们组 UDP 数据包时常考虑字节流顺序、校验和计算等问题,有时候会比较繁琐,那么,有没有一种更简单的方法呢?答案是:借助 libnet
函数库。
libnet 是一个小型的接口函数库,主要用 C 语言写成,提供了低层网络数据包的构造、处理和发送功能。
libnet 的开发目的是:建立一个简单统一的网络编程接口以屏...
分类:
Web程序 时间:
2015-04-12 21:08:54
阅读次数:
217
TCP 报文格式
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP 报文段的报头有 10 个必需的字段和 1 个可选字段。报头至少为 20 字节。报头后面的数据是可选项。
1)源端口(16位)
标识发送报文的计算机端口或进程。一个 TCP 报文...
分类:
系统相关 时间:
2015-04-08 16:28:35
阅读次数:
291
《Linux高性能服务器编程》:当当网、亚马逊目录:第一章:tcp/ip协议族第二章:ip协议族第三章:tcp协议详解第四章:tcp/ip通信案例:访问Internet第五章:linux网络编程基础API第六章:高级IO函数第七章:linux服务器程序规范第八章:高性能服务器框架第九章:IO复用第十...
分类:
系统相关 时间:
2015-04-08 14:49:02
阅读次数:
177
IP 数据报首部
TCP/IP 协议定义了一个在因特网上传输的包,称为 IP 数据报 (IP Datagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首都中的源地址和目的地址都是 IP 协议地址。
I...
分类:
系统相关 时间:
2015-04-07 21:41:03
阅读次数:
195
如果 A (192.168.1.1 )向 B (192.168.1.2 )发送一个数据包,那么需要的条件有 ip、port、使用的协议(TCP/UDP)之外还需要 MAC 地址,因为在以太网数据包中 MAC 地址是必须要有的。那么怎样才能知道对方的 MAC 地址?答案是:它通过 ARP 协议来获取对方的 MAC 地址。
ARP(Address Resolution Protocol,地址...
分类:
系统相关 时间:
2015-04-07 19:41:29
阅读次数:
298
地址:http://blog.csdn.net/matrix_laboratory/article/details/136692112. socket()[cpp]view plaincopyintsocket(intdomain,inttype,intprotocol); socket()打开一个...
分类:
系统相关 时间:
2015-04-07 19:01:06
阅读次数:
204
今天先来编译一下ZeroMQ的示例程序。
首先要先安装zeromq,使用默认的选项./configure, make, make install。
然后是zeromq的server的示例代码
#include zmq.hpp>
#include string>
#include iostream>
#include unist...
分类:
其他好文 时间:
2015-04-02 22:40:04
阅读次数:
244
概述
libpcap 是一个网络数据包捕获函数库,功能非常强大,Linux 下著名的 tcpdump 就是以它为基础的。
libpcap主要的作用
1)捕获各种数据包,列如:网络流量统计。
2)过滤网络数据包,列如:过滤掉本地上的一些数据,类似防火墙。
3)分析网络数据包,列如:分析网络协议,数据的采集。
4)存储网络数据包,列如:保存捕获的数据以为将来进行分析。...
分类:
系统相关 时间:
2015-04-02 20:59:00
阅读次数:
253
首先要说讲述计算机网络和TCP/IP的书很多。 ? 先要学习网络知识才谈得上编程 讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。 《计算机网络(第5版)》是国内外使用最...
分类:
系统相关 时间:
2015-04-01 15:37:59
阅读次数:
187