Hey community. I'm doing a networking course at university level and I need a little help with a question. I attempted the question below with that I know thus far, in addition to my research. Please critique my solution so that I can gain a better understanding of how FTP and port assignment works. Many thanks for your responses in advance!
Here's the question:
Q) Suppose client A initiates an FTP session with server S. At about the same time, client B also initiates an FTP session with Server S. Provide possible source and destination port numbers for:
a) the segments sent from A to S?
b) the segments sent from B to S?
c) the segments sent from S to A?
d) the segments sent from S to B?
e) If A and B are different hosts, is it possible that the source port numbers in the segments from A to S are the same from B to S? How about if they are the same host?
From my research(at least my understanding of it), the server listens on port 21 for incoming FTP sessions. After handshaking is complete, the client begins to listen on it's it’s ephemeral port + 1 and sends the PORT N+1 command to the server on its port 21 i.e. if the ephemeral port in use by the client is 1026, then it would listen on port 1027. Once this is done the data transfer port (port 20) on the FTP server would initiate a connection to the FTP client’s ephemeral port plus 1, as indicated. I have also learnt that each port can have numerous sockets. I do not know if sockets apply to FTP ports however.
Using this information, ( and assuming that the N+1 concept also applies on the server side) here are my attempted answers:
a)src: 1027 dest: 20
b)src: 1028 dest:21
c)src: 20 dest: 1027
d)src: 21 dest: 1028
e) If A and B are different hosts: Yes, they just use different sockets on the same port for connections.
If A and B are the same hosts: Yes, like before, different sockets are used on the same connection.