OSI七层模型及各层的作用: 应用层:用于应用之间的通信 表示层:用于规定数据格式和数据加密解密等数据封装 会话层:建立、维护和管理会话 传输层:建立端到端的连接 网络层:负责路由寻址,链路选择 数据链路层:提供介质访问、链路管理 物理层:比特流传输
TCP/IP四层模型及其常见协议: 应用层:HTTP,SMTP,FTP,TLENT,SSH 传输层: TCP,UDP 网络层: IP,ICMP,ARP,RARP 数据链路层:
常见的网络设备都有哪些: 路由器、交换机、服务器、PC、LapTop、无线设备
常见名词及其概念: IP地址: 子网掩码: 网关:
TCP/IP协议全称 Transmission Control Protocl/Internet Protocol 输控制协议/因特网互联协议
物理层: 发送终端要发送的数据会转换成010101的比特流,通过网线、光纤、无线电波传递到很远的地方去。 接受终端收到010101的比特流组装成数据帧传递到数据链路层
数据链路层
《数据链路层》与《物理层》也被称为《网络接口层》,该层包括主机用于连接网络的网络接口卡
(网卡)及其驱动程序,主要处理与传输媒介(网线、光纤、无线电波)的物理接口细节
网络层 网络层负责获取和维护IP地址,IP地址用于网络通信间的身份标识,网络层也负责数据包的路由路径选择 网络层包含的协议有:IP协议(网际协议),ARP协议(地址解析协议),ICMP(网际控制消息协议)
IP协议: IP协议位于网络层,是TCP/IP协议簇中最核心的协议,所有上层协议如TCP,UDP数据均以IP数据包格式传输
IP协议的特点:1、不稳定:只保证消息的发送,而不保证消息是否成功接收;2、无连接:数据包可以分段发送,而不保证数据之间相互的顺序是否一致
IP协议分为两个版本:1、IPV4:最早的广泛使用的版本;2、IPV6:目前最新的,广泛推荐的版本
IP协议报的格式:。。。
IP地址的分段:IP地址为分为网络段与主机段,网络段用于标识位于哪个网段之中,主机段用于标识主机身份,处于不同网络段的主机之间是不可以进行相互通讯的
IP地址按照的分类:IP地址共分五类,分别是A,B,C,D,E五类,IP地址还可按照共有IP地址和私有IP地址分类,私有IP地址又可分为A,B,C三类,分别是10,172.16.0.0/12 - 172.31.255.255,192.168.0.0/16-192.168.255.255开头
子网掩码的作用:子网掩码用于计算IP地址位于哪一个网段内,是用于区分主机的网络地址的
子网掩码计算网络地址的规则:将IP地址与子网掩码转换为二进制的形式,然后进行与操作
路由器:路由器(router)又称为网关设备(getway),是连接两个不同子网的设备,当一条数据从一个子网发送到另一个子网的时候,要在路由器中查找路由表进行转发
直连路由:直连路由就是用同一个路由器连接的网段之间的路由,路由器在启动的时候可以直接得到(路由和接口绑定,所谓路由就是指明通向各个网段的入口在哪里)
静态路由:路由表手动配置,是固定的,不会改变
直连路由与静态路由的配置:直连路由需要配置网关的IP地址以及子网掩码,静态路由除了配置网关地址和子网掩码外,还需要配置下一跳
IP地址划分:
A类IP地址:是以‘0’开头,前八位代表网络地址,七位可变,共有2^7个网络地址
后24位代表主机地址,共有2^24个
B类IP地址:是以10开头,前16位代表网络地址,14位可变,后16位代表主机地址
C类IP地址:是以110开头,前24位代表网络地址,21位可变,后8位代表主机地址
D类IP地址:组播地址,是以1110开头,不分网络段与主机端,主机组播通信时可以将数据一次性的组
播到所有同组主机
E类IP地址:是以1111开头,不分网络段与主机段,共有2^28-1个地址
1111.1111.1111.1111用于全体广播
公有IP地址:可以在Internet上随意访问
私有IP地址:只能在内部使用
根据子网掩码计算IP地址是否在同一子网中:
如有两台主机,A(192.168.0.1 255.255.255.0)B(192.168.0.2 255.255.255.0)
先将IP地址转化为2进制,再与子网掩码进行与运算,既可以计算出网段,由此可见A与B处于同一字网中
11000000.10101000.11111111.00000001 192.168.1.1
11111111.11111111.11111111.00000000 255.255.255.0
11000000.10101000.11111111.00000000 192.168.1.0
11000000.10101000.11111111.00000010 192.168.1.2
11111111.11111111.11111111.00000000
11000000.1.1.1000.11111111.00000000 192.168.1.0
ARP协议:ARP协议是工作在以太网中网络层的协议,其主要作用是用于根据目的IP地址解析目的MAC地址.
ARP协议的工作过程:以太网中,当一台主机要与另一台主机进行通信时,会先拿 目的IP地址 在自己的ARP高速缓冲表中查看有没有对应的MAC地址,
如果有,就将目的MAC地址填入ARP数据报中;如果没有,就会对以太网中所有主机发送一个广播地址,其发送的请求消息主要为
“我的源IP地址为'192.168.1.40', mac地址为'F4-6A-92-D9-63-68', 请求获取目标IP地址为'192.168.1.1'的设备
的mac地址”,当IP地址为'192.168.1.1'的设备接收到这条消息时,会将自己的mac地址返回给当前主机,其余的将丢弃这条消息.
注意:ARP协议是工作在以太网中的,如果消息发送到另一个网络中的时候,ARP数据包只能到达网关,并且ARP高速缓存表中一定存在一条网关的IP与MAC对应关系
利用python获取目标主机的mac地址:
from scapy.all import srp, Ether, ARP, conf
# 设置输出信息的详细程度,0代表只输出mac地址就完事了
conf.verb = 0
def get_des_mac_addr(ip_address):
"""
根据目标ip获取目标mac
:param ip_address: 目标IP str
:return: None
"""
# srp函数使arp协议工作在数据链路层,发送的是数据帧
# dst代表发送的是广播信息,"ff:ff:ff:ff:ff:ff"代表广播地址,pdst代表的是目标ip地址,timeout超时时间
ans, unans = srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip_address), timeout=10)
for sdn, recv in ans:
# %Ether.src% 固定格式,代表目的mac地址,%ARP.psrc%代表目的ip
print(recv.sprintf(r"%Ether.src% & %ARP.psrc%"))
ICMP协议:ICMP协议是IP协议的一部分,主要用于测试网络是否通畅,测量网络的时延大小,以及数据包被丢弃的原因
ICMP数据包分为请求包与回复包,计算两个包之间的时间即可获得时延大小.
|