一 地址解析协议(ARP)
作用:根据已知的IP地址解析获得其对应的MAC地址。
实验:组件以下网络并观察抓包,对报文处理过程进行描述
ARP解析过程(包括交换机MAC地址表学习)描述:
1 主机1 对指定的IP地址(192.168.1.2)发送数据包
2 主机1 查看自己的ARP缓存表-查看结果如果有则开始发送数据包,如果没有指定的IP对应的MAC地址则进行下一步
3 主机1 发送ARP请求(广播帧)
4 交换机记录主机1的MAC到MAC地址表
5 交换机对主机1的ARP请求(广播帧)进行泛洪处理
6 主机2 收到主机1的ARP请求
7 主机2 查看自己的ARP缓存表-查看发现没有主机1的IP对应的MAC-于是将它记录下来
8 主机2 发现主机1的ARP请求是找的是自己的IP地址
9 主机2 回复主机1的ARP回复(单播帧)
10 交换机记录主机2的MAC到MAC地址表
11 交换机发现主机2的ARP回复在自己的MAC地址表中,对对应的端口发送主机2的ARP回复
12 主机1 收到主机2的ARP回复
13 主机1 将主机2的MAC地址记录到ARP缓存表中
14 主机1 开始对指定的IP地址发送数据包
查看arp缓存表命令:arp -a
清空arp缓存表命令:arp -d
二 ICMP协议
Internet控制消息协议ICMP(Internet Control Message Protocol)是IP协议的辅助协议。
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
ICMP的报文内容: Type类型、Code代码、Checksum校验和
根据Type和Code确定意义:
Type Code 描述
0 0 Echo Reply
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request
1 ICMP差错检测
ICMPEcho消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。
功能:ping
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。Ping常用于探测到达目的节点的网络可达性。
2 ICMP错误报告
ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。如:当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。
功能:tracert
Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。Tracert是检测网络丢包和时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
实验:使用ping后抓包观察分析
From 192.168.1.5: 表示收到此地址的回复 、bytes=32表示过去的数据包大小是32字节 、seq=3 表示第3次回复、ttl=128表示生存时间128、time=32 ms表示延时32毫秒。
Type:8、Code:0 ----- 表示是ping请求
Sequence Number:3 ----- 表示第3次请求
三 传输层
传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”
(PorttoPort)的连接。
传输层的PDU被称为Segment(段)。
1 传输层协议:
TCP:一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义。
UDP:一种简单的无连接的传输层协议,由IETF的RFC 768定义。
TCP协议头部20字节,TCP可靠有差错回复(序列号和确认号)。特点、慢、面向连接有对象。
(适合在不可靠的链路上传输可靠的数据)
UDP协议头部8字节,UDP没有差错报告 。特点:快、无连接的。
(适合在可靠的链路上快输的的传输数据)
2 常见应用层协议-Telnet
Telnet协议,是一个远程终端的协议,使用TCP 23号端口实现,效果是类似于Console接口这样面对面的去控制网络设备。
VTY界面称为虚拟类型终端用户界面,是一个类似于Console的远程连接界面。
用户通过Telnet连接后就会进入VTY界面。
实验:Telnnet配置
system-view \\进入系统视图
user-interface vty 0 4 \\进入接口视图VTT 0 4
authentication-mode password \\设置密码认证
protocol inbound all \\对所有协议放行
user privilege level 15 \\配置远程连接的权限为15
关于VRP用户级别
VRP提供基本的权限控制,可以实现不同级别的用户能够执行不同级别的命令,用以限制不同用户对设备的操作。
3 端口号
TCP和UDP的端口用区分不同的服务,要只要开启相应的服务,对应的端口就会被打开。
著名的端口如TCP 23(telnet) TCP 80(HTTP) TCP 21(FTP)。
1-1024这些端口被称为著名的众所众知的端口,因此在源在使用端口时,是一个大于1023的随机高位端口。
4 TCP报文头部
Source Port:源端口(高位随机数),标识哪个应用程序发送。长度为16比特。
Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。
Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
Reserved:保留,必须填0。长度为6比特。
Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据段。
Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。
Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。
Urgent:紧急指针位,表示需要加急传送的数据
Data:数据
实验:观察Telnet包的TCP头
1 源端口为49553
2 目标端口为23(Telnet协议)
3 序列号2
4 确认序列号3,表示期望收到对方的下一包的序列号是3
5 报文头部长度20字节
6 窗口流量8192字节
7 校验码0xe1ea
8 紧急指针位0
9 传送的数据大小为1字节