Así que veamos un ejemplo más completo.
En este ejemplo, el host A inicia una sesión con el puerto de origen de 1024 en un puerto de destino de
23, en otras palabras telnet.
El servidor A envía 10 bytes de datos y un número de secuencia inicial de 10.
El servidor B acusa recibo de los 10 bytes enviando un número
de acuse de recibo a A de 11.
El servidor B en este ejemplo, también establece su número de secuencia inicial en 5.
tenga en cuenta también que los números de puerto están invertidos el puerto de origen para el tráfico que va de B a A es 23 y el puerto de destino es 1024.
En este ejemplo, porque estamos usando una ventana deslizante,
A puede enviar 250 bytes de datos, por ejemplo.
Así que observe que el número de secuencia se incrementa a 260.
En ejemplos anteriores, hemos utilizado números fáciles como el tamaño de ventana de 1
o el tamaño de ventana de 3, pero tenga en cuenta que en realidad los tamaños de ventana
se establecen en la cantidad de datos que se pueden transmitir en bytes.
Así que esto puede no ser tan fácil de leer como secuencias de 1, 2 y 3.
recepción de datos hasta la secuencia 5 y reconocimiento de la secuencia número 6.
Los puertos de origen se vuelven a intercambiar, por lo
que el puerto de origen es 1024 y el puerto de destino es 23.
Ahora el servidor B acepta el número de secuencia 261, recuerda que A envía 10
bytes y los 250 bytes, es decir, 260 bytes
de datos.
B está enviando la secuencia número 6 y una vez más los números de puerto están invertidos.
Es muy importante que comprenda cómo funcionan los puertos de
origen y destino. En esa nota, no hay nada mejor que mostrarle ejemplos del mundo real usando Wireshark.
Así que voy a capturar el tráfico en
mi red y luego voy a ir, por ejemplo, a google. com con mi navegador web.
Regresaré a Wireshark y detendré la captura, he aquí un ejemplo es la consulta de DNS.
Así que tenemos el host 10. 0. 0. 1 que es
mi máquina una laptop Dell, consultando el servidor DNS.
En la capa 2, puede ver que la fuente es mi máquina Dell que va a mi enrutador Cisco.
Este es un cuadro Ethernet 2 y tenga en cuenta el campo tipo.
En la capa 2, como se menciona, el campo tipo especifica el protocolo en la capa 3.
En este caso, 0x0800 en hexadecimal especifica que el protocolo de capa 3 es IPv4.
En la capa 3, puede ver la dirección IP de origen y la dirección IP de destino.
Mi PC y el servidor DNS, pueden ver que esto es IPv4, pueden ver que la
longitud del encabezado es de 20 bytes.
El DSCP o los Puntos de código de los Servicios diferenciados no se
utilizan en este aviso de ejemplo de ECN, que tiene que ver con
la notificación de congestión explícita. Mencioné esto brevemente cuando hablo del encabezado TCP. 42 Lo que me gustaría que vean aquí es observar que el protocolo en la capa 4
es UDP que los valores en hexadecimal, por lo que 11 en hexadecimal es igual a 17, el número de
protocolo una vez más para UDP es 17.
Por lo tanto, en la capa 4, podemos ver que se está utilizando el protocolo de datagrama de usuario o UDP.
El puerto de origen es 62249, en otras palabras, un puerto dinámico o efímero que
va a un puerto de destino de 53, en otras palabras, DNS.
Podemos ver los números de puerto una vez más, y al abrir la consulta de DNS,
podemos ver que se trató de una consulta, buscando una dirección de host específica.
Aquí tenemos una respuesta DNS del servidor DNS a mi host.
Entonces, una vez más, muy rápidamente en la capa 2 puede ver que el campo
tipo denota el protocolo en la capa 3.
En la capa 3, el campo de protocolo, nos dice qué protocolo se utiliza en la
capa 4 Aquí hay otra consulta DNS de mi servidor al servidor DNS.
Y si abrimos la información de consulta DNS, puede ver que
es una consulta para google. com y es una consulta
de host, tipo de aviso A, el servidor DNS responde y nota en la respuesta,
nos da la dirección IP de google. com Ahora aquí está
el handshake de tres vías entre mi máquina y Google.
Observe que la fuente es 10. 0. 0. 1 y
el destino es esta dirección IP que es Google.
Observe que el puerto de origen es 58313 destinos es 80 en otras palabras, estoy abriendo una conexión web a un servidor web.
Al abrirlo, puede ver una vez más los números de puerto de origen y destino, pero
observe aquí que la bandera que se establece es SYN.
Al abrirlo, puede ver que todas las demás
banderas o bits están configurados en 0, excepto el bit
SYN y al abrirlo puede ver que estamos tratando de establecer una conexión con el servidor para que
podamos establecer una conexión. mensaje al servidor
No hay otros indicadores establecidos. Observe que el tamaño de la ventana inicial es
8192 y que abre las opciones, puede ver que el MSS o el Tamaño de segmento máximo está establecido en 1460 bytes.
La respuesta de Google a mi máquina en la capa 4 muestra que el puerto de origen es 80 y
el puerto de destino es 58313.
Al abrirlo, observe que las banderas configuradas son SYN ACK, por lo que es una
segunda parte del handshake de tres vías.
Observe que el bit de acuse de recibo está establecido y el bit de
sincronización está configurado abriéndolo, puede ver que se trata de una conexión que establece el acuse de recibo de Google.
Observe que la solicitud de tamaño de ventana es 5720 y si abrimos el aviso de opciones aquí, el
tamaño máximo de segmento es 1430.
Al observar la última parte del apretón de manos a tres
bandas, observe que mi máquina está hablando con
Google abriendo TCP, y puede ver que las banderas que se configuran son solo el bit de acuse de recibo y el tamaño de ventana solicitado 64350 85 y mirando
el aviso de análisis de reconocimiento de secuencia que esto es
un reconocimiento.
Volviendo al primer paso del movimiento de tres manos,
observe que el número de secuencia inicial de mi máquina para Google se establece en 0.
Yendo al encabezado TCP real, observe el número de secuencia 0.
Google responde como un número de secuencia 0 y el acuse de recibo de 1.
Como puedes ver aquí también.
Entonces nos están avisando, el próximo segmento que esperan recibir es el segmento 1.
Nuestro reconocimiento para ellos es que estamos enviando la secuencia número 1 y
estamos reconociendo la secuencia número 1.
Esto es según lo que discutimos.
Más tarde, cuando se recibe un aviso de HTTP, recibimos información de
Google en nuestra máquina, su TCP, y observemos aquí, este
es un segmento TCP de la Unidad de Datos de Protocolo reensamblada.
En otras palabras, esto es un fragmento.
Al mirar TCP, podemos ver las fuentes HTTP y el destino es nuestro número de puerto.
En otras palabras, Google nos envía un
aviso de que el número de secuencia
es 2861, el siguiente número de secuencia es 3798
y el número de confirmación es 944.
así que el siguiente número de secuencia recuerda que es 3798 yendo
a la siguiente parte del
aviso de captura, el número de secuencia aquí es 3798 y el siguiente número de secuencia es 5228.
Y observe que hay un reconocimiento de nuestra
máquina a Google que dice que esperamos recibir 5228.
Y luego, en la siguiente captura, puede ver que la secuencia
número 5228 fue enviada por Google a nosotros.
El siguiente número de secuencia es 6658, que es la siguiente pieza recibida.
El aviso 6658 es el número de secuencia recibido. 114 Nuestro anfitrión está acusando recibo de eso
y diciendo que el próximo bit de datos para recibir es 7894 yendo a
la siguiente captura, se puede ver que el número de secuencia es lo que Google nos envió.
Ahora, sin aburrirte más, espero que esta
captura te brinde un poco de información sobre lo que
está sucediendo realmente en el cable.
wirehark recuerda una aplicación gratuita que puedes descargar simplemente búscala en Internet. Te
sugiero que captures
algo de tráfico en tu máquina
para que puedas ver lo que ocurre en el fondo.
Entonces, ¿qué hemos cubierto?
En esta sección, observamos los 2 protocolos principales que residen en la capa 4.
UDP o Protocolo de datagramas de usuario y TCP o Protocolo de control de transmisión.
Expliqué los números de puerto y qué números de puerto se usarían en qué escenarios.
Expliqué el apretón de manos de TCP de
tres vías Expliqué las ventanas y les expliqué los números de secuencia.
¡Gracias por ver!