【计算机网络】网络应用通信基本原理

抓取文件包下载传送门

wireshark对于网络抓包与协议分析的抓取文件包

相关文章

【计算机网络】IP协议及动态路由算法

【计算机网络】Socket通信编程与传输协议分析

【计算机网络】中小型校园网构建与配置

目的:

1、分析数据在五层协议栈中的封装及通信过程,理解通信基本原理;

2、对典型的网络应用(DNS、HTTP、FTP、Email等)通信进行详细分析;

3、针对HTTP的User-agent编写简单的访问响应页面,并熟练使用session及cookie

掌握数据传输过程。

要求:

1、使用wireshark、sniffer等捕捉工具捕捉应用层通信报文。

2、对报文在每一层的封装进行分析,特别是DNS、HTTP、FTP与Email协议,对端口复用与分解、应用层服务与协议的通信过程进行分析。

3、对HTTP协议的请求-响应过程及协议数据封装进行详细分析,编写一个页面,能够记录客户端User-Agent信息,并根据访问请求的User-Agent返回不同内容;并熟练使用session和cookie

原理:

1、网络协议(network protocol)

       网络协议(network protocol)简称为协议,是为进行计算机网络中的数据交换而建立的规则、 标准或约定。协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生事件所采取的“动作”(actions) 。

2、计算机网络体系结构

       计算机网络体系结构是指计算机网络层次结构模型,它是各层的协议以及层次之间的端口的集合。在计算机网络中实现通信必须依靠网络通信协议,当前主流的体系结构有三种,分别是OSI七层结构(广泛采用的是国际标准化组织(ISO)1997年提出的开放系统互联(Open System Interconnection,OSI)参考模型,习惯上称为ISO/OSI参考模型。),TCP/IP参考模型,以及Internet五层协议栈。

       开放系统互连(Open System Interconnect,OSI)参考模型是由国际标准化组织(ISO) 1984年提出的分层网络体系结构模型。目的是支持异构网络系统的互连互通,是理解网络系统的最佳模型或学习工具。分为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层七层,每层完成特定的网络功能。

   OSI是一个理论上的网络通信模型,TCP/IP则是实际运行的网络协议;TCP/IP协议族分为四层,分别为应用层,传输层,网络层,网络接口层。

Internet五层协议栈综合了OSI七层模型和TCP/IP四层模型的优点,包括:应用层、运输层、网络层、数据链路层和物理层。

       应用层:是体系结构中的最高。直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。支持各种网络应用。

       运输层:负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。【进程—进程的数据传输(TCPUDP)】

       网络层:源主机到目的主机的数据分组与转发(IP 协议,路由协议等)

       数据链路层:常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。【相邻网络元素的数据传输】

       物理层:在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。

3Encapsulation 封装

       封装Encapsulation,由上到下在每一层数据增加控制信息(Header),构造协议数据单元(PDU),包括:地址(Address):标识发送端/接收端;差错检测编码(Error-detecting Code):用于差错检测或纠正

       协议控制(Protocol control):实现协议功能的附加信息。

       解封装,就是封装的逆过程,拆解协议包,由下到上去除报头,数据封装和解封装是一对逆过程。

       五层协议栈的封装和解封装过程如下:

       封装过程

       应用层:原始数据被转换成二进制数据

       传输层:二进制数据被分割成小的数据段,并封装TCP头部 (数据段)(TCP头部的关键信息–端口号)

       网络层:传输层传来的数据被封装上IP头部 (数据包)(IP头部的关键信息–IP地址)

       数据链路层:网络层传来的数据被封装上MAC头部 (数据帧)(MAC头部的关键信息–MAC地址)

       物理层:二进制数据组成的比特流转化为电信号在网络中传输 (比特流)

       解封装(封装的逆过程)

4、应用层协议

       应用层协议(application layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。包含:消息的类型(type){请求消息,响应消息};消息的语法(Syntax)格式{消息中有哪些字段(field),每个字段如何描述};字段的语义(semantics){字段中信息的含义};规则(rules){进程何时发送/响应消息,进程如何发送/响应消息}

       典型网络应用服务与协议主要有:

       1)域名系统(Domain Name SystemDNS):主要提供域名和IP地址之间映射。

       2)文件传输协议(File Transfer ProtocolFTP):在互联网的两个主机间实现文件互传的网络应用。

       3)超文本传输协议(HyperText Transfer ProtocolHTTP):用于实现WWW服务,也就是WEB服务。

       4)SMTP(Simple Mail Transfer Protocol), 使用TCP进行Email消息的可靠传输。

       5)POP3(Post Office Protocol 3), 提供从服务器获取邮件的服务。

5DNS协议

       DNS协议是用来将域名解析到IP地址的一种协议,也可以用来将IP地址转换为域名。DNS协议是基于UDPTCP的协议,使用53端口。只有在区域传输时才使用TCP协议,在其他时候使用的是UDP协议。

6HTTP(超文本传输协议)

       HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。所有的HTTP报文都分为两类:请求报文和响应报文。

7SMTP即简单邮件传输协议

       SMTP即简单邮件传输协议是一组由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议。运行在发送端邮件服务器主机上的SMTP客户,发起建立一个运行在接收端邮件服务器主机上的SMTP的服务器端口25号之间的TCP链接。

8POP3协议

       POP3协议即“邮局协议版本3”,和SMTP一样属于TCP/IP协议。POP3协议主要用于支持使用客户端远程管理在服务器上的电子邮件。POP3协议还支持离线处理,不需要收件人同时在线。

9Internet提供的传输服务TCPUDP

       TCPTransmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流、可进行流量控制的、提供拥塞控制的传输层通信协议。

       UDP User Datagram Protocol数据报协议)一种无连接的传输层协议,提供简单不可靠信息传送服务。

       TCPUDP在传输层为应用层服务和程序提供传输服务。

过程与结果:

1、DNS、HTTP、SMTP、POP报文捕捉截图

DNS

图1 命令行操作

图2 对抓取到的数据进行dns过滤

HTTP

图3 查询IPv4端口

图4对抓取到的数据进行http过滤

图5 浏览器内置的网络检查器

SMTP

图6 对抓取到的数据进行stmp过滤

POP

图7 对抓取到的数据进行pop过滤

2、Internet五层协议栈报文封装分析,字节计算

1)、验证Internet五层协议栈的PDU封装

图8 对抓取到的数据下的封装

从上到下分别是,物理层,数据链路层,网络层,传输层,应用层。

逐层点击,即可验证五层协议自顶向下逐层封装,也可验证每层封装encapsulate的头部信息Header,如下图所示传输层的UDP头部,长度8,包含了源端口,目的端口,长度,校验和。

图9 对抓取到的数据下的封装

验证自顶向下逐层封装的数据大小:数据总长度= 33(DNS query)+ 8(UDP头部)+ 20(网络层头部)+ 14(以太帧头部)=75Bytes=600bits

3、DNS query与qurey response过程分析,PDU封装分析

图10 传输端口号

dns query 由source 10.225.146.226 的port 53334发向 destination 172.17.211.212的port 53

头部固定12bytes

Questions包含:

Name 域名:18bytes

Label count 3级域名:2 bytes

Type 类型 HTTP :2 bytes

Class 类别 in internet :2 bytes

总长:12+18+6=36bytes

图11 抓取到的dns query response数据内容

dns query response 由source 172.17.211.212的port 53发回本地destination 10.225.146.226

图12 抓取到的dns query结构

图是DNS query包:Transaction ID是用来匹配请求与响应,回复包中的Transaction ID保持不变;Class :IN(0x001)表示英特网协议。

下图查询类型是A(IPV4),上图是AAAA(IPV6)

图13 A类型的dns query

4、HTTP过程分析,HTTP request与response PDU封装分析

验证http request – http response过程中的端口复用。

验证http request 请求消息报文封装。包含:

HTTP 请求方法,有GET、POST、HEAD等。

Connection 是否持久连接,close非持久,Keep-Alive为持久连接,注意HTTP的持久连接Keep-Alive与TCP的长连接keepalive是有区别的。

User-Agent包含了客户端的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎等,对于服务器针对不同设备响应不同的页面,页面重定向等有较为重要作用。

图14 抓取到的数据结构及http request

图15 抓取到的response

5、SMTP过程及PDU封装分析

TCP流可以看到有SMTP的邮件内容,验证:

SMTP使用TCP进行Email消息的可靠传输

端口:25

传输过程的三个阶段

握手 --- 消息的传输 --- 关闭

命令/响应交互模式

命令(command):ASCII文本

响应(response):状态码和语句

Email消息只能包含7位ASCII码

图16 SMTP的报文

可以看到通过新建的邮箱发出去的邮件,可以看到发送方和接收方的邮箱,同时表示服务器成功执行了客户端的命令,发生应答,通知看不到可以发生下一个命令。

6、FTP过程分析,PDU封装分析

 通过FTP Server让用户能连接上一个远程计算机,但是先要获取远程计算机的IPv4地址(win+r打开运行窗口,通过在命令行中输入ipconfig即可查看电脑IPv4地址),接着在本机通过指令FTP 对应的IPv4地址即可连接FTP

图17 连接FTP

图18 FTP报文

注意事项与解决方案:

新建账户后,如果抓取POP报文时一直抓取不到数据,而Wireshark可以正常工作,可能是没有关闭设置的SSL选项,关闭后可以正常抓取到POP报文数据

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值