¿Qué es un servidor de seguimiento?
Un rastreador en BitTorrent es un programa que se ejecuta en el servidor y rastrea cuántas personas están descargando el mismo archivo al mismo tiempo. Cuando un cliente se conecta al servidor de seguimiento, obtiene una lista de usuarios que están descargando y, basándose en esa lista, BT se conecta automáticamente a las máquinas de otras personas para realizar la descarga.
Función:
Cuando se ejecuta en el servidor, puede rastrear cuántas personas descargan el mismo archivo al mismo tiempo. Es el servidor que proporciona bt. Las personas que publican archivos en BitTorrent necesitan saber qué servidor utilizar para proporcionar rastreadores de los archivos publicados.
Mantener la información de todos los descargadores. Cuando se recibe una solicitud, primero registrará la información de la otra parte (si ya está registrada, verificará si es necesario actualizarla) y luego devolverá las partes a la otra parte (no todas, según los parámetros establecidos). para la solicitud del descargador) que participó en la descarga del mismo archivo Información sobre el descargador (el servidor de seguimiento puede mantener descargas de varios archivos al mismo tiempo).
Información ampliada:
Analizar los detalles de implementación del servidor de seguimiento:
Para configurar el servidor de seguimiento, simplemente ejecute bttrack.bttrack.py para llamar al seguimiento Función track() en py. Por lo tanto, rastreamos track.py para ver la función track().
pista.py: pista(). Esta función primero verifica los argumentos de la línea de comando y luego los guarda en el diccionario de configuración. Todas las empresas de servicios públicos de BT tienen un proceso similar.
El primer paso es crear un objeto RawServer, que es un objeto de servidor que encapsula algunos detalles de la implementación de un servidor de red. El servidor de seguimiento no solo usa RawServer, sino que, como veremos más adelante, dado que cada cliente también necesita proporcionar servicios de descarga a otros clientes, también es un servidor y la implementación del cliente también usa RawServer, por lo que el código RawServer se puede reutilizar. En cuanto a la implementación detallada de RawServer, la analizaremos en las siguientes secciones.
El siguiente paso es crear un objeto Tracker.
El RawServer luego se vinculará al puerto especificado (pasado a través de la línea de comando).
Finalmente, llama a la función RawServer::listen_forever() para poner el servidor en funcionamiento.
Finalmente, después de que el servidor finalice por algún motivo, se llamará a Tracker::save_dfile() para guardar la información de descarga. De esta manera, una vez que el servidor vuelva a estar en funcionamiento, se podrá restaurar el estado actual.
Referencia: Enciclopedia Baidu