IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络基础知识 -> 正文阅读

[网络协议]网络基础知识

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数据包分为请求包与回复包,计算两个包之间的时间即可获得时延大小.
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:45:12  更:2021-09-02 11:46:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:46:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码