Skip to content

Latest commit

 

History

History
162 lines (131 loc) · 7.93 KB

IP和IP数据报.md

File metadata and controls

162 lines (131 loc) · 7.93 KB

路由器(网关)

有着硬件、软件的网络设备。 功能: 1.隔离广播。 2.处理外部或不同网络之间的通信,基于IP地址的路由。 3.NAT(网络地址转换)、防火墙功能等 路由表: 手工或使用不同的路由算法建立和维护。

IP地址

ipv4:32位4字节 ipv6:128位16字节 ipv4地址:网络号+主机号 ipv6地址:网络号+主机号,0压缩表示 主机号地址的第一位和最后一位不可用于主机或路由器;: 第一位为网络地址标识,最后一位为广播地址(局域网内的广播通信可以使用 MAC 地址作为目的地址,而在更大的网络范围内如跨越多个子网的范围使用IP广播地址作为目的地址)。 ^

分类编址IP地址

以前的分类编址IP地址: A类IP:左起第一个十进制值小于127,左起第一个十进制为网络号,24位主机号 B类IP:左起第一个十进制值128~ 191,左起两个十进制为网络号,16位主机号 C类IP:左起第一个十进制值192~ 223,左起三个十进制为网络号,8位主机号 D/E类不用于主机。D多播,E广播

  • 类A地址: 第一个字节用于网络部分,剩余的三个字节用于主机部分。范围从1.0.0.0到126.255.255.255。
  • 类B地址: 前两个字节用于网络部分,后两个字节用于主机部分。范围从128.0.0.0到191.255.255.255。
  • 类C地址: 前三个字节用于网络部分,最后一个字节用于主机部分。范围从192.0.0.0到223.255.255.255。

私有网络: 10.0.0.0 ~ 10.255.255.255(10/8地址块) 属于A段,用于大型企业的内部网络。 172.16.0.0 ~ 172.31.255.255 属于B段,用于中型企业。 192.168.0.0 ~ 192.168.255.255 属于C段,用于小型组织、家庭网络或小型办公网络,提供了65,536个IP地址,通常用于小型企业或个人用户的内部网络。 不唯一,只能用作本地地址,专用网,内网。

IP地址25.2.182.2是一个公网IP吗? IPv4的私有IP有3个IP段: 10.0.0.0 ~ 10.255.255.255,172.16.0.0 ~ 172.31.255.255,192.168.0.0 ~ 192.168.255.255, 提及的25.2.182.2不在上述三个IP段内,不属于私有IP。

^

IP转数字

http://1.92.88.247/1 http://22829303/

IP地址换换成数字地址的方法如下

  • 例子:219.239.110.138
  • 具体计算过程如下:
  • 219*2563+239*2562+110*2561+138*2560=3689901706
  • 219.239.110.138 => 3689901706
  • 转换后的3689901706即为ip 219.239.110.138的数字地址 脚本
#IP转换为长整型
def ip2long(ip):
    ip_list=ip.split('.') #⾸先先把ip的组成以'.'切割然后逐次转换成对应的⼆进制
    result = 0
    for i in range(4): #0,1,2,3
        result = result+int(ip_list[i])*256**(3-i)
    return result

#长整型转换为IP
def long2ip(long):
    floor_list = []
    num = long
    for i in reversed(range(4)):
        res = divmod(num,256**i)
        floor_list.append(str(res[0]))
        num = res[1]
    return '.'.join(floor_list)

print(ip2long('127.0.0.1'))

^

划分子网IP地址

网络号192.168.1即192.168.1.0到192.168.1.255可用。 地址:网络号+(子网号+主机号) 子网掩码:32位,0 ~ 255.255.255.255 子网划分:利用子网掩码从原主机号中分出多少子网,每个子网有多少个主机号。 根据IP和网络地址的掩码进行与运算,得出网络号。

无分类编址IP地址CIDR

数量巨大的C类网因为其空间太小一个不够多个又没有充分利用,为节约地址,后期使用无分类编址CIDR。 ip+/网络前缀比特量 ,如:192.168.1.1/28,则32-28=4位主机号位。 网络前缀192.168.1即192.168.1.0到192.168.1.255可用。 根据IP和网络地址的掩码进行与运算,得出子网网络前缀。

^ 路由聚合:构成超网,找共同前缀,后缀取0,则为聚合网络。 减少路由表的大小和提高路由表的效率。

路由聚合

路由聚合是将多个具有相同目标前缀的路由汇聚成一个更大的路由表项的过程。它有助于减小路由表的大小,提高路由表的可管理性。在IPv4中,这通常涉及将一系列连续的IP地址范围合并成一个单一的、更大的CIDR(无分类编址IP地址)块。

例如,假设有以下三个路由表项:

  1. 192.168.1.0/24
  2. 192.168.2.0/24
  3. 192.168.3.0/24 这三个路由表项可以被聚合为一个更大的CIDR块:192.168.0.0/22。这样就减小了路由表的条目数量,提高了效率。

^

ARP

MAC与IP地址:

1 网络层的数据包首部有ip地址,ip地址中有源ip地址,目的ip地址 链路层的数据包首部有mac地址,mac地址中有源mac地址,目的mac地址
ipmac01 知道目的IP2根据路由表知道下一站的IP,但不知道下一站的MAC地址,通过ARP报文广播下一站IP找到下一站主机,下一站主机再单播返回该主机的MAC地址,再封装数据包实现两站通信。于此重复,最终到达目的IP2主机通信。

ARP协议:

IP1主机通过路由器传数据包到IP2的主机: 路由器通过数据包中的目的IP确定网络,再广播ARP请求报文(MAC帧,目的地址为FF-FF-FF-FF-FF-FF广播MAC地址)找到IP2主机,IP2主机根据ARP请求报文中的IP和MAC地址单播ARP响应报文(单播MAC帧)返回自己的IP和MAC地址,IP2的IP和MAC加入ARP缓存表并重新封装数据包,实现通信。 ^ 主机的ARP高速缓存表有纪录时则直接通过IP地址找到MAC地址实现通信。

网卡接口: 192.168.131.1 --- 0xb 
Internet 地址          物理地址                    类型 
192.168.131.254     00-50-56-e3-c5-c2             动态 
192.168.131.255     ff-ff-ff-ff-ff-ff             静态 
动态:主机自动获取到的,存活为两分钟。
静态:手工配置的。
linux中在/proc/net/arp文件,可以查看网关ip,其他局域网主机IP


ARP没有安全验证,所有ARP响应包都会接收,存在ARP欺骗攻击问题。 中间人发送伪造或欺骗网络上的 ARP 响应包,让受害者设备将网络流量发送到攻击者所控制的设备上,从而让攻击者能够拦截、窃取或修改流经网络的数据。 kali修改局域网中主机,发送arp响应包改变该主机中的arp缓存表中的网关的mac地址,实现断网:https://www.codenong.com/cs106926821/

RARP协议:

RARP与ARP相反,通过mac地址获取ip,RARP在过去用于为无IP地址的设备分配地址。 ^

IP数据报(又叫IP分组)

IP数据报:首部+数据载荷 IPv4数据报首部:固定部分(20字节)+可变部分(4 ~ 10字节) IPv6数据报首部:固定部分(40字节)+可变部分(4 ~ 10字节)暂不讨论 IPv4数据报首部固定部分20字节:版本(4,6),协议号(17UDP,6TCP),长度,生存时间(TTL可跳数),片偏移量,首部校验和,源IP(4字节),目的IP(4字节)。

IPv6数据报首部固定部分40字节:无协议号,版本,下一个首部,跳数限制(TTL)...

IP数据报数据载荷部分:TCP/UDP段
以太网标准,帧最大传输单元MTU为1500字节,IP数据报超过1500字节 需要拆分 数据载荷部分 重新组装首部成新的IP数据报。

在IPv6中,路由器不再进行分片(fragmentation)的操作,而是要求发送方在需要时进行分片。因此,如 果一台路由器接收到的IPv6数据报因太大而不能转发到输出链路上,路由器将会把该数据报丢弃(D)而 不是进行分片。

mk_ip01 1.帧的第16+14字节后的4个字节就是目的IP地址,帧的最前面的6个字节就是默认网关的MAC地址。 2.IP分组经过路由器是,生存时间自动TTL-1,首部校验和重新计算。 如果IP分组长度大于MTU,则需要进行分配,此时总长度字段,标志字段,片偏移字段都需要改变。