How to a eMule client establish a connection to a server? A eMule client tries to establish connection
to servers in parallel. If one of servers is established connection successfully, the others will be
abandoned.
Each eMule client is pre-configured with a list of servers and a list of shared files on its local
file system. A client uses a single TCP connection to an eMule server for logging into the network,
getting information about desired file and available clients. The eMule client also uses serveral
hundreds of TCP connections to other clients which are used to upload and download files. Each eMule
client maintains an upload queue for each of his shared files. Downloading clients join the queue at
its bottom and advance gradually until they reach the top of the queue and begin downloading his file.
A client may download the same file from several other eMule clients, getting different fragments from
each on. A client may also upload chunks of a file which it has not yet completed downloading. Finally,
eMule extends the eDonkey capabilities and allows clients to exchange information about servers, other
clients and files. Note that both client and server communication is TCP based.
The server employs an internal database in which it stores information about clients and files. An eMule
server doesn't store and files, it acts as a centralized index of storing information about the location
of files. An additional function of the server, which is becoming deprecated, is to bridge between clients
that connect through a firewall and are not able to accept incoming connections. The bridging functionality
increases considerably the server load. eMule employs UDP to enhances the client's capabilities against
both the server and other clients. The client's ability to send and receive UDP messages is not mandatory
for the client's correct daily operation and it would function flawlessly when a firewall prevents it from
sending and receiving UDP messages.
to servers in parallel. If one of servers is established connection successfully, the others will be
abandoned.
Each eMule client is pre-configured with a list of servers and a list of shared files on its local
file system. A client uses a single TCP connection to an eMule server for logging into the network,
getting information about desired file and available clients. The eMule client also uses serveral
hundreds of TCP connections to other clients which are used to upload and download files. Each eMule
client maintains an upload queue for each of his shared files. Downloading clients join the queue at
its bottom and advance gradually until they reach the top of the queue and begin downloading his file.
A client may download the same file from several other eMule clients, getting different fragments from
each on. A client may also upload chunks of a file which it has not yet completed downloading. Finally,
eMule extends the eDonkey capabilities and allows clients to exchange information about servers, other
clients and files. Note that both client and server communication is TCP based.
The server employs an internal database in which it stores information about clients and files. An eMule
server doesn't store and files, it acts as a centralized index of storing information about the location
of files. An additional function of the server, which is becoming deprecated, is to bridge between clients
that connect through a firewall and are not able to accept incoming connections. The bridging functionality
increases considerably the server load. eMule employs UDP to enhances the client's capabilities against
both the server and other clients. The client's ability to send and receive UDP messages is not mandatory
for the client's correct daily operation and it would function flawlessly when a firewall prevents it from
sending and receiving UDP messages.
本文介绍了eMule客户端如何建立连接到服务器的过程及其文件共享机制。eMule客户端尝试同时连接多个服务器,成功连接后会放弃其他尝试。每个客户端都预配置了一组服务器列表和本地文件系统上的共享文件列表。客户端通过单一TCP连接登录到eMule服务器以获取所需文件的信息及可用客户端的信息。此外,eMule客户端还会使用数百个TCP连接与其他客户端进行文件上传和下载。
2118

被折叠的 条评论
为什么被折叠?



