Solved

Please Critique my FTP port assignment Homework solution

Posted on 2010-11-27
1
877 Views
Last Modified: 2012-05-10
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.
0
Comment
Question by:kajun989
1 Comment
 
LVL 7

Accepted Solution

by:
JohnThePro earned 500 total points
ID: 34235337
Your understand is pretty much spot on, the only thing I'd make note of is the port assignments.

If your connection is an 'Active mode' connection, and there is no firewall issues, then port assignment will look like this:

SRC(command):1025 >> DST(command):21. Once this is done, the data channel is established.
SRC(data):1026 >> DST(data):20

If the connection is passive, it might look more like this:
SRC(command):1025 >> DST(command):21
SIMULTANOUSLY, DURING PASSIVE MODE A PASV command is sent to the server which creates this response:
SRC(data):1026 >> PASV command, DST(data):20 >> DST(data):1027

so, to fit into your abcd format above....
ACTIVE
a)src(command):1025 >> DST(command):21 // src(data):1026 >> dst(data):20
b)src(command):1025 >> DST(command):21 // src(data):1026 >> dst(data):20
c + d) 20/21 >> 1025/1026

PASSIVE
a)src(command):1025 >> DST(command):21 // src(data):1026 >> dst(data):1027
b)src(command):1025 >> dst(command):21 // src(data):1026 >> dst(data):1027

Passive Mode is designed to overcome firewall issues, mainly on the client side.

Any questions?
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Outdoor Wifi Radio with Splash Page 6 64
Macbook Sierra OS OpenVPN issue 13 82
OSPF Design NSSA 5 61
EIGRP Load sharing 12 75
Please see preceding article here: http://www.experts-exchange.com/Networking/Operating_Systems/A_11209-Root-Bridge-Election.html Figure 1 After Root Bridge has been elected, then what?..... Let's start by defining a Root Port in la…
SSL is a very common protocol used these days when browsing the web.  The purpose is to provide security to communication, but how does it do it?  There are several pieces at work that have to be setup before SSL will even work and it requires both …
Viewers will learn how to properly install and use Secure Shell (SSH) to work on projects or homework remotely. Download Secure Shell: Follow basic installation instructions: Open Secure Shell and use "Quick Connect" to enter credentials includi…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question