网络协议
- 1 网络通讯
- 1.1 防火墙
- 1.2 子网掩码
- 1.3 网关
- 1.4
- 2 SSH
- 2.1 SSH
- 2.2 SSH1
- 2.3 SSH2
- 3 Telnet
- 4 Telnet/SSL
- 5 NFS
- 6 TFTP
- 7 FTP
- 8 SFTP
- 9 HTTP
- 10 HTTPS
- 11 NAT
- 12 加密
1 网络通讯
1.1 防火墙
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。
■ NAT 模式 虚拟机系统中的ip地址转换成宿主机的ip地址,从而借助宿主主机访问其他主机,也可以访问宿主主机所在的公网。
■ host- only 模式虚拟机所在的虚拟网络是一个全封闭的网络,它唯一能够访问的是宿主主机。
■ Bridged (桥接模式)局域网络一台独立的主机可以可以访问同网段中任何一台机器,虚拟机必须配置 ip DNS 网关 和主机在一网段,以实现通过宿主主机访问外网。
1.2 子网掩码
- 它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
- 子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
- 子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。
对于A类地址来说默认的子网掩码是255.0.0.0;
对于B类地址来说默认的子网掩码是255.255.0.0;
对于C类地址来说默认的子网掩码是255.255.255.0。 - IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。
- 子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数
- 11111111 11111111 11111111 00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。这种位模式叫做子网模(subnet mask)或“子网掩码”。
作用:
- 是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
- 是用于将一个大的IP网络划分为若干小的子网络。
子网掩码划分:
未做子网划分的ip地址:网络号+主机号
做子网划分后的ip地址:网络号+子网号+子网主机号 (由主机号划分成子网号+和子网主机号)
/示例*/
比如172.16.2.160/255.255.255.0:
【1】在没有划分子网的情况下:
这个IP地址的【网络号】就是172.16.2.0
【主机号】为 0.0.0.160
【2】划分子网情况如:
172. 16. 2. 160/255.255.255.192(IP地址/掩码)
10101100 00010000 00000010 10100000 (二进制)
11111111 11111111 11111111 11000000 (子网掩码)
------------------------------------------相"与"(理解成相乘)
10101100 00010000 00000010 10000000(172.16.2.128这就是子网号)// 有128个子网。
10101100 00010000 00000010 10000001(172.16.2.129是第一个主机)
10101100 00010000 00000010 10111110(172.16.2.190最后一个主机)
10101100 00010000 00000010 10111111 广播地址 172.16.2.191
/示例/
I P 地址 192.168.0.254
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11000000.10101000.00000000.11111110
子网掩码 1111 1111.1111 1111.1111 1111.0000 0000
AND运算 11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
示例三
I P 地址 192.168.0.4
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11000000.10101001.00000000.00000100
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101001.00000000.00000000
转化为十进制后为:
192.168.0.0
通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0
所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。
/例如/
找到本地连接,右键-属性-TCP/IP-属性,里面可以填写IP地址。你就写192.168.1.10,子网掩码是255.255.255.0.另外一个机子写192.168.1.20,子网掩码也写255.255.255.0.其余不用填,这两台机子就可以通。
1.3 网关
比如有网络A和网络B,
网络A的IP地址范围为"192.168.1.1~192. 168.1.254",子网掩码为255.255.255.0;
网络B的IP地址范围为"192.168.2.1~192.168.2.254",子网掩码为255.255.255.0。
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
而要实现这两个网络之间的通信,则必须通过网关。
如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。
网络B向网络A转发数据包的过程也是如此。
所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。
1.4
2 SSH
2.1 SSH
SSH(Secure Shell)到目前为止有两个不兼容的版本——SSH1和SSH2。
SSH是Secure Shell的缩写是建立在应用层和传输层基础上的安全协议,能够有效防止远程管理过程中的信息泄露问题
SSH 简单来说采用SSL加密传输,创建会话会产生一个非对称秘钥对(RSA、DSA、DH算法),服务端拥有私钥,客户端会提示接收/保存公钥,公钥加密的数据只有私钥才能解密。
SSH之所以能够保证安全,原因在于它采用了公钥加密。整个过程是这样的:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户。
(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
2.2 SSH1
SSH1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。
2.3 SSH2
SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。
3 Telnet
telnet用于远程登录到网络中的计算机
Telnet采用明文传输,传输过程容易被窃取
4 Telnet/SSL
Secure Socket Layer
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
Telnet/SSL是带有SSL的Telnet。
5 NFS
NFS即网络文件系统(Network File-System)
NFS只是一种文件系统,本身并没有传输功能,是基于RPC(远程过程调用)协议实现的,采用C/S架构。
主机将用户指定的目录通过网络共享给目标机(和windows的文件网络共享类似)。目标机可以直接运行存放于Linux主机共享目录下的程序。
6 TFTP
TFTP(Trivial File Transfer Protocol,简单文件传输协议),是TCP/IP协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小。
7 FTP
文件传输协议(File Transfer Protocol,FTP)
FTP 是基于客户———服务器(C/S)模型而设计的
FTP的传输有两种方式:ASCII、二进制。
使用 TCP 传输而不是 UDP
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信
FTP数据传输过程
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
8 SFTP
SFTP是SSH File Transfer Protocol的缩写,安全文件传送协议。
SFTP使用加密传输认证信息和传输的数据,所以使用SFTP相对于FTP是非常安全。
SFTP这种传输方式使用了加密解密技术,所以传输效率比普通的FTP要低得多。
9 HTTP
//超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
HTTP协议传输的数据都是未加密的,也就是明文的,
10 HTTPS
简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
11 NAT
NAT 路由器作为因特网 (公共网络) 和局域网 (私有网络) 之间的代理。这就意味着对外部网络来说仅仅只需要一个单独的 IP 地址就可以代表一组 (内部网络的) 计算机。
例如类似: 这个客户拨打了主号码 (办公室对外的电话号码,译者) 到你的办公室,这是客户唯一能查到的号码。当客户告诉传达员他们想找谁的时候,传达员就会查看一张匹配有公司人名和其电话分机的查看表。这个传达员知道你在等待这个电话,因此传达员将这个电话转到了你的分机。 思科开发的网络地址转换 (NAT) 设备是工作在内部网络和外部网络之间的。NAT 的实现有许多种方式,并有许多种工作方法:
路由器访问公网,将内网ip转换成公网ip表
192.168.32.10 -> 213.18.123.110
192.168.32.12 -> 213.18.123.111
192.168.32.15 -> 213.18.123.112
静态NAT – 用一个一对一设备将一个未注册的 IP 地址映射到一个已注册的 IP 地址。当一台设备需要被外界网络可达时尤其有用。在静态 NAT 中,IP 地址是192.168.32.10 的计算机总是被转换成213.18.123.110:
动态 NAT – 映射一个未注册的 IP 地址到一组已注册 IP 地址里的一个。动态 NAT 也是在未注册和已注册 IP 地址之间建立映射关系,但是映射地址的来源是取决于通信时地址池中的可用注册 IP 地址数。在动态 NAT 中,IP 地址是192.168.32.10的计算机总是转换成范围在213.18.123.100 - 213.18.123.150中第一个可用 IP 地址:
过载 – 映射多个未注册 IP 地址到一个已注册 IP 地址时,动态 NAT 采用不同的端口。也就是所谓的 PAT (Port Address Translation, 端口地址转换),单地址 NAT 或端口级 NAT 复用。在过载中,私有网络中的每一台计算机都转换到同一个 IP 地址 (213.18.123.100) 但是被分配不同的端口号:
当一个数据包从目的计算机发送回来时,路由器检查其目的端口号 (不用检查其 IP 地址,因为全部内部网络都只用路由器的 IP 地址,路由器用端口号映射不同的计算机
12 加密
一、替代加密:用另外一种字符来替换另一种符号。可分为单态字符加密方式,和多态字符加密方式。
二、置换加密方式: 不是用一个符号来替换另一个字符,而是改变这些符号的位置。置换加密方法会符号重新排序。
流和块加密方法:
流加密方法: 在使用流加密方法是,加密和解密都是一次一个符号地(一个字符或一个比特)
块加密方法: 长度为m(m>1)的一组明文符号被同时加密并产生一组等长的密文。