Protocolo TCP
Enviado por yamidarmando • 24 de Mayo de 2013 • 2.828 Palabras (12 Páginas) • 352 Visitas
INGENIERÍA INFORMÁTICA
PRÁCTICAS DE REDES
CURSO 2003-04
PROTOCOLO TCP
José Luis González Sánchez
http://patanegra.unex.es/jlgs
2
1 HERRAMIENTAS UTILIZADAS...........................................................................3
2 SCRIPTS TCL...........................................................................................................5
2.1 SINTAXIS BÁSICA ........................................................................................5
2.2 VARIABLES....................................................................................................5
2.3 COMANDOS ANIDADOS. ............................................................................5
2.4 UTILIZACIÓN DE COMILLAS Y LLAVES................................................. 6
2.5 ESTRUCTURAS DE CONTROL ................................................................... 6
2.6 ¿DE DÓNDE VIENEN LOS COMANDOS?.................................................. 7
2.7 OTRAS CARACTARISTICAS. ......................................................................7
2.8 MÁS INFORMACIÓN ....................................................................................7
2.9 SCRIPTS TCL PARA CREAR ESCENARIOS PARA NS ............................ 7
2.10 LOS EVENTOS ............................................................................................. 11
2.11 MONITORIZACIÓN DE UNA COLA. ........................................................ 12
2.12 CREACIÓN DE FICHEROS DE TRAZA PARA Xgraph............................ 13
3 ASPECTOS GENERALES DEL PROTOCOLO TCP...........................................15
3.1 CONTROL DE FLUJO MEDIANTE MECANISMO DE VENTANA
DESLIZANTE.................................................................................................................22
3.2 CONTROL DE CONGESTIÓN DEL PROTOCOLO TCP .......................... 20
3.3 ¿CÓMO SE CONTROLA LA CONGESTIÓN? ........................................... 27
3.4 EVOLUCION DEL CONTROL DE CONGESTION. .................................. 39
3.5 IMPLANTACIÓN DE LAS DISTINTAS VERSIONES DE TCP. .............. 39
3.6 THROUGTPUT Y PROBABILIDAD DE PÉRDIDA. ................................. 42
3.7 ADAPTACIÓN DEL ANCHO DE BANDA................................................. 44
3.8 ESCENARIO MULTIPUNTO – MULTIPUNTO......................................... 52
3
1. HERRAMIENTAS UTILIZADAS.
Este estudio se apoya fundamentalmente en el uso de la herramienta NS (Network
Simulator) que se va a usar para analizar el comportamiento del protocolo de la capa de
transporte TCP.
Hay múltiples versiones disponibles de NS en la red; además de las versiones que se
proporcionan en la página de la asignatura (http://webepcc.unex.es/jlgs ), en
http://www.isi.edu/nsnam/ns/ donde se pueden encontrar paquetes de instalación
precomplidados, preparados para ser instalados bajo distintos tipos de sistemas (all-in-one), o
componentes de estos paquetes por separado.
NS es una aplicación desarrollada para entornos Unix /Linux, y se recomienda la utilización
de estos sistemas operativos para la instalación y ejecución de la aplicación, aunque también
pueden usarse simuladores de Unix como puede Cygwin. Cygwin es un programa que simula un
sistema Unix dentro de un sistema Windows, y puede obtenerse de www.cygwin.com/xfree/ .
Desde este sitio puede obtenerse un ejecutable que se encarga de buscar en Internet los espejos
desde donde instalar todos los componentes de Cygwin. Algunos de los componentes necesarios
a incluir en la instalación de Cygwin son Xfree86-base, Xfree86-bin, Xfree86-prog, Xfree86-lib,
Xfree86-etc; aunque, si no se ha elegido la opción de instalar todo, durante la instalación de NS
se solicitará la instalación de varios componentes más. En cualquier momento se tiene acceso a
la instalación de estos componentes con el ejecutable de instalación de Cygwin. Es
recomendable que la instalación de Cygwin se haga en el directorio C:\cygwin y asegurarse de
que no hay espacios en blanco en el path de instalación.
Una vez instalado Cygwin, o conseguido el software de NS para Unix y/o Linux, los
pasos a seguir son los siguientes:
• Copiar el archivo ns-allinone-2.27.tar.gz en el directorio home de Linux o
de Cygwin; habitualmente algo como C:\cygwin\home\nicolas
• Ejecutar Cygwin ( también se puede lanzar el Xfree con el comando startx)
• Desde un prompt ejecutar los siguientes comandos:
• gzip –d –c ns-allinone-2.27.tar.gz | tar xvf –
• cd ns-allinone-2.27
• /install
• Comenzará la instalación, que durará varios minutos. Es posible que el instalador avise
de la falta el paquete diff, pero este mensaje puede ser ignorado ya que
probablemente el paquete esté ya instalado; para comprobarlo, puede teclearse el
comando diff –v y podrá verse la versión de este paquete y no un error. Si el aviso es
sobre cualquier otro paquete habrá que localizarlo e instalarlo con el ejecutable de
instalación de Cygwin.
• Actualizar el fichero ~/.bashrc añadiendo los siguientes comandos:
export NS_HOME=/home/xxx/ns-allinone-2.27/
export
PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:\
$NS_HOME/otcl-1.8.:NS_HOME/lib:$LD_LIBRARY_PATH
export TCL_LIBRARY=$NS_HOME/TCL8.4.5/library
Donde /home/xxx/ns-allinone-2.27/ deberá ser reemplazado por lo que devuelva el
comando pwd.
4
Nota: la descripción completa y detallada de los pasos a dar en la instalación de esta y otras
versiones de NS para Cygwin pueden encontrarse en:
http://www.sims.berkeley.edu/~christin/ns-cygwin.shtml
Si la instalación es realizada sobre un sistema Linux es, con diferencia, más rápida que la
descrita. Básicamente con descomprimir el paquete all-in-one correspondiente y ejecutar el
script ./install, ya estaríamos compilando los componentes.
Sea cual sea la opción elegida, una vez instalado NS, se podrá ejecutar el comando:
$ns <tclscrip>
y surgirán las ventanas gráficas con el resultado del script tcl introducido.
Los componentes que se instalan y configuran para la utilización de NS son:
• Tcl
• Tk
• Otcl
• TclCL
...