一、IPv4地址
1.回顾:
IP的作用:用来标识一个节点的网络地址
IP地址的版本:V4(32)、V6(128)
V4地址的表示方式:点分十进制
V4地址的组成:网络位+主机位
IP地址的分类:A、B、C、D、E
A、B、C默认子网掩码
私有IP地址的范围
2.IP地址网络ID、可用范围、广播地址、
1)IP地址的默认网络ID:默认网络位地址不变,主机位全0
例如:192.168.1.1/24的网络ID
192.168.1.00000000
192.168.1.0(192.168.1.1/24的网络)
2)192.168.1.0/24可用主机IP地址范围:
192.168.1.00000000 192.168.1.0(网络ID)
192.168.1.00000001 192.168.1.1 第一个可用主机IP
192.168.1.00000010 192.168.1.2
192.168.1.00000011 192.168.1.3
……
192.168.1.11111110 192.168.1.254 最后一个可用主机IP
192.168.1.11111111 192.168.1.255(广播地址)
3)ip地址的默认广播地址:默认网络位地址不变,主机位全1
4)IP地址可用个数
可用IP地址个数的计算:2的主机位数次方-2
5)以上案例总结:
192.168.1.1/24的网络ID,广播地址,可用IP地址范围及数量
网络地址:192.168.1.0/24
广播地址:192.168.1.255
可用范围:192.168.1.1-192.168.1.254
可用数量:2的8次方-2=254
6)案例练习:
写出200.78.39.7/24的网络地址,广播地址,可用地址范围,和可用地址数量
网络地址:200.78.39.0/24
广播地址:200.78.39.255
可用范围:200.78.39.1-200.78.39.254
可用数量:2的8次方-2=254
写出160.28.32.10/16的网络地址,广播地址,可用地址范围,和可用地址数量
网络地址:160.28.0.0/16
广播地址:160.28.255.255
可用范围:160.28.0.1-160.28.255.254
160.28.00000000.00000000
160.28.00000000.00000001 160.28.0.1
160.28.11111111.11111110 160.28.255.254
160.28.11111111.11111111 广播地址
可用数量:2的16次方-2=65536
写出172.16.1.1/16的网络地址,广播地址,可用地址范围,和可用地址数量
网络地址:172.16.0.0/16
广播地址:172.16.255.255
可用范围:172.16.0. 1- 172.16.255.254
可用数量:2的16次方-2
7)特殊的IP地址
网络地址 :主机位全为0的IP地址,如:192.168.1.0 不能配置到设备上去使用,不具备唯一性,代表一个网络范围 广播地址 :主机位全为1的IP地址,如:192.168.1.255 不能配置到设备上去使用,不具备唯一性,代表一个网络内的所有主机 回环地址 :127.0.0.0 ~ 127.255.255.255 代表设备本身 全1的IP地址 :255.255.255.255 全0的IP地址:0.0.0.0
二、ICMP协议
1、ICMP协议概述
ICMP:Internet控制消息协议
作用:为网络连通性测试以及网络故障定位提供有效指示信息
协议号:1
位于TCP/IP的第三层(网络层)
2、ICMP报文类型
echo request 请求报文
echo reply 应答报文
3、ICMP 命令
ping 命令 ping 目标IP地址 -t //一直ping ctrl+c 结束 ping 目标IP地址 -c X(数字) //指定ping几次 ping 目标IP地址 -l X(数字) //指定ping的字节的大小 ping 目标IP地址 -t -l X(数字) //攻击对方
tracert 目标IP地址 //路由跟踪 作用:探测一个数据包 从源地址到目标地址所走的路径,纪录节点,发现故障点,然后解决故障!
4、ICMP 消息提示
1) from 目标地址.. . //表示连接成功
2) Destination host unreachable //表示目标主机不可达 --同网段中没有这个IP地址,或IP地址错误 --跨网段通信时,本主机没有填写网关地址
3) Request timed out 请求时间超时 此提示常见原因:数据包可以出去,但是回不来【肉包子打狗】 --对方主机没有填写网关地址 --对方的防火墙阻断了
搭建拓扑图:
ping 192.168.2.1 -t //一直ping ctrl+c 结束 ping 192.168.2.1 -c 2 //给192.168.2.1发送2个ping包 ping 192.168.2.1 -l 1000 //指定ping的1000个字节 ping 192.168.2.1 -t -l 1000 //攻击对方 tracert 192.168.2.1 //路由跟踪
三、ARP协议
1、ARP协议概述
-ARP:地址解析协议
-作用:已知目标设备的IP地址,获取目标设备的MAC地址
-解析方式:发送arp广播,得到mac地址后,缓存到arp缓存表中
2、ARP报文类型
-ARP请求报文:源设备以广播的方式发送 ARP 请求报文
-ARP回应报文:目的设备以单播的方式回应,直接返回给源设备
3、ARP抓包
1)拓扑
2)抓包截图
1)请求报文解析(request): PC3广播发的ARP请求报文
第一条请求报文:解析 who has 192.168.1.2? 1 tell 192.168.1.1 解析:谁是192.168.1.2,把你的MAC地址告诉我,我是192.168.1.1 字段解析: 目标MAC地址 ff:ff:ff:ff:ff :表示目标MAC地址是广播MAC地址 (因为不知道192.168.1.2的MAC地址,所以封装广播MAC去进行广播寻找192.168.1.2的MAC地址) 源MAC地址 192.168.1.2 :表示目标IP地址是192.168.1.2
2)应答报文解析:(reply)—PC4回复给PC1的报文
字段解析: 目标MAC地址 54:89:98:fb:12:41 :表示目标MAC地址是12:41 ----PC3的 源MAC地址 54:89:98:b9:74:25 :表示源MAC地址是74:25 ----PC4的
3、ARP 常用命令PC>arp -a //查看arp缓存表
Internet Address Physical Address Type
192.168.1.2 54-89-98-B9-74-25 dynamic (动态)
PC>arp -d //清空arp缓存表
PC>arp -s 192.168.1.2 54-89-98-B9-74-25 //添加静态的ARP表记录
PC>arp -a //查看arp缓存表 Internet Address Physical Address Type 192.168.1.2 54-89-98-B9-74-25 dynamic (动态) PC>arp -d //清空arp缓存表 PC>arp -s 192.168.1.2 54-89-98-B9-74-25 //添加静态的ARP表记录
如果添加错误的对应关系—结果通信失
4、ARP缓存表
-ARP缓存表中记录IP地址和MAC地址的对应关系
-ARP 缓存表中有动态和静态两类条目
-ARP动态条目存活时间是1200S (华为的网络设备的arp缓存表的默认老化时间)
-什么情况下抓包可以查询到ARP协议,什么情况下抓包看不到ARP协议
注:不同网络的主机通信,IP地址始终保持不变,MAC地址一直在变。
四、传输层
1、传输层概述
传输层作用:提供端到端的连接【端口号】
传输层包含两个协议:TCP和UDP
1)TCP协议
传输控制协议
优点:可靠的、面向连接的协议
不足:传输效率低
2)UDP协议
用户数据报协议
不足:不可靠的、无连接的服务
优点:传输效率高
2、TCP封装格式
3、TCP报头字段分析
1)源端口:源端口和IP地址的作用是标识报文的返回地址 2)目的端口:目标端口指明接收方计算机上的应用程序接口 备注:源端口是随机的,目标端口是固定的 3)序列号:seq -序列号是这个报文的第一个字节的序号 -在TCP传送的数据流中,每一个字节一个序号 -在TCP传送的数据流中,如果一个报文段的起始序号是1,次报文段数据部分的大小共158字节, 则下一个报文段的序号为159,使用序列号,保证了tcp传输的有序性 4)确认号:ACK,确认号,表示在回复对端,你发的(在该序号之前的所有数据,我都已经收到) 5)首部长度:由固定头部和可选项组成, 最小为20字节,最大为60字节 6)保留:为将来定义新的用途保留,现在一般置0 7)控制位:共6个,每一个标志位表示一个控制功能 SYN=1:代表请求建立连接(同步位) ACK=1:代表同意建立连接(确认位) FIN=1:代表请求断开连接(停止位) URG=1:代表紧急指针开启—紧急指针:特别着急的数据段优先传递 PSH=1:代表提示接收端应用程序要立刻将数据从缓冲区里面取走. RST=1:数据没有传输完成断开了,在次请求建议连接 8)窗口:滑动窗口,代表数据在发送之前,设备间要进行协商,依照最小单位为准发送 9)校验和:此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据
Source Port clearvisn (2052) //源端口 Destination port: http (80) //访问的目标端口的是80我们的网占服务 Sequence number : 0 //序列号序列号是0 Header length:24 bytes //首部长度24字节(含4字节可选项) Window size: 8192 //是win窗口8192个字节是他发送数据的总大小 Checksum:0xd28d //首部校验值 Options: (4 bytes) //有4个字节的扩展项