Network Working Group B. Bressler
Request for Comments: 478 B. Thomas
NIC: 14947 BBN
26 March 1973
FTP Server-Server Interaction-II
At the recent FTP meeting at BBN in Cambridge, one of the topics
discussed was that of server-server interaction. In a typical
situation a user (A) conversing with two servers (B,C) is interested
in retrieving a file from one site (B) and sending it to the other
(C).
+------+
| USER |
| A |
/+------+\
control control
/ \
+------+ +------+
|SERVER| DATA |SERVER|
| B |----------->| C |
+------+ +------+
The consensus of the meeting was that mechanisms were necessary to
make B and C aware of each other and to allow a data connection to be
established without forcing each other to queue RFCs for local
sockets before they exist.
The proposed solution to this problem was a command called PASSIVE
(PASV?). The following is our conclusion as to the meaning of the
command and how it would be used.
Third party connections would be established using the SOCK command,
which says "Be prepared to use socket S at Host H to establish your
data connection", and the PASV command which says "open your data
socket for listening, and upon receipt of a transfer command wait for
an RFCrather than initiating one."
A positive acknowledgement to the PASV command indicates that the
data socket has been opened for listening. When an RFCfor its data
socket arrives after it has positively acknowledged a PASV command,
the server should respond with a matching RFCto open the data
connection (assuming, of course, that the incoming RFCis consistent
with the previous SOCK commands, if any).
+---------------+
| |
+----------| USER PROCESS |----------+
| | A | |
telnet +---------------+ telnet
| |
| |
+-----------+ +-------------+
| |--------> --------->| |
| SERVER |data sockets data socket| SERVER |
| B | Sb Sc | C |
| |<-------- <---------| |
+-----------+ +-------------+
USER A TO SERVER B USER A TO SERVER C
__________________ __________________
A->B SOCK HOST-C SKT- Sc A->C SOCK HOST-B SKT- Sb
B->A ACK C->A ACK
A->B PASV
B->A ACK
A->B STOR A->C RTRV
1. After the PASV command has been acknowledged, the two data
transfer commands can be sent in either order, since the
LISTENING action takes place with the PASV command
2. The user knows the socket numbers Sc and Sb to be the data
sockets as specified by the protocol.
3. Note that it is not essential for a SOCK command to be sent to
the same Host to whom a PASV will be sent. Sending one to him
provides security in that the incoming RFCcan be checked.
RB/nlg
[This RFCwas put into machine readable form for entry]
[into the online RFCarchives by Helene Morin, Via Genie 12/1999]
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073