关于Linux的实验报告 第二话

五、实验五:TCP可靠传输和重传分析

目的:掌握TCP协议传输原理等

1.(root)执行命令修改TCP连接的接收缓存参数

2.用脚本script3.1、3.2、3.3创建虚拟网络拓扑,为路由器配置静态路由,关闭网卡offload,脚本已在之前实验中会出这里就不再赘述了。

3.分别创建两个终端,使用ip netns exec XXXX bash命令分别模拟主机ns56A和ns57C,并在ns57A上创建一个200K字节长度的文件备用

4.启动抓包,之后再通过网络将主机ns56A上的100K文件发送到57C。之后对实验结果分析

图中可以看出抓包结果中包含了超时重传,快重传等类型的TCP报文,通过其报文字段可进行分析,其中大致包含源端口:发送端端口号,目的端口:接收端端口号,序号(相对序号):在抓包软件中的相对序号,数据偏移:它指出报文数据距TCP报头的起始处有多远,窗口值:窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。

总结:通过此次实验大致了解了传输层TCP协议的工作原理以及其数据报各个字段的含义,可以通过其数据报对其进行分析。

六、实验六:TCP协议流量控制分析

目的:掌握TCP的流量控制机制,理解TCP的零窗口通知及处理方法。

1.(root)运行命令修改TCP连接接收缓存参数,限制分配的接收缓存为9032字节

2.运行和之前实验一样的3.1、3.2、3.3脚本创建所需要的环境

3.同样是和上次实验一样分别模拟两个主机ns56A和ns57C,在ns56A上创建一个10K字节长度的文件备用,并在ns57C上抓包

4.在ns57C和ns56A建立连接之后停止抓包对抓包结果进行分析。从结果中是可以看到很多黑色的TCP报文,这些就是主机ns56A发送的窗口探测报文,而这些窗口的作用在上一次实验也提到了:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量 (以字节为单位)。

总结:通过此次实验,了解到了TCP是通过发送窗口来限制流量的。

七、实验七:IP协议探索和IP分片分析

目的:掌握IP协议的基本分析以及了解Linux下修改链路MTU的方法。

1.(root)依旧是那三个脚本创建环境,其网络拓扑图长这样:

2.我们将路由器RA和RB之间的链路的MTU值修改为1000,就是RA和RB之间允许通过的最大数据包大小为1000字节。

3.弄两个窗口模拟ns56A和ns57C,启动抓包,在RB上启动两次,分别在接口tapRB_56A和tapRB_RA上抓包,对实验结果分析一下🙂。此次实验在tapRB_RA上截获了2个IP数据报,在tapRB_56A上截获了1个。

4.点它对其报文进行分析,其中的版本为4代表Ipv4版本;首部长度是Ipv4中的规定长度;区分服务代表服务类型;总长度就是首部长度加上数据长度,单位是字节;标识是IP软件在存储器中的一个计数器,每产生一个数据报,计数器就加1;标志有两位,最低位是MF,MF=1代表后面还有分片,MF=0则否,中间位是DF,只有DF=0时允许分片,其他情况不允许分片;片偏移表示的是每个数据报在原数据报中的相对位置,其长度必是8字节的整数倍;TTL即Time To Live,就是生存时间,以跳数为单位,当其值为0时就会被抛弃并向主机发送其信息;协议就是指使用了哪种协议,以便使目的主机的IP层知道应该将数据部分上交到哪个处理过程;首部校验和只包含数据报的报头,不包含数据部分;源地址和目的地址和前面几次实验代表的含义相同。

总结:此次实验也是了解到了这个IP数据报里面的值是啥意思,也知道了怎么修改MTU值,所谓的这个MTU就是规定的最大传输单元。

八、实验八:ICMP协议探索和分析

目的:掌握ICMP协议的数据格式,报文格式和各个字段含义及其差错报文产生的条件。

1.(root)依旧是运行那三个脚本啊,创建一下我们实验所需要的环境,之后通过命令删除默认路由,创造ICMP网络可达差错报告报文产生的条件

这个稍微动点脑子思考一下就能知道,为什么删除它,你既然想不可达,那我不存在你就一定不可达,欸,对的,一定是这样😀。

2.接下来在路由器RA上修改接口tapRA_RC的MTU值为1000字节,在RC上采用同样的操作,创造ICMP需要分片差错报告报文的产生条件

嘶,这一步其实和上一步也是有一点相似的,既然咱要让它出错,那肯定得添油加醋,给点限制条件它不就出错了吗,所以这里修改它最大传输单元的值。

3.和前两步类似的,在RC中用iptables设置规则,拒绝转发并丢弃目的地址为192.168.57.190的IP数据报,创造ICMP管理禁止报文的产生条件,再创造一个ICMP定向差错报告报文的产生条件。

4.弄两个窗口模拟一下ns56A和ns57A(拓扑图在上一个实验),启动抓包,之后用nping发送UDP数据报到其他用户来得到多种差错报文,这里的nping是需要安装的正常情况下,输入yum install nmap zenmap安装。ok,安装完之后我们停止一下抓包保存,再启动ns56A上的抓包,并在ns56A上用ping命令测试到主机ns57A的连通性,连不连通,ping一下就知道😊。

5.OK了,那我们停止抓包之后就可以对数据报进行分析了。

其中差错的ICMP数据报产生差错的原因多是源IP地址所在的网络被删除掉了,其中ICMP字段中给出的原因多是目的地址不可达,网络不可达,或是目的地址不可达需要分片。正常的ICMP数据报中的IP首部和IP数据报字段含义是相同的,ICMP首部中类型代表ICMP报文的类型,从类型值上看ICMP报文分为两大类,第一类是取值为1~127的差错报文,第二类是取值128以上的信息报文;代码标识对应ICMP报文的代码,它和类型字段一起共同标识了ICMP报文的类型;校验和和IP数据报中的含义相同;标识字段用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对不可达ICMP报文和超时ICMP报文等,该字段是0,在该实验中的该字段都不是0。

总结:通过这次实验也是了解到了ICMP协议的数据格式,报文格式和各个字段含义及其差错报文产生的条件,测试连通性可以用ping命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值