Programación de red Python 3: implementación del enrutamiento de origen IP
?El enrutamiento del sitio de origen puede especificar de antemano los enrutadores por los que pasa el paquete de datos IP y cambiar la dirección de destino (siguiente salto) del paquete de datos cada vez que pasa por un enrutador
?Usar el encabezado IP El campo de opción registra la IP de enrutamiento. Este campo tiene una longitud máxima de 40 bytes, por lo que puede almacenar hasta 9 IP. El formato de registro es el siguiente:
Tipo: ocupa 1 byte y el valor del código se establece aquí en 137.
longitud: 1 byte, registrando la longitud de toda la opción.
Puntero: elemento de puntero, ocupa 1 byte, apunta a la siguiente dirección de origen procesada, el valor mínimo es 4.
?El host de envío recibe la lista de enrutamiento del sitio de origen de la aplicación, la última entrada (que es la dirección de destino final del datagrama) y el resto son los siguientes saltos pasados, y cada dispositivo ser marcado ¿Es el destino final? Si no, lea el siguiente elemento de la lista como la dirección de destino del siguiente salto del paquete de datos. Al mismo tiempo, cada vez que se envía un paquete de datos desde un enrutador, la dirección de. su interfaz saliente se registra y se reemplaza con ella en la lista. La dirección del salto anterior, el paquete de datos aún regresará por la ruta original cuando regrese.
?Como se muestra en la figura siguiente, la aplicación de envío en el host S envía un datagrama a D, especificando las rutas de origen como R1, R2 y R3. # representa el campo del puntero, sus valores son 4, 8, 12 y 16 respectivamente (un valor representa una IP de 32 bits). El campo de longitud es siempre 1 5 (tres direcciones IP más un encabezado de tres bytes). Se puede ver que la dirección de destino en el datagrama IP cambia en cada salto.