Article View: es.comp.os.linux.programacion
Article #10396Problemas con raw sockets y TCP/IP
From: Rafael Alegre
Date: Mon, 04 Mar 2002 09:47
Date: Mon, 04 Mar 2002 09:47
45 lines
2654 bytes
2654 bytes
Hola a todos Estoy haciendo una aplicaci�n que se tiene que conectar con un servidor FTP mediante el protocolo TCP/IP pero utilizando raw sockets. He buscado por Internet y s�lo encuentro ejemplos para hacer ping con el protocolo ICMP que no necesita conexi�n. Mi programa hace lo siguiente 1. Crea el paquete IP. La mayor�a de las pruebas las he hecho en el ordenador del trabajo, con lo que utilizo la misma IP en los dos campos de direcciones IP 2. Crea el paquete TCP. Utilizo para hacer las pruebas el puerto 1200 (tengo un ejemplo de servidor TCP escuchando en ese puerto) y le intento asignar el puerto 12500 al cliente. 3. Manda el paquete con sendto, pas�ndole como par�metro una estructura sockaddr_in con el n�mero de puerto (1200) y la direcci�n de destino (la ip de mi maquina). Aqu� es donde el programa falla. Si creo el raw socket con la opci�n IPPROTO_TCP me dice devuelve siempre el error 10049, pero si lo creo con la opci�n IPPROTO_IP funciona, pero no correctamente (el fallo llega en el siguiente paso). 4. Espera una respuesta con recvfrom. El paquete que me llega es el mismo que he mandado yo. y en la estructura sockaddr_in que me indica de d�nde ha llegado el paquete el puerto est� a 0. Me imagino que debo haber dejado la tarjeta de red en modo promiscuo y por eso me llega el mensaje a mi mismo. Por lo que he podido leer por ah�, para realizar la conexi�n con un servidor utilizando el protocolo TCP (orientado a conexi�n) tengo que 1. Mandar el paquete TCP con la bandera SYN activada 2. Recibir una respuesta con las banderas SYN y ACK activadas 3. Mandar otro paquete TCP con la bandera ACK activada. Alguien puede echarme un cable con esto? Muchas gracias a todos
Technical Details
Message-ID:
<a5vfvn$n8b$1@talia.mad.ttd.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!newsfeed.bcn.ttd.net!nsnmpen1-lo.nuria.telefonica-data.net!news.mad.ttd.net!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,9912eef7a007d230,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-03-04 01:50:09 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!newsfeed.bcn.ttd.net!nsnmpen1-lo.nuria.telefonica-data.net!news.mad.ttd.net!not-for-mail From: "Rafael Alegre" <agentevx@hotmail.com> Newsgroups: es.comp.os.linux.programacion Subject: Problemas con raw sockets y TCP/IP Date: Mon, 4 Mar 2002 10:47:40 +0100 Organization: Telefonica Transmision de Datos Lines: 47 Message-ID: <a5vfvn$n8b$1@talia.mad.ttd.net> NNTP-Posting-Host: 213-97-198-59.uc.nombres.ttd.es X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000