从TCP/IP模型全面认识FTP
2007-08-18 00:00:00 来源:WEB开发网核心提示: 5、服务器端进行应答,应答包括服务器的IP地址和一个暂时的端口,从TCP/IP模型全面认识FTP(5),这个暂时的端口是客户端在打开数据传输连接时应该使用的端口;6、客户端发送一个SYN包,源端口为客户端自己选择的一个暂时端口,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,
5、服务器端进行应答,应答包括服务器的IP地址和一个暂时的端口,这个暂时的端口是客户端在打开数据传输连接时应该使用的端口;
6、客户端发送一个SYN包,源端口为客户端自己选择的一个暂时端口,目的端口为服务器在PASV 应答命令中指定的暂时端口号;
7、服务器端发送SYN ACK包给客户端,目的端口为客户端自己选择的暂时端口,源端口为PASV 应答中指定的暂时端口号;
8、客户端发送一个ACK包;
9、发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送( 一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要对方进行ACK确认;
10、当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以ACK确认;
11、客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,客户端用ACK来确认。
下面是Passive模式FTP的开始几个步骤:
以下是引用片段:
/=====================================================
||
|[ftpClient][ftpServer]|
||
|(TCP:21连接初始化,控制端口)|
|SYN|
|Portxxxx---------------------->Port21[TCP]|
|SYN+ACK|
|Portxxxx<----------------------Port21|
|ACK|
|Portxxxx---------------------->Port21|
||
|(PASV操作:被动连接数据端口初始化)|
||
|PASV|
|Portxxxx---------------------->Port21|
|PASVOK,IP,Portyyyy|
|Portxxxx<----------------------Port21|
|SYN|
|Portzzzz---------------------->Portyyyy|
|SYN+ACK|
|Portzzzz<----------------------Portyyyy|
|ACK|
|Portzzzz---------------------->Portyyyy|
||
||
|(数据操作:数据传输)|
|List,RetrorStor|
|Portxxxx---------------------->Port21|
|Data+ACK|
|Portzzzz<--------------------->Portyyyy|
|.|
|.|
|.|
||
======================================================/
- ››TCP超时/丢失重传
- ››iphone图片拉伸的几种方法
- ››iphone正则表达式的简单使用
- ››iPhone开发Unresolved Symbols CAKeyframeAnimati...
- ››IPhone开发-“此证书是由未知颁发机构签名”解决方...
- ››IPhone开发-整合私钥和证书,生成.p12文件
- ››iPhone应用开发-UIPickerView选取器详解
- ››iphone 获取屏幕的宽度和高度
- ››iPhone读取工程包中的二进制文件
- ››iPhone新手机 不挂YouTube APP
- ››iPhone 获取指定格式的时间和日期
- ››IPad使用UIModalPresentationFormSheet时隐藏键盘...
更多精彩
赞助商链接