计算机网络实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络实验报告
理解TCP/IP协议在操作系统中的实现。
二、实验内容
1、阅读第二次实验参考材料,会用Sniffer捕获Interner数据包。
使用打开捕捉接口对话框,浏览可用的本地网络接口,选择您需要进行捕捉的接口启动捕捉,结果如下图:
2、访问任何一个WWW服务器,捕获全部的数据包。
从图中可以看到抓取到的来自IP地址为220.181.19.64的数据包:
3、分析这些数据包,理解DNS实现过程、理解http协议的实现过程、理解TCP连接三次握手的实现过程、理解TCP断开连接的实现过程、
TCP连接三次握手的实现过程如下:
31行显示:本地主机向服务器发送了一个请求连接报文SYN=1,ACK=0;
32行显示:服务器收到连接请求报文后同意建立连接,向客户端发送确认SYN=1,ACK=1;33行显示:客户进程收到服务器端的确认后,向服务器端给出确认,ACK=1;
服务器端发送释放连接报文段、客户进程收到释放报文段后发出确认、释放客户进程的TCP 连接、最终释放服务器端的TCP连接的过程。
4、显示所用主机的路由表及ARP缓存,理解IP转发数据包的过程、理解ARP实现过程以及
MAC帧在以太网内的传送过程。
、
(1)显示主机路由表:
(2)ARP缓存:
(3)IP转发数据包过程:IP数据包到路由器之后,它首先要读去IP包头的目标IP地址,然后查看路由表,根据路由协议算法,确定一条最佳的路径,为什么要这样做呢,那是因为要确定这个数据包应该从路由器上的那个接口上转发出去,很明显路由表里的每一条可用的路由都和路由嚣上的接口是对应的,就这样一个数据包就离开了这个路由器。
事情就是这样。
看见楼上有一个不太正确的说法,IP数据包头里的源IP和目标IP都不会被改变,如果改变数据包不可能到达或者回来,但只有一种情况,源和目标IP是被改变的,那就是NAT。
(4)ARP实现过程:系统首先初始化ARM,启动网口,使用的是TFTP(Trivial FileTransfer Protocol)文件传输协议,TFTP在不需要用户权限或目录可见的情况下使用,它使用UDP 协议而不是TCP协议。
然后计算机发送ARP数据报,当ARM发送ARP后发送RARP(计算机判断RARP是否合法,如果不合法则重发;如果合法,就交换以太网MAC地址,将源MAC写到目的MAC,将源IP写到目的IP,重写源IP与MAC,再发送RARP)。
判断UDP的目的地址是否为本机地址,如果不是就不处理该帧;如果是本机地址,就检查其端口,再通过信息帧获得该数据长度,并将数据写入RAM,同时将信ffiJL\帧设为预置状态。
接着在CPU的控制下,将RAM里的数据再写入Flash。
(5)MAC帧传送过程:PPP是在X.25下的标准协议吧,应该数据链路层的协议,路由器是三层交换设备(网络层),必须经过ip数据报封装,才能转发。
所以是mac--ip数据报—ppp。
5、标记出DNS、Http、TCP、I P、ARP、MAC协议的首部格式。
DNS首部格式:
数据包DNS response:
前面三段分别为以太网包头,ip包头和UDP包头。
HTTP首部格式:
TCP首部格式:
ARP首部格式:
表示源主机的MAC地址,上层协议类型0x0806表示ARP。
6、理解TCP/IP协议栈的实现及数据报的封装。
TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。
传输层及其以下的机制由内核提供,应用层由用户进程提供(后面将介绍如何使用socket API编写应用程序),应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
三、总结
通过这次试验,逐步掌握了wireshark的使用,在实验的基础之上,逐步掌握并深化了了关于IP、ARP等命令以及网络协议的理解。