① 网络抓包原理
本文以App作为例子,实际应用不限于App范围。
大部分场合都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准确、更方便,如以下场景:
要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是抓包的基本原理。
但是中间网络节点,不受我们控制,所以基本无法实现抓包的,只能在客户端和服务端进行抓包。
通常我们监控本地网卡数据,如下图:
本地网络 指的是WIFI的路由,如果直接抓路由器的包还是比较麻烦的,因此我们会在 手机 和 本地路由 之间加一层 代理服务 ,这样只要抓代理服务的网络数据即可:
虽然在 手机 侧也可实现抓包,但和 本地路由 一样,抓包比较麻烦,如果不是没有办法,尽量还是不在手机侧抓包。但是有一种情况必须在手机端抓包,那就是在4G网络情况下:
4G网络状态下如何抓包,以及它的劣势,我们后面章节再细讲。
抓包实际上是分析网络协议的一种过程,尽管繁琐的细节劳动都让抓包工具做了,但我们还是需要了解下基础的网络协议,好帮助我们更好的分析问题。
首先需要了解下经典的OSI七层网络模型,以及每层的作用,其次对TCP、HTTP协议简单了解。
HTTPS是基于HTTP协议的一种改进,在 TCP之上 的会话层增加安全处理。对于应用层来说,HTTPS和HTTP没有什么不同,也就是说,HTTPS是保证网络传输的安全性,对业务数据无侵入。
简化理解大概是这个样子:
SSL和TLS是保证安全传输的协议,包括证书认证、加解密和数字签名。
项目中HTTPS的链路:
因此,客户端与后台,编写网络接口时,不需要关心SSL或TLS,按照HTTP协议处理即可。
既然HTTPS在网络传输是经过加密的,那么抓包抓到的数据就是密文,不经过解密是无法看到报文的。针对这个问题,如上图WIFI环境下设置代理的方式可以解决,具体思路是:
所以整个网络链路依然是HTTPS在传输,但代理服务自己可以获取到明文数据。
比较常用的抓包工具大概有4个,主要用作互补,配合使用基本所有平台、所有抓包需求都能满足:
需要说明的是,tcpmp可将数据保存成文件,直接用wireShark打开分析,针对后台或手机抓包使用起来十分方便。
几个工具间的使用关系:
为什么要真机抓包?必定是没有办法设置代理服务了,如4G网络情况下直接和移动基站链接,没法设置代理服务。凡是非4G网络状态下,都不建议真机抓包。
iOS 5后,apple引入了RVI remote virtual interface的特性,它只需要将iOS设备使用USB数据线连接到mac上,然后使用rvictl工具以iOS设备的UDID为参数在Mac中建立一个虚拟网络接口rvi,就可以在mac设备上使用tcpmp,wireshark等工具对创建的接口进行抓包分析。
具体步骤:
android是linux系统,和后台一样可以使用tcpmp命令来抓包,但是需要root权限,因为一般手机系统不带有抓包命令 tcpmp ,需要自行安装。
安装tcpmp:
使用tcpmp:
这是就已经进入抓包状态,手机所有的网络请求都会被捕获,并保存到capture文件中。
导出capture文件:
原文: 网络抓包
② 网际层有哪些协议,作用分别是什么
有:TCP/IP协议,ARP协议,RARP协议,ICMP协议,作用如下:
③ 常用的网络协议有哪些
常见的有以下几种协议
(1)HTTP协议(超文本传输协议)
(2)HTTPS协议(安全超文本传输协议)
(3)TCP协议(传输控制协议)
主要用于网间传输的协议,分割处理报文并把结果包传到IP层,并接收处理IP曾传到的数据包
(4)IP协议(网络互连协议)
(5)FTP协议(文件传输协议)
(6)SMTP协议(简单邮件传输协议)
(7)Telnet协议
Telnet是TCP/IP中的一种应用协议,可以为终端仿真提供支持。
AR7091
爱陆通的工业网关支持MQTT协议以及华为/阿里/电信/移动等主流IOT物联网平台,满足工控 OPCUA 协议与 MODBUS 协议转换。
④ OSI七层模型的每一层都有哪些协议谢谢!
第一层:物理层
物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。只是说明标准。在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi令牌环网等。
第二层:数据链路层
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等
第三层:网络层
网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。
第四层:传输层
传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。在这一层,数据的单位称为数据段(segment)。传输层协议的代表包括:TCP、UDP、SPX等
第五层:会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。会话层协议的代表包括:RPC、SQL、NFS 、X WINDOWS、ASP
第六层:表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。表示层协议的代表包括:ASCII、PICT、TIFF、JPEG、 MIDI、MPEG
第七层:应用层
应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
(4)网络层抓包的协议有哪些扩展阅读:
谈到网络不能不谈OSI参考模型,OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open SystemInterconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型。虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考
七层理解:
物理层:物理接口规范,传输比特流,网卡是工作在物理层的。
数据层:成帧,保证帧的无误传输,MAC地址,形成EHTHERNET帧
网络层:路由选择,流量控制,IP地址,形成IP包
传输层:端口地址,如HTTP对应80端口。TCP和UDP工作于该层,还有就是差错校验和流量控制。
会话层:组织两个会话进程之间的通信,并管理数据的交换使用NETBIOS和WINSOCK协议。QQ等软件进行通讯因该是工作在会话层的。
表示层:使得不同操作系统之间通信成为可能。
应用层:对应于各个应用软
⑤ 网络层有哪几个协议
TCP/IP网络层的核心是IP协议,与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。
⑥ 计算机网络应用层和传输层及网络层协议有哪些
应用层协议:
1、远程登录协议(Telnet)
2、文件传输协议(FTP)
3、超文本传输协议(HTTP)
4、域名服务协议(DNS)
5、简单邮件传输协议(SMTP)
6、邮局协议(POP3)
其中,从网络上下载文件时使用的是FTP协议,上网游览网页时使用的是HTTP协议;在网络上访问一台主机时,通常不直接输入IP地址,而是输入域名,用的是DNS服务协议,它会将域名解析为IP地址;通过FoxMail发送电子邮件时,使用SMTP协议,接收电子邮件时就使用POP3协议。
传输层协议:
1、传输控制协议TCP
2、用户数据报协议UDP
TCP协议:面向连接的可靠传输协议。利用TCP进行通信时,首先要通过三步握手,以建立通信双方的连接。TCP提供了数据的确认和数据重传的机制,保证发送的数据一定能到达通信的对方。
UDP协议:是无连接的,不可靠的传输协议。采用UDP进行通信时不用建立连接,可以直接向一个IP地址发送数据,但是不能保证对方是否能收到。
网络层协议:
1、网际协议IP、Internet互联网控制报文协议ICMP、Internet组织管理协议IGMP、地址解析协议ARP。
⑦ TCP/IP层次模型的第三层(网络层)中包括的协议主要有哪些
IP(IPv4,IPv6),ICMP,ICMPv6,IGMP,IPsec等等...
如果是OSI模型的话,一般还广泛地包括IPX,AppleTalk等...
⑧ 常见的网络协议有哪些
你刚刚说的这些都是基本协议,而真正的协议是这样的:
因为协议分为7层:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
而这7层所使用的协议是不同的,所以你的问题基本是网络层的协议,而不是应用层的协议!
下述参考:
网络层协议:包括:IP协议、ICMP协议、ARP协议、RARP协议。
传输层协议:TCP协议、UDP协议。
应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。