Народ, помогите с сабжем: Открываю сокет : sock==socket(PF_INET,SOCK_RAW,IPPROTO_RAW) Создаю TCP/IP пакет : ip=(struct iphdr*)packet; tcp=(struct tcphdr*)(packet+IPHDRSIZE); DATA=(unsigned char*)(packet+IPHDRSIZE+TCPHDRSIZE); //TCP tcp->th_sport=htons(source_port);//source port tcp->th_seq=htonl(seq_num);//seq number tcp->th_ack=htonl(ack_num);//ack number tcp->th_off=5;//offset tcp->th_flags=flags;//tcp flags tcp->th_win=htons(winsize);//window size tcp->th_urp=0;//urgent pointer(no urgent data) tcp->th_dport=htons(dest_port); tcp->th_sum=in_cksum((u_short*)pseudo,TCPHDRSIZE+PSEUDOHDRSIZE+data_size); //IP ip->saddr=source_ip;//source ip address ip->daddr=dest_ip;//destinition ip address ip->ihl=5;//header lenght(count of 4-bytes words) ip->version=4;//ip version ip->ttl=245;//TTL(time to life) ip->protocol=6;//TCP ip->tot_len=htons(IPHDRSIZE+TCPHDRSIZE+data_size);//lenght ip->tos=0;//type of service ip->id=random() % 1256;//id ip->frag_off=0;//offset ip->check=in_cksum((u_short*)packet,IPHDRSIZE);//checksum //Посылаю его: sin_dest.sin_addr.s_addr=ip->daddr; sin_dest.sin_family=AF_INET; sendto(sp_fd,packet,IPHDRSIZE+TCPHDRSIZE+data_size,0, (struct sockaddr*)&sin_dest,sizeof(struct sockaddr)); Так вот вопрос: sendto возвращает количество переланных байт (как оно идолжно быть),но почему-то на целевую машину ничего не приходит. Машины в одной сети, соединены хабом. Может кто-нибудь подскажет в чем дело?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум размер пакета в pcap (2006)
- Форум RAW socket - sending TCP-packet (2007)
- Форум Передача стурктуры sendto, recfrom (2012)
- Форум Malformed пакет LBMSRS (2024)
- Форум Не приходит ответ на SYN-запрос (2024)
- Форум raw socket (2010)
- Форум RAW socket (2008)
- Форум raw socket (2001)
- Форум RAW socket (2001)
- Форум raw sockets (2004)