[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: Una sobre puertos.



> -----Mensaje original-----
> De:	Raul GN [SMTP:ragonn@teleline.es]
> Enviado el:	martes 5 de octubre de 1999 20:35
> Para:	Lista de Debian
> Asunto:	Una sobre puertos.
> 
> Gracias a las news he descubierto como ver qué puertos estan a la escucha 
> (netstat -a), y claro aquí es donde han empezado mis dudas. He logado
> identificar todos los puertos habiertos... salvo uno, un tal sunrpc que
> habre el demonio portmap, sin embargo, su pagina man es un tanto criptica:
> 
>      Portmap is a server that converts RPC program numbers into DARPA 
>      protocol port numbers.  It must be running in order to make RPC
> calls.
> 
> Y claro, la cuestiones son: ¿Qué son 'números de programa RPC'? ¿Qué son 
> los 'números de puerto del protocolo DARPA'? Vale, esto ultimo intuyo lo 
> que es, son los números de puerto: 21 - telnet, 25 - smtp,... ¿no?. Lo de 
> DARPA no me suena nada.
	Yyyyyyyy nop! ;)

	El RPC o Remote Procedure Call es un sistema de Sun para llamar a
procedimientos remotos, es decir, para que tú te hagas un programa que se
ejecute en tu máquina local y pueda llamar a un procedimiento/función que se
ejecute en la máquina remota.
	El Portmapper es el encargado de "resolver" los números de
procedimientos remotos y devolver los puertos asociados a esos números
(bastante del estilo de un DNS), es decir, permite iniciar la conexión entre
tu programa local y el programa remoto que almacena los procedimientos (una
especie de "servidor de funciones").

	La cosa es algo así:
	1. El programa remoto se registra a sí mismo y los procedimientos
que tiene en la máquina remota, llamando al portmapper remoto. En ese
momento, el portmapper le adjudica puertos en los que quedarse a la escucha
para cada procedimiento o para cada programa, no recuerdo bien.
	2. El programa remoto se queda a la espera de peticiones (es un
servidor de funciones, lo que sirve son funciones).
	3. El programa local  empieza la ejecución.
	4. El programa local llama al portmapper de la máquina remota para
que le establezca una comunicación con cierto programa remoto y, de ese
programa remoto, cierto procedimiento (de ahí el nombre, mapeador de
puertos, te mapea un puerto y un programa/procedimiento remoto).
	5. El programa local convierte los parámetros del procedimiento
remoto al que quiere llamar a parámetros "desreferenciados" (marshalling,
i.e. convierte punteros en datos absolutos) y llama al procedimiento remoto
con el identificador que obtuvo del portmapper.

	Los parámetros del procedimiento se pasan por la red empleando XDR
(eXternal Data Representation, otro protocolo de Sun para enviar datos).

	Creo que el RPC se emplea en el NFS, pero no estoy muy seguro (te lo
digo más que nada por si no arrancas el RPC y de repente notas que te falla
el NFS).
	En realidad, el RPC es el inicio de la programación distribuída, que
se ha quedado más o menos obsoleto con la aparición de sistemas de objetos
remotos (CORBA, SOM, COM...).

> En el listado de puertos abiertos hay dos entradas que me intrigan:
>     raw        0      0 *:1                     *:*
>     raw        0      0 *:6                     *:*
> 
> ¿Me podeis explicar cual es su función?  ¿Qué tipo de protocolo es raw?
	De esto ni idea, pero el protocolo raw es el protocolo que va
directamente sobre IP (ni UDP ni TCP).

> __________________________________________________________________________
> Raúl González [ragonn@teleline.es]       Powered by Debian GNU/LiNuX Slink
> Linux User #99718
> 
Antonio Tejada Lacaci		atejada@bancamarch.es
Depto. Análisis y Programación
Banca March S.A.


Reply to: