Уважаемые Аналитики ЛОРа! Пытаюсь написать программку для работы с RAW-сокетами, заполняю структуры tcphdr и iphdr,
iph = (struct iphdr *)pack; tcph = (struct tcphdr *)iph + sizeof(struct iphdr);
iph->version = 4; iph->ihl = 5; iph->tos = 0; iph->id = htons(MARK); iph->tot_len = sizeof(struct iphdr) + sizeof(struct tcphdr); iph->protocol = 6; iph->saddr = spoofip; iph->daddr = targetip; iph->ttl = 128; iph->check = 0; iph->frag_off = 0;
tcph->source = BIND; tcph->dest = addr.sin_port; tcph->seq = seq; tcph->ack_seq = 0; tcph->res1 = 3; tcph->res2 = 1; tcph->doff = 6;
tcph->syn = 1; tcph->fin = 0; tcph->rst = 0; tcph->ack = 0; tcph->psh = 0; tcph->urg = 0;
tcph->window = htons(wind); tcph->check = 0; tcph->urg_ptr = 0;
отправляю пакет, и смотрю tcpdump'ом:
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 10:07:51.363152 IP (tos 0x0, ttl 128, id 20692, offset 0, flags [none], proto: TCP (6), length: 44) 0day..0 > 0day..0: tcp 24 [bad hdr length 0 - too short, < 20]
В чем ошибочка?