57 数据链路层

用于两个设备(同一种数据链路节点)之间传递

目录

  1. 对比理解“数据链路层” 和 “网络层”
  2. 以太网
    2.1 认识以太网
    2.2 以太网帧格式
  3. MAC地址
    3.1 认识MAC地址
    3.2 对比理解MAC地址和IP地址
  4. 局域网通信
  5. MTU
    5.1 认识MTU
    5.2 MTU对ip协议的影响
    5.3 MTU对UDP的影响
    5.4 MTU对于TCP的影响
    5.5 查看硬件地址和MTU
  6. ARP
    6.1 认识ARP协议
    6.2 ARP协议的作用
    6.3 ARP数据报格式
    6.4 ARP协议的工作流程
  7. DNS
    7.1 背景
    7.2 域名解析
    7.3 dig工具分析DNS过程
  8. ICMP
    8.1 功能
    8.2 报文格式
    8.3 ping命令
    8.4 traceroute命令
    8.5 问题
  9. NAT
    9.1 技术背景
    9.2 转换过程
    9.3 NAPT
    9.4 缺陷
  10. 代理服务器
    10.1 上网
    10.2 NAT和代理服务器的区别
  11. 总结
    11.1 数据链路层
    11.2 网络层
    11.3 传输层
    11.4 应用层

1. 对比理解“数据链路层” 和 “网络层”

网络层解决数据跨网络传递,数据链路层解决直接相连的主机数据交付的问题。在局域网中,用mac地址区分特定的主机

2. 以太网

2.1 认识以太网

以太网不是一种具体的网络,而是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容,例如:规定了网络拓扑结构,访问控制方式,传输速率等
例如以太网中的网线必须使用双绞线,传输速率有10M,100M,1000M等
以太网是当前应用最广泛的局域网技术,和以太网并列的还有令牌环网,无线LAN等

局域网通信过程中,有很多台主机,

2.2 以太网帧格式

帧格式如下:
在这里插入图片描述

原地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的
帧协议类型字段有三种值,分别对应IP、ARP,RAPP
帧末尾是CRC校验码

如何解包和封装
采取定长报文
如何分用
报头里有类型,不同的值代表了不同的报文类型

3. MAC地址

3.1 认识MAC地址

MAC地址用来识别数据链路层中相连的节点
长度为48位,及6个字节,一般用16禁止数字加上冒号的形式来表示(例如:08:80:27:03:fb:19)
在网卡出厂时就确定了,不能修改,mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址,可能会冲突,也有些网卡支持用户配置mac地址)

3.2 对比理解MAC地址和IP地址

ip地址描述的是路途总体的起点和终点
mac地址描述的是路途上的每一个区间的起点和终点

4. 局域网通信

局域网中有很多主机,发送一个报文时所有主机都会收到,通过分离报头mac地址分辨是不是发给自己的,如果不是,就丢弃 。局域网是一个共享资源,如果同一时间有两台主机发消息,就会数据碰撞,所以有一些碰撞避免算法。主机数越多,碰撞的概率越大
在这里插入图片描述
交换机
这种设备可以划分碰撞与,减少局域网碰撞。原理是交换机左边或同样右边的两台主机发送数据,就不需要往另一边发送,减少了碰撞的概率。发送的数据越短,速度越快,也可以减少碰撞的概率

传输过程
A主机往B主机发送数据,首先网络层查路由表决策,先发到R主机,所以数据链路层封装后,原地址MACA,目标地址MAXR,到达R主机,数据交付到网络层,查路由表后,数据链路层封装为目标地址MACX,原地址MACR
在这里插入图片描述在这里插入图片描述

5. MTU

5.1 认识MTU

MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层产生的限制

  • 以太网帧中的数据长度规定最小为46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)
  • 不同的数据链路层标准的MTU是不同的

5.2 MTU对ip协议的影响

由于数据链路层MTU的限制,对于较大的ip数据包要进行分包

  • 将较大的ip包分成多个小包,并给每个小包打上标签
  • 每个小包ip协议头的16位标识(id)都是相同的
  • 每个小包的ip协议头的3位标志字段中,第2位置为0,表示允许分片,第3位标识结束标记(当前是否是最后一个小包,是的话置为0,否则置为1)
  • 到达对端时再将这些小包,会按顺序重组,拼接到一起返回给传输层
  • 一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但是ip层不会负责重新传输数据

在这里插入图片描述

5.3 MTU对UDP的影响

一旦UDP携带的数据超过1472(1500-20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个ip数据包
这多个ip数据包有任意一个丢失,都会引起接收端网络层重组失败,那么就意味着,如果udp数据报在网络层被分片,整个数据被丢失的概率就大大增加了

5.4 MTU对于TCP的影响

tcp的一个数据报也不能无限大,还是受限于MTU,tcp的单个数据包的最大消息长度,称为MSS(Max Segment Size)
TCP在建立连接的过程中,通信双方会进行MSS协商
最理想的情况下,MSS的值正好是在ip不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU)
双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值
然后双方得知对方的MSS值,选择较小的最为最终MSS
MSS的值就是在tcp首部的40字节变长选项中(kind=2)

最好避免数据分片

MSS和MTU的关系
在这里插入图片描述

5.5 查看硬件地址和MTU

在这里插入图片描述
使用ifconfig命令,可以查看ip地址,mac地址和mtu

6. ARP协议

6.1 认识ARP协议

arp不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层之间的协议

6.2 ARP协议的作用

在局域网发送中,只知道目标的ip地址,数据链路层需要封装mac地址,事实并不知道。arp建立主机ip地址和mac地址的映射关系

6.3 ARP数据报格式

arp是在mac帧的上面,但属于数据链路层
在这里插入图片描述
注意到源MAC地址,目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层以以太网的情况是多余的,但如果链路层是其他类型的网络则是必要的
硬件类型指链路层网络类型,1为以太网
协议类型指要转换的地址类型,0x0800为ip地址
硬件地址长度对于以太网地址为6字节
协议地址长度对于ip地址为4字节
op字段1表示ARP请求,2表示arp应答

6.4 ARP协议的工作流程

在这里插入图片描述
如何知道目标mac地址
源主机发出arp请求,询问ip地址是192.168.1.35的硬件地址是多少,会将这个请求广播到本地网段(以太网首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播)
每台主机收到后,解包分用,看到目的以太网是广播地址,所以要受理。先看帧类型是arp请求,然后去掉报头交付给arp,arp先看op是请求,然后看目标ip地址不是发给自己的,就丢弃了
当发送的目标主机收到这个报文,arp层判断是自己的,重新填充报头,这时候源mac地址就可以填自己,目标就是发送给自己的主机。mac帧继续封装的时候目标mac地址这次知道了,就直接填对方。这时在数据链路第一层就能判断不是自己的,直接丢弃。当这个主机收到arp应答后,就知道了它的mac地址
arp过程中,收到的任何arp报文,都是先看op,op决定了arp类型

arp表
每台主机都维护了一个arp缓存表,可以用arp -a命令查看,缓存表中的表项有过期时间(一般20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发app请求来获得目的主机的硬件地址
在这里插入图片描述

维护这个表可以避免每次都需要arp请求,提高了网络通信的效率。设置过期时间可以动态更新,可能信息不会一直有效,资源优化,定期清理防止一直占用系统资源。安全性考虑,攻击者可能伪造arp应答欺骗主机,没有过期时间限制,可以长时间控制目标主机

网络欺骗
1.arp只有在缓存失效的时候,才会进行
2.可以通过我的ip和子网掩码,得到网络号,然后拼接ip地址,ping所有的主机,得到所有主机的ip和mac
3.如果收到多次同样的arp应答,会以最新的为准

在这里插入图片描述

有一台新主机hostM接入局域网,可以不断给主机发送arp应答,当维护的arp表失效时,由于会以最新的arp应答为准,所以主机A就会误认为这个是路由器的应答,这就是arp欺骗。这时,收到A的所有报文丢弃,就造成主机A断网。做中间人机器,将报文转发给路由器,将路由器的回复转发给主机A可以欺骗一方,也可以欺骗另一方路由器自己是主机A。

7. DNS

是一整套从域名映射到ip的系统

7.1 背景

tcp/ip使用ip地址和端口号确定网络上的一台主机的一个程序,但是ip地址不方便记忆
于是人们发明了一种叫主机名的东西,是一个字符串,并且使用host文件来描述主机名和ip地址的关系
在这里插入图片描述
在访问网页时,先要dns服务,获取ip地址,然后再访问

最初,通过互联网信息中心(SRI-NIC)来管理这个hosts文件的

  • 如果一个新计算机要接入网络,或者某个计算机ip地址变更,都需要到信息中心申请变更hosts文件
  • 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网

这样太麻烦了,于是产生了DNS系统

  • 一个组织的系统管理机构,维护系统内的每个主机的ip和主机名的对应关系
  • 如果新计算机接入网络,将这个信息注册到数据库中
  • 用户输入域名的时候,会自动查询DNS服务器,由DNS检索数据库,得到对应的ip地址

至今,我们计算机仍然保留了hosts文件,在域名解析的过程中仍然会优先查找hosts文件的内容

cat /etc/hosts

问题:浏览器输入url后,发生了什么?
没有固定答案,越详细越好
需要全面回答,三个阶段,http过程+域名解析,https,然后是细节问题

7.2 域名解析

主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称

www.baidu.com

域名使用 .连接

  • .com :一级域名,表示是一个企业域名,同级的还有.net(网络提供商),“.org”(非盈利组织)等
  • baidu:二级域名,公司名
  • www:习惯用法,人们在使用域名时,往往命名成类似于ftp.xxx.xxx/wwww.xxx.xxx这样的格式,表示主机支持的协议

7.3 dig工具分析DNS过程

安装dig工具

yum install bind-utils

使用dig指令查看域名解析过程

dig www.baidu.com

在这里插入图片描述
结果解释:
1.开头位置dig指令的版本号
2.第二部分是服务器返回的详情,重要的是status参数,NOERROR表示查询成功
3.QUESTRION SECTION 表示要查询的域名是什么
4.ANSWER SECTION 表示查询结果,结果先将www.baidu.com 查询www.a.shifen.com, 再将www.a.shifen.com查询成了两个ip地址
5.最下面时一些结果统计,包含查询时间和DNS服务器的地址等

更多idg的使用方法,参见
https://www.imooc.com/article/26971?block_id=tuijian_wz

8. ICMP

是一个网络层协议
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通,但是IP协议并不提供可靠传输,如果丢包了,ip协议并不能通知传输层是否丢包以及丢包的原因

8.1 功能

icmp正是这种协议,主要功能包括:

确认ip包是否成功到达目标地址
通知在发送过程中ip包被丢弃的原因
icmp是基于ip协议工作的,但是并不是传输层的功能,因此人们把它仍然归结为网络层协议
icmp只能搭配ipv4使用,如果ipv6,需要用icmpv6

在这里插入图片描述

8.2 报文格式

在这里插入图片描述
ICMP大概分为两类报文:

  • 一类是通知出错原因
  • 一类用于诊断查询

在这里插入图片描述

8.3 ping命令

在这里插入图片描述
注意,此处ping的是域名,而不是url,一个域名可以通过DNS解析成ip地址
ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)
ping命令先发送一个ICMP Echo Request给对端
对端收到后,会返回一个ICMP Echo Reply

8.4 traceroute命令

基于ICMP协议实现,能够打印出可执行程序主机,一直到目标主机之前经历多少路由器
在这里插入图片描述

8.5 问题

telnet是23端口,ssh是22端口,那么ping是什么端口?
ping命令基于ICMP,是在网络号,而端口号,是传输层的内容,在ICMP中根本就不关注端口这样的信息

9. NAT技术

9.1 技术背景

之前讨论了ipv4协议中,ip地址数量不充足的问题
NAT技术当前解决ip地址不够用的主要手段,是路由器的一个重要功能;

  • NAT能够将私有IP对外通信时转为全局IP,也就是一种将私有ip和全局ip相互转化的技术方法
  • 很多学校,家庭,公司内部采用每个终端设置私有ip,而在路由器或必要的服务器上设置全局ip
  • 全局ip要求唯一,但私有ip不需要,在不同的局域网中出现相同的私有ip是完全不影响的

9.2 转换过程

在这里插入图片描述

  • NAT路由器将原地址从10.0.0.10替换成全局的ip 202.244.174.37
  • NAT路由器收到外部的数据时,又会把目标ip从202.244.174.37替换回10.0.0.10
  • 在NAT路由器内部,有一张自动生成的用于地址转换的表
  • 当10.0.0.10第一次访问163.221.120.9发送数据时就会生成表中的映射关系

9.3 NAPT

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的ip都是相同的,那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?
这时候NAPT解决这个问题,使用ip+port来建立这个关联关系

上面维护的关联关系同时区分了不同的port,由nat路由器自动维护,在tcp的情况下,建立连接,就会生成这个表项,断开连接后,会删除

9.4 缺陷

无法从nat外部向内部服务器建立连接
转换表的生成和销毁都需要额外开销
通信过程中一旦nat设备异常,即使存在设备,所有的tcp连接都会断开

nat穿越
内网穿透,用一台主机充当服务器,一台设备长时间建立连接,另一台设备通过访问服务器,服务器将请求转发给这台设备,就可以操控另一台电脑。工具有frp等

路由器往往都具有nat设备的功能,通过nat设备进行中转,完成子网设备和其他子网设备的通信过程

10. 代理服务器

代理服务器看起来和nat设备有一点像,客户端向代理服务器发送请求,代理服务器将请求转给真正要请求的服务器,服务器返回结果后,代理服务器又把结果传回客户端
在这里插入图片描述

代理服务器分为正向代理和反向代理,是一种应用比较广的技术

  • 翻墙:广域网中的代理
  • 负载均衡:局域网中的代理

代购例子

花王尿不湿是一个很经典的尿不湿品牌, 产自日本.
我自己去日本买尿不湿比较不方便, 但是可以让我在日本工作的表姐去超市买了快递给我. 此时超市看到的买家是我表
姐, 我的表姐就是 “正向代理”;
后来找我表姐买尿不湿的人太多了, 我表姐觉得天天去超市太麻烦, 干脆去超市买了一大批尿不湿屯在家里, 如果有人
来找她代购, 就直接把屯在家里的货发出去, 而不必再去超市. 此时我表姐就是 “反向代理”

正向代理用于请求的转发(例如借助代理绕过反爬虫)
反向代理往往作为一个缓存
正向代理和反向代理在计算机网络中各自发挥着重要的作用。正向代理主要关注客户端的访问需求和安全性,而反向代理则更注重后端服务器的负载均衡、安全性和性能优化。在实际应用中,我们可以根据具体需求选择合适的代理方式,实现网络架构的优化和升级

10.1 上网

在这里插入图片描述

如果访问的是外网,在运营商这里判断出来会直接返回。常规情况下,http默认携带的是非http的其他数据,那么也可以携带http协议的报文。将http再封装一层,发送到运营商,运营商发现访问的是下面的服务器,发送过去,服务器解析后获得http请求,发送给目标服务器,目标服务器同样返回给服务器,服务器再封装一层http响应返回回来,就得到了外网的响应。这就是http的隧道技术,不只http可以,同样有其他更优秀的加密协议,如socks5

10.2 NAT和代理服务器的区别

从应用上讲,nat设备是网络基础设备之一,解决的是ip不足的问题,大力服务器更贴近具体应用,比如翻墙,加速器等
从底层实现上讲,nat工作在网络层,直接对ip地址替换,代理服务器往往工作在应用层
从使用范围讲,nat一般在局域网的出口部署,代理服务器可以在局域网,也可以在广域网,也可以跨网
从部署位置看,nat一般集成在防火墙、路由器等硬件设备,大力服务器是一个软件程序,需要部署在服务器上

11. 总结

11.1 数据链路层

数据链路层的作用:两个设备(同一种数据链路节点)之间进行传递数据
以太网是一种技术,既包含了数据链路层的内容,也包含了一些物理层的内容,例如:规定了网络拓扑结构,访问控制方式,传输速率等
以太网帧格式
理解mac地址
理解arp协议
理解mtu

11.2 网络层

网络层的作用:在复杂的网络环境中确定一个合适的路径
理解ip地址,理解ip地址和mac地址的区别
理解ip协议格式
了解网段划分方法
理解如何解决ip数目不足的问题,掌握网段划分的两种方案,理解私有ip和公有ip
理解网络层的ip地址路由过程,理解一个数据包如何跨越网段到达最终目的地
理解ip数据报分包的原因
了解icmp协议
了解nat设备的工作原理

11.3 传输层

传输层的作用:负责数据能够从发送端传输接收端
理解端口号的概念
认识udp协议,了解udp协议的特点
认识tcp协议,理解tcp协议的可靠性,理解tcp协议的状态转化
掌握tcp的连接管理,确认应答,超时重传,滑动窗口,流量控制,拥塞控制,延迟应答,捎带应答特性
理解tcp面向字节流,理解粘包问题和解决方案
能够基于udp实现可靠传输
理解mtu对udp/tcp的影响

11.4 应用层

应用层的作用:满足我们日常需求的网络程序,都是在应用层
能够根据自己的需求,设计应用层协议
了解HTTP协议
理解DNS的原理和工作流程

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql_exporter通过sql收集业务数据并通过prometheus+grafana展示

下载并解压安装sql_exporter wget https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz #解压 tar xvf sql_exporter-0.5.linux-amd64.tar.gz -C /usr/local/修改主配置文件 cd /usr/local/ mv sql_exporter-0.5.linux-amd64 s…

Vue 实现电子签名并生成签名图片

目录 前言项目结构代码实现 安装依赖创建签名画布组件生成签名图片 总结相关阅读 1. 前言 电子签名在现代Web应用中越来越普遍,例如合同签署、确认表单等。本文将介绍如何使用Vue.js实现一个简单的电子签名功能,并将签名生成图片。 2. 项目结构 项…

【Simple PIR】单服务器开源最快匿踪查询算法解析

7月17日,我们在《隐私计算匿踪查询技术深入浅出》中介绍了关于隐私计算中匿踪查询的定义和常见算法,并引出了前沿算法Simple PIR的介绍,本次将对Simple PIR进行正式的算法原理介绍。 1. Simple PIR快览 1.1 性能介绍 Simple PIR是Alexandra…

机器学习驱动的智能化电池管理技术与应用

目录 主要内容 电池管理技术概述 电池的工作原理与关键性能指标 电池管理系统的核心功能 SOC估计 SOH估计 寿命预测 故障诊断 人工智能机器学习 基础 人工智能的发展 机器学习的关键概念 机器学习在电池管理中的应用案例介绍 人工智能在电池荷电状态估计中的…

信号的运算

信号实现运算,首先要明确,电路此时为负反馈电路,当处于深度负反馈时,可直接使用虚短虚断。负反馈相关内容可见:放大电路中的反馈_基极反馈-CSDN博客https://blog.csdn.net/qq_63796876/article/details/140438759 一、…

C++ 鼠标轨迹API【神诺科技SDK】

一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,使得神诺科技 能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。 二.…

深入学习H264和H265

目录 前言 一 什么是H264/H265? H.264 (MPEG-4 AVC) H.265 (HEVC) 二 为什么要学习H264和H265? 1. 深入理解视频压缩原理 2. 硬件优化与集成 3. 调试与故障排除 4. 持续的技术更新 三 NAL(Network Abstraction Layer)详解…

如何找到最快解析速度的DNS

如何找到最快解析速度的DNS DNS,即域名系统(Domain Name System),是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不用记住能够被机器直接读取的IP数…

实现领域驱动设计(DDD)系列详解:领域模型的持久化

领域驱动设计主要通过限界上下文应对复杂度,它是绑定业务架构、应用架构和数据架构的关键架构单元。设计由领域而非数据驱动,且为了保证定义了领域模型的应用架构和定义了数据模型的数据架构的变化方向相同,就应该在领域建模阶段率先定义领域…

【Python第三方库】PyQt5安装与应用

文章目录 引言安装PYQT5基于Pyqt5的简单桌面应用常用的方法与属性QtDesigner工具使用与集成窗口类型QWidget和QMainWindow区别 UI文件加载方式直接加载UI文件的方式显示窗口转化py文件进行显示窗口 PyQt5中常用的操作信号与槽的设置绑定页面跳转 引言 PyQt5是一个流行的Python…

Modbus转BACnet/IP网关的技术实现与应用

引言 随着智能建筑和工业自动化的快速发展,不同通信协议之间的数据交换也变得日益重要。Modbus和BACnet/IP是两种广泛应用于自动化领域的通信协议,Modbus以其简单性和灵活性被广泛用于工业自动化,而BACnet/IP则在楼宇自动化系统中占据主导地…

“微软蓝屏”全球宕机,敲响基础软件自主可控警钟

上周五,“微软蓝屏”“感谢微软 喜提假期”等词条冲上热搜,全球百万打工人受此影响,共同见证这一历史性事件。据微软方面发布消息称,旗下Microsoft 365系列服务出现访问中断。随后在全球范围内,包括企业、政府、个人在…

在spyder中使用arcgis pro的包

历时2天终于搞定了 目标:在anconda中新建一个arcpyPro环境,配置arcgispro3.0中的arcpy 一、安装arcgispro3.0 如果安装完之后打开arcgispro3.0闪退,就去修改注册表(在另一台电脑安装arcgispro遇到过) 安装成功后可…

CSS(九)——CSS 轮廓(outline)

CSS 轮廓(outline) 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。 轮廓(outline)属性指定元素轮廓的样式、颜色和宽度。 让我们用一个图来看…

Pytorch笔记1

建议点赞收藏关注!持续更新至pytorch大部分内容更完。 整体框架如下 目录 gpu加速数据数据结构张量TensorVariable 预处理数据增强 模型构建模块组织复杂网络初始化网络参数定义网络层 损失函数创建损失函数设置损失函数超参数选择损失函数 优化器管理模型参数管理…

Golang | Leetcode Golang题解之第273题整数转换英文表示

题目: 题解: var (singles []string{"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}teens []string{&…

Github 2024-07-26 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9HTML项目1TypeScript项目1非开发语言项目1JavaGuide - Java 程序员学习和面试指南 创建周期:2118 天开发语言:Java协议类型:Apache…

反序列化-极客大挑战2019php【I have a cat!】

知道这个题考的是反序列化,那么我们第一反应该拿到他的源码。 根据这句话判断【因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯 不愧是我!!! 】说明有目录 我们直接使用dir开扫,发现有压…

【HTML — 构建网络】HTML 入门

在本文中,我们将介绍 HTML 的绝对基础知识。为了帮助您入门,本文定义了元素、属性以及您可能听说过的所有其他重要术语。它还解释了这些在 HTML 中的位置。您将学习 HTML 元素的结构、典型的 HTML 页面的结构以及其他重要的基本语言功能。在此过程中,也将有机会玩转 HTML! …

反射型与dom型的xss的区别【源码分析】

反射型 XSS 和 DOM 型 XSS 都属于跨站脚本攻击 (XSS) 的类型,它们的共同点是均能通过注入恶意脚本在用户浏览器中执行,不同点是dom型xss不经过服务器,而反射型是经过服务器的。但是,它们在攻击方式、执行过程和防御措施上有所不同…