计算机网络综合课程设计文档格式.docx
- 文档编号:20876836
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:17
- 大小:1.26MB
计算机网络综合课程设计文档格式.docx
《计算机网络综合课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《计算机网络综合课程设计文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
二、实验主要内容及原理
实验内容:
假设你当前使用计算机的IP地址为192.168.0.102,MAC地址是38-59-F9-B1-C9-25,计算机所在的Ethernet为星型拓扑结构,带宽100Mbps,网络号是192.168.0.102/25,网关为192.168.0.1,DNS服务器IP地址为192.168.0.1,网络及各服务器正常工作。
请详细描述当在浏览器地址栏中输入.hk回车后到整个页面全部显示完毕这个过程,注意:
仅描述本机的应用层、传输层、网络层、数据链路层、物理层,如果叙述中有已经描述的方法可省略,同时注意条理性。
实验原理:
局域网(LAN)是在一个小的范围内,将分散的独立计算机系统互联起来,实现资源的共享和数据通信。
局域网的技术要素包括了体系结构和标准、传输媒体、拓扑结构、数据编码、媒体访问控制和逻辑链路控制等,其中主要的技术是传输媒体、拓扑结构和媒体访问控制方法。
局域网的主要的特点是:
地理分布范围小、数据传输速率高、误码率低和协议简单等。
1、三个主要技术
⑴传输媒体:
双绞线、同轴电缆、光缆、无线。
⑵拓扑结构:
总线型拓扑、星型拓扑和环型拓扑。
⑶媒体访问控制方法:
载波监听多路访问/冲突检测(CSMA/CD)技术。
2、以太网帧结构
以太网中传输的数据包通常被称为“帧”,以太网的“帧”结构如下:
图1-1以太网帧结构
各字段的含义:
目的地址:
6个字节的目的物理地址标识帧的接收结点。
源地址:
6个字节的源物理地址标识帧的发送结点。
帧类型/长度(TYPE/LEN):
该字段的值大于或等于0x0800时,表示上层数据使用的协议类型。
例如0x0806表示ARP请求或应答,0x0800表示IP协议。
该字段的值小于0x0800时表示以太网用户数据的长度字段,上层携带LLC-PDU。
数据字段:
这是一个可变长度字段,用于携带上层传下来的数据。
帧校验FCS:
以太网采用32位CRC冗余校验。
校验范围是目的地址、源地址、长度/类型、数据字段。
3、IP(InternetProtocol)协议和IP地址的分类
IP协议用于管理客户端和服务器端之间的报文传送,是互联网最重要的网际协议。
IP地址是互联网主机的唯一标识。
网络通信时使用IP地址来指定接收端的主机地址。
IPv4版本的IP地址占32位,由类别、网络地址和主机地址共3个部分组成。
网络地址用于区分不同的网络,主机地址用于区分一个网段内主机。
IP地址分成5类:
A类,B类,C类,D类和E类。
其中A、B和C类是分配给用户使用的,D类用于多点广播,E类保留。
图1-2IP地址分类示意图
(1)、各类IP地址的范围
A类:
0.0.0.0到127.255.255.255
B类:
128.0.0.0到191.255.255.255.
C类:
192.0.0.0到223.255.255.255
(2)、特殊的IP地址
①网络地址:
主机地址部分为全“0”的IP地址是作为网络本身的标识。
②直接广播地址:
主机地址为全“1”的IP地址不分配给任何主机,用作广播地址。
③有限广播地址:
32位为全“1”的IP地址(255.255.255.255)称为有限广播地址。
④专用IP地址:
10.0.0.0—10.255.255.255;
172.16.0.0—172.31.255.255;
192.168.0.0—192.168.255.255
4、IP数据报格式
图1-3IP分组格式
UDP是面向非连接的协议,发送端与接收端在传输数据包之前不建立连接,而只是简单地把数据包发送到网络上,或者从网络上接收数据包。
UDP提供不可靠的数据传输服务。
(1)、UDP封装在IP数据报
图1—4UDP的封装
(2)、UDP字段组成
图1—5UDP分组格式
5、TCP的封装
TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。
TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。
图1-6TCP的封装
各字段含义:
16位源端口号和16位目的端口号:
端口号通常也称为进程地址。
32位序号:
序号用来标识从TCP发送端向TCP接收端发送的数据字节流。
32位确认序列号:
表示一个准备接收包的序列号。
4位首部长度:
首部长度指出了首部中32bit字的数目。
正常的TCP首部长度是20字节。
6个标志字段:
URG紧急指针;
ACK确认序号;
PSH推标志;
RST重建连接;
SYN同步序号;
FIN结束标志。
16位窗口:
TCP的流量控制由连接的每一端通过声明的滑动窗口大小来提供,窗口大小为字
16位检验和:
检验和字段覆盖了TCP首部和TCP数据。
TCP检验和的计算方法和UDP检验和的计算方法一样,计算时需要考虑伪报头。
16位紧急指针:
URG标志置1时紧急指针才有效。
图1-7TCP分组格式示意图
6、DNS协议
DNS域名系统是服务器和客户程序相互通信的一种协议。
它提供了主机域名和IP地址之间的转换。
域名服务器使用固定的端口号53,支持UDP和TCP访问。
(1)DNS的报文格式
图1-8DNS的报文格式
上图是DNS查询和响应的报文格式。
DNS查询和响应的报文由12字节长的首部和4个长度可变长度的字段组成。
标识字段由客户程序设置并由服务器返回结果。
(2)DNS工作流程
域名服务分为客户端和服务器端,客户端提出请求,询问一个DomainName的IP地址,服务器端必须回答客户端的请求。
本地DNS首先查询自己的数据库,如果自己的数据库中没有对应的IP地址,则向本地DNS上所设的上一级DNS询问,得到结果之后,将收到的结果保存在高速缓冲区,并回答给客户端。
待查询的域名放在查询问题中,查询结果放在回答的资源记录中。
7、HTTP协议
HTTP报文共有两种通用类型:
请求报文,响应报文。
(1)请求报文
请求报文包括请求行、首部,以及有时出现的主体。
如图1-9:
图1-9HTTP请求报文
请求行:
包括请求类型、空格、URL、空格以及HTTP版本。
请求行的格式如下:
图1-10请求行格式
请求类型:
此字段定义了几种不同方法的报文。
常用的几种方法:
①GET:
客户要从服务器读取文档时使用。
②HEAD:
客户想得到关于文档的某些信息,但并不是要这个文档时使用。
③POST:
当客户要给服务器提供某些信息时使用。
④PUT:
当客户将新的或更换的文档存储在服务器上时使用。
⑤COPY:
当需要将文件复制到另一个位置时使用。
⑥MOVE:
当需要将文件移到另一个位置时使用。
⑦DELETE:
当需要将服务器上的文档移走时使用。
⑧LINK:
当需要创建从一个文档到另一个位置的链接时使用。
⑨UNLINK:
当需要删除由LINK方法创建的链接时使用。
⑩OPTION:
当客户向服务器询问到一些可用的选项时使用。
(2)响应报文
响应报文包括状态行、首部、有时包括主体。
图1-11HTTP响应报文示意图
状态行:
包括HTTP版本、空格、状态码、空格、状态短语。
图1-12HTTP响应报文状态行
状态码:
100系列:
提供信息的;
200系列:
指示成功的请求;
300系列:
把客户重定向到另一个URL;
400系列:
指示客户端差错;
500系列:
指示服务器端差错。
状态短语:
用来解释状态码。
8、用三次握手建立TCP连接的各状态
主机与主机,主机与服务器进行数据传输等得流程图如下:
3、实验过程简述
1.安装Wireshark网络分析工具软件,抓取浏览器数据包
2.①启动网络分析工具软件,设置抓包过滤条件,开始抓包。
②启动浏览器,在地址栏输入URL:
③关闭浏览器,停止抓包。
3.分析所抓取的包文件以及各个层的网络协议。
四、实验结果及分析
第一段:
主机1从应用层传输至物理层的过程分析
1、浏览器分析URL,将当前使用的域名解析为其对应的Ip地址,其过程是:
首先我的计算机在浏览器DNS缓存中查找.hk项,如果有对应的IP则找出来,如果没有就构建DNS请求包向外发送,逐级从低级到高级域名进行域名解析出IP地址。
由于我使用的自己的无线WIFI连接计算机网络,并且该计算机曾经没有登陆过该网站,浏览器中就没有对应的缓存,所以通过域名解析的结果无线WIFI服务器192.168.0.1给我发回的ip地址,下截图可知:
(一般情况下本地区域网的总DNS服务器中有相应的IP地址,若没有则需到其他区域域名服务器中找即从低级到高级域名进行域名解析出IP地址。
)
2.浏览器构建DNS请求包,由于DNS本身就在应用层中,所以之后它将递交给传输层实体同时告知该包为DNS包。
3.在传到传输层时,根据抓包数据可知:
传输层实体构建了43个字节的UDP包,源端口按主机当前情况选择,本机的源端口为57492,目的端口为53,然后将包递交给网络层。
4.网络层实体以源IP为192.168.0.102,目的IP为DNS服务器的即192.168.0.1等字段封装UDP包从而构建IP包然后递交数据链路层。
(在网络层还要做一个重要的工作就是用ICMP查找路径,下面的14步有详细的描述)
由抓包数据可以看出:
IP包头部依次包含版:
ipv4版本、首部长度为20个字节、区分服务、总长63、标识7979、标志0、片偏移0、数据包生存时间TTL是64秒,协议即上层携带数据的协议UDP协议,首部检验和0,IP源地址192.168.0.102,IP目的地址192.168.0.1
5.数据链路层构建以太帧,由下截图可知,Ethernet帧头部依次包含了目的网卡地址如上是0c:
37:
dc:
f2:
40:
12,源地址48:
5d:
60:
be:
6b:
b0,类型为ip即表示上层用的是ip数据包。
每个主机和路由器都有自己固定的MAC地址即物理地址,因此找到相应的MAC地址就能找到服务器,则启动ARP请求将IP地址翻译成其对应目的Mac地址,获得DNS服务器的MAC地址即0c:
12作为目的MAC地址。
然后递交物理层,执行CSMA/CD协议。
6.本机的物理层向信道发送信息数据(即比特流)。
第二段经路由器转发至服务器的过程:
7.网关输入端的物理层接受到信号,递交给数据链路层查看。
8.数据链路层检查目的MAC地址,由于目的MAC地址为0c:
12服务器的,则去掉以太帧的首部和尾部剩下IP包递交给网络层。
然后通过路由器的输出端,通过物理层向该服务器端发送数据。
9.服务器的物理层接收到数据,并把数据传给数据链路层检查MAC地址,是本机的地址0c:
12,则去掉以太帧的首部和尾部将IP包给网络层。
网络层递交去掉IP包的首部和尾部后的UDP包给传输层,传输层递交DNS包给应用层。
10.服务器应用层解析出IP地址,再经过上述的途径返回,将解析出IP地址返回给应用程序(浏览器),DNS服务器的即192.168.0.102得知.hk的IP地址74.125.128.199。
第三段TCP中三次握手过程:
11.浏览器构建HTTP请求包,递交传输层。
12.建立连接需在传输层构建TCP段(TCP段头部包含如上依次是源端口1649,目的端口80,序号0,确认号0,头部长32字节,保留reserved为0即今后使用,urc为0即报段无效,确认ack为0即确认号无效,推送push为0,复位reset为0即不重新建立连接,同步SYN为1即对方同意建立连接,终止FIN为0即不释放运输连接,紧急指针,选项即长度可变12字节。
该主机在传输层构建TCP段向.hk即ip地址74.125.128.199发起三次握手请求如下截图所示:
我的主机向服务器发出连接请求报文段,从我的端口1649发出,服务器80端口进入,第一次握手TCP规定同部位SYN=1,SYN报文段不带数据,要有个序号,与服务器第一次握手SYN=1,报文段len=0,序号seq=0。
第二次握手服务器收到连接请求报文段后,如果同意发出确认则发无数据报文段SYN=1,ACK=1,消耗序号。
第二次握手服务器确认SYN=1,ACK=1,报文段len=0,序号seq=0。
第三次握手TCP客户收到服务器确认报文段后,再向服务器发出确认报文段ACK=1,TCP规定若无数据则消耗序号。
第二次握手服务器确认ACK=1,报文段len=0,序号seq=1。
13.网络层源IP为192.168.0.102其组成同上述的一样只是其中协议即上层携带数据的协议为TCP协议,以74.125.128.199为目的IP,封装TCP段构建IP包。
14.该主机网络层发出一连串的IP数据包查找路径,用ICMP网络控制报文协议,此应用为源点到终点的路径,对TTL设置,每经一个路由TTL减1,为0后路由器将数据丢弃并向主机发送一个ICMP时间超过差错报文,逐步的进行直到到达终点。
15.IP包在数据链路层构建帧,源MAC地址是48:
b0,并启动ARP请求,如果获得说明是统一网络,如果没获得,则经过了网关,网关将服务器的MAC地址作为源地址,将本计算机的MAC作为目的地址。
16.数据到达服务器192.168.0.1后也一层一层的向上传。
17.服务器收到我主机的连接请求后会回复,以数据的形式经一层一层到物理层向信道发送。
网关的物理层接收到信号,然后把数据流转换为数据给数据链路层检查,数据链路层检查目的MAC地址,如果是服务器的MAC地址,则递交IP包给网络层。
然后通过路由器的输出端,通过物理层向本计算机发送数据。
18.本主机接收服务器确认包,再由上过程发出确认包,则三次握手连接完成,可以双方发送数据了。
19.建立好连接后我主机向服务器发送请求取数据,TCP也要连接,若下截图将序号seq设为1,确认号ack设为1,并且说下一次服务器的ack为1461(这表示我的请求包有1460个字节)
下截图192.168.0.102返回TCP连接序号seq为15732,确认号ack为1,并且说明下一次我的ack为16573(这表示服务器的包长为16572)。
即证明我下次请求的ack为169,发出的包长为378,这是TCP的连接。
第一次发出请求包,我想得到
但从下截图可知系统给我加了其他的数据请求。
其传输过程同上述12步变成建TCP段到17步一致。
18.本计算机的物理层接收到74.125.128.199返回信号,然后传到数据链路层检查目的MAC地址,如果是网关的MAC地址则递交IP包给网络层。
网络层则递交TCP段和UDP包给传输层。
传输层递交HTTP包给应用层。
应用层提取HTTP数据段内容,浏览器将其展示。
(下截图为服务器返回数据)
19.最后当双方都不需要数据的时候就会释放连接,双方任一一方都可先释放。
TCP规定,请求释放方A先提出释放连接则FIN=1,且要消耗序号,无数据及len=0;
TCP规定B接到释放请求后会发出确认及ACK=1,这时请求释放方无数据发送给B了,但B可再发数据给A,若B也无数据发送了,因此也要发送释放连接报段;
B也无数据发送了也发送了释放连接报段,这时FIN也应为1,无数据,有序号A收到释放报文后也要发出后确认,长度0,和序号,则释放连接全部结束,双方都不会放送数据,也不会收到对方的数据。
五、心得体会
通过本次综合实验课程设计通过访问谷歌浏览器,然后抓包捕获来分析当一个主机在浏览器地址栏中输入回车后到整个页面全部显示完毕的过程。
对应所抓取得包文件,描述本机的应用层、传输层、网络层、数据链路层和物理层所发生的事情。
在实验刚开始研究题目的过程,有种无从下手的感觉。
因为以前就是简单的用wireshark抓过包,没有具体的一条一条分析过程,所以对首次具体分析显得有点困难。
但在查阅相关资料以及访问老师所给的协议分析网站以及网上一些有用资源,对本次课程设计题目有了一定的认知和了解便开始了本次设计。
在实验过程中,从打开浏览器到页面显示完毕,由于我访问的是谷歌浏览器,它首先要从本主机的应用层依次向下到物理层,之后经过信道和多个路由器的转发,最后到达目的主机的物理层依次向上传输到应用层的过程。
其中应用层主要包括了DNS解析,传输层主要包括TCP协议(包括三次握手过程)和UDP协议,网络层主要是IP协议,数据链路层主要是将IP封装成以太帧的过程,而物理层就是讲以太帧转化为数据比特流0和1在信道中传送。
除此之外,在本次设计中遇到的最大困难就是对DNS解析以及HTTP协议的理解和分析,因为之前并没有详细的接触过这两条协议,对其工作原理也不是很熟悉,所以需要查阅资料以及咨询相关老师和同学才能够分析透彻。
总体来说,本次课程设计还是成功的,在这期间不仅回顾了计算机网络课堂上学习的知识,在很大程度上提高了我对相关网络协议的深入了解和体会,通过对数据包的分析同时对网络连接的相关过程也有了一定的了解。
另外,在实践中将课堂的知识进行强化,加以实际应用,是我们能够在动的理论的基础上,体会现实实践中的具体过程,达到学有所用,学有所思的过程。
并且在实践操作过程中,强化了我们自己动手解决问题和独立思考问题的能力,对我们今后的学习有很大的帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 综合 课程设计