计网学习
1.1计算机网络中在信息时代的作用
计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施。
计算机网络已经成为像水、电这些基础设时一样,成为我们生活重不可或缺的一部分。
1.2因特网概述
1 网络、互联网和因特网
网络:网络由若干节点和连接这些节点的链路组成。
互联网:是一个覆盖范围更大的网络,由多个网络还可以通过路由器连接起来,可以理解为互联网就是网络的网络。
因特网:就是最大的互联网
区分:
internet:互联网,这是一个通用名词,泛指由多个计算机网络互联而成的网络,网络之间的通信协议可以是任意的。
Internet:因特网,专有名词,指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,是采用TCP/IP写一族作为通信的规则。
2 因特网发展的三个阶段
提供给用户IP地址的角色,每个用户通过ISP提供的IP地址使用互联网,没有IP地址不可以使用互联网。
生活中电信等便是最经典的例子,其中在互联网中每个用户都可以是ISP。
基于ISP的三个结构互联网
3 因特网的标准化工作
4 因特网的组成
边缘部分:由所有连接在因特网的主机组成,是用户直接使用的,用来通信和资源共享的设备。
核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘服务提供服务的。
1.3三种交换方式
1 电路交换
电话交换机接通电话线的方式称为电路。
从通信资源的分配角度来看,交换就是按照某种方式动态的分配传输线路的资源。
1、建立连接(分配通信资源)
2、通话(一直占用通信资源)
3、释放连接(归还通信资源)
在建立后不论通信资源有没有使用,都不会进行中断,除非用户中断。
2 分组交换
把整块数据/信息分为多个数据段(相对于报文传输而言),数据段分开传输。在数据段前面加上首部后,成为一个分组。以分组为单位传输。在图中各个节点有存储转发的功能。
各个分组交换机会把分组先存储下来,然后根据其头部信息种的目的地地址,发送给下一个交换机。各个交换机进行对分组信息的储存转发后,最终到达主机H2。
目的地处理及再去除分组首部,还原出报文。传输完成。
在转发过程中有两个特点:
1、各分组从源站到达目的地可以走不同的路径。
2、分组到达目的站的顺序不定,可能出现顺序变化。
3 报文交换
每一个结点接收整个报文,检查目标结点地址,然后根据网络中的通信情况在适当的时候转发到下一个结点。经过多次的存储——转发,最后到达目标,因而这样的网络叫存储——转发网络。其中的交换结点要有足够大的存储空间(一般是磁盘),用以缓冲收到的长报文。
4、三种交换对比
在电路交换过程中要先进行建立连接,连接建立完成后直接进行报文传输,传输完成后释放连接。传输时以比特流直通形式传输
在报文交换中,把整个报文先传送到相邻节点交换机,节点交换机进行储存下来后进行查表转发,转发到下一个节点交换机
分组交换可以随时发送分组,不需要事先建立连接。
将原始报文拆分成一个个分组,依次在各节点交换机上储存转发。各节点在发送分组的同时还需要缓存分组,提升效率。
5、优缺点对比
电路交换
优点:
1、通信时延小,适合传输大量数据
2、有序传输,只在一条固定线路传输,不会失序
3、没有冲突,只在一条线路传输,不会引发冲突
4、适用范围广,适合模拟信号和数字信号
5、实时性强
6、控制简单,结构简单,易于控制
缺点:
1、建立连接时间长
2、线路独占,使用效率低
3、灵活性差
4、难以规格化
报文交换:
优点:
1、无需建立连接,可以随时发送报文
2、动态分配线路
3、提高线路可靠性,若线路故障会选择正常线路
4、提高线路利用率
5、提供多目标服务,一个报文可以同时发送给多个地址
缺点:
1、引发了转发时延,在节点中转发储存时间花费多
2、需要较大储存缓存空间
3、需要传输额外的信息量,报文中有源地址点多余信息
分组交换:
优点:
1、无需建立连接
2、线路利用率高
3、简化了储存管理,分组长度固定,缓冲区固定,易于管理
4、加速传输,节点的转发和缓存同时进行,提高速度
5、减少出错概率和重发数据量
缺点:
1、引发了转发时延
2、需要传输额外的信息量,分组中有源地址等额外信息量
3、对于数据报服务,处在失序、丢失货重复分组的问题
4、对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程
1.4 计算机网络的定义和分类
定义:
计算机在实际上没有精确统一的定义。
但是有一个最简单的定义:互连、自治的计算机集合。
其中:
互连指的是计算机之间可以通过有线或者无线的方式进行数据通信。
自治指的是独立的子算计,拥有自己的硬件和软件,可以独立运行。
计算机集合指的是至少要有两台计算机。
比较全面的定义是:
计算机网络主要是一些通用的、可编程的硬件互连而成的,而硬件并非专门用来实现某一特定目的的,这些可编程的硬件能够用来传送多种不同类型的数据(如音频、数据),这些可编程的软件能支持广泛和日益增长的应用。
在实际生活中不同的发展阶段对计算机网络的定义不同,对其的定义反应了当时的网络技术发展水平。
1.5 计算机网络中的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
常用的性能指标有8个 ⬇
速率:
首先先了解比特:
比特:计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0。
基本单位:bit(b) 比特
8 bit = 1 Byte
KB = 2^10B
MB = K KB = 2^20 B
GB = K MB = 2^30 B
TB = K GB = 2^40 B
速率就是连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率。
kb/s = 10^3b/s
Mb/s = K Kb/s = 10^6 b/s
Gb/s = k Mb/s = 10^9 b/s
Tb/s = k Gb/s = 10^12 b/s
数据单位bit中K = 2^10B
数据单位bit中K = 10^3B
所以在计算过程中二者存在一定差距,不要弄错了。
带宽:
带宽在模拟信号系统中表示的是信号所包含的各种不同频率成分所占据的频率范围,也就是传输过程中最大频率与最小频率的范围。
带宽中计算机网络中的意义:
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一个点所能通过的“最高数据率。
单位:b/s(kb/s, Mb/s, Gb/s, Tb/s),与速率相同。
在日常生活中的宽带带宽除以8,一般就是平时使用中的最高传输速率。(1B = 8bit)
是一个很重要的计算机网络性能指标。直接关系网络的应用体验。
吞吐量:
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制。
时延:
发送时延:源主机将分组发送出去产生的时延。
计算方式: 分组长度(b) / 发送速率(b/s)。
发送速率 = min[网卡发送速率,信道带宽,交换机或路由器的接口速率]
发送效率是一个短板效应,由速率最低的模块决定,所以在选择网线、路由器等设备时,要考虑到整体的速率平衡问题。
传播时延:分组在线路中传播产生的时延。
计算方式:信道长度(m) / 电磁波传播速率(m/s)
处理时延:路由器收到分组后对其进行存储转发产生的时延。
一般不方便计算。
时延宽带积:
传播时延和带宽的乘积。
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。
实际上就是一个比特到达终点的单位时间内传输的比特个数。
链路的时延带宽积又称为以比特为单位的链路长度。
往返时间RTT:
一个网络请求双向交互一次所需的时间。
往返时间RTT也是一个重要的性能指标
可以更好的了解到网络的情况。
利用率:
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)。
网络利用率是全网络的信道利用率的加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增大。如图所示:
当网络利用率达到50%时,时延就要加倍。
当网络利用率超过50%时,时延就急剧增大。
当网络利用率接近100%时,时延趋于无穷大。
因此要控制信道利用率不超过50%,否则就要准备扩容。
丢包率:
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
分组在传输过程中出现误码,被结点丢弃。
分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞。
丢包率反映了网络的拥塞情况。
无拥塞时丢包率为0
轻度拥塞时丢包率为1%—4%
严重拥塞时丢包率为5%-15%
1.6 计算机网络体系结构
1 常见的计算机网络体系结构
网际层核心协议是IP协议。
运输层的两个重要协议:TCP(可靠传输)、UDP(不可靠传输)。
应用层有大量的应用协议:HTTP、SMTP等等。
2 计算机网络结构分层的必要性
1、计算机网络是个非常复杂的系统
2、“分层”可将庞大而复杂的问题,转化为若干较小的局部问题
基于以上原因选择对计算机网络进行分层。
其中各层的主要解决问题:
物理层:
采用怎样的传输媒体(介质)?
采用怎样的物理接口?
使用怎样的信号表示比特0和1?
解决以上问题后就可以实现01信号在计算机之间的传输。
数据链路层:
如何标识网络中的各主机(主机编址问题,例如MAC地址)?
如何从信号所表示的一连串比特流中区分出地址和数据?
如何协调各主机通信(例如,各主机争用总线,交换机的实现原理)?
解决此问题后可以实现分组在一个网络上传输。
网络层:
如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)?
路由器如何转发分组,如何进行路由选择?
解决此问题后可以实现分组在网络间传输。
运输层:
如何解决进程之间基于网络的通信?
出现传输错误时如何处理?
解决此问题后可以实现进程之间基于网络的通信。
应用层:
通过应用进程间的交互来完成特定的网络应用。
例如:支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议。
解决此问题后可以实现计算机网络所解决的所有问题。
在此一层一层的问题解决中边逐步从物理层、数据链路层、网络层、运输层、应用层结局问题,实现目的,这也是分层思想解决问题的最好提现。
3 计算机网络体系结构分层思想举例
在五层结构中,各层负责任务如下:
应用层:按照http请求的协议,构建报文。然后交付给运输层处理。
运输层:给http请求加上一个头部,使其成为一个TOP报文段。其头部的作用是识别进程和实现可靠传输(TCP的特点)。而后交给网络层处理。
网络层:给TCP报文段加上一个IP头部,使其成为IP数据报。其首部作用是为了使该数据段可以在互联网上传输。而后将其交付给数据链路层处理。
数据链路层:给IP数据报添加一个首部和一个尾部,使其成为帧(按帧传输)。
其首部的作用是使其能够在一段链路或者网络上传输,以及被目的交换机接收并处理。
其尾部的作用是为了让目的主机检查是否有误码。
最后将其交给物理层。
物理层:将帧看作是比特流(01编码),由于是在以太网传输,因而给其加上前导码,便于传输。并且将其变成相应的信号发送到传输媒体。
此时,发送端处理结束。
由于接收端的过程就是发送端的逆过程,不再进行啰嗦。
MySql增删改查
增 insert
删 delete
改 update
查 select或者show
ctfhub
sql注入
SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
基础原理
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
SQL注入的危害
1.数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
2.网页篡改:通过操作数据库对特定网页进行篡改。
3.网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
4.数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
5.服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
6.破坏硬盘数据,瘫痪全系统。