新人学习,如有错误请见谅和指正。如果大家参考,请多找资料和实验进行比对研究。谢谢
iphdr->tot_len
iphdr->tot_len
总长度字段(16位)是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道 IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据报最长可达65535字节
总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节,但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
tcphdr->doff
TCP头长度,指明了在TCP头部包含多少个32位的字。此信息是必须的,因为options域的长度是可变的,所以整个TCP头部的长度也是变化的。从技术上讲,这个域实际上指明了数据部分在段内部的其起始地址(以32位字作为单位进行计量),因为这个数值正好是按字为单位的TCP头部的长度,所以,二者的效果是等同的
由这两个参数来规定tcp内数据包的大小?但是以太网的填充字段(Padding)怎么办。
TCP数据包的大小是很大的,但是如果超过MTU就需要分片发送数据包。所以在syn攻击里应尽可能采用单包发送,提高效率。【详见附1】
test1:
操作:修改ip.tot_len字段(加20)并且给发送的总包加上相应字段内存
结果:失败了,收到数据包大小为74(54+20
tcphdr->doff
TCP头长度,指明了在TCP头部包含多少个32位的字。此信息是必须的,因为options域的长度是可变的,所以整个TCP头部的长度也是变化的。从技术上讲,这个域实际上指明了数据部分在段内部的其起始地址(以32位字作为单位进行计量),因为这个数值正好是按字为单位的TCP头部的长度,所以,二者的效果是等同的
由这两个参数来规定tcp内数据包的大小?但是以太网的填充字段(Padding)怎么办。
TCP数据包的大小是很大的,但是如果超过MTU就需要分片发送数据包。所以在syn攻击里应尽可能采用单包发送,提高效率。【详见附1】
test1:
操作:修改ip.tot_len字段(加20)并且给发送的总包加上相应字段内存
结果:失败了,收到数据包大小为74(54+20