概述
Internet概述
网络:就是使用集线器或交换机将计算机连接起来构成一个网络
互联网:internet,使用路由器将多个网络连接起来
因特网:Internet,全球最大的互联网
因特网
因特网分为边缘部分和核心部分

边缘部分
主机之间的通信方式有两种:客户服务器方式(CS)、对等方式(Peer-to-Peer)

比如计算机C有一个500M文件,计算机D先下载了250M,此时计算机F要从计算机C中下载这个文件。此时计算机D已经下载了一部分,所以计算机D就可以作为服务器来给计算机F提供数据。就是说每个计算机即是客户端,又是服务器。下载的时候,就会有多个源头,下载的时候就会从多个源头下载。这样,下载的人越多,新下载就会越快
核心部分
数据交换方式:电路交互(打电话)、报文交互、分组交互
计算机网络采用的是分组交互



电路交互方式,线路是独占的,不允许其他人访问;分组交换方式是共享的。
报文交互方式,是一次把整个报文进行传输;分组交互是要对数据进行分组的。

广域网和局域网
广域网和局域网的区分,不单单是从网络覆盖范围区分。现在更多的是根据技术进行划分,应用了广域网技术的称为广域网,应用了局域网技术的称为局域网(局域网一般不超过100米)。
计算机网络体系结构
OSI参考模型
分为7层,从上到下依次是:
应用层:能够产生网络流量,能够和用户交互
表示层:加密、压缩
会话层:客户端和服务端建立的会话,查木马(会盗窃信息),命令netstat -n
传输层:可靠传输(建立连接)、不可靠传输(不建立会话,QQ聊天、屏幕广播、DNS域名解析)、流量控制、拥塞避免
网络层:IP地址编址、选择最佳路径
数据链路层:输入如何封装、添加物理层地址(MAC地址)
物理层:电压、接口标准
开发人员考虑应用层、表示层、会话层,网络工程师考虑其他层。
分层的好处:每一层更改不会影响其他层;不同网络设备厂商生产出标准的网络设备
TCP/IP模型
应用层、传输层、网络层、网络接口层


OSI参考模型与网络排错
从底层向高层逐层排错。
物理层故障:连接问题,网线断了
数据链路层故障:MAC地址冲突、网速不一致(一个100Mbps,另一个1000Mbps)、ADSL欠费、将计算机连接到错误的VLAN
网路层故障:网络地址、子网掩码、网关配置错误造成的故障;路由器路由表错误
表示层故障:乱码问题
应用层故障:应用程序配置错误
OSI参考模型与网络安全
物理层安全:防止非法计算机接入公司网络
数据链路层安全:划分VLAN、交换机端口安全、ADSL拨号账号秘密、连接无线密码
网络层安全:在计算机上可以设置网络安全、在路由器可以设置ACL控制数据包转发
应用层安全:开发出安全的应用程序
网络设备和分层
物理层:集线器、双绞线、同轴电缆、光纤、无线传播
数据链路层:交换机
网络层:路由器
物理层
数据通信
单工通信:只能有一个方向的通信,没有反方向的交互(电台、电视台)
半双工通信:通信双方都可以发生消息,但不能双方同时发送(集线器连网、对讲机)
全双工通信:通信双方可以同时发送和接收数据(交换机连网)
数据链路层
信道类型
点对点信道:一对一的点对点通信方式(PPP协议)
广播信道:一对多的通信方式(CSMA/CD协议)
帧

三个基本问题
- 封装成帧
- 透明传输
- 差错控制






101001是要传输的数据(信息位,记作Mx),生成多项式Gx=1101,求对应的CRC码
解答:生成多项式Gx是4位数,所以只需要在信息位Mx后面添加3个(4-1)0,Mx=101001000
然后用Mx / Gx,在计算过程中,如果被除数的第一位是1,商就上1,是0商就上0。做减法的时候,其实是异或操作(相异为1,相同为0)
最后得到余数Rx=001,最终的CRC码是Mx+Rx=101001001
最终的CRC就是发送方传输的数据。接收方收到CRC码之后,使用CRC码除以Gx,如果余数为0,表示传输过程中没出差;如果余数不为0,表示传输过程中出错,就丢掉。
CSMA CD载波监听多点接入/碰撞检测
以太网使用了CSMA CD协议。
多点接入:许多计算机以多点接入的方式连接在一根总线上。
载波监听:每一个站在发送数据之前,先要检测一下总线上是否有其他计算机在发送数据,如果有则暂时不要发送数据,以免发生碰撞。在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息。一旦发现总线上出现了碰撞,就要立即停止发送,免得浪费网络资源,然后等待一段随机时间后再次发送。
使用CSMA CD协议的以太网只能进行半双工通信。
发送碰撞后的退避算法:二进制指数类型退避算法
网络层
IP地址决定了数据包最终到达哪一台计算机,而MAC地址决定了该数据包下一跳由哪个设备接收,不一定是终点。
网络层负责为数据包选择转发路径,不负责可靠传输也不负责按顺序到达。
两种服务
- 虚电路服务
- 数据报服务

网络管理员配置好一条链路之后就可以进行传输了。如果链路断了,传输就做不了。(链路固定)

两个点要进行数据传输,将数据封装好给到路由器,路由器检测数据的源地址和目标地址,动态进行路径选择。(链路不固定)

IP地址
与IP协议配合使用的还有四个协议:
- ARP地址解析协议(解析MAC地址)
- RARP逆地址解析协议
- ICMP网际控制报文协议(PING一个网络地址用了)
- IGMP网际组管理协议

ARP协议是底层,IP协议依赖于ARP协议,ICMP和IGMP协议依赖于IP协议。
网络部分和主机部分
IPV4地址是32位,分为网络部分和主机部分,网络部分在前,主机部分在后。
IP地址分类

一共32位地址,我们把地址平均分为4段,一段8位。
A类地址:前8位是网络部分,后面24位是主机部分,一个网段的主机数量是256的三次方
B类地址:前16位是网络部分,后面16位是主机部分,一个网段的主机数量是256的二次方
C类地址:前24位是网络部分,后面8位是主机部分,一个网段的主机数量是256

特殊地址:
127地址没有划分到A类地址,它被认为是计算机的本地环回地址。
169.254.0.0 Windows系统自动分配给自己供临时用的地址
保留的私网地址:A类地址10.0.0.0,子网掩码是255.255.255.0,供企业内部用
0.0.0.0:如果计算机的IP地址与网络中其他计算机地址冲突,使用ipconfig命令看到的就是0.0.0.0,子网掩码也是0.0.0.0
子网掩码
又叫网络掩码。它是用来指明一个IP地址的哪些部分是网络部分,哪些部分是主机部分。
如果一台计算机的IP地址是172.16.122.204,子网掩码是255.255.0.0,将IP地址和子网掩码都写成而进行,进行与运算,即1和1运算得1,1和0运算得0。经过计算网络位的值保持不变,主机位都归零了,就可以得到该计算机的网为172.16.0.0
子网掩码很重要,配置错误会造成计算机通信故障。
计算机和其他计算机通信时,手写断定目标地址和自己是否在同一个网段,判断标准是,用自己的子网掩码和自己的IP地址做与运算得到自己所属网段,再用自己的子网掩码和目标地址做与运算,得到目标地址的网段。如果在一个网段,就直接给目标地址进行通信。不在一个网段,则需要将数据转发给路由器即网关,然后将数据转给目标地址。
CIDR无类域间路由
子网掩码是255.0.0.0,有8个1;子网掩码是255.192.0.0,有15个1;
我们可以简化子网掩码的表示,上面两个分别可以表示位/8和/15,表示1的个数,1的个数被称为CIDR值。
子网划分
划分意义:如果我们给只有100台计算机的网段分配了一个C类网络,由于C类网络可支持最大主机数是254,这有些浪费,就需要进行子网划分了。
子网划分,就是借用现有网段的主机位做子网位,划分出多个子网。
子网划分主要是完成两个任务:确定子网掩码;确定子网中第一个可用的IP地址和最后一个可用的IP地址
子网划分需要注意:
主机部分不能全为1,也不能全为0。全为0代表一个网段;全为1表示广播,网络中所有计算机都能收到这个数据包。
- 将一个C类网络划分为两个子网
有一个C类网络192.168.0.1,子网掩码是255.255.255.0,下面挂了200台计算机。现在要将200台计算机拆分成各100台,放在这个C类网的不同子网下。

将原来的子网掩码后移一位,变成255.255.255.128
子网1:192.168.0.1~192.168.0.126(注意最大的地址不是192.168.0.127,因为192.168.0.126的主机位是7个1,是不能做主机位的)
子网2:192.168.0.129~192.168.0.254
规律:每除以一次2,子网掩码就向后移动一位
- 将一个C类网络划分为四个子网

将一个C类网络192.168.0.0划分位四个子网,每个子网下面容纳50台计算机。
原来C类网络的子网掩码是255.255.255.0,要实现上述功能,就需要将子网掩码后移2位。变成255.255.255.192
子网1:192.168.0.1~192.168.0.62
子网2:192.168.0.65~192.168.0.126
子网3:192.168.0.129~192.168.0.190
子网4:192.168.0.193~192.168.0.254
- 将一个C类网络划分为八个子网

原来C类网络的子网掩码是255.255.255.0,要实现上述功能,就需要将子网掩码后移3位。变成255.255.255.224
子网1:192.168.0.1~192.168.0.30
子网2:192.168.0.33~192.168.0.62
子网3:192.168.0.65~192.168.0.94
子网4:192.168.0.97~192.168.0.126
子网5:192.168.0.129~192.168.0.158
子网6:192.168.0.161~192.168.0.190
子网7:192.168.0.193~192.168.0.222
子网8:192.168.0.225~192.168.0.253
点到点网络子网掩码最好是252,以255子网掩码为例,它的各位都是1,我们要实现两个网络,需要将子网掩码向左移位,如果移动一位的话,最后一位有0和1两种可能,但是主机位不能是全0和全1,就需要再往左移动一位。主机位有00、01、10、11四种,可用的是01和10,对应子网掩码是255-3=252
- 将一个B类网络划分为两个子网
原网络:172.16.0.0,子网掩码:255.255.0.0
新子网掩码:255.255.128.0
子网1:172.16.0.1~172.16.127.254
子网2:172.16.128.1~172.16.255.254
- 将一个C类网络划分为三个子网
原网络:192.168.0.0,子网掩码:255.255.255.0(这道题答案不唯一)
子网1有20台计算机:子网掩码是255.255.255.224,可用IP地址是192.168.0.33~192.168.0.62
子网2有50台计算机:子网掩码是255.255.255.192,可用IP地址是192.168.0.65~192.168.0.126
子网3有100台计算机:子网掩码是255.255.255.128,可用IP地址是192.168.0.129~192.168.0.254
判断一个IP地址所在网段
192.168.0.101/26,它所在的网段是192.168.0.64

192.168.0.101/27,它所在的网段是192.168.0.96
超网合并网络
将192.168.0.0和192.168.1.0合并,子网掩码都是255.255.255.0
解决方法:将子网掩码左移1位,变成255.255.254.0,这样两个子网就变成一个网段192.168.0.0了
IP地址决定了数据包要给到哪台计算机,MAC地址决定了下一跳的地址。
ARP、RARP协议
ARP协议负责将IP地址转化为MAC地址,RARP协议负责将MAC地址转化为IP地址。(解析主要靠广播,会给网上所有的计算机发广播,询问该IP地址的MAC地址是什么,只有对应IP的计算机会给回复。后面这两台计算机通信的时候,就会直接把数据包里的目标MAC地址写成回复的MAC地址了。不难发现这样会产生安全问题。解决方式是装ARP防火墙。)
IP数据包格式
TTL生存时间:windows系统默认是128,过一个路由器就减1,到0时路由器就不转发了,数据包消失
ICMP协议
Internet Control Message Protocol
PING命令用到了ICMP协议。
ICMP协议允许主机或路由器报告差错情况和提供有关异常情况的报告。
tracert命令可以跟踪数据包经过的路由器。
IGMP协议
Internet Group Management Protocol
指组播,或者多播,比如说电视台节目。
静态路由
静态路由不会根据网络的变化而自动变化,适用于规模小的网络。
动态路由协议
-
路由信息协议RIP:周期性广播(每隔30秒)将自己的路由表广播给其他路由器。其他路由器收到广播后就会更新自己的路由表。如果路由器到一个目标节点有两条路径,通过RIP协议广播后,路由器只会保留经过路由器少的路径,即以通过路由器的数量作为评判路径好坏的依据。
-
内部网关协议/开放式最短路径优先OSPF:基于带宽选择路径。支持多区域,触发式更新
-
外部网关协议BGP:是不同自治系统的路由器之间交换路由信息的协议
网络地址转换NAT
私网地址要想和公网地址进行通信,就需要用到网络地址转换。因为如果不使用地址转换的话,私网的一个数据包发送出去,公网的可以收到,但是无法给私网进行回复。因为路由器不知道私网地址怎么走。
网络地址转换,就是私网发数据包到公网时,在发出去的时候,源地址转换为另一个公网地址,这样公网地址收到数据包之后,就可以将响应回复给另一个公网地址,完成整个通信过程。
传输层
简介
包括TCP(传输控制协议)、UDP协议(用户数据报协议)
传输层协议应用场景:
TCP:可靠传输,分段、编号、流量控制、拥塞控制、客户端和服务器需要建立TCP连接,通信结束后释放连接。例如:QQ传文件、访问网站、上传下载文件
UDP:不可靠传输,尽最大努力交付。一个数据包就能完成数据通信,不建立会话(域名解析IP地址,一个数据包就能完成,就是UDP),例如:QQ聊天,QQ语言聊天和视频(TCP分段编号之后会出现传输顺序问题,给客户端返回时会语无伦次),多播(一个人投屏,其他人都能收到)
传输层和应用层之间的关系
http=TCP协议+80端口
https=TCP协议+443端口
ftp=TCP+21端口
SMTP=TCP+25端口
POP3=TCP+110端口
RDP=TCP+3389端口
共享文件夹=TCP+445端口
SQL SERVER=TCP+1433端口
DNS=UDP+53,很少情况下用TCP+53
telnet=TCP+23端口
应用层协议和服务之间的关系
服务运行后,在TCP或UDP的某个端口侦听客户端请求。
端口代表的是服务,端口访问不了,服务也就访问不了。
使用telnet ip:端口,可以查看端口情况。
UDP协议
不可靠传输,尽最大努力交付。
TCP协议
特点:面向连接、可靠交付、面向字节流。分段传输、可靠传输、流量控制、拥塞控制。
TCP报文首部格式

- 序号:发送方所发送的的数据第一个字节编号
- 确认号:接收方收到发送方的数据后,给发送方回复,确认号是指期待发送方发送的下一个字节编号


- URG标记位作用于发送端,让发送端优先发送该数据包;PSH标记位作用于接收端,让接收端优先读取该数据包。

- 窗口:A、B计算机通讯,A将数据包放到本地传输层缓存,然后分段编号给B计算机发送。这些数据会先到达B计算机的本地传输层缓存。B收到这些数据之后会给A一个确认后,同时会附带B计算机缓存(窗口)大小,告诉A计算机最多还可以发送多少个数据包。
可靠传输
停止等待协议

A计算机给B计算机发送一个数据包之后,就停止发送,直到B计算机发送的确认收到数据包被A计算机收到后,才开始发送下一个数据包。如果发生丢包会超时重传。

停止等待协议发送效率太低。
改进的停止等待协议
连续ARQ协议和滑动窗口协议

A计算机给B计算机发送数据,每个计算机的发送窗口和接收窗口的大小有限,如上图,假如A计算机的发送窗口最多容纳M1-M4这几个数据包,然后将这几个数据包一并发送出去。B计算机收到这几个数据包之后,只需要发送一个确认数据包M4,表明M1-M4这几个数据包都收到了。然后A计算机就可以把发送窗口中的M1-M4删掉,添加M5-M8数据包,接着发送,这就是滑动窗口。
如果传输过程中丢包了,比如A计算机给B计算机发送了M1-M4这几个数据包,B计算机只收到了M1、M2、M4这几个。如果是选择性确认,B计算机会告诉A计算机收到了M1、M2、M4这几个数据包,只需要重传M3数据包;如果不是选择性确认(SACK),B计算机给A计算机发送的确认号就是M3,表示期望A计算机发送M3开始的数据包,这就会导致A计算机多发送一次M4数据包。
流量控制
发送端的发送窗口,由接收端设定其大小。
发送端给接收端发送数据的时候,发送速度要根据接收端的接收能力动态调整。以防止接收端处理不过来。

拥塞控制
拥塞窗口设定发送端发送窗口。
发送窗口=min(接收窗口,拥塞窗口)
网络中所有的计算机共同实现的拥塞控制。使用TCP通讯的这些计算机要能够感知网络的拥塞状况,来调整发送速度。网络拥塞,降低发送速度,避免网络进一步拥塞。
拥塞控制方法

- 慢开始
网络中的两台计算机开始通信时,并不知道网络的拥塞程度。于是发送端先发送一个数据包,接收端回复确认收到数据包。发送端于是发送两个数据包,接收端回复确认收到数据包。发送端发送四个数据包,如果达到发送最大门限,就要使用拥塞避免算法了。可以看出发送端开始发送的慢,然后呈指数增长趋势。
- 拥塞避免
出现数据丢包,表明网络出现拥塞,此时发送方发送频率就不是指数增长了,而是线性增长,每次加1。等到网络拥塞时,用当前拥塞窗口大小2400除以2,计算出来新的满开始门限1200。然后发送端使用慢开始进行发送,达到1200新的慢开始门限后,执行拥塞避免算法。
改进的拥塞控制方法
当前互联网使用的是这个方法。
- 快重传

发送方发送了M1、M2两个数据包,接收方给出确认。发送方发送M3、M4数据包,M3数据包在传输过程中丢了,M4数据包没丢,接收方收到M4数据包之后就会认为网络出问题了。接收方这个时候最好是立即告诉发送方要重发M3数据包。这时接收方会给发送方立即发送3个重复确认M2,告诉发送方要立即发M3数据,于是发送方要立即发M3数据。
- 快恢复

一开始使用慢开始指数增长,达到拥塞阈值后拥塞避免线性增长。当出现数据丢包时,发送方会收到接收方3个重复的确认,于是执行快重传算法。同时,发送窗口初始大小变为出现丢包时窗口的一半(而不是直接变为1,这就是快恢复),然后以后每一个轮次,发送窗口线性增长。
连接管理
TCP建立连接的过程,也叫三次握手。

B计算机是服务器,服务启动后状态处于LISTEN监听状态。A计算机给B计算机发一个连接请求(SYN=1,ACK=0,seq=x),然后A计算机进入SYN-SENT状态,B计算机收到请求后给A计算机一个确认(SYN=1,ACK=1,seq=y,ack=x+1,y表示B计算机发送的序列,x+1表示A计算机的x已经收到了,期待A计算机发送x+1),然后B计算机进入SYN-RECEIVED状态,A计算机收到B计算机的确认后,再给B计算机发送一个确认的确认(SYN=0,ACK=1,seq=x+1,ack=y+1,x+1表示A计算机发送x+1数据,y+1表示A收到B发送的y,期待B发送y+1),然后双方建立连接,状态为ESTABLISHED。
为什么不是两次握手?
两次握手,即请求连接、确认连接两步。会出现这种情况,A计算机发送一个请求连接,这个请求可能由于网络拥塞传输速度慢,长时间没有到达B计算机。于是A计算机再次发送一个请求连接,这一次很快传到B计算机,并且B计算机给了确认连接。那么双方就建立连接了。过了一会,A计算机第一次发送的连接请求到达B计算机,B计算机给出确认连接,A计算机收到后,发现自己已经建立连接了,于是这个数据包就不会处理,但是B计算机会认为这个连接一直存在。这就会导致这一次连接一直存在,无法被释放,浪费服务器资源。
释放连接
释放连接也称为TCP的四次挥手。

A和B建立连接后状态是ESTABLISHED,A计算机想主动释放连接,发送一个数据包(FIN=1,seq=u),状态进入FIN-WAIT-1状态。B计算机收到后,发送一个确认数据包(ACK=1,seq=v,ack=u+1),状态变为CLOSE-WAIT,然后通知应用程序关闭。A计算机收到这个数据包之后,状态变为FIN-WAIT-2。等到B计算机的应用程序关闭后,给A计算机发送一个数据包(FIN=1,ACK=1,seq=w,ack=u+1)。A计算机收到这个数据包之后,状态变为TIME-WAIT,等待2MSL(两倍的最长报文时间)变为CLOSED状态。并且,A计算机给B计算机发送一个数据包(ACK=1,seq=u+1,ack=w+1),B计算机收到这个数据包后就进入CLOSED状态。
=为什么要等待2MSL时间A计算机才关闭
最后一步A给B发送的数据包可能丢包,这时B计算机会再次给A计算机发送数据包,A计算机再次发送确认。如果没有2MSL时间,A计算机立即关闭,B计算机再次发送数据包,A已经关闭,无法发出确认,B就无法收到确认,就不能关闭。
应用层
包括http、https、ftp、DNS(域名解析)、SMTP(发邮件)、POP3(收邮件)、RDP(远程桌面协议)
DNS
域名解析协议,将域名解析为IP地址。


客户端配置的DNS地址是13.2.1.2,如果要访问www.inhe.net,会向DNS服务器发送请求。DNS服务器一看域名是以.net结尾的,正好自己负责,于是将IP地址返回。
如果要访问www.sohu.com,会向DNS服务器B发送请求。DNS服务器B一看域名是以.com结尾的,自己不负责,于是向根DNS服务器发送请求。根DNS服务器告诉DNS服务器B,.com对应的DNS服务器的IP是42.6.1.8,于是DNS服务器B给DNS服务器C发送请求,DNS服务器一看域名是.com结尾,找对人了,一看是sohu.com,就告诉DNS服务器B,sohu.com你去请求43.6.18.8。于是DNS服务器B给DNS服务器E发送请求,DNS服务器E将IP地址返回给DNS服务器B,B再将IP返回给客户端,同时将这个IP在本地缓存供下一次使用。同时,客户端本地也有缓存,会把刚刚请求的sohu.com的IP地址缓存。
DHCP
动态主机配置协议。
静态地址使用场景:企业中的一些服务器,给外部提供服务的
动态地址使用场景:移动设备、无线设备、ADSL拨号
telnet
是一个简单的远程终端协议。
RDP
远程桌面协议。
HTTP
超级文本传输协议。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。
HTTP是一个****基于请求与响应模式的、无状态的、应用层的协议,常基于**TCP**的连接方式****
http1.0版本,如果一个网页有多个图片,则下载一个图片就要建立一次TCP连接。
http1.1版本,持续连接,如果一个网页有多个图片,建立一个TCP连接,一直持续,可以使用这个连接传输所有文件。有流水线方式和非流水线方式。
http请求响应报文格式

http响应报文状态码

400:**请求报文语法有误,服务器无法识别
**401:**请求需要认证
**403:**请求的对应资源禁止被访问
**404:**服务器无法找到对应资源
HTTPS
Https:是以安全为目标的Http通道,是Http的安全版。
Https设计目标
-
数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么。
-
数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收。
-
身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方。
Http与Https的区别
1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl(Secure Socket Layer,安全套接层)加密传输协议。
3、http和https使用的是完全不同的连接方式(虽然连接方式不同但都是基于TCP运输层的,只不过https通过ssl协议间接基于运输层之上,而http是直接基于TCP之上),用的端口也不一样,前者是80,后者是443。HTTPS基于HTTP使用 SSL/TLS加密。但是http和https都是基于TCP/IP的。
4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的,对历史的连接信息不会有记忆功能。无连接的意思是指通信双方都不长久的维持对方的任何信息,在通信前不会先建立好连接)
什么是Http协议无状态协议?怎么解决Http协议无状态协议?
- 无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
- 也就是说,当客户端一次HTTP请求完成以后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个"老用户"。
- 可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是"老用户"。
Https的优点
1、使用Https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
2、Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。
3、Https是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
Https的缺点(对比优点)
1、Https协议握手阶段比较费时,会使页面的加载时间延长近。
2、Https连接缓存不如Http高效,会增加数据开销,甚至已有的安全措施也会因此而受到影响。
3、Https协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
4、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
5、成本增加。部署 Https后,因为 Https协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。
6、Https协议的加密范围也比较有限。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
https使用的是对称加密和非对称加密结合的方式。A和B通信,A先将自己的公钥发给B,B收到后生成一个对称密钥,并使用A的公钥进行加密传给A。A收到之后使用A的私钥进行解密就获取到了这个对称密钥。之后就可以使用这个对称密钥进行通信了。
FTP
文件传输协议。
SMTP
发送邮件协议。
POP3
收邮件协议。
IMAP
收邮件协议。
网络安全
网络安全的四个威胁:截获、中断、篡改、伪造。

加密技术
对称加密
加密密钥和解密密钥是同一个。
缺点:密钥不适合在网上传输,网上传输可能被截获。密钥维护麻烦。
优点:效率高
非对称加密
加密密钥和解密密钥是不同的。
密钥对,分为公钥和私钥。公钥加密,私钥解密;或者私钥加密,公钥解密。
公钥加密后,使用公钥是无法解密的。同理,使用私钥加密后,使用私钥是无法解密的。
缺点:效率低

非对称加密细节:对称加密和非对称加密的结合
A计算机想要从B计算机下载500M电影。A会将自己的公钥传给B,然后B生成一个对称密钥,对500M电影加密比较快(对称加密比非对称加密加密速度快),然后再将对称密钥使用A的公钥进行加密,将二者传给A。A收到后,使用自己的私钥进行解密获得B的对称密钥,然后使用对称密钥对电影进行解密。
数字签名
防止抵赖、能够检测签名之后内容释放被更改(被更改后数字签名会失效)
防火墙
防火墙是由硬件、软件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施接入控制策略。防火墙可用来解决内联网和外联网的安全问题。
防火墙内的网络称为"可信赖的网络",防火墙外的网络称为"不可信赖的网络"。

防火墙分类:
网络层防火墙:基于数据包、源地址、目标地址、协议和端口,控制流量
应用层防火墙:数据包、源地址、目标地址、协议和端口,用户名、时间段、内容,防病毒进入内网。
防火墙网络拓扑:三像外围网、背靠背防火墙、单一网卡防火墙、边缘防火墙