universidad autónoma metropolitana unidad azcapotzalco una ...
universidad autónoma metropolitana unidad azcapotzalco una ...
universidad autónoma metropolitana unidad azcapotzalco una ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
APÉNDICE A. CODIGO FUENTE DE LA HERRAMIENTA DE GESTION DE REDES VIRTUALES<br />
• Datos (payload)<br />
• Longitud de los datos (payload_s)<br />
El parámetro buf es un puntero al buffer donde se almacena el mensaje ARP <strong>una</strong> vez construido.<br />
13.- int insert_ipo(struct ipoption *opt, u_char opt_len, u_char *buf);<br />
Inserta opciones en un datagrama IP ya creado. El parámetro opt es un puntero a un estructura<br />
especial ipoption. El parámetro len indica el tamaño de la lista de opciones. El parámetro buf es<br />
un puntero al buffer que contiene el datagrama IP al que se le añaden las opciones. Si al añadir<br />
las opciones, el tamaño total del datagrama excede de 65535 bytes, que es el tamaño máximo de<br />
un datagrama IP, la función retorna con un valor de -1 indicando el error.<br />
struct ipoption<br />
{<br />
struct in_addr ipopt_dst;<br />
char ipopt_list [MAX_IPOPTLEN];<br />
} ;<br />
14.- int insert_tcpo(struct tcpoption *opt, u_char opt_len, u_char *buf);<br />
Inserta opciones en un segmento TCP ya creado. El parámetro opt es un puntero a <strong>una</strong> estructura<br />
tcpoption donde se indican las opciones. La longitud de la lista de opciones se indica por opt_len.<br />
El parámetro buf es un puntero al buffer que contiene el segmento TCP ya creado.<br />
struct tcpoption<br />
{<br />
u_char tcpopt_list[MAX_IPOPTLEN];<br />
};<br />
15.- int write_ip(mt SOCk, const U_Char "'pak, mt len);<br />
Envía un datagrama IP a la red. El parámetro sock hace referencia al socket a través del cual se<br />
envia el datagrama. Este socket ha sido creado con anterioridad mediante la función<br />
open_raw_sock(). El parámetro pak es un puntero al datagrama que se envia. Este datagrama ha<br />
sido creado con la función build_ip(). El tamaño total del datagrama se indica con el parámetro<br />
len.<br />
La función devuelve el total de bytes escritos.<br />
16.- int write_link_layer(struct link_int *1, const u_char *device, const u_char *buf, int len);<br />
Envía <strong>una</strong> trama de nivel de enlace a la red. El primer parámetro es un puntero a <strong>una</strong> estructura<br />
link_int que se debe haber obtenido con anterioridad mediante la función open_link_interface(). El<br />
parámetro device es el nombre del dispositivo de red por el cual se envia la trama, la cual se<br />
indica mediante el parámetro buf que es un puntero al buffer que contiene la trama a enviar. El<br />
tamaño total de la trama se indica con el parámetro len.<br />
La función devuelve el total de byte s escritos o un valor de -1 en caso de error.<br />
17.- void do_checksum(u_char *buf, int protocol, int len);<br />
Realiza el cálculo del campo de checksum que aparece en las cabeceras de segmentos TCP y<br />
paquetes UDP.<br />
119