[线程与网络] 网络编程与通信原理(五): 深入理解网络层IP协议与数据链路层以太网协议

🌸个人主页:https://blog.csdn.net/2301_80050796?spm=1000.2115.3001.5343
🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm=1001.2014.3001.5482
🧀Java EE(96平均质量分) https://blog.csdn.net/2301_80050796/category_12643370.html?spm=1001.2014.3001.5482
🍭MySql数据库(93平均质量分)https://blog.csdn.net/2301_80050796/category_12629890.html?spm=1001.2014.3001.5482
🍬算法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12676091.html?spm=1001.2014.3001.5482
感谢点赞与关注~~~
在这里插入图片描述

目录

  • 1. 网络层IP协议
    • 1.1 IP协议的作用
    • 1.2 协议头格式
    • 1.3 解决IP数量限制的3种方式
      • 1.3.1 动态分配IP地址
      • 1.3.2 NAT机制
      • 1.3.3 IPv6协议版本
    • 1.4 地址管理
      • 1.4.1 网段划分
      • 1.4.2 特殊IP地址
    • 1.5 路由选择
  • 2. 数据链路层以太网协议
    • 2.1 以太网帧格式
    • 2.2 IP地址与mac地址对比
    • 2.3 MTU
  • 3. DNS应用层协议

1. 网络层IP协议

1.1 IP协议的作用

IP协议最大的两大作用有两个,一个是路径规,也就是路由选择,第二个是地址管理.他用来帮助数据在如此复杂的网络环境中确定一个合适的路径.
在这里插入图片描述

1.2 协议头格式

在这里插入图片描述

  • 4位版本号:指定IP协议的版本,对于IPv4来说,就是4.对于IPv6,就是6.至于其他的版本,目前值存在于实验室,并没有大面积推广使用.
  • 4位头部长度:IP头部的长度是多少.注意,这里的4位头部长度中的位是16进制的,一位表示0~15,一共4位,即最大是15x4=60.
  • 8位服务类型:虽然这里是8位,但是这里只有4位是有效的.4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本.这四者相互冲突,只能选择一个.这四者可以相互切换.

类似与奥特曼变身的过程.当变身到均衡模式的时候,各项指标都比较均等,当变身到力量模式的时候,攻击力大大提升,防御力相对较弱,当变身为迅捷模式的时候,移速叫快,但其他指标中等.
在这里插入图片描述

  • 16位总长度:IP数据报的总长度(头部+载荷)

问题:IP协议是否也像UDP协议那样最大64KB?
不是的,IP数据报可以自己实现拆包和组包,这样的功能如果携带的数据载荷超出长度上限,IP就会自动拆分为多个数据报,每个数据报携带一部分数据,最终发送到对方之后再拼接好.但是这种办法只使用与载荷是TCP协议类型的载荷,UDP协议不适用.
在这里插入图片描述
那么问题又来了,UDP协议为什么不适用呢?
如果把一个很长的UDP数据报拆分之后,发送给对方接收之后.开始合并还原.还原出的数据,要交给UDP协议进一步解析,取出8个字节为报头,身下的作为载荷,但是剩下的到底有多长?就会从报文的长度字段中读取,最多64KB,剩余的就会被视为无效数据.

下面我们提到的3个报头字段都和IP数据报的拆分有关系.

  • 16位标识:如果一个IP报文被分片了,那么每一个分片中的这个标识都是相同的,表示他们是同一个数据报中分片出来的.也表示最后合拼的时候,哪些数据报要进行合并.
  • 3位标志位: 这其中,只有两位是有效的,第一位保留,第二位表示该数据报是否触发了拆包操作,第三位表示当前的数据报是否是最后一个要组包的部分.类似于结束标记.
  • 13为片偏移:在拼接一个数据报的时候,拆开的包之间要有拼接的先后顺序.这个字段其实就表示的是当前分片在原报文中处于那个位置.
  • 8位生存空间:IP数据报要在网络中转发.我们要限制一个数据报在网络中最大的转发次数.一般是64(但是也不一定,可以配置),每经过一次转发,TTL-=1,一直减到0,还没有到达目的地,这个数据报就要丢弃.

问题:64次转发够用吗?经过64次一下的转发,应该到达目的地的数据报会到达目的地吗?
当然够用,路由器转发IP的时候,每个路由器不了解网络的全貌,但是知道相邻的设备有哪些,即使通过少数几次转发,也可以涵盖大量的设备.
这个设计到一个社会科学的理论,叫做"六度空间"理论.
https://baike.baidu.com/item/%E5%B0%8F%E4%B8%96%E7%95%8C%E7%8E%B0%E8%B1%A1/56374295?fr=ge_ala

  • 8位协议:表示上层协议的类型.即载荷部分是那种类型的数据报.一个数据报在分用时,要给上层那个协议,有明确的声明.
  • 16位头部校验和:使用CRC算法对IP头部进行校验,这里需要注意的是,只对报头进行校验,不管载荷部分.
  • 32位源地址和32位目标地址:表示发送端和接收端.这里虽然是比特位,但是我们平时看到的一般是点分十进制,一共分为4个部分,每部分是1字节.(0~255).
    数据报的四个核心信息:源端口,目的端口,源IP,目的IP.
  • 选项:最大40字节.

1.3 解决IP数量限制的3种方式

IP地址是有限的,如果有一天,IP不够用了怎么办?下面是解决IP数量问题的三种方式.

1.3.1 动态分配IP地址

也就是在一个用户不用网络的时候,他的网络IP就会被回收,分配给需要使用网络的用户,这样做确实可以缓解一定的数量问题,但是却没有从根本上解决问题,并没有是使得IP地址的数量增加.

1.3.2 NAT机制

这种机制也叫做网络地址映射.这种机制把IP地址分为了两种,私网IP和公网IP.也叫内网IP和外网IP.

  • 私网IP格式
    • 10.*,前八位是网络号,一共1677216个地址.
    • 172.16到172.31,前12位是网络号,一共1048576个地址.
    • 192.168.*,前16位是网络号,共65535个地址
      包含在这个范围中的,都是私网IP.
  • 公网IP
    除了上述格式是私网IP,其他的格式都可以是公网IP.

公网IP是唯一的,但是私网IP允许在不同的局域网中重复但不允许在同一个局域网下重复.

  • 引入私网IP和公网IP之后,又是如何进行通信的
    • 同一个局域网内部设备之间通信,由于一个局域网内部之间的IP不可重复,此时设备之间可以正常交互.
    • 广域网设备和广域网设备之间进行通行的时候,由于公网设备之间的IP是唯一的 ,也可以正常交互.
    • 局域网1中的A访问局域网2中的B,直接访问是不允许的,这是因为如果有其他局域网中的IP和局域网2中的B重复,就不知道要访问哪个局域网中的设备了,如果需要,就要使用广域网中的服务器进行数据转发.
    • 局域网设备主动访问广域网设备,这时候就需要使用到NAT机制.
    • 广域网设备主动访问局域网设备,不允许.也是因为不同局域网中的私网IP是可以重复的,这时候广域网下面有好多局域网,如果有两个局域网中的IP是重复的,就不知道具体要访问哪个局域网中的设备了.
  • NAT机制
    在这里插入图片描述
    在NAT机制中,运营商路由器起到了关键性的作用,可以把运营商路由器看做一个NAT设备.在发送方主机发送的数据报经过运营商路由器的时候,运营商路由器会对中间经过的数据报进行网络地址转换,把IP数据报的源IP替换成自己的公网IP,也就是WAN口IP.所以一个运营商路由器的公网IP就可以代表成千上万的私网设备.其中新的端口号由运营商服务器随机分配一个没有重复的.
    但是有一个问题,就是来的时候好好的,回不去了,这时候该怎么办?
    这时候在运营商路由器的内部生成一个"映射关系",它会记录当前这个对应的请求从哪个内网中的设备发送过来的,从而在回去的时候,把目的IP切换为原来的IP.
    那么返回的时候由是怎么返回的呢?(绿线表示返回过程)
    在这里插入图片描述

1.3.3 IPv6协议版本

NAT确实从很大程度上缓解了IP地址缺乏的问题,但是任然没有解决使得IP地址增多的目的.这时候我们就引入了IPv6版本的协议.
IPv6并不是IPv4的升级版,这两个版本的协议并不兼容,这也是如今IPv6没有在世界上大面积普及起来的原因.IPv6使用16字节,也就是128位来表示一个IP地址.它是8个由冒号隔开的16位字段,每个字段由4个十六进制数构成,比如AA22:BB11:1122:CDEF:1234 :AA99:7654:7410.
如果计算出IPv6地址的数量的话,这个数量将非常庞大,足以给地球上每一粒沙子分配一个IP地址.

1.4 地址管理

1.4.1 网段划分

IP地址分为两个部分,网络号和主机号.一共32位.

  • 网络号:**用来标识局域网,在同一个局域网中,网络号相同.**但是不可以说,网络号相同,就一定在一个局域网中,它们两个是一个充分不必要的关系.
    [注意] 局域网之间,网络号可以相同,但是,两个相邻的局域网之间的网络号不可以相同(同一个路由器上的WAN口和LAN口).
  • 主机号:区分同一个局域网中的不同主机.同一个局域网中,网络号相同,但是必须有不同的主机号.
    在这里插入图片描述

那么,在32位的IP地址中,如何区分那几位是网络号,那几位是主机号呢?我们有两种方法来区分.

  • 子网掩码
    子网掩码和IP地址一样,也是32位的二进制整数,其中左半部分全是1,右半部分全是0,不可以有01交错的情况.其中,全部为1的位置标志的是网络号,全部为0的位置标志的是主机号.
    在这里插入图片描述
  • 指定固定前缀
    这是一种上古时期的方法,现在已经很少使用了.具体是多少位网络号,多少位主机号,都是写死的,但是会浪费大量的IP地址.
    在这里插入图片描述
    • A类 0.0.0.0到127.255.255.255
    • B类 128.0.0.0到191.255.255.255
    • C类 192.0.0.0到223.255.255.255
    • D类 224.0.0.0到239.255.255.255
    • E类 240.0.0.0到247.255.255.255

1.4.2 特殊IP地址

  • 将IP地址中的主机地址全部设置为0,就成为了网络号,代表这个局域网.但是这样的IP地址不可以设置到主机上.
  • 将IP地址的主机地址全部设置为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据报.即给局域网中的所有设备发送数据报.
    [注意] TCP不支持,只有UDP支持
  • 127.*的IP地址用于本机环回,通常是127.0.0.1.往这个IP上发送数据的时候,就由自己来接收.

1.5 路由选择

路由选择通俗一点来讲,就是数据报在网络中找路的过程.
IP数据报在传输的过程中,是一跳一跳"问路"的过程.
• 当IP数据包,到达路由器时,路由器会先查看⽬的IP;
• 路由器决定这个数据包是能直接发送给⽬标主机,还是需要发送给下⼀个路由器;直接发送给主就是直接到达了目的地,而发送给下一个路由器就是让数据找到下一个问路的人.

那么路由器如何决定是否是直接发送到目标主机的呢?
当路由器收到数据的时候,会根据目的IP查询路由表,看在目的地在路由表中是否存在,如果存在,直接发送过去,如果不存在,路由器就会在他的路由表中共挑选一个最"神通广大"的朋友,把数据交给他,让他再去转发.
在这里插入图片描述

• 依次反复,⼀直到达⽬标IP地址;
在这里插入图片描述

[注意]

  • 对于路由器在进行数据转发的时候,无法一下子知道目的地的IP对应的设备如何到达,只能通过启发式的方式,通过一步一步问路的方式,来找到目的地.
  • 所以网络中的路由器寻路的时候,无法做到最优解,只能做到较优解.

举例说明:问路
假如现在没有导航和地图,只能靠问路的方式从北京的天安门东到达西二旗.

  • 从北京地铁的天安门东站出发,在天安门东站,开始问路人A:你知道西二旗怎么做地铁吗?路人A回答道:我不知道,但是我只知道,你需要坐福寿岭站方向的地铁,做到复兴门之后再看看,于是你便坐到了那里.
  • 到达复兴门之后,你又开始问路人B:你知道西二旗怎么坐地铁吗?路人B回答到:我不知道,但我知道你需要换乘2号线,坐到西直门站再看看.
  • 到达西直门后,你又开始问路人C:你知道西二旗怎么坐地铁吗?路人C回答到:你需要换乘13号线,坐那么4,5站地就可以到达西二旗.
    这其中,你问路的路人就像一个个路由器,给你指路,而你就是一个数据报,需要从起点到达目的地.
    在这里插入图片描述

2. 数据链路层以太网协议

在以太网中,既包含数据链层的内容,也包含一些物理层的内容.以太网不是一种具体的网络,而是一种技术标准.

2.1 以太网帧格式

在这里插入图片描述

  • 目的地址与源地址: 这里的地址类型是mac地址,或者说是物理地址,每个地址是6个字节,48个比特位.

什么是mac地址.
在前面的IP地址中,IP地址进行选择时候,IP层决定下一个路由器要找谁,到了数据链路层,就要决定具体要怎么找到下一个路由器.即数据报要从路由器中的哪个接口发送出去.
路由器在数据链路层也维护了一张表,这个表中就记录的是每个网口以及网口对端设备mac地址的关联关系.

  • 类型: 描述后面载荷的数据类型.
  • CRC: 是以太网帧的帧尾,其中也使用CRC校验和来验证数据报的正确性.
  • 0800类型数据载荷:这个数据载荷就是真真实实携带数据的载荷,最大占1500个字节.
  • 0806类型与8035类型:这两种数据类型都不会携带任何业务上的载荷,只是针对转发数据过程中起到辅助的作用.
  • ARP请求/应答:ARP协议给每个路由器或者交换机建立转发表(注意不是路由表),这张表是由硬件层面来维护的,直接通过转发芯片来记录.这张表中记录的是IP地址与mac地址的映射关系.数据转发过程中的每一跳,先查路由表,知道下一跳的IP地址,之后再查转发表,知道IP地址对应的mac地址,之后再转发.

2.2 IP地址与mac地址对比

  • IP地址描述的是路途总体的起点与终点.
  • mac地址描述的是路途中每一个区间的起点和终点.

举例说明:从太原到哈尔滨
从太原到哈尔滨的路线假设是: 太原—>北京—>沈阳—>哈尔滨
假如我们取出北京—>沈阳这一段:

  • 源IP: 太原
  • 目的IP:哈尔滨
  • 源mac:北京
  • 目的mac:沈阳

它们之间的传输作用其实就对应的是我们之前在网络初步的时候提到的TCP/IP五层模型中网络层与数据链层的传输作用.当时我们使用送快递的例子来说明了.这里我们再重复一次.
https://blog.csdn.net/2301_80050796/article/details/138972120?spm=1001.2014.3001.5501

  • 应用层: 和具体的应用程序相关,传输的数据干啥用,如何使用,有何意义.
  • 传输层: 关注的是通信双方的"起点"和"终点",终端到终端的传输.
  • 网络层: 关注的是通信中通信路径的规划,规划出的路径确定了数据要经过哪些"点到点的传输".
  • 数据链层: 关注的是通信过程中,相邻两个点之间的通信.
  • 物理层: 物理层就是网线和网口等硬件方面的东西.

举例说明: 网上购物
某人在淘宝上买了一箱面包.商家接到订单.

  • 应用层: 他买来这箱面包是用来吃的,绝对不是其他的什么用途~~.就像我们通过网络拿到数据之后,来干嘛用.
  • 传输层: 商家从仓库出库商品之后,寄到快递驿站,驿站揽收之后,快递单就会打印收货的地址.这时候就是只关注寄件地址和收件地址.也就是通信双方的"起点"的"终点".
  • 网络层: 揽收之后,商家就要对运输的路径进行规划,比如要从深圳市寄到北京市.可以是在深圳发件之后,在保定中转,之后到达北京,也可以在天津中转,最后到达北京.
  • 数据链层: 运输途中,两个结点之间该用什么样的交通方式,比如从深圳到北京比较远,可以采用铁路运输,从天津到北京比较近,可以采用大卡车运输.
    在这里插入图片描述

2.3 MTU

MTU相当于发快递时对包裹尺寸的限制.这个限制是不同的数据链路对应的物理层,产生的限制.
• 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填
充位;
• 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
• 如果⼀个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进
行分片(fragmentation);
• 不同的数据链路层标准的MTU是不同的;

3. DNS应用层协议

DNS,全称Domain Name System,叫做域名解析系统.
当我们在使用IP地址查找一个主机的时候,IP地址过于复杂,没有任何规律,很不好记,这时候我们便引入了域名解析系统.通过DNS系统把一个IP地址转换成一个域名,这个域名是一个字符串.

举例说明:比如百度,www.baidu.com,这是百度的域名,但是百度广域服务器的IP地址不是这个东西,它的IP地址依然是一个点分十进制数字:202.108.22.5,只不过为了方便用户访问到百度,把这个点分十进制的数字用一个带有汉语拼音的域名代替掉了.

在这里插入图片描述

  • 那么这些字符串与IP的对应关系在哪里呢?
    在过去,会使用hosts文件来描述域名和IP地址的关系.但是随着互联网的日益扩张,这个文件就必须不停更新,用户的电脑可能会存不下.于是DNS服务器便诞生了.把这样的对应关系,使用服务器来保存.

DNS服务器在查询域名对应的IP地址的时候,是按照一级一级的查询的.
比如www.baidu.com,其中com是一级域名.baidu是二级域名,在DNS服务器查询的时候,首先查询一级域名,再查询二级域名,以此类推
在我们前面的语法部分讲到包的时候,我们通常也使用公司域名的反向域名对包进行命名.

  • 访问DNS服务器的机制
    • 客户端缓存: 电脑在尝试访问某个域名的时候,得到的IP会保存起来,下次再访问的时候,就不会重新查询DNS.
    • 分布式系统: 全世界各个地方,建设了很多DNS镜像服务器,此时请求DNS服务器只需要就近访问附近的镜像服务器即可.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/675996.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

#招聘数据分析#2024年5月前程无忧招聘北上广深成渝对比情况

#招聘数据分析#2024年5月前程无忧招聘北上广深成渝对比情况 0、根据前程无忧不完全样本统计,北上广深成都重庆平均月工资从高到低依次为 北京15037元、上海14230元、深圳13230元、广州11125元、成都10614元、重庆10388。 1、成都招聘样本数全量36301个&#xff0c…

在家AIAA(美国航空航天学会)文献如何查找下载

今天有位同学的求助文献来自AIAA(美国航空航天学会),下面就讲一下不用求助他人自己就可搞定文献下载的途径并实例操作演示。 首先我们先对AIAA(美国航空航天学会)数据库做个简单的了解: 美国航空航天学会…

C语言:(动态内存管理)

目录 动态内存有什么用呢 malloc函数 开辟失败示范 free函数 calloc函数 realloc函数 当然realooc也可以开辟空间 常⻅的动态内存的错误 对NULL指针的解引⽤操作 对动态内存开辟的空间越界访问 对⾮动态开辟内存使⽤free释放 使⽤free释放⼀块动态开辟内存的⼀部分 …

网络安全宣传 | 干货满满,这些网络安全知识请牢记!

随着社会信息化深入发展 互联网对人类文明进步将发挥更大促进作用 但与此同时,互联网领域的问题也日益凸显 网络犯罪、网络监听、网络攻击等时有发生 网络安全与每个人都息息相关 下面 一起来了解网络安全知识吧 网络安全是什么? 网络安全&#x…

2、Tomcat 线程模型详解

2、Tomcat 线程模型详解 Tomcat I/O模型详解Linux I/O模型详解I/O要解决什么问题Linux的I/O模型分类 Tomcat支持的 I/O 模型Tomcat I/O 模型如何选型 网络编程模型Reactor线程模型单 Reactor 单线程单 Reactor 多线程主从 Reactor 多线程 Tomcat NIO实现Tomcat 异步IO实现 Tomc…

重学java 56. Map集合

我们要拥有一定成功的信念 —— 24.6.3 一、双列集合的集合框架 HashMap 1.特点: a.key唯一,value可重复 b.无序 c.无索引 d.线程不安全 e.可以存null键,null值 2.数据结构:哈希表 LinkedHashMap(继承HashMap) 1.特点: a.key唯一,value可重复 b.有序 c.无…

特征工程技巧—Bert

前段时间在参加比赛,发现有一些比赛上公开的代码,其中的数据预处理步骤值得我们参考。 平常我们见到的都是数据预处理,现在我们来讲一下特征工程跟数据预处理的区别。 数据预处理是指对原始数据进行清洗、转换、缩放等操作,以便为…

Redis中大Key与热Key的解决方案

原文地址:https://mp.weixin.qq.com/s/13p2VCmqC4oc85h37YoBcg 在工作中Redis已经成为必备的一款高性能的缓存数据库,但是在实际的使用过程中,我们常常会遇到两个常见的问题,也就是文章标题所说的大 key与热 key。 一、定义 1.1…

Vulnhub项目:THE PLANETS: MERCURY

1、靶场地址 The Planets: Mercury ~ VulnHubThe Planets: Mercury, made by SirFlash. Download & walkthrough links are available.https://vulnhub.com/entry/the-planets-mercury,544/ 这好像是个系列的,关于星球系列,之前还做过一个地球的&a…

毕业论文word常见问题

0、前言: 这里的问题都是以office办公软件当中的word为例,和WPS没有关系。 1、页眉横线删不掉: 解决方案:进入页眉编辑状态,在开始选项栏中选择页眉字体样式,清除格式。 修改方式如下: 2、…

从网路冲浪到three.js+cannon.js

从网路冲浪开始 网络浏览器的发展史可以追溯到互联网的早期,随着时间的推移,浏览器已经经历了多次重大的变革和发展。 以下是网络浏览器发展史的一个简要概述: 1. 早期的文本浏览器 1990年:蒂姆伯纳斯-李(Tim Berners-Lee)开发了第一个网络浏览器WorldWideWeb(后来更名…

【十二】图解mybatis日志模块之设计模式

图解mybatis日志模块之设计模式 概述 最近经常在思考研发工程师初、中、高级工程师以及系统架构师各个级别的工程师有什么区别,随着年龄增加我们的技术级别也在提升,但是很多人到了高级别反而更加忧虑,因为it行业35岁年龄是个坎这是行业里的共…

【轻松搞定形象照】助你打造编程等级考试、竞赛专属二寸靓照,报名无忧,展现最佳风采!

更多资源请关注纽扣编程微信公众号 ​ 在数字化时代,拍照似乎变得轻而易举,但当我们需要一张特定规格的一寸照片时,事情就变得复杂起来。随着编程等级考试和各类信息学竞赛的日益临近,不少考生都为了一张符合要求的一寸照片而忙…

2.2 OpenCV随手简记(三)

图像的阈值处理定义 :将图像转化为二值图像(黑白图), 也可以用于彩色图形,达到夸张的效果 目的:是用来提取图像中的目标物体,将背景和噪声区分开(可以近似的认为除了目标全是噪声)。…

Capto 标准版【简体中文+Mac 】

Capto 是一套易于使用的屏幕捕捉、视频录制和视频编辑 Capto-capto安装包-安装包https://souurl.cn/DPhBmP 屏幕录制和教程视频制作 记录整个屏幕或选择的任何特定区域。在创建内容丰富的教程视频时选择显示或隐藏光标。无论您做什么,都可以确保获得高质量的视频。…

C# WinForm —— 24 Threading.Timer 组件介绍与使用

1. 简介 System.Threading.Timer 多线程 轻量级 精度高 提供以指定的时间间隔对线程池线程执行方法的机制 和System.Timers.Timer 类似,每隔一段时间触发事件,执行操作(不是由UI线程执行的),即使事件中执行了比较耗时的操作,也…

教育新基建背景下的光网校园:安徽中澳科技职业学院以太全光网建设之路

作者/安徽中澳科技职业学院 网络中心 刘正峰 安徽中澳科技职业学院隶属于安徽省科技厅,是一所公办高等职业院校。学院在“德厚三分,技高一筹”的校训指引下,坚持“开放性、精品化、技能型”的发展理念,坚持“贴近市场需求、强化实践教学、突出办学特色、培养实用人才”的办学思…

一款高效办公软件及48个快捷键

君子生非异也,善假于物也。 一天,技术同事亲自操刀要撰写一篇公号文档,于是问我需要什么样的排版格式? 我很快甩了一篇《水经注文档排版规范》给对方。 片刻之后,同事觉得这样写文档的效率太低,于是说要…

视频修复工具助你完成高质量的视频作品!

在短视频发展兴起的时代,各种视频层出不穷的出现在了视野中,人们已经从追求数量转向追求质量。内容相同的视频,你视频画质好、质量高的更受大家欢迎,那么如何制作高质量、高清晰度的视频呢?与您分享三个视频修复工具。…

【小白向】微信小程序解密反编译教程

# 前言 最近笔者有做到微信小程序的渗透测试,其中有一个环节就是对微信小程序的反编译进行源码分析,所谓微信小程序反编译,就是将访问的小程序进行反向编译拿到部分源码,然后对源码进行安全审计,分析出其中可能存在的…