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

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

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)

在这里插入图片描述

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧云工具箱

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值