精华内容
下载资源
问答
  • IP 协议报文格式 【IPv4】
    千次阅读
    2022-02-12 12:58:45

    前言: IP 数据报文由首部(称为报头)和数据两部分组成;首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的;在首部的固定部分的后面是一些可选字段,其长度是可变的

    每个 IP 数据报都以一个 IP 报头开始;源计算机构造这个 IP 报头,而目的计算机利用 IP 报头中封装的信息处理数据;IP 报头中包含大量的信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等;每个信息都被称为一个字段

    如图所示:

    在这里插入图片描述

    版本号

    占 4 位
    指定 IP 协议的版本;通信双方使用的 IP 协议版本必须一致;目前使用最广泛的IP协议版本号为 4,即 IPv4

    首部长度

    占 4 位
    可表示的最大十进制数值是 15,IP 首部长度的单位是 32 位字长 (1 个 32 位字长是 4 字节,也就是 length * 4 的字节数,4bit 表示最大的数字是15),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到最大长度 60 字节,当 IP 分组的首部长度不是 4 字节的整数倍时,必须利用最后的填充字段加以填充

    数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时比较方便;首部长度限制为 60 字节的缺点是 长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销;最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项

    区分服务 TOS

    也被称为服务类型,占 8 位;
    3位优先权字段 (已经弃用),4位TOS字段,和1位保留字段(必须置为0);4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本;这四者相互冲突,只能选择一个;对于 ssh / telnet 这样的应用程序,最小延时比较重要;对于 ftp 这样的程序,最大吞吐量比较重要

    总长度

    首部和数据之和,单位为字节;总长度字段为 16 位
    因此数据报的最大长度为 216-1=65535 字节

    标识 id

    用来标识数据报,占 16 位;
    IP 协议在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段;当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中;具有相同的标识字段值的分片报文会被重组成原来的数据报 (如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id 都是相同的)

    标志 flag

    占 3 位
    第一位未使用,其值为 0;
    第二位称为 DF(不分片),表示是否允许分片;取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片;
    第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片

    片偏移

    占 13 位
    当报文被分片后,该字段标记该分片在原报文中的相对位置;片偏移以 8 个字节为偏移单位;所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍

    生存时间 TTL

    表示数据报在网络中的寿命,占 8 位
    该字段由发出数据报的源主机设置,其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源

    路由器在转发数据报之前,先把 TTL 值减 1,若 TTL 值减少到 0,则丢弃这个数据报,不再转发;因此,TTL 指明数据报在网络中最多可经过多少个路由器;TTL 的最大数值为 255;若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送

    协议

    表示该数据报文所携带的数据所使用的协议类型,占 8 位
    该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分,不同的协议有专门不同的协议号

    头部校验和

    用于校验数据报的首部,占 16 位
    数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值

    源地址

    表示数据报的源 IP 地址,占 32 位

    目的地址

    表示数据报的目的 IP 地址,占 32 位
    该字段用于校验发送是否正确

    可选字段

    该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的;这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制

    填充

    由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍

    数据部分

    数据部分的长度不固定
    表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据

    在这里插入图片描述

    更多相关内容
  • FTP协议报文详解及FTP穿越NAT

    千次阅读 2021-03-16 16:03:49
    2、FTP协议简介 FTP 英文全称:File Transfer Protocol,中文全称:文件传输协议 提供交互式的访问,对传输文件的格式和类型有分类,允许文件具有存取权限。适合异构网络任意计算机的传送。 3、FTP工作原理 FTP...

     

    1、拓扑图

     

    2、FTP协议简介

    FTP 英文全称:File Transfer Protocol,中文全称:文件传输协议

    提供交互式的访问,对传输文件的格式和类型有分类,允许文件具有存取权限。适合异构网络任意计算机的传送。

    3、FTP工作原理

    FTP采用C/S架构,使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务,FTP服务器检查有两大部分组成:一个主进程,负责接收新的请求,另外有若干的从属进程,负责处理单个请求,工作步骤如下:

    1. 建立TCP连接
    2. 打开熟知端口21(控制端口),使客户进程能够连接上
    3. 等待客户进程发链接请求。
    4. 启动从属进程来处理客户进程发来的请求。主进程与从进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
    5. 回到等待状态,继续接收其他客户进程的请求。

    3.1、主动连接(PORT)

    1、主动连接介绍

    服务端通过制定端口号(20)主动与客户端建立数据连接,并向客户端发送数据。

    以下报文是SNAT转换后的报文,源IP(10.10.10.2)转换成出接口IP地址(192.168.10.114)

    2、报文拆分解释

    2.1、报文1-3:TCP建立三次握手,建立连接

     

    2.2、报文4:服务端(21端口)向客户端(49203端口)发送request报文。code字段表示新用户服务就绪,arg字段为服务器名称和服务器版本号

     

    2.3、报文5:客户端(49203端口)向服务端(21端口)发送request报文。command字段表示该报文里包含的是用户名,arg字段为用户名内容。

     

    2.4、报文6:服务端(21端口)回复response报文,code值为331,表示用户名可以,需要密码

    2.5、报文7:客户端(49203端口)向服务端(21端口)发送request报文,command字段表示该报文里包含的是密码,arg字段为密码内容。

     

    2.6、报文8:服务端(21端口)回复response报文,code值为230,表示用户已登录,请继续操作

    2.7、报文9:客户端(49203端口)向服务端(21端口)发送SYST报文,表示返回服务器使用的操作系统。

    2.8、报文10:服务端(21端口)回应系统类型,code字段为215,表示返回的是系统类型。arg字段为UNIX,表示系统类型是UNIX系统

    2.9、包11:客户端(49203端口)请求系统状态

    包12:服务端(21端口)回应系统状态,code字段为211,arg字段为特征列表

    2.10、包15:客户端(49203端口)PWD获取当前路径

    包16:服务端(21端口)返回当前路径

    包17:客户端(49203端口)CWD更改目录

    包18:服务端(21端口)返回修改后的目录

    包19:客户端(49203端口)PWD获取当前路径

    包20:服务端(21端口)返回当前路径

    2.11、包21:客户端(49203端口)请求使用ascii传输

    包22:服务端(21端口)响应,同意使用ascii传输

     

    2.12、包23:客户端(49203端口)发起主动连接,向服务端发送建立子连接的IP和端口

    包24:服务端(21端口)响应,同意使用客户端发送的IP端口建立子连接

    2.13、包26-28:FTP子连接三次握手建立TCP连接。

    2.14、包:30-32:服务端(20端口)向客户端(49204端口)发送数据。

    2.15、包33-37:数据传输完成,TCP断开连接

    2.16、包60-63:控制连接已断开,TCP四次挥手断开TCP连接

    3.2、被动连接(PASV)

    1、被动连接介绍

    服务端采用客户端建议使用被动模式,开启数据传输端口的监听,被动等待客户端的连接然后向客户端发送数据。

    以下报文是SNAT转换后的报文,源IP(10.10.10.2)转换成出接口IP地址(192.168.10.114)

    2、报文拆分解释

    2.1、TCP三次握手建立TCP连接

    2.2、报文4:服务端(21端口)向客户端(49206端口)。code字段表示新用户服务就绪,arg字段为服务器名称和服务器版本号

    2.3、报文5:客户端(49206端口)向服务端(21端口)发送request报文。command字段表示该报文里包含的是用户名,arg字段为用户名内容。

    2.4、报文6:服务端(21端口)回复response报文,code值为331,表示用户名可以,需要密码

    2.5、报文7:客户端(49206端口)向服务端(21端口)发送request报文,command字段表示该报文里包含的是密码,arg字段为密码内容。

    2.6、报文8:服务端(21端口)回复response报文,code值为230,表示用户已登录,请继续操作

    2.7、报文9:客户端(49206端口)向服务端(21端口)发送SYST报文,表示返回服务器使用的操作系统。

    2.8、报文10:服务端(21端口)回应系统类型,code字段为215,表示返回的是系统类型。arg字段为UNIX,表示系统类型是UNIX系统

    2.9、包11:客户端(49206端口)请求系统状态

    包12:服务端(21端口)回应系统状态,code字段为211,arg字段为特征列表

    2.10、包15:客户端(49206端口)PWD获取当前路径

    包16:服务端(21端口)返回当前路径

    包17:客户端(49206端口)CWD更改目录

    包18:服务端(21端口)返回修改后的目录

    包19:客户端(49206端口)PWD获取当前路径

    包20:服务端(21端口)返回当前路径

    2.12、包23:客户端(49206端口)向服务端请求建立被动连接

    包24:服务端(21端口)响应,同意建立被动连接,并且向客户端发送服务端的IP和监听端口

    2.13、包26-28:FTP子连接三次握手建立TCP连接。

    2.14、包:32-33:服务端(20端口)向客户端(49207端口)发送数据。

    2.15、包34-36:数据传输完成,TCP断开连接

    2.16、包59-62:控制连接已断开,TCP四次挥手断开TCP连接

    3.3、FTP主动模式穿越SNAT原理

    主动模式穿越SNAT主要用于FTP服务端在公网,客户端需要通过SNAT转换访问服务端。

    1、FTP客户端通过防火墙的SNAT访问FTP服务端时使用主动模式。

    2、当客户端发送PORT报文到服务端时,报文内的active ip address字段为10.10.10.2,active port字段为49217

    3、当穿越SNAT的时候,SNAT会把active ip address字段和active port字段改为转换后的IP和端口

    4、服务端收到经过SNAT后的PORT报文后,会给192.168.10.114发送响应报文。

    5、响应报文经过链接跟踪表,转发给客户端。

    3.4、FTP被动模式穿越DNAT原理

    被动模式穿越DNAT主要用于FTP服务端在私网,客户端需要通过DNAT转换后访问服务端。

    1、FTP客户端访问防火墙的10.10.10.1,进行DNAT转换,转换目的IP为192.168.10.114

    2、当客户端发送PASV报文到服务端后,服务端返回自己的监听IP和端口,passive ip address字段是192.168.10.115,passive port字段是62443

    3、当穿越DNAT的时候,DNAT会把passive ip address字段和passive port字段改为转换后的IP和端口

    4、客户端收到转换后的响应报文后,和转换后的响应报文进行建立数据连接

     

    4、问题思考

    4.1、主动模式和被动模式是谁决定的

    主动模式和被动模式是由客户端决定的,客户端请求建立数据连接时,发送PVSA报文,服务端就会建立被动连接;当客户端发送PORT报文时,服务端就会建立主动连接。

    4.2、主动模式和被动模式是怎么协商出端口

    主动模式协商端口

    1、客户端使用任意一个的非熟知权端口N(N>1024)与服务端建立FTP控制连接,然后客户端开始监听N+1端口。客户端向服务端21端口发送PORT报文,PORT报文里包含客户端监听的IP和N+1端口。

    2、服务端收到客户端的PORT报文后,使用客户端发送的IP和N+1端口与客户端建立数据连接。

    被动模式协商端口

    1. 客户端开启FTP连接时,会打开两个任意的非熟知端口(N > 1024和N+1)。N端口连接服务器的21端口。
    2. 客户端发送PVSA报文给服务端
    3. 服务器会开启一个任意的非熟知端口(P > 1024),并发送响应报文给客户端响应报文包含服务端IP和端口号P。
    4. 客户端发起从本地端口N+1到服务器的端口P建立数据连接。

    4.3、设想中间防火墙怎么识别子连接并给子连接放行

    被动模式:

    1. 客户端开启FTP连接时,会打开两个任意的非熟知端口(N > 1024和N+1)。N端口连接服务器的21端口。
    2. 客户端发送PVSA报文给服务端。
    3. 服务器会开启一个任意的非熟知端口(P > 1024),并发送响应报文给客户端,响应报文包含服务端子连接IP和端口P。
    4. 防火墙收到服务端的响应后,获取响应报文中子连接的IP和端口P。
    5. 客户端发起从本地端口N+1到服务器的子连接IP、端口P建立数据连接。
    6. 防火墙收到客户端发送的报文目的IP是子连接IP后,允许转发,并转发给服务器。

    4.4、思考NAT设备如何给子连接做地址转换

    主动模式:

    1. 客户端使用任意一个的非熟知端口N(N>1024)与服务端建立FTP控制连接
    2. 客户端监听N+1端口。
    3. 客户端向服务端21端口发送PORT报文建立子连接,PORT报文里包含客户端监听的IP和N+1端口。
    4. NAT设备获取PORT报文内的客户端IP和N+1端口
    5. NAT设备修改PORT报文内的客户端IP和N+1端口为自己的IP和端口,生成动态NAT
    6. 服务端收到客户端的PORT报文后,使用NAT转换后的IP和端口与客户端建立数据连接。
    7. NAT设备收到后,访问转换后的IP和端口,根据动态NAT转换为客户端子连接的IP和N+1端口,发送给客户端。

    4.5、下载两个文件,会每个文件开一个数据连接么

    FTP同时下载两个文件,FTP会为每个文件打开一个数据连接。


    1、下载文件test.txt,开启一条数据连接

    2、下载文件test1.txt,开启另一条数据连接

    4.6、列出目录,服务器发送目录列表,会使用数据连接传输么

    会使用数据连接发送目录列表,当数据连接建立完成后,服务器会向客户端发送当前路径和目录列表内容。

    5、FTPipv4和ipv6的区别

    控制连接请求(被动模式)

    IPv4使用PASV建立控制连接。PASV报文response报文的code字段为227(进入被动模式),arg字段为监听IP和端口。

    IPv6使用EPSV建立控制连接。EPSV报文response报文的code字段为229(进入被动模式),arg字段为监听端口

    控制连接请求(主动模式)

    IPv4使用PORT建立控制连接。请求时携带监听的IPv4地址和端口。PART报文response报文返回200

    IPv6使用EPRT建立控制连接。请求时携带监听的IPv6地址和端口。EPRT报文response报文返回200

     

    转载于:https://www.cnblogs.com/APeng2019/p/10719287.html

    展开全文
  • FTP协议分析

    万次阅读 多人点赞 2016-04-08 12:06:14
    FTP协议分析二、实验目标 1、理解FTP协议的工作原理; 2、了解FTP协议的常用命令; 3、了解应用层协议与传输层协议的关系三、实验原理 FTP(File Transfer Protocal),是文件传输协议的简称。FTP使得主机...

    一、实验名称
    FTP协议分析

    二、实验目标
    1、理解FTP协议的工作原理;
    2、了解FTP协议的常用命令;
    3、了解应用层协议与传输层协议的关系

    三、实验原理
    FTP(File Transfer Protocal),是文件传输协议的简称。FTP使得主机间可以共享文件,用于控制Internet上文件的双向传输。它是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。 当FTP客户端与服务器建立FTP连接时,将与服务器上的两个端口建立联系:端口20和21。FTP使用不同的端口号传输不同的内容,会建立不同的TCP连接。首先,使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。

    FTP的工作过程: FTP使用2个TCP端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21——命令端口和20——数据端口,但根据FTP工作在主动模式还是被动模式,21和20端口的使用方法略有不同。 主动模式的FTP是这样的:客户机从一个任意的非特权端口N(N≥1024),连接到FTP服务器的命令端口,也就是21端口,建立一个控制连接。这个连接用于传递客户端的命令和服务器端对命令的响应,生存期是整个FTP会话时间。

    如果期间需要传输文件和其它数据,例如:目录列表等,客户端就需要建立数据连接了。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,整个FTP期间可能会建立多次。在主动模式下,建立数据连接时,客户端会开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1),开始进行数据传输。

    四、实验步骤
    1. 打开Wireshark,选择工具栏上的“Capture”->“interfaces选择网关”,如图:
    这里写图片描述
    2、然后在Wireshark,选择工具栏上的“Capture”->“optoins”选择过滤器,并在capture filter中输入 tcp port 20 or tcp port 21(表示要抓tcp的包),如图:
    这里写图片描述
    3.打开命令提示符,键入CMD后,输入ping 192.168.1.104发现能ping通
    这里写图片描述

    4.ping 通后输入ftp 192.168.1.104 出现如下界面
    这里写图片描述

    此时抓到5个包
    前面三帧是客户端与主机的三次握手
    这里写图片描述
    第四帧
    这里写图片描述

    第四帧是服务器端的响应报文,并以ascii码方式明文传输数据,这一帧表明控制连接完成。
    第五帧是客户端向服务器端发的确认
    第六、七、八、九、十,十一帧是分别是:客户端输入用户名;服务器端确认并提示输密码;客户端确认;客户端发送密码;服务器端确认密码正确;客户端确认收到。
    其中,密码和用户名都是明文的,如下图
    这里写图片描述

    第十二帧客户端向服务器端请求数据连接,并打开端口号5001
    这里写图片描述

    第十三帧服务器端确认,并告诉客户端打开200端口
    第十四帧客户端确认并请求能访问的文件目录
    这里写图片描述

    第十五、十六、十七帧是数据连接的创建(数据连接创建)
    这里写图片描述

    第十八帧服务器端回到控制连接向第14帧确认,并表示请求的文件目录将以ASCII码的方式发送。
    第十九帧服务器端向客户端发送传输了195个比特。
    第二十帧服务器端向客户端发送完成信息并要求断开数据连接。
    这里写图片描述

    第二十一帧客户端向服务器端确认
    第二十二帧返回控制连接,服务器端断开数据连接;
    第二十三帧分别是客户端向服务器端确认收到;
    第二十四帧是客户端断开数据连接。
    第二十五帧是服务器端对客户端断开连接的确认。(至此,数据连接断开)
    这里写图片描述

    第二十六帧客户端向服务器端请求数据连接,并打开端口号5002(数据连接再次开始建立)
    这里写图片描述

    第二十七帧服务器端确认,并告诉客户端打开200端口
    第二十八帧客户端请求从服务器端下载2.txt.txt
    这里写图片描述

    第三十二帧回到数据连接,向第28帧确认,并告诉客户端文件将以ASCII码的方式发送。
    这里写图片描述

    第三十三帧是服务器端将2.txt.txt以ASCII码的方式传送到客户端
    这里写图片描述

    第三十四帧表示服务器端发完了,要断开数据连接

    这里写图片描述
    第三十五帧客户端向服务器端确认
    第三十六帧返回控制连接,服务器端断开数据连接;
    第三十七帧分别是客户端向服务器端确认收到;
    第三十八帧是客户端断开数据连接。
    第三十九帧是服务器端对客户端断开连接的确认。(至此,数据连接再次断开)
    这里写图片描述

    由于忘记退出(EXIT)所以保存下来的包没有断开控制连接的包,但后面应该有4帧断开。
    FTP协议分析结束。

    展开全文
  • Internet协议分析-FTP报文分析-SMTP报文分析 网络环境中抓取报文分析
  • FTP协议解析之Wireshark报文分析

    千次阅读 2021-02-27 21:40:14
    FTP是客户端-服务器协议,客户端将请求文件,而本地或远程服务器将提供该文件。我们熟知的FTP客户端:WinSCP、WS FTP、FileZilla等都是使用文件传输协议,它是一种标准的Internet 协议。用于通过TCP / IP 连接在...

    FTP是客户端-服务器协议,客户端将请求文件,而本地或远程服务器将提供该文件。我们熟知的FTP客户端:WinSCP、WS FTP、FileZilla等都是使用文件传输协议,它是一种标准的Internet 协议。用于通过TCP / IP 连接在Internet上的计算机之间传输文件 。

    文件传输协议如何工作?

    FTP是客户端-服务器协议,它依赖于客户端和服务器之间的两个通信通道。一个用于控制对话的命令通道和一个用于传输文件内容的数据通道。客户端通过请求下载文件来启动与服务器的对话。

    客户端可以使用FTP上传、下载、删除、重命名、移动和复制服务器上的文件。用户通常需要登录FTP服务器,而某些服务器无需输入ID或密码即可使部分或全部内容可用。我们称为匿名FTP。

    在这里插入图片描述FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流。并且是命令通向ftp服务器的进口。

    • 控制连接(TCP 21端口)主要用于实现FTP协议控制信令传送,服务器端打开TCP 21端口被动等待客户端发起连接命令。一旦建立连接,数据就会通过这些客户端和服务器端口进行传输。
    • 数据连接(TCP 20端口)主要用于实现应用数据传送,服务器的数据连接端使用端口20。一旦建立连接,数据就会通过这些客户端和服务器端口进行传输。

    FTP是否安全?

    FTP不是一项安全的协议,并且具有许多安全漏洞,这跟历史定义有关,FTP最初是在1971年定义的,之前没有定义TCP和IP。而且,FTP不会对流量进行加密,个人可以通过(Wireshark)捕获数据包以读取用户名,密码和其他数据。

    还有可能容易受到暴力攻击,数据包捕获,欺骗,FTP反弹和其他攻击。

    常见的FTP命令和应答

    • SYST命令

    在这里插入图片描述
    Response:服务器返回系统类型。

    • LIST命令

    在这里插入图片描述
    .客户端开始发送LIST命令查询文件列表信息,服务器回复了相应文件信息,并开始准备从数据连接发送文件。

    • RETR命令

    在这里插入图片描述

    RETR请求要求服务器通过客户端已经建立的数据连接发送文件的内容。

    • TYPE命令

    在这里插入图片描述

    TYPE说明文件类型:A表示ASCLL,I表示图像。

    FTP支持两种方式的传输:文本(ASCII)方式和二进制(Binary)方式。通常文本文件的传输采用ASCII方式,而图象、声音文件、加密和压缩文件等非文本文件采用二进制方式传输。

    • USER和PASS命令

    TCP三次握手建立成功后,服务器也知道了客户端需要请求FTP服务,于是要求客户端提供相应的用户名。
    在这里插入图片描述
    客户端收到服务器的验证需求后,立即发送用户名 user = ftp_test

    在这里插入图片描述

    服务器收到后,确认用户名OK,此时需要客户端提供password=12345

    • QUIT命令

    在这里插入图片描述

    由客户端发起端开请求命令 QUIT,服务器收到请求后同意断开 向客户端发送goodbye。表示从服务器上注销。

    • PORT命令

    在这里插入图片描述

    PORT请求要求服务器使用不同的机制来创建数据连接:服务器与客户端建立TCP连接。

    在这里插入图片描述

    PORT请求具有以下形式的参数:

    h1,h2,h3,h4,p1,p2

    这意味着客户端正 在侦听IP地址h1上TCP端口p1 * 256 + p2上的 连接 。h2。h3。h4。(RFC 959形式语法不允许这些数字中的任何一个都为0。形式语法是错误的。)

    服务器通常接受代码为200的PORT。如果服务器正在侦听连接,它将停止并丢弃所有已建立的连接。

    服务器不会立即连接到客户端的端口。客户端发送RETR并在服务器发送其初始标记后,服务器将尝试连接。如果连接尝试失败,它将拒绝代码为425的RETR请求。否则,它将正常进行。

    出于安全原因,客户端永远不要使用PORT。但是,某些客户端仍然依赖PORT,如果拒绝PORT,则将放弃文件传输。我当前的建议是服务器继续支持PORT。

    FTP协议解析

    int main(int argc, char* argv[])
    {
        char errbuf[1024];
        pcap_t *desc = 0;
    
        char *filename = argv[1];
        if (argc != 2)
        {
            printf("usage: ./dissect_ftp [pcap file]\n");
            return -1;
        }
    
        return 0;
    }
    
    
    

    编译运行:

    在这里插入图片描述

    在这里插入图片描述

    总结

    使用FTP有以下优点:

    • 它允许您传输多个文件和文件夹。
    • 当连接断开时,它具有恢复传输的能力。
    • 对要传输的文件大小没有限制。浏览器大概允许最大2 GB的传输。
    • 许多FTP客户端(例如FileZilla)都可以进行传输。
    • 数据传输比HTTP快。

    使用FTP有以下缺点:

    • FTP不会对流量进行加密
    • 容易受到数据包捕获和其他攻击的攻击

    参考

    • 《TCP/IP协议详解》
    • http://cr.yp.to/ftp/retr.html

    欢迎关注微信公众号【程序猿编码】,需要完整FTP源码和报文的添加本人微信号(17865354792)

    展开全文
  • &2应用层 - 文件传输协议FTP

    千次阅读 2022-03-16 13:56:56
    什么是FTP 本地主机上的用户,向远程主机上传或者下载文件。 用户通过一个FTP用户代理与FTP服务器交互。 文件传输过程 用户提供远程主机的主机名:在本地主机的FTP客户机进程与远程主机FTP服务器进程之间建立TCP...
  • 常用应用层协议报文格式

    千次阅读 2019-11-03 16:02:24
    常见应用层协议报文格式1.常用应用程序的端口号2.HTTP的报文格式 1.常用应用程序的端口号 名称 应用层协议 端口 运输层协议 说明 超文本传输协议 HTTP 80 TCP 域名解析系统 DNS 53 UDP/TCP 长度超过512...
  • Http协议报文格式

    万次阅读 多人点赞 2017-03-30 19:32:23
    HyperText Transfer Tansfer Protocol 超文本传输协议,是一种基于TCP的应用层协议,也是目前为止最为流行的应用层协议之一,可以说HTTP协议是万维网的基石。历经了0.9、HTTP/1.0、HTTP/1.1、HTTP/2几个版本(关于...
  • FTP协议详解

    千次阅读 2021-07-28 21:02:54
    今天给大家介绍一下FTP协议的相关内容。本文从FTP的概述、两种模式讲起,详细介绍了FTP协议的相关理论内容。 一、FTP概述 FTP(File Transefer Protocl),文件传输协议,是目前网上常用的文件传输协议之一。FTP采用...
  • 网络中的常见的各种协议--报文格式总结学习

    千次阅读 多人点赞 2020-08-18 17:54:53
    网络中的各种协议总结学习以太网帧结构IP报文格式ARP协议ICMP协议UDP用户数据包协议DNSTCP协议FTP协议HTTP协议SMTP协议POP协议 以太网帧结构 注: 当LLC-PDU中携带的是数据的时候,那么左侧的2字节表示的就是长度...
  • 首先我们可以看到在应用层,根据当前的需求和动作,结合应用层的协议,有我们确定发送的数据内容,我们把这些数据放到一个缓冲区内,然后形成了应用层的报文data。 主要协议如下: HTTP (Hypertext Transfer ...
  • 一、FTP文件传输协议  向远程主机上传输文件或从远程主机接收文件  客户/服务器模式  客户端:发起传输的一方  服务器:远程主机  ftp: RFC 959  ftp服务器:端口号为21 1.FTP: 控制连接与数据连接...
  • BGP协议分析_报文和状态机 详解了解BGP技术
  • FTP协议

    2022-02-21 14:28:21
    2、FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 3、FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。 二、FTP的特点 1、文件传送协议FTP只提供...
  • ftp协议详解

    千次阅读 2019-03-02 11:13:20
    一、Windows下搭建FTP服务器,抓取FTP数据包 1、 2、 3、 4、 5、IP地址填写自己本机的IP地址 6、勾选了匿名就不用输入密码了 7、 8、抓包 二、linux下FTP抓包 先检查有没有安装FTP 没有...
  • FTP协议详细解析

    千次阅读 2018-12-28 15:51:16
    FTP(File Transfer Protocol)协议,文件传输协议。提供交互式的访问,对传输文件的格式和类型有分类,允许文件具有存取权限。适合异构网络任意计算机的传送。 FTP有以下基本功能: 1.提供不同种类主机系统(硬,...
  • ICMP(Internet Control Message Protocol)网际报文控制协议,是Internet协议族的核心协议之一,它主要用在网络计算机的操作系统中发送出错信息。例如:请求服务不可用,主机不可达。ICMP协议是一种面向无连接的...
  • http报文格式详解!

    千次阅读 2019-03-12 14:47:27
    http报文格式详解! HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文 下面我们来说什么是请求报文: HTTP请求报文 一个HTTP请求报文由...
  • SSL、TLS协议格式入门学习 SSL(Secure socket Layer 安全套接层协议)指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的至于WEB应用 的安全协议,SSL协议指定了一种在应用程序协议...
  • HTTP协议报文结构

    万次阅读 多人点赞 2020-11-02 14:30:34
    HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议,是一种应用层的协议。 URL与URI的区别 统一资源标识符URI(uniform ...
  • HTTP报文格式及WireShark抓包分析

    千次阅读 2019-01-19 16:40:22
    HTTP请求报文格式 在这个请求格式之中空行是必不可少的一行。空行之后是请求实体。一个具体的HTTP请求报文格式如下: GET /su?wd=www.&action=opensearch&ie=UTF-8 HTTP/1.1 Host: suggestion...
  • 分析ftp协议,获得用户名和密码

    千次阅读 2019-12-02 19:53:42
    要求 阅读与理解libnids 给出的例子程序sniff和printall(在sample目录),在此基础上,修改printall程序: 1、在TCP进入其状态时,打印对应的状态信息; ... ...步骤 ...在http://ftp.gnome.org/pub/gnome...
  • 程序员必知必会:Http 报文格式

    万次阅读 2021-09-11 17:02:34
    请求报文: 响应报文: 请求行 Method + Path + HTTP 版本 状态行 HTTP 版本 + 状态码 + 状态信息 Http Method GET POST PUT DELETE HEAD HEAD 方法要求与 GET 请求相同的响应,但没有响应主体。这...
  • FTP协议安全分析

    千次阅读 2021-04-11 00:04:53
    文章目录前 言第一章 FTP协议一、协议简介二、数据表示(一)文件类型(二)格式控制(三)结构(四)传输方式三、FTP命令四、FTP应答五、连接管理第二章 安全隐患一、FTP服务器软件漏洞二、明文口令三、FTP旗标四、...
  • FTP协议--工作模式和传输模式

    千次阅读 2013-09-15 10:54:08
    FTP协议--工作模式和传输模式: FTP的工作模式  主动与被动是相对于服务器来说的。  主动模式,服务器用20号端口主动连接客户端的某端口建立数据连接  被动模式,服务器某端口被客户端的某端口建立数据连接...
  • 实验二 HTTPFTP协议分析 1. 本次实验包括HTTP FTP两个协议的分析详见一二 2. 参考文档所述步骤完成数据包的捕获并进行分析 3. 认真撰写实验报告叙述实验过程要层次分明对关键的过程或结果截图说 明分析回答实验文档...
  • Word格式 实验二 HTTP FTP协议分析 1. 本次实验包括HTTP FTP两个协议的分析详见一二 2. 参考文档所述步骤完成数据包的捕获并进分析 3. 认真撰写实验报告叙述实验过程要层次分明对关键的过程或结果截图说 明分析回答...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,294
精华内容 14,117
关键字:

ftp协议报文格式