Fragmentación y formato de datagrama IP de la capa de red de la red informática

Formato de datagramas IP


Un datagrama IP consta de un encabezado y datos.

La primera parte del encabezado es una longitud fija de 20 bytes, que deben tener todos los datagramas IP.

Después de la parte fija del encabezado hay campos opcionales de longitud variable. (Opcional)

El protocolo IP envía principalmente paquetes desde la dirección de origen a la dirección de destino. Lo más importante es la dirección de origen y la dirección de destino. Las direcciones de origen y destino ocupan cada una 4 bytes.

Versión 4 bits, utilizada para especificar si es IPV4 o IPV6.

 Este campo ocupa 8 bits, y su función es agregar una marca al paquete de datos y reenviarlo con la marca del lado del enrutador, lo que puede garantizar que el ancho de banda de tráfico de una determinada aplicación esté garantizado.

Ocupa dos bytes, la longitud total se refiere al encabezado más la parte de datos, y la longitud máxima del paquete de datos es de 65535 bytes. La tarjeta de red generalmente tiene una unidad de transmisión máxima MTU, la unidad de transmisión más grande es de 1500 bytes, es decir, el tamaño del paquete de datos que la tarjeta de red puede recibir es de 1500 bytes, la tarjeta de red debe fragmentarse y cada fragmento debe ser añadido a la red La dirección de la capa, cuando el receptor recibe estos segmentos, debe ser empaquetado.

¿Cómo sabe que está ensamblado en una bolsa y tiene un logotipo?

Después de que se fragmenta un paquete de datos, los identificadores son los mismos y el extremo receptor ve que los identificadores de varios fragmentos son los mismos, por lo tanto, cómo empalmar correctamente, lo que requiere una compensación de fragmentos.

 El desplazamiento del segmento se utiliza para indicar cuántos bytes tiene el primer byte de este segmento en el segmento completo. Después de que el extremo receptor lo reciba, ensamblará las rebanadas en un paquete de acuerdo con el desplazamiento de la foto.

Si el indicador de corte es 1, significa que todavía hay cortes por detrás, y si es 0, significa que no hay cortes por detrás.

Fragmentación de datagramas IP


La longitud total de un datagrama es de 3820 bytes, la longitud de su parte de datos es de 3800 bytes (usando un encabezado fijo) y debe fragmentarse en fragmentos de datagrama con una longitud de no más de 1420 bytes.

Debido a que la longitud del encabezado fijo es de 20 bytes , la longitud de la parte de datos de cada fragmento de datagrama no puede exceder los 1400 bytes.

Por lo tanto, se divide en 3 partes de datagramas, la longitud de la parte de datos es de 1400, 1400 y 1000 bytes respectivamente.

El encabezado del datagrama original se copia como encabezado de cada fragmento de datagrama, pero los valores de los campos relevantes deben modificarse.

 Al fragmentar, los encabezados se copian, luego se calcula el desplazamiento y se modifican los campos internos. 8 bytes son 1 unidad.

Se puede ver que los identificadores de los fragmentos son los mismos y MF 1 significa que hay fragmentos detrás del fragmento. La longitud total también cambiará después de la fragmentación.

 

tiempo de supervivencia

El valor máximo es 255, que está relacionado con la cantidad de enrutadores. La computadora A se comunica con la computadora B. Si A quiere enviar un paquete a la computadora B, debe pasar por el enrutador. Suponiendo que el TTL es 128, el TTL se reduce primero antes de que el enrutador reciba el paquete y lo reenvíe.Vaya a 1, vaya a reenviar nuevamente, se convierte en 127. Después de reenviar una vez, el valor de tiempo de vida se reduce en 1. Después de tres enrutadores y finalmente llegar a la computadora B, el valor TTL visto por la computadora B es 125.

Los paquetes de datos enviados por la computadora tienen un TTL predeterminado, que está relacionado con el sistema. Windows tiene un valor predeterminado y Linux también tiene un valor predeterminado.

Si dos computadoras con Windows hacen ping en el mismo segmento de red, entonces el TTL es 128, porque no es un enrutador, si hay un enrutador en el medio, es 127, y si el paquete pasa a través de dos enrutadores cuando regresa, es 126

Si es un sistema Linux, el TTL predeterminado es 64, por lo que el valor inicial de TTL es 128 o 64.

 tracert puede rastrear por cuántos enrutadores ha pasado. Generalmente, no hay muchos enrutadores, como 50 enrutadores.

C:\Users\12396>ping www.baidu.com

正在 Ping www.a.shifen.com [180.101.49.12] 具有 32 字节的数据:
来自 180.101.49.12 的回复: 字节=32 时间=15ms TTL=53
来自 180.101.49.12 的回复: 字节=32 时间=15ms TTL=53

180.101.49.12 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 15ms,最长 = 15ms,平均 = 15ms
Control-C
^C
C:\Users\12396>tracert www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [180.101.49.12] 的路由:

  1     3 ms     1 ms     1 ms  172.17.0.2
  2     4 ms     9 ms    11 ms  115.196.12.1
  3   127 ms   127 ms    28 ms  61.164.23.172
  4     6 ms     5 ms     6 ms  183.129.250.141
  5    13 ms    13 ms    13 ms  202.97.33.157
  6     *       14 ms    14 ms  58.213.95.106
  7     *        *       17 ms  58.213.95.126
  8    11 ms    18 ms    12 ms  58.213.96.90

Cuando se especifica como 1, el campo TTL del paquete de datos enviado por la computadora es 1. Cuando se reduce en uno a través del enrutador, se convierte en 0, por lo que la puerta de enlace devuelve un paquete de datos para indicarle que la transmisión TTL ha finalizado. Caducado. 

C:\Users\12396>ping www.baidu.com -i 1

正在 Ping www.a.shifen.com [180.101.49.11] 具有 32 字节的数据:
来自 172.17.0.2 的回复: TTL 传输中过期。
来自 172.17.0.2 的回复: TTL 传输中过期。
来自 172.17.0.2 的回复: TTL 传输中过期。

Si el TTL es 2, la información se devuelve desde el segundo enrutador y, de manera similar, si es 3, se devuelve desde el tercer enrutador. Usando -i también puedo rastrear el paquete para ver cuántos enrutadores ha pasado.

C:\Users\12396>ping www.baidu.com -i 2

正在 Ping www.a.shifen.com [180.101.49.12] 具有 32 字节的数据:
来自 115.196.12.1 的回复: TTL 传输中过期。
来自 115.196.12.1 的回复: TTL 传输中过期。

180.101.49.12 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
Control-C
^C

La función principal de TTL es evitar bucles. Por ejemplo, la ruta predeterminada en el enrutador A apunta a B, y la ruta predeterminada en el enrutador B apunta a A. Dicha red formará un bucle. Si no hay límite de TTL, el El paquete de datos nunca estará en el enlace Desapareció, por lo que después de que el TTL del paquete de datos se agota a través del límite de TTL, se descarta directamente y el enrutador le devuelve al cliente que el TTL está agotado.

Supongo que te gusta

Origin blog.csdn.net/qq_34556414/article/details/123412823
Recomendado
Clasificación