一、概要
OSI(开放式系统互联通信参考模型)将计算机网络体系划分为七个层次,由上而下分别为:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
TCP/IP传输控制/网络(网络通信)协议,是能够在多个不同网络间实现信息传输的协议簇,其中以TCP、IP协议最具代表性。TCP/IP协议在一定程度上参考了OSI模型,将其简化为四层结构,分别为:应用层、运(传)输层、网络层和网络接口层。
不管网络体系怎么划分,其每一层都完成了相应的功能,为了实现这些功能,就需要制定相应的准则,也就是我们常说的网络协议,所有网络协议的总称叫做“互联网协议”。
二、网络协议
互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。下面以TCP/IP模型逐层理解网络协议。
1.网络协议的三个要素(语义、语法、时序)
语义、语法和时序,分别表示要做什么,怎么做和先后顺序。
语义:解释控制信息每个部分的意义,它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。
语法:语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。
时序:时序则是对事件发生顺序的详细说明。
2.应用层
应用层用于规定应用程序各种数据的格式,HTTP(超文本传输协议)协议是应用层的一个重要的协议,是一个简单的请求/响应协议,是无连接、无状态的,我们平时浏览网页使用到的就是HTTP协议,它被嵌入到TCP数据包中。
DNS(域名解析协议)是一个应用层协议,它将IP地址和域名做一个映射,DNS建立在TCP、UDP协议之上,默认使用UDP协议通信,在广域网或者报文长度超过512字节时使用TCP协议进行通信。
3.传输层
传输层主要协议为TCP和UDP,TCP协议(传输控制协议)是一种面向连接的,可靠的传输层通信协议,典型应用例子为HTTP协议,TCP传输方式是基于字节流的(虽然应用程序和TCP的交互是一次一个数据块,但是TCP把应用程序当作一连串的无结构的字节流)。TCP数据传输的可靠性是基于报文握手实现的,建立连接时采用三报文握手,关闭连接时采用四报文握手,过程如下:
而UDP协议(用户数据报协议)则是无连接的,可靠性较差的协议,它发送报文后无法确定报文是否安全完整到达目的地址,其优点是传输速度快,典型的应用为DNS协议。
4.网络层
IP协议(网际互连协议),规定网络地址的协议,它所定义的地址,就被称为IP地址。IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。IP数据包中嵌入了TCP数据包,并在数据包中设定源地址和目的地址,完成后IP数据包再嵌入到以太网数据包中进行发送。
ARP协议(地址解析协议),APR根据IP地址查询目标主机的MAC地址,如果两台主机不在同一个子网络,就得不到目标主机的MAC地址,只能把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理。如果两台主机在同一个子网络,ARP协议可以通过发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个"广播"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。(注:在OSI模型中,将ARP划为数据链路层协议,在TCP/IP模型中,ARP协议属于网络层)
IP地址、MAC地址都知道的情况下,以太网数据包就可以发送到任意一台主机上了。
5.网络接口层
网络接口层与OSI参考模型中的物理层和数据链路层相对应。网络接口层是TCP/IP与各种LAN或WAN的接口。
网络接口层在发送端将上层的IP数据报封装成帧后发送到网络上;数据帧通过网络到达接收端时,该结点的网络接口层对数据帧拆封,并检查帧中包含的MAC地址。如果该地址就是本机的MAC地址或者是广播地址,则上传到网络层,否则丢弃该帧。
整个计算机网络体系的四层结构构成、实现功能和常见的网络协议如上所述,大致反映了互联网协议发挥的作用和通信的过程。
三、流量监听与分析
1.简介
访问网页一般由HTTP、HTTPS协议承担数据的传输,于是出现了许多基于对网站流量的抓包工具,典型的有Fiddler和Wireshark。
2.Fiddler
Fiddler是以代理web服务器的形式工作的,支持pc和移动端,它能够记录客户端和服务器之间的所有 HTTP/HTTPS请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能强大。
3.wireshark
wireshark抓包比Fiddler更全面,Wireshark抓的包信息量很大,通常需要进行一些过滤操作,才能把有用的信息拿到,输入框输入过滤规则,即可过滤出我们需要的一些信息。Wireshark的过滤规则,使用的是正则表达式来写的。具体可参考地址:
wireshark使用方便,直接选择想要捕获的接口即可监听该网卡的数据流量。
4.流量分析
在进行流量分析之前首先需要了解HTTP响应的状态码,常见的状态码链接地址: https://pan.baidu.com/s/1qMQizXzS4RxIsw4bUTwdIw 提取码: wv7j
主要介绍使用wireshark分析器分析数据流的过程,分析包是Wireshark最强大的功能之一。分析数据流过程就是将数据转换为可以理解的请求、应答、拒绝和重发等。帧包括了从捕获引擎或监听库到核心引擎的信息。Wireshark中的格式由成千上万的协议和应用程序使用,它可以调用各种各样的分析器,以可读的格式将字段分开并显示它们的含义。下面将介绍详细分析Wireshark的包信息。例如,一个以太网网络中的主机向Web网站发送HTTP GET请求时,这个包将由五个处理器进行处理。分别如下所示:
4.1.帧分析器
帧分析器用来检测和显示捕获文件的基本信息,如每个帧的时间戳,如下图所示。然后帧分析器传递帧给以太网分析器。
可以看到帧(Frame)的编号以及大小,捕获时间等。
4.2.以太网分析器
以太网分析器用来解码、显示以太网帧(Ethernet II)头部的字段、字段类型的内容等。然后传递给下一个分析器,也就是IPv4分析器。如下图所示,该字段类型值为0x0806,0x0806表示是一个IP头部。
从该界面可以看到在以太网帧头部中封装的信息,包括发送方的源MAC地址和目标MAC地址。
4.3.IPv4分析器
IPv4分析器用来解码IPv4头部的字段,并基于协议字段的内容传递包到下一个分析器。如下图所示,该界面显示了IPv4分析器中的内容。
从该界面可以看到TCP协议字段的值为6
4.4.TCP分析器接管
TCP分析器用于解码TCP头部的字段,并基于端口字段的内容,将帧传递给下一个分析器。如下图所示,该界面显示了TCP分析器中的内容。
从该界面可以看到,目标端口为HTTP协议的80端口。
4.5.HTTP分析器接管
在本例中,HTTP分析器解码HTTP包的字段。在该包中没有嵌入式的协议或应用程序,所以这是帧中应用的最后一个分析器,如下图所示。
从该界面可以看到,客户端口请求了http://qurl.f.360.cn/wdinfo.php网站。
5.网络嗅探工具的优势和危害
网络嗅探器,是一种威胁性极大的被动检测攻击工具。使用这种工具,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行嗅探攻击。将网络接口设置在监听模式,便可以将网上传输的信息截获。黑客常常用它来截获用户的口令,而管理员则可以使用嗅探工具分析网络性能和故障
5.1.网络嗅探的发现与防范
5.1.1.如何有效发现并防范网络嗅探工具的监控和嗅探。首先,检查网络中是否存在下述情况,其原因可能就是网络中有嗅探工具正在运行。一是网络丢包率非常高。二是网络带宽出现反常现象。
5.1.2.嗅探过程
FTP口令嗅探:使用wireshark,找到ftp地址的IP,在用户登录的时候捕捉用户名和口令,如下图所示:
HTTP口令嗅探:同上,利用找到的未加密的管理平台IP,获取HTTP口令密码。
5.1.3.嗅探的防范,通过使用加密软硬件设备,实现对传输数据的加密,从而保护传输数据的安全,例如VPN、SSL、SSH等加密手段可有效防范网络嗅探。也可以利用网络设备的物理或者逻辑隔离的手段,可以避免信息的泄密,例如利用交换机的VLAN功能,实现VLAN间的逻辑隔离。
以上对网络协议的分析和数据流的分析大致体现了网络的一个运作过程,需要更详细、全面的学习推荐《TCP/IP详解》,一共三卷。
网友评论