玩明白了以太网2的二层数据格式, ip格式 tcp/udp个时候, 需要玩一玩一些有用的基于这些已上的协议数据了. 如 dhcp ftp等.比较有趣.

ftp协议

分控制连接21端口 和数据连接 20端口

数据连接站在服务端角度来讲分两种模式: 主动模式(服务端主动用自己的20端口去连客户端,适合防火墙)

被动模式(服务端被动等客户端来连服务端的一个随机端口.)

每个协议都有控制层面(对应控制报文),和数据层面(对应的传输数据,有些只有控制层面,如dhcp不需要传数据)

FTP服务端会监听2个端口, 控制进程20,数据进程21(主动模式)

数据连接,站在服务器角度,有2种模式:
主动模式:ftp server从20端口主动向客户端发起连接,由于源端口固定,所以适用于模式防火墙模式.
被动模式:ftp server被动等待客户端来连我的这个端口(控制连接后会告知会将passive ip/port告知了客户端)
一般情况下默认都是被动模式

ftp两种模式

原图和两枚ftp数据包: https://github.com/lannyMa/scripts/tree/master/pkgs/ftp

主动模式数据交互过程

14.1 客户端 14.128服务端

  • 建立控制连接,3次握手, 客户端连服务端21端口

  • 待连接建立后,客户端告知服务端 active ip/port

  • 服务端主动和客户端建立数据连接(站在服务端角度,是服务端主动去找客户端)

  • 传输数据

  • 断开数据连接

  • 断开控制连接

被动模式数据交互过程

  • 客户端主动去和服务端建立控制连接

  • 服务端告知客户端passive mode /ip/port

  • 客户端主动去和服务端建立数据连接(站在服务端角度,是服务端被动等客户端)

  • 客户端和服务端之间断开数据连接

  • 客户端和服务端之间断开控制连接

[svc]ftp协议数据连接的2种模式的更多相关文章

  1. ftp协议 主动和被动两种模式模式

  2. [转]VMware Workstation网络连接的三种模式

    经常要使用VMWare Workstation来在本地测试不同的操作系统,以前也搞不清楚网络连接三种模式,最近看了几篇文章才算明白.现总结如下: 1. VMware Workstation的虚拟网络组 ...

  3. 协议中UART的两种模式 【转】

    转自:http://wjf88223.blog.163.com/blog/static/3516800120104179327286/ ^^…… 协议栈中UART有两种模式:1.中断2.DMA 对于这 ...

  4. 理解VMware虚拟机下网络连接的三种模式(如何配置虚拟机上网)

    很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正. bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两 ...

  5. Jedis连接Redis三种模式

    这里说的三种工作模式是指: 1.单机模式 2.分片模式 3.集群模式(since 3.0) 说明图详见以下: 使用单机模式连接: private String addr="192.168.1 ...

  6. [币严区块链]ETH搭建节点区块数据同步的三种模式:full、fast、light

    ETH  全节点Archive(归档)模式数据量增长图 上述图表可通过链接查看:https://etherscan.io/chartsync/chainarchive 通过上表,可以看到截止2019年 ...

  7. Linux初学之vmware Workstation 网络连接三种模式

    简介: VM(VMware Workstation简称VM,后面都将用VM代替阐述)是一款功能强大的虚拟化软件.VM支持在 单一的桌面上同时运行多款不同的操作系统,能够模拟完整的网络环境,支持pxe功 ...

  8. FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

    一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...

  9. FTP文件传输协议两种模式 ftp协议集,错误码集,ftp客户端命令集

    TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20.FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置.联接的方式.甚至是是否使用相同的操 ...

随机推荐

  1. 使用JDBC插入数据到ORACLE,使用标识列自增列

    不同于SQL Server的是,Oracle中插入数据的时候,没有自增列或者是标识列,但是,我们又不想显式的进行主键的插入,这里,必须在Oracle数据库中指定一个标识列,或者说是一个序列.具体方法如 ...

  2. 【多线程系列】AQS CAS简单介绍

    一.什么是CAS CAS(Compare And Swap),即比较并交换.是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V).预期原值(A)和新值(B). ...

  3. C#网络编程TCP通信实例程序简单设计

    C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...

  4. eclipse中改变默认的workspace的方法

    1.File-->Switch Workspace-->Other 2.Window-->Preferences-->General-->Startup and Shui ...

  5. Android 缓存策略demo

    packageinstaller\permission\model\PermissionApps.java /** * Class used to reduce the number of calls ...

  6. 如何防御mimikatz致敬Mimikatz攻防杂谈学习笔记

    零.绪论:mimikatz简介 mimikatz是一款出色的内网渗透工具,可以抓取windows主机的明文密码.NTLMhash值或者kerberos对应的缓存凭据.mimikatz的使用在获取权限后 ...

  7. 【BZOJ1814】Ural 1519 Formula 1 插头DP

    [BZOJ1814]Ural 1519 Formula 1 题意:一个 m * n 的棋盘,有的格子存在障碍,求经过所有非障碍格子的哈密顿回路个数.(n,m<=12) 题解:插头DP板子题,刷板 ...

  8. iOS的socket开发基础

    目录[-] socket简介 tcp和udp的区别 TCP三次握手和四次挥手 TCP三次握手 tcp四次挥手 tcpsocket和udpsocket的具体实现 tcpsocket的具体实现 udpso ...

  9. Unity3D笔记十三 摄像机之间切换

    using UnityEngine; using System.Collections; public class _5_6 : MonoBehaviour { private GameObject ...

  10. vue--使用定时器的问题

    https://blog.csdn.net/ywl570717586/article/details/79963162