FTP 控制连接与数据连接
约 50 分钟
FTP 控制连接与数据连接
本课目标
能沿应用进程、名字解析、传输连接和请求响应画完整协议链;能计算缓存TTL、连接数、RTT与对象时延,并识别每条连接的发起方和状态。
核心机制
FTP使用独立控制连接和数据连接。控制连接通常连服务器21端口并保持会话状态;每次目录列表或文件传输建立数据连接。主动模式由服务器从20端口连接客户端指定端口,易受客户端NAT/防火墙影响;被动模式由服务器告知监听端口,客户端主动连接。
报文与时序推演
登录命令和响应走控制连接,文件字节走数据连接。传两个文件通常复用一条控制连接,但建立两次数据连接;不能把控制端口21当作所有数据的承载连接。
统一表格记录“时刻、客户端/服务器、协议、连接、源/目的端口、请求、响应、缓存状态”。DNS先解决名字到地址/服务,传输层建立通信,应用协议再交换报文;不同阶段不可用一个‘网络请求’笼统代替。
可运行模型
events=['control connect:21','login','data connect:file1','close data1','data connect:file2','close data2','quit control'];print(' -> '.join(events))
先手算再运行。修改TTL、对象数、连接复用方式、FTP模式或邮件域,重新画报文和时延。
边界与错因
递归与迭代描述查询责任,不等同UDP/TCP;DNS缓存命中也受TTL约束。FTP控制/数据连接分离,主动/被动模式的数据连接发起方不同。SMTP负责提交与传输,POP3/IMAP负责读取。HTTP无状态指协议请求独立,不妨碍Cookie建立应用状态。
迁移练习
将DNS缓存设为过期、FTP放在NAT后、MX查询失败、HTTP对象改为并行/持久/多路复用,重新计算连接、RTT和错误传播。必须指出哪个阶段变化,而不是只改总时间。
课内验收
完成下方两道在线题,并提交协议时序或RTT表。计算题说明忽略/计入哪些时间;选择题指出错误项混淆的协议职责。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。