文章分类 - net
网络编程学习
摘要:原始套接字工作原理与规则 原始套接字是一个特殊的套接字类型,它的创建方式跟TCP/UDP创建方法几乎是一摸一样,例如,通过 int sockfd; sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP);复制代码这两句程序你就可以创建一个原始套接字.然而这种类型套接字的功能却与TCP或者UDP类型套接字的功能有很大的不同:TCP/UDP类型的套接字只能够访问传输层以及传输层以上的数据,因为当IP层把数据传递给传输层时,下层的数据包头已经被丢掉了.而原始套接字却可以访问传输层以下的数据,,所以使用raw套接字你可以实现上至应用层的数据操作,...
阅读全文
摘要:计算Ethernet是网络编程的基础,本文的内容来源于《计算机网络高级软件编程技术》帧的格式:字段字段长度(字节)目的前导码(Preamble)7同步帧开始符(SFD)1标明下一个字节为目的MAC字段目的MAC地址6指明帧的接受者源MAC地址6指明帧的发送者长度(Length)2帧的数据字段的长度(长度或类型)类型(Type)2帧中数据的协议类型(长度或类型)类型和填充(Data and Pad)注46~1500高层的数据,通常为3层协议数据单元。对于TCP/IP是IP数据包帧校验序列(FCS)4对接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧 注:如果数据包小于46字节,则要
阅读全文
摘要:在发送ip数据包时一般的数据包头部都可以调用系统函数生成,在我们研究ping命令时有时需要自己构造和解构ip包头。在一般情况下ip数据包包头有20个Byte,不包括ip数据包选项。ip头部结构为:/*The IP header */typedef struct iphdr {unsigned char h_len:4; // length of the header 4 bitunsigned char version:4; // Version of IP 4 bitunsigned char tos; // Type of service 16 bit unsigned short tot
阅读全文
摘要:转至:http://blog.csdn.net/zhangyang0402/article/details/3924108一、首先区别下面两个概念:(1)one's complement:正数=原码,负数=反码 (2)two's complement:就是通常所指的补码二、计算ip首部校验和1.发送IP数据报计算checksum(1)将校验和字段置为0;(2)对首部中(一般为20B)每个16位字进行二进制反码求和;(3)将(2)中得到的和再取反码,即得checksum,写入校验和字段中。抓个IP数据包,取IP数据报报头部分(20B),数据如下:45 00 00 30 80 4c
阅读全文
浙公网安备 33010602011771号