实验报告
一、验证性实验
1.ipconfig/all 查看自己计算机的网络配置
IP地址为192.168.1.3,子网掩码为255.255.255.0,旁边计算机的IP地址与子网掩码相与后结果与我的IP地址与子网掩码相与结果相同,所以处于同一子网。
2.ping www.cqjtu.edu.cn
其中218.70.34.236为百度服务器的IP地址,字节为百度回复我的包的大小。时间为ping包需要返回的时间。TTL表示包的生存周期,每经过一个路由器TTL就会减一,当TTL=0时这个包就会被丢弃。
3.tracert www.baidu.com
tracert可以了解到访问一个服务器的路由过程中经过了哪些节点并显示出中间节点的ip地址。可通过网站 http://ip.cn 查看这些节点位于何处。
4.arp
arp -a
arp当前缓存的是路由器保存的IP地址和IP地址对应的MAC地址。
arp -s命令可以手动添加一条arp记录
arp -d命令可以删除所有arp记录
因为计算机发送数据常常都需要先经过网关再发送到目的地址,所以arp记录中常常有网关的信息,将arp信息设置成静态可以加快数据发送的速度可以直接通过缓存查找到IP地址对应的MAC地址,但缺点是设置成静态后IP地址与MAC地址就绑定了,较难做出修改。
5.DHCP
DHCP为每个终端分配一个IP地址并对它们进行管理
DHCP服务器分配给每个客户端的IP地址定义一个使用期限,该使用期限被称为租期。
在租期到期前,DHCP客户端如果仍需要使用该IP地址,可以请求延长租期;如果不需要,可以主动释放该IP地址。在没有其他空闲地址可用的情况下,DHCP服务器会把客户端主动释放的IP地址分配给其他客户端。
6.netstat
常用端口号分配
netstat -an命令
LISTENING:在监听状态中
ESTABLISHED:已建立连接的状态
CLOSE_WAIT :等待连接中断请求
7.DNS
系统记录的DNS信息
使用nslookup qige.io 命令查询该域名
8.cache
F12选择 Network 面板后刷新页面
加载该页面花费了263毫秒
勾选disable cache禁用缓存后
加载页面花费了7.20秒
二、Wireshark实验
数据链路层
使用Wireshark进行任意抓包
目的MAC:78:c6:2b:8e:78:d8
源MAC:54:05:db:21:86:d6
类型:IPv4
ping qige.io后进行抓包
发出帧的目的 MAC 地址和返回帧的源 MAC 地址都为:78:c6:2b:8e:78:d8,该MAC地址是网关的MAC地址。
ping www.cqjtu.edu.cn然后抓包
发出帧的目的 MAC 地址和返回帧的源 MAC 地址都为:78:c6:2b:8e:78:d8,该MAC地址是网关的MAC地址。
综上,访问非本子网的计算机时,目的 MAC 都是网关的,因为向子网外的计算机发送包都需要先发送给网关再由网关向外发送IP包。
用 arp -d * 命令清空 arp 缓存后ping旁边的计算机
目的MAC地址为全1的广播地址
如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。
网络层
使用 Wireshark 任意进行抓包
熟悉ip包的结构
Version:4表示IP包的版本号为4
Header Length:20 bytes 表示IP包头部长度
Total Length:115 表示IP包总长度
Identification:0x2254 表示IP包标识
Time to Live:51 表示生命周期
Protocol:UDP 表示传输协议
Header checksum:0x6694 表示头部校验和
Source Address:120.232.131.250 表示源IP地址
Destination Address:192.168.1.3 表示目的IP地址
IP 包的分段与重组,使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度并进行抓包
Don’t fragment为0表示允许分段
More fragment为1表示后面还有其他包
Fragment Offset:0表示偏移量为0
使用 tracert www.baidu.com 命令进行追踪,并进行抓包
第一跳TTL=1
第二跳TTL=2
第三跳TTL=3
每个发送包的 TTL 是逐级递增的,说明每经过一个节点包的TTL就会加一。
如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间50跳。
传输层
用 Wireshark 任意抓包,熟悉 TCP 段的结构
源端口:64146
目的端口:80
序列号:1
确认号:1
标志字段:URG(紧急位)、SYN(同步位)、ACK(确认位)、FIN(结束位)、RST(重置位)
Window(窗口尺寸):516
用 Wireshark 任意抓包,熟悉 UDP 段的结构
源端口:53
目的端口:59557
长度:103
分析 TCP 建立和释放连接
第一次握手SYN位为1,ACK位为0
第二次握手SYN位为1,ACK位为1
第三次握手SYN位为0,ACK位为1
第一次挥手192.168.1.3给120.46.209.149发送连接释放报文,Seq=1 Ack=47
第二次挥手120.46.209.149通知TCP释放连接,Seq=47 Ack=1
第三次挥手120.46.209.149收到连接释放报文,发送确认,Seq=2 Ack=48
第四次挥手192.168.1.3收到连接释放报文,发送确认,Seq=48 Ack=2
有时候只能抓到三次挥手是因为第二次挥手和第三次挥手合并了。
应用层
用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包
每次域名解析请求都会根据对应的负载均衡算法计算出一个不同的IP地址并返回,所以对同一个站点,发出的 DNS 解析请求不止一个
打开浏览器访问 qige.io 网站,用 Wireshark 抓包
Accept:用户代理可处理的媒体类型
Accept-Charset:优先的字符集
Accept-Encoding:优先的内容编码
Accept-Language:优先的语言(自然语言)
Authorization:Web认证信息
Expect:期待服务器的特定行为
From:用户的电子邮箱地址
Host:请求资源所在服务器
If-Match:比较实体标记(ETag)
If-Modified-Since:比较资源的更新时间
If-None-Match:比较实体标记(与 If-Macth 相反)
If-Range:资源未更新时发送实体 Byte 的范围请求
If-Unmodified-Since:比较资源的更新时间(与 If-Modified-Since 相反)
Max-Forwards:最大传输逐跳数
Proxy-Authorization:代理服务器要求客户端的认证信息
Range:实体的字节范围请求
Referer:对请求中 URI 的原始获取方
TE:传输编码的优先级
User-Agent HTTP:客户端程序的信息
应答的代码是200
Accept-Ranges:是否接受字节范围请求
Age:推算资源创建经过时间
ETag:资源的匹配信息
Location:令客户端重定向至指定 URI
Proxy-Authenticate:代理服务器对客户端的认证信息
Retry-After:对再次发起请求的时机要求
Server HTTP:服务器的安装信息
Vary:代理服务器缓存的管理信息
WWW-Authenticate:服务器对客户端的认证信息
三、Cisco Packet Tracer 实验
直接连接两台 PC 构建 LAN
配置ip后相互ping通
用交换机构建 LAN
PC0能ping通PC1
PC0不能ping通PC2、PC3
PC3能ping通PC2,不能ping通PC0,PC1,因为它们不在同一个子网。
将 4 台 PC 的掩码都改为 255.255.0.0 ,它们相互能 ping 通,因为属于同一个子网。
使用二层交换机连接的网络需要配置网关,配置网关才能跟外界网络连接
交换机接口地址列表
Switch0的接口地址列表
用PC1 ping PC0 后Switch0的接口地址列表
交换机在收到目的地址未知的帧时会进行广播,当广播找到该地址后会对该地址进行记录,便于下次遇到这个MAC地址时更快进行转发。
生成树协议
交换机之间有回路,自动构成生成树
Switch5的两个接口在逻辑上不通,交换机的 STP 协议即生成树协议始终自动保证交换机之间不会出现回路,从而形成广播风暴。
路由器配置初步
模拟重庆交通大学和重庆大学两个学校的连接,构建拓扑
虚拟局域网 VLAN
构建VLAN
PC4 PC5 属于VLAN10
PC7 PC8 属于VLAN20
PC6 PC9 PC10 属于VLAN30
PC4 ping 同一VLAN下的PC5可以ping通
PC4 ping 不同VLAN下的PC7不能ping通