Apretón de manos mínimo necesario antes de establecer la conexión TCP

0

Tengo una PC con Windows que ejecuta un servidor TCP en el puerto 9000. También tengo una FPGA que está conectada directamente a la PC a través de un puerto 10G. El FPGA puede enviar tramas de ethernet para establecer y mantener una conexión TCP con el servidor, y eso es todo. Es decir, el FPGA puede enviar una inicial SYN, responder a la SYN-ACK, etc.

Sin embargo, sospecho que es necesario un poco de apretón de manos para que el servidor reconozca incluso el FPGA inicial SYN. ¿Cuál es el mínimo apretón de manos necesario antes de que el FPGA pueda establecer una conexión TCP con el servidor TCP?

Randomblue
fuente
¿Sospechas? ¿Qué tal un pcap wirehark con las líneas, y usted pregunta, qué es esto antes del SYN? Podría ser simplemente un ARP, especialmente si no han hablado antes.
NickW
¿Estás intentando rodar manualmente tu propia pila TCP?
mfinni
Estoy programando el FPGA, así que no puedo usar a priori WireShark. Además, me gustaría mantener las cosas lo más mínimo posible.
Randomblue
1
Esta pregunta no es un duplicado y debe reabrirse. Esta pregunta es sobre lo que tiene que suceder en 10G Ethernet antes de que se pueda establecer una conexión TCP, es decir, se trata de cómo se implementa TCP a través de Ethernet. No es como la pregunta duplicada que trata sobre lo que sucede después de que se completan esos requisitos previos y se trata del TCP en sí.
David Schwartz
1
David: aunque creo que estás en lo correcto, todavía votaría para cerrar, porque construir mi propia pila TCP mínima (y, por lo tanto, incompleta / incorrecta) no es algo que un administrador de sistemas cuerdo haría nunca.
mfinni

Respuestas:

0

Tal vez me falta algo, pero el "mínimo apretón de manos necesario" para establecer una sesión TCP es el protocolo de enlace TCP de 3 vías:

  1. SYN ->

  2. <- SYN ACK

  3. -> ACK

joeqwerty
fuente
2
¿Sería necesario un ARP para vincular IP <-> MAC? Él dice antes ...
NickW
Probablemente estoy malinterpretando la pregunta, pero para establecer una sesión TCP, debe darse el protocolo de enlace TCP de 3 vías. Para que eso suceda, una resolución de dirección IP a dirección MAC debe ocurrir a través de ARP. Una trama de Ethernet es un "vehículo" para protocolos de capa superior, como TCP. No puede establecer una sesión TCP sin usar TCP, por eso se llama sesión TCP y por eso se llama protocolo de enlace de tres vías TCP.
joeqwerty
Quizás el OP no está hablando de una sesión TCP. Para que se establezca una sesión TCP, debe estar utilizando TCP. Si no está utilizando TCP, entonces no es una sesión TCP ... es otra cosa.
joeqwerty
@joeqwerty: estoy preguntando qué ocurre antes del protocolo de enlace TCP. Aludió a ARP y desea saber si la resolución de la dirección MAC a través de ARP es lo único que debe hacerse antes del protocolo de enlace TCP.
Randomblue
Si. Cuando se habla de la comunicación a través del conjunto de protocolos TCP / IP en una red Ethernet, debe producirse una resolución de dirección IP a dirección MAC a través de ARP antes de que se pueda establecer una sesión TCP. Los hosts involucrados en la sesión necesitan determinar la dirección de hardware de cada uno (la dirección MAC) para que las tramas de Ethernet puedan enviarse de un host a otro y viceversa para que se establezca la sesión TCP.
joeqwerty