arp协议
地址解析协议 Address Resolution Protocol 通过已知IP获取相对应主机的MAC地址
arp 会在内容空间维护一个arp表,记录着和本主机通信过的IP和MAC相对应的记录 基于广播的方式进行查找
两个主机在三次握手之前必须先通过arp协议获取目标的MAC地址
arp在发广播之前首先会通过IP地址和netmask进行运算 来获得目标ip和本机ip是否是在同一个网段,如果是同一个网段那么就直接在
本网段发送广播包获取MAC地址.如果没有在同一网段,那么arp会把数据单播给路由器网关,直到到达目标主机所在网段的路由器才会
再次进行广播获取目标主机的MAC地址.在跨路由传播的时候只有源MAC地址和目标MAC地址是不断发生变化的
基于arp的工作机制,可以进行arp攻击. arp没有任何校验.只要任何一方有响应,接收方都会认为是正常的数据.
主机到主机之间的包传递
1.必须首先知道对方的IP地址
2.通过arp协议和IP地址解析到对方的MAC地址
3.TCP三次握手
4.真正进行数据的传递
IP和网络协议
ip包首部
4个位 ip协议版本号 ipv4 或者ipv6
4个位 首部长度
数据包每次经过一个路由器,这个包的TTL就会减1
把一个大包进行切包发送
mtu 表示的是帧的数据内容大小 不包含帧的头部信息数据
举一个具体的例子说明IP包分片的原理。以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文
则该报文在添加20 bytes的IP包头后IP包的总长度是 3028 bytes,因为3028 > 1500,所以该数据报文将被分片
分片时仅仅对上层的数据进行分片,不需要对原来的IP首部分片,所以要分片的数据长度只有3008,而不是3028
分片过程如下:
1. 首先计算最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes。
2. 然后把3008 bytes按照1480 bytes的长度分片,将要分为3片,3008= 1480+1480+48。
3. 最后发送者将为3个分片分别添加IP包头,组成3个IP包后再发送,3个IP包的长度分别为1500 bytes、1500 bytes和 68 bytes。
从以上分片例子可以看出第一、二个分片包组成的IP包的长度都等于MTU即1500 bytes。
二进制到十进制的转换
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
0010 0000 32
0100 0000 64
1000 0000 128
linux操作系统命令进行十进制和二进制的转换
bc 把十进制变成二进制 obase=2 把二进制变成十进制 ibase=2
IP地址的结构和用途
1. IP地址是由 网络ID 和 主机ID 两部分组成的
2. 网络ID 表示属于哪个网段, 主机ID 表示在网段中的哪台主机.
3. IP地址是由4个字节 32位二进制数字组成
4. 使用IP地址来标识网络中的设备的比使用MAC地址来标识的优势在于可以方便人去进行设定管理,MAC地址是由厂家生产的无法手动修改.
A类IP
1. 第一个位必须为0,前面8位为网络ID(网络ID可变位为7位)
2. 后面24位为主机ID
3. 网段范围 二进制 0000 0000 - 0111 1111 十进制 0 -127
4. 0有特殊含义 表示未知(没有)地址 127 表示的是本地回环地址 不能给网卡分配 所以取值范围在 1 -126
B类IP
1.前面两位必须为10,前面16位为网络ID(网络ID可变位为14位)
2.后面16位为主机ID
3.网段范围 128 - 191
C类IP
1.前面三位必须为110,前面24位为网络ID(网络ID可变位为21位)
2.后面8位为主机ID
3.网段范围 192 - 223
D类IP
表示的是多播地址,不能给电脑分配
网络范围 224 - 239
E类IP
保留地址
网络范围 240 - 254
网络和主机范围数据公式
一个网段中的IP数量有两种特殊情况不能给主机分配
126.0.0.0 主机号全部为0 表示126网段号 不能给任何主机分配此IP
126.255.255.255 主机号全部为1 表示126这个网段的广播 不能给任何主机分配此IP
计算网段数量
网段数量 = 2^ 可变网络ID位数
计算一个网络中的主机数量
可包含的主机数量 = 2 ^ 主机ID位数 - 2 = 2 ^(32-网络ID位数) - 2
划分子网数
划分子网数 = 划分成 2^N 个子网 (N 表示网络ID向主机ID借的二进制位数)
无类IP分配方式(无类CIDR)
比有类IP分配方式灵活
IP地址总共32位长度,网络ID 和主机ID的 长度不再固定设置,而是根据实际情况灵活调整
判断两个主机是不是在一个网段有两种类型
1.物理设备是否在一个网段中 就是查看两者是不是在路由器的同一个接口上
2.逻辑上是否在一个网段中 根据设定的IP地址运算看网络ID是否相同 即使两者在同一个交换机上也可以把IP设置成在不同的网段
3.无论是物理上还是逻辑上两者如果不在一个网段,那么这两者的通信就一定要通过路由器
计算无类IP的网络ID和主机ID
通过netmask(子网掩码)和IP地址进行运算
IP地址中有多少位网络ID 在 netmask中对应的位 就为1 有多少位主机ID 在 netmask中对应的位 就为 0
在netmask 中 每一个 255 代表 8个1 255.255.0.0 代表IP地址的前16位是网络ID,后16位是主机ID
CIDR 无类域间路由表示法: IP/网络ID位数 192.168.2.10/22
子网掩码对应表
0000 0000 0
1000 0000 128
1100 0000 192
1110 0000 224
1111 0000 240
1111 1000 248
1111 1100 252
1111 1110 254
1111 1111 255
划分子网
将一个大的网络划分成多个小网络
公共IP地址和私有IP地址
公共IP在互联网的路由器上是有路由记录的,私有IP地址在互联网的路由器上是没有路由记录的.私有IP地址在局域网中使用
A类私有IP 10.0.0.0 - 10.255.255.255
公共IP 1.0.0.0 - 9.255.255.255
11.0.0.0 - 126.255.255.255
B类私有IP 172.16.0.0 - 172.31.255.255
公共IP 128.0.0.0 - 172.15.255.255
172.32.0.0 - 191.255.255.255
C类私有IP 192.168.0.0 - 192.168.255.255
公共IP 192.0.0.0 - 192.167.255.255
192.169.0.0 - 223.255.255.255
特殊地址
0.0.0.0 不是一个真正意义上的IP地址,它表示的是一个集合: 所有不清楚的主机和目的网络
255.255.255.255 限制广播地址,网络层的广播.广播分为数据链路层的广播和网络层的广播
127.0.0.1 - 127.255.255.254 本机回环地址 只要是127开头的IP地址都表示为本地回环地址