实验目的与要求1. 分析数据在五层协议栈中的封装及通信过程,理解通信基本原理; 2. 对典型的网络应用(HTTP、FTP、Email 等)通信进行详细分析; 3. 掌握数据传输过程。 |
实验原理(1)网络协议 网络协议是网络设备,如(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。 (2)计算机网络体系结构 计算机网络体系结构简称网络体系结构(Network Architecture),是分层结构,每层遵循某些网络协议完成本层功能,计算机网络体系结构是计算机网络的各层及其协议的集合。当前主流的体系结构有三种,分别是OSI七层结构,TCP/IP 参考模型,以及Internet五层协议栈。 开放系统互连(Open System Interconnect,OSI)参考模型是由国际标准化组织(ISO)1984年提出的分层网络体系结构模型。目的是支持异构网络系统的互连互通,是理解网络系统的最佳模型或学习工具。 OSI模型可分为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层七层,每层完成特定的网络功能,具体OSI参考模型如下图1-1所示: 图1-1:OSI模型 但OSI模型只是一个理论上的网络通信模型,TCP/IP则是实际运行的网络协议;TCP/IP协议族分为四层,分别为应用层,传输层,网络层,网络接口层。具体TCP/IP参考模型如下图1-2所示: 图1-2:TCP/IP模型 Internet五层协议栈综合了OSI七层模型和TCP/IP四层模型的优点,包括: 应用层:支持各种网络应用(FTP,SMTP,HTTP);传输层:进程—进程的数据传输(TCP,UDP);网络层:源主机到目的主机的数据分组与转发(IP 协议,路由协议等);数据链路层:相邻网络元素的数据传输;物理层:比特传输。 三种模型的对比分析图如下图1-3所示: 图1-3:参考模型的对比图 (3)封装 封装(Encapsulation),由上到下在每一层数据增加控制信息(Header),构造协议数据单元(PDU),包括:地址(Address):标识发送端/接收端;差错检测编码(Error-detecting Code):用于差错检测或纠正;协议控制(Protocol control):实现协议功能的附加信息。 解封装,就是封装的逆过程,拆解协议包,由下到上去除报头,数据封装和解封装是一对逆过程。 五层协议栈的封装和解封装过程下图1-4所示。 图1-4:封装和解封装过程示意图 (4)应用层协议 应用层协议(Application Layer Protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。包含了:消息的类型(type){请求消息,响应消息};消息的语法(Syntax)格式{消息中有哪些字段(field),每个字段如何描述};字段的语义(semantics){字段中信息的含义};规则(rules){进程何时发送/响应消息,进程如何发送/响应消息}。 典型网络应用服务与协议主要有: (1).域名系统(Domain Name System,DNS):主要提供域名和 IP 地址之间映射。 (2).文件传输协议(File Transfer Protocol,FTP):在互联网的两个主机间实现文件互传的网络应用。 (3).超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务,也就是WEB服务。 (4).SMTP(Simple Mail Transfer Protocol), 使用TCP进行Email消息的可靠传输。 (5).POP3(Post Office Protocol 3), 提供从服务器获取邮件的服务。 (5)Internet 提供的传输服务TCP与UDP TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流、可进行流量控制的、提供拥塞控制的传输层通信协议。 UDP(User Datagram Protocol 数据报协议)一种无连接的传输层协议,提供简单不可靠信息传送服务。 TCP 与 UDP 在传输层为应用层服务和程序提供传输服务。 (6)Socket 网络上的程序进程间通信利用socket发送/接收消息实现,进程的标识符IP地址+端口号。 (7)Port 由于系统加载后服务与程序其进程号是按加载顺序排序的,因此通信的两台主机很难通过进程号找到对方,逻辑上提出了一个Port(端口)的概念(仅限于TCP与 UDP传输过程),该概念将逻辑上同一类的服务和APP归结到一个通信出口,通信另一端通过一个随机选择大于1024以上(因为0-1023用作知名服务器的端口,如 FTP21.HTTP80、SMTP25.TELNET23.SSH22)的端口向固定服务的端口(1024 以下固定服务)发起通信请求。例如:源10.84.218.106通过63366向目的40.100.54.34 的 443 发起加密https(443)请求源 10.84.218.106通过62850向目的 182.250.178.82的80发起http(80 端口)请求 TCP 10.84.218.106:63366 40.100.54.34:443 ESTABLISHED TCP 10.84.218.106:63730 183.250.178.82:80 CLOSE WAIT |
实验设备与软件环境1. 安装有Wireshark 的客户端,Chrome 浏览器; 2. 安装并配置有outlook 或者Foxmail等邮件客户端,能正常收发邮件; 3. 安装有DNS和WWW、FTP 等服务的服务器,如无则用互联网服务替代; 4. 由交换机搭建的局域网,如无则使用互联网替代; 5. 至少一种 WEB 开发工具。 |
实验过程与结果1、电脑自身IP地址的查询在Window系统下利用Win+R打开CMD命令行,输入ipconfig 命令进行本地IP地址查询,得到基于WIFE条件下的电脑的自身IP地址。如图1.1所示。 图1.1 由图1可知,电脑自身的IPv4地址为10.225.107.68。 2、使用Wireshark进行HTTP协议进行捕捉。在Windows系统下打开CMD命令行,使用ping对hao123网的域名IP地址进行简单初步解析以方便后续使用Wireshark进行本地筛选,如下图2.1所示: 图2.1 由图2.1可知,hao123网的IPv4地址为14.215.178.78。 启动抓包软件Wireshark,打开Web浏览器,进入hao123,得到TCP的握手如下图2.2,2,3所示: 图2.2 图2.3 第一次握手:客户端发送带有 SYN 标志的连接请求数据包给服务端。 第二次握手:服务端发送带有 SYN+ACK 标志的连接请求和应答数据包给客户端。 第三次握手:客户端发送带有 ACK 标志的应答数据包给服务端。 3、使用Wireshark进行FTP协议进行捕捉利用已存在的FTP服务器,用电脑自身客户端连接FTP服务器,进行连接,登录。进行CS类型的连接方式转换,以及服务器下对应的目录查询,吗,目录文件的下载。 (1)Window命令行连接和登录FTP服务器如下图所示: 对应的FTP协议捕抓如下图所示: 4、使用Wireshark和Formail进行SMTP协议进行捕捉当前主流的Email服务都提供了加密,可通过搭建SMTP邮件服务器,在客户端通过Foxmail 等邮件代理进行通信。 (1)利用Formail发送邮件给朋友,如下图4.1所示。 图4.1 (2)对应的SMTP协议捕抓如下图4.2所示。 图4.2 (3)所截获邮件的编码内容如下图4.3所示: 图4.3 Date:时间,From:发件人,To:收件人 ,Subject:标题 5、使用Wireshark和Formail进行POP协议进行捕捉 (1)修改Formail的邮箱服务器设置,如下图5.1所示 图5.1 (2)继续使用Formail发送邮件给3054723943@qq.com,如下图5.2所示。 图5.2 (2)对应的POP协议捕抓如下图5.3所示。 图5.3 |