July 24th Tuesday (七月 二十四日 火曜日)
2007-08-04 17:25
288 查看
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.
相关文章推荐
- Aprial 24th Tuesday (四月 二十四日 火曜日)
- 2008 July 1st Tuesday (七月 一日 火曜日)
- February 24th Tuesday 2009 (二月 二十四日 火曜日)
- July 14th Tuesday (七月 十四日 火曜日)
- July 31th Tuesday (七月 三十一日 火曜日)
- July 24th Friday (七月 二十四日 金曜日)
- 2008 July 15th Tuesday (七月 十五日 火曜日)
- 2008 July 24th Thursday (七月 二十四日 木曜日)
- July 7th Tuesday (七月 七日 火曜日)
- July 28th Tuesday (七月 二十八日 火曜日)
- July 10th Tuesday (七月 十日 火曜日)
- 2008 July 29th Tuesday (七月 二十九日 火曜日)
- 2009 March 24th Tuesday (三月 二十四日 火曜日)
- 2008 July 8th Tuesday (七月 八日 火曜日)
- 2008 July 22th Tuesday (七月 二十二日 火曜日)
- July 3th Tuesday (七月 三日 火曜日)
- July 17th Monday (七月 十七日 火曜日)
- July 21th Tuesday (七月 二十一日 火曜日)
- Februray 27th Tuesday (一月 二十七日 火曜日)
- Aprial 10th Tuesday (四月 十日 火曜日)