🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #10396

Problemas con raw sockets y TCP/IP

#10396
From: Rafael Alegre
Date: Mon, 04 Mar 2002 09:47
45 lines
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-mail

Show 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