Tarea_01
Puerto, Socket, Cliente/Servidor
Tarea # 01
1. Buscar el comando para ver los puertos activos en el equipo, ejecutar en consola en maquina
conectada a Internet, y de los números mostrados decir en que clasificación están de la IANA.
El comando para verificar el estado de las conexiones en nuestro ordenador es netstat. El comandos anterior sin ningún tipo de parámetro, mostrará las conexiones activas.
El comando anterior seguido del parámetro –AN, mostrará las conexiones activas, además
de los puertos abiertos.
Podemos también conocer cualquier conexión creada con el exterior, para ello, necesitamos
escribir el comando netstat seguido del parámetro –B. Abrimos cmd como administrador.
Según la IANA, los puertos por los que hay una conexión activa son los siguientes y están
reservados por la misma para uso privado:
Puertos 49697, 49774, 50494 y 50496
Tienen usos asignados como protocolo ARGUS, protocolo de resolución de direcciones
(ARP), mensaje de control de internet, protocolos de internet en redes Ethernet, protocolo
de transacción, entre muchos otros.
2.Hacer un listado de las funciones del API de Berkeley con parámetros de los diagramas de
comunicación Orientada y No orientada a conexión.
Funciones del API de Berkeley
socket(): crea un socket nuevo de un cierto tipo, identificado por un número entero
y asigna recursos de sistema para el mismo.
bind(): es típicamente usado en el lado del servidor y asocia un socket con unaestructura de dirección de socket, es decir, un número de puerto local especificado
y la dirección IP.
listen(): es utilizado en el lado del servidor, causa un socket TCP límite para entrar en
estado de escucha.
connect(): es usada en el lado del cliente, y asigna un numero de puerto local libre a
un socket. En caso de un socket TCP, provoca un intento para establecer una nueva
conexión TCP.
accept(): es usada en el lado del servidor. Acepta un intento entrante recibido para
crear una conexión TCP de un cliente remoto y crea un socket nuevo asociado con el
par de dirección del socket de esta conexión.
send(), recv() o write(), read() o sendto(), recvfrom(): son usadas para enviar y recibir
datos de/desde un socket remoto.
close(): hace que el sistema libere los recursos asignados a un socket. En caso de TCP,
la conexión es terminada.
gethostbyname(), gethostbyaddr(): son usadas para resolver nombres y direcciones
de host. Sólo para IPv4.
select(): es usada para hilos, esperando uno o más de una lista proporcionada de
sockets que deben estar listos para leer, escribir o que tengan errores.
poll(): es usada para comprobar el estado de un socket en un set de sockets. El setpuede ser probado para ver si algún socket puede escribir, leer o si un error ocurrió.
getsockopt(): se utiliza para recuperar el valor actual de una opción de socket
particular para el socket especificado.
setsockopt(): se utiliza para establecer una opción de socket particular para el socket
especificado.
Parámetros de las funciones para Comunicación Orientada a Conexión:
socket(int dominio, int tipo, int protocolo): la función socket toma tres argumentos,el dominio, el tipo y el protocolo a usar.
bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen): la función bind
toma tres argumentos, un descriptor representando el socket para llevar a cabo el
enlace [sockfd], un puntero a una estructura sockaddr que representa la dirección
para unirse [my_addr] y un campo socket_t especificando el tamaño de la estructura
sockaddr [addrlen].
listen(int sockfd, int backlog): la función listen requiere dos argumentos, un
descriptor de socket válido [sockfd] y un entero representando el número de
conexiones pendientes que puede ser puestas en cola en cualquier momento. El
sistema operativo usualmente coloca un tope en este valor [backlog].
...
Regístrate para leer el documento completo.