自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第一章 网络协议基础 )

news2025/5/19 12:22:07

一、自学网络安全学习的误区和陷阱

1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多

一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少

在这里插入图片描述

2.不要把深度学习作为入门第一课

很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:

【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣

【2】深度学习对自身要求高,不适合自学,很容易走进死胡同

在这里插入图片描述

3.不要收集过多的资料

网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频

网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看

在这里插入图片描述

二、学习网络安全的一些前期准备

1.硬件选择

经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…

2.软件选择

很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习

至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…

很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员

(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)

3.语言能力

我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)

比如说:肉鸡、挂马、shell、WebShell等等

三、自学网络安全学习路线

在这里插入图片描述

在这里插入图片描述
重点内容
TCP/IP参考模型
数据在各层协议间的流动
链路层协议基本概念
网络层协议基本概念
传输层协议基本概念
应用层协议基本概念
PDU、MTU、分片的概念

在这里插入图片描述

一、网络体系结构

1、网络体系结构的含义

如何分层:是指该协议体系中,共分为几个层次,每个层次的名称、功能分别是什么。例如,OSI七层参考模型,包含物理层、链路层等七个层次,而TCP/IP体系结构则分为链路层、网络层、传输层、应用层四个层次。
各层协议:对等层间进行数据交换等通信动作时,所遵循的规范,则称为网络体系结构的各层协议。
层间接口:描述的是同一对象内不同网络层次间进行数据交换时所遵循的规范。

2、OSI参考模型

OSI(Open System Interconnection)开放系统互联参考模型把网络分为七个层次。从下往上,依次称为第一层、第二层,直至第七层。其中物理层、链路层、网络层通常用于数据在网络中的传递,构成整个网络的通信子网。组成资源子网的各类主机,不仅包含第一至第三层协议,还涵盖第三层以上用于保障数据正确传输、实现多种多样网络应用功能的各层协议。
在这里插入图片描述

3、TCP/IP参考模型

TCP/IP参考模型分为链路层、网络层、传输层、应用层四个层次。TCP/IP参考模型和OSI七层模型的对应关系如下图。

TCP/IP模型简化了OSI模型,这也是TCP/IP成为当前网络协议的事实标准的主要原因。事实上,OSI模型作为国际标准化组织制定的一种网络理论体系结构,从未被真正意义上的产品实现过。
在这里插入图片描述

数据发送过程中,数据由高层流向低层,数据被逐层添加头部信息,到达物理层时,原始应用程序数据已经被加入了应用层头部、传输层头部、网络层头部、链路层头部,并在数据尾部加入了链路层尾部信息,这个过程称为数据封装。

数据到达目的地后,数据流向则变为由低层流向高层,此时,数据每上高层流动一层,则被去掉该层的头部信息 。
在这里插入图片描述
在这里插入图片描述

二、链路层协议

1、以太网的概念

以太网,是局域网的一种 。

以太网是采用CSMA/CD媒体访问控制协议的一种局域网类型,由一系列IEEE 802协议所规范。

典型的其它局域网还有令牌环网、FDDI网、ATM网。
以太网采用CSMA/CD(Carrier Sense Multiple Access with Collision Detection),意味着按照如下方式来访问共享的信道。
Multiple Access,即多路访问,表明多台主机连接到同一总线上,即多主机共享信道,不能同时发送数据。
Carrier Sense,载波监听,意指在主机发送数据前,需要先检测总线上是否有其它主机正在发送,如有, 则暂时不发送,以免发生冲突(Colission)。
在这里插入图片描述

2、令牌环网

令牌环网的线路由一个环形总线组成。总线空闲时,有一个令牌绕环运行,所有主机只有获得令牌后才能发送数据。获得令牌的主机,在发送数据前,先删除令牌,发出一份数据后,该主机则产生一个新的令牌。
令牌环协议的工作原理决定了在这种网络中,不会产生冲突,网络上的所有主机享有均等的发送数据的机会。
在通信负载很重的情况下,信道利用率接近100%。
在这里插入图片描述

在这里插入图片描述

三、网络层协议

1、网络层主要功能

作为网络层的主要功能,编址和寻址的功能在TCP/IP体系中都是以IP地址来体现的。

链路层的物理地址,只能实现单一局域网内不同主机的区分与定位。

要实现跨局域网乃至整个Internet范围的主机定位,则必须使用网络层的IP地址。

2、IP地址

IP地址是一个32比特的数字。
通常按每8位一个字节的方式,用4个十进制数以“.”号隔开,称为IP地址“点分十进制”表示法。
例如,家庭上网所使用的宽带路由器,默认的IP地址通常是“192.168.1.1”。

3、A、B、C三类IP地址

A类IP地址的网络号部分最高位固定位0。
B类IP地址的网络号部分最高位固定位10。
C类IP地址的网络号部分最高位固定位110。
在这里插入图片描述

在这里插入图片描述

4、ARP协议

ARP(Address Resolution Protocol,地址解析协议)的目的:
根据目的地的IP地址,得到目的地的物理地址(我们以MAC地址为主)。
在Windows/Unix/Linux操作系统中,查看ARP表项的命令如下图:

在这里插入图片描述

在这里插入图片描述

四、传输层协议

1、传输层功能

网络层实现的是主机端到端的传输能力。
网络层编址、寻址(即路由)功能,数据能从一台主机到达网络中任意其它主机,单数据到达目的主机后,由目的主机的哪个应用程序来处理,则不是网络层协议所能解决的。
传输层提供的是应用程序端到端的传输能力。
网络数据的发送、接收,最终都必须由特定的应用程序来完成,因此,必须引用新的机制,来实现网络数据与应用程序的关联,这就是传输层的端口(Port)所要做的。

2、端口的概念

端口,是一个16比特的数字,端口号的最小值为0,最大值为65535。
0~1023,称为熟知端口(Well-Known Port),熟知端口通常用于关联常用的网络服务。例如:
80端口常用于关联Web服务,以提供网页浏览;
53端口常用于关联DNS服务,以提供域名解析。

注意:
TCP/IP的网络层提供了两套服务-TCP和UDP,因此对应就有两套端口机制。
TCP有一套端口,从0到65535;
UDP也有一套端口,从0到65535。
在一些需要严密表述的场合,仅指出端口号是不够的,还应当指明是TCP端口,还是UDP端口。前文所述Web服务的80端口,是指TCP的80端口,而DNS服务的53端口,通常是指UDP的53端口。

3、套接字的概念

IP地址、端口,用“:”连接起来,称为套接字(Socket)。
套接字用于描述一个网络应用程序附着点
例如:“192.168.1.1:80”。

查看当前操作系统中的套接字:
在这里插入图片描述

4、三次握手建立TCP连接

TCP连接的建立,需要由称为“三次握手”的三个TCP报文段(TCP Segment)来实现,如下图。
客户端首先打开一个用于建立连接的端口,然后向服务端的特定端口发送一个包含SYN标记(表示连接建立请求)的报文段。
若服务端相应端口处于监听状态,则向客户端返回一个包含SYN和ACK标记的报文段,ACK标记表示确认客户端的连接请求。
正常情况下,客户端再向服务端发送一个包含ACK标记的报文段,以通知服务端当前连接已被客户端确认。
在这里插入图片描述
在这里插入图片描述

五、应用层协议

1、DNS

DNS(Domain Name Service,域名服务)是一种命名系统。
提供由IP地址到域名,或由域名到IP地址的解析服务。
网络通信最终都是以IP地址来识别不同计算机,但IP是一串数字,难于理解和记忆。DNS系统可为IP地址分配一个(或多个)易于记忆的中英文字符串,即IP地址对应的域名。

2、HTTP

自1990年起,HTTP(Hypertext Transfer Protocol,超文本传输协议)就已经被应用于WWW(World Wide Web,万维网)。
HTTP目前依然是Internet上应用最为广泛的应用层协议。
HTTP是一种请求/响应式的协议。客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。
在这里插入图片描述

浏览过程中,Web浏览器是客户端程序,向Web服务程序发出浏览请求,Web服务程序根据请求内容将存放在Web服务器上的Web页面封装成HTTP协议报文的格式,返回给Web浏览器。在Web服务器上,一系列Web页面以及相关的图片、视频等其它媒体的集合,即称为Web站点。

在这里插入图片描述

3、FTP

FTP(File Transfer Protocol,文件传输协议)是Internet上以C/S(Client/Server,客户端/服务器)方式处理文件的协议。客户端可以向服务器上传文件,也可以从服务器下载文件。
FTP进行文件传输需要用到两个TCP连接,控制连接和数据连接。
若数据连接是由服务器向客户端发起的TCP连接,则这种工作模式称为主动模式(Active Mode)。
若数据连接是由客户端向服务器发起的,则这种工作模式称为被动模式(Passive Mode)。

在这里插入图片描述

在这里插入图片描述

六、相关基本概念

1、PDU

PDU(Protocol Data Unit,协议数据单元)是各协议层次所处理数据的基本单位,协议层次不同,PDU的称谓、格式均不相同。
物理层的PDU是二进制位(Bit,又称比特);
链路层的PDU是帧(Frame);
网络层的PDU是IP数据包(Packet);
传输层的PDU是报文段(Segment);
应用层的PDU是报文(Message)。

2、MTU、分片

以太网帧的有效载荷数据区最多能包含1500字节,称为MTU(Maximum Transfer Unit,最大传输单元)。
由于上一层的PDU-IP数据包整个都被封装在链路层帧的数据区,因而单个IP数据包的最大长度即为1500字节。
IP数据包分为头部和有效载荷数据区,头部长度为20字节,故IP数据包的数据区最大长度为1500-20=1480字节。
若网络层有超出1480字节的数据需要发送,则需要将数据以1480为单位,分为多个IP数据包发送,这个过程称为IP数据包分片(Fragmenting)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5月面试碰壁15次,我哭了....

3年测试经验原来什么都不是,只是给你的简历上画了一笔,一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 先说一下自己的个人情况,普通二本计算机专业…

FastChat(小羊驼模型)部署体验

简介 前段时间,斯坦福发布了Alpaca,是由Meta的LLaMA 7B微调而来,仅用了52k数据,性能可以与GPT-3.5匹敌。 FastChat集成了Vicuna、Koala、alpaca、llama等开源模型,其中Vicuna号称能够达到gpt-4的90%的质量&#xff0…

Java基础(项目1)——项目设计分层 dao + service + test +ui + exception + log + util

目录 引出DAO层---和数据库交互1.通过IO流存储到dat文件2.通过JDBC存储到数据库【测试】用junit进行测试:Test注解 Service层---处理业务1.项目设计分层初步2.service处理业务相关3.和UI层以及dao层进行交互 UI层界面---控制台,单例模式1.创建单例的方法…

牛客-【237题】算法基础精选题单

2023年06月02日更新 NOIP2007 字符串的展开NOIP2009 多项式输出NOIP2010 机器翻译 NOIP2007 字符串的展开 第一道题目花费的时间是最多的,还wa了几次 需要特别注意的一个特殊情况时 1-a 这个时候a的ASCII是大于1的,需要满足的一个条件是’-前后的符号属…

Bugku 本地管理员

打开链接 F12查看源码,发现了一个base64字符串 解码得到test123,猜测是密码 输入用户admin,密码test123 尝试登录,发现不行 要求似乎只允许本地访问,于是使用bp抓包改包后重发 在请求头加上 x-forwarded-for: 127.0…

Unity中影响性能的因素

原文链接:https://blog.csdn.net/Mq110m/article/details/130435557 Unity中的渲染优化 移动平台的特点 PC平台相比,移动平台上的GPU架构有很大的不同。由于处理资源等条件的限制,移动设备上的GPU架构专注于尽可能使用更小的带宽和功能&am…

【高数+复变函数】Laplace变换的性质

文章目录 【高数复变函数】Laplace变换的性质一、性质1. 线性性质2. 微分性质3. 像函数的微分性质4. 积分性质5. 象函数的积分性质6. 位移性质7. 延迟性质 【高数复变函数】Laplace变换的性质 通过上一节【高数复变函数】Laplace变换的学习,我们知道了Laplace的基本…

MySQL】- 04 MVCC实现原理

MVCC的实现原理 隐式字段undo日志Read View(读视图)整体流程例子 MVCC的目的就是多版本并发控制,在数据库中的实现,就是为了解决读写冲突,它的实现原理主要是依赖记录中的 3个隐式字段,undo日志 ,Read View 来实现的。…

同时处理多个聊天,无需头疼

引入实时聊天的想法令人生畏。您正在打开新渠道的闸门,这是添加到您已经不断增长的要管理的应用程序列表中的另一件事。如果实时聊天给您和您的团队增加了如此大的压力,那么也势必不会有很大的成效。 实时聊天正日益成为一种必不可少的支持工具&#xf…

Compose 中 TextField 的有效状态管理

Compose 中 TextField 的有效状态管理 为了防止同步问题和意外行为: 避免在输入和更新TextField状态之间出现延迟/异步行为。避免使用响应式流收集StateFlow的数据来保存TextField状态&#xff0c;例如使用默认调度程序。使用Compose API&#xff0c;例如MutableState<Stri…

C++练习

整理思维导图有以下定义&#xff0c;说明哪些量可以改变哪些不可以改变&#xff1f; const char *p; const (char *) p; char *const p; const char* const p; char const *p; (char *) const p; char const* const p; 3.总结命名空间使用时的方式和注意事项 1. 2. const cha…

Spring IOC - FactoryBean源码解析

​​​​​1. 介绍 FactoryBean是Spring框架中的一个接口&#xff0c;它允许我们自定义一个工厂类&#xff0c;用于创建和管理Spring容器中的Bean实例。FactoryBean接口定义了两个方法&#xff1a; getObject()&#xff1a;用于返回一个Bean实例&#xff0c;这个方法可以自定义…

创建型设计模式04-建造者模式

✨作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、个人博客 、Github &#x1f389;公众号&#xff1a;猫十二懿 建造者模式 1、建造者模式介绍 建造者模式是一种创建型设计模式&#xff0c;用于将一个复杂对象的构造过程与其表示分离开来&…

七面蚂蚁金服,超硬核面经,已拿Offer!!

刚面试了蚂蚁金服&#xff0c;给大家分享下这些硬核的面试经验 一面&#xff1a;50分钟 1.自我介绍 2.之前的实习经历提问 3.实习做过什么项目&#xff0c;负责什么 4.进程线程 5.java的垃圾回收 6.数据库简单sql语句 7.事务隔离 8.测试微信点赞 9.对测试的了解 10.编程&…

【LeetCode每日一题】——2269.找到一个数字的 K 美丽值

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 滑动窗口 二【题目难度】 简单 三【题目编号】 2269.找到一个数字的 K 美丽值 四【题目描述…

第二十二篇、基于Arduino uno,控制五线四相步进电机实现正转和反转——结果导向

0、结果 说明&#xff1a;步进电机可以旋转指定角度&#xff0c;例如转了九十度就停止&#xff0c;如果想一直转也是可以的&#xff0c;程序里面已写&#xff0c;而且也有正反转。如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;五线四相步进电机如下…

自然语言处理从入门到应用——文本的表示方法

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 若要利用计算机对自然语言进行处理&#xff0c;首先需要解决语言在计算机内部的存储和计算问题。字符串&#xff08;String&#xff09;是文本最自然&#xff0c;也是最常用的机内存储形式。所谓字符串&#xff0c;即字…

rtty移植到MTK OpenWRT平台

准备工具链 使用MTK Openwrt 相应平台工具链&#xff0c;不能使用buildroot的工具链&#xff0c;否则程序无法运行&#xff0c;本文MTK7621为例工具链官网下载地址 构建libev rtty依赖libev库&#xff0c;因此需要先构建libev git clone https://github.com/enki/libev.git …

C语言-外部关键字extern

extern 关键字 extern 用在全局变量或函数的声明前&#xff0c;用来说明“此变量/函数是在别处定义的&#xff0c;要在此处引用。 什么是定义&#xff0c;什么是声明? 什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字&#xff0c;这个名字就是我们经…

《多传感器融合感知》一、构建自动驾驶多传感器系统

来自 &#xff1a; https://www.bilibili.com/video/BV1JY4y1R7Be/ 多传感器融合的需求多传感器硬件系统构建多传感器硬件系统的时序闭环 1. 多传感器融合的需求 自动驾驶用来解决的问题&#xff1a; 建图定位、感知问题&#xff08;路上有什么、堵不堵、好不好走…&#xff…