可靠的TCP协议(传输层)安全
1) TCP封包结构以下图:服务器
各字段的含义为:网络
封包序号:记录每一个封包的序号,当TCP封包大于IP封包的长度时,TCP封包就须要拆分红更小的包,来下发给网络层,经过该字段可让接收端从新将TCP数据组合起来。ssh
回应序号:回传给客户端的响应码,当客户端收到这个确认码时,就可以肯定以前传递的封包已经被正确的收下了。ide
资料补偿:因为Options字段是任意的,为了确认整个封包的大小,就用这个字段来讲明整个封包区段的起始位置。大数据
保留:保留字段,还未被使用。加密
控制标志码:用来讲明联机的状态,以让接收端了解这个封包的主要动做,这个字段共六位,表明六个句柄,若为1则表示启动,每位含义分别为:spa
URG(Urgent):若为1表示该封包为紧急封包,接收端应该紧急处理,且Urgen Pointer字段也会被启用。3d
ACK(Acknowledge):若为1表示这个封包为响应封包code
PSH(Push function):若为1,表明要求对方当即传送缓冲区内的其余对应封包,而无需等待缓冲区满了才送。
RST(Reset):若为1,表示联机会立刻结束,而无需等待终止确认手续。也就是说,这是个强制结束的联机,且发送端已断线。
SYN(Synchronous):若为1,表示发送端但愿双方创建同步处理,也就是要求创建联机。一般带有SYN标识的封包表示主动要链接到对方的意思。
FIN(Finish):若为1,表示传送结束,因此通知对方数据传毕,是否赞成断线,只是发送者还在等待对方的响应而已。
Window(滑动窗口):主要用来控制封包的流量的,能够告知对方目前自己有的缓冲器容量(Receive Buffer)还能够接受封包。当Window=0时,表明缓冲器已经满额,因此应该暂停传输数据。Window的单位是Bytes。
确认检查码:当数据有发送端送出前,会进行一个检验的动做,并将该动做的检验值标注在这个字段上;而接受者收到这个封包以后,会再次对封包进行验证,而且比对原发送的Checksum值是否相符,若是相符就接受,若不符就会假设该封包已经损毁,进而要求对方从新发送。
紧急资料:告知紧急数据所在的位置。
任意选项:表示接收端能够接收的最大数据区段容量,若此字段不使用,表示可使用任意数据区段的大小。这个字段较少使用。
补足字段:将表头长度补齐为固定的长度。
2) 端口号的最大值为65535(2的16次方减1),端口号小于1024的端口只用root身份才能启动对应的服务,所以叫作特权端口。经常使用的端口与服务以下:
20:FTP-data,文件传输协议所使用的主动数据传输端口。
21:FTP,文件传输协议的命令通道
22:ssh,较为安全的远程联机服务器
23:Telnet,早期的远程机器服务软件
25:SMTP,简单邮件传递协议,用在做为mail server的端口
53:DNS,用在做为域名解析的服务器端口
80:www服务器
110:POP3,邮件收信协议
443:https,有安全加密机制的www服务器
3) TCP三次握手,以下图所示:
过程详解:
a) A封包发起,当客户端想要对服务器端联机时,就必需要送出一个要求联机的封包,此时客户端必须随机取用一个大于1024以上的端口来做为程序沟通接口。而后再TCP的表头当中,必需要带有SYN的主动联机(SYN=1),而且记下发送出联机封包给服务器端的序号(sequence number=10001)
b) B:封包接受与确认封包传送,当服务器接到这个封包,而且肯定要接受这个封包后,就会开始制做一个同时带有SYN=1,ACK=2的封包其中那个Acknowledge的号码是要给client端确认用的,因此该数字会比(a)里面的sequence number多一号(ack=10001+1=10002),那咱们服务器也必需要确认客户端确实能够接收咱们的封包才行,因此会发出一个Sequence(seq=20001),而且开始等待客户端给咱们服务器的响应。
c) C:会送确认包当客户端收到来自服务端的ACK数字后(10002)就能确认以前那个要求封包被正确的收受了,接下来若是客户端也赞成羽服务端创建联机时,就会再次的发送一个确认封包(ACK=1)给服务器,亦便是Acknowledge=20001+1=2002.
d) D:取得最后的确认,若一切都顺利,在服务器端接收到带有ACK=1且ack=20002序号封包后,就可以创建起此次的联机了。
2.非链接的UDP协议
1) UDP(User Datagram Protocol,用户数据流协议),非面向链接的协议,即在UDP的传输过程当中,接受端在接受到封包以后,不会响应封包(ACK)给发送端,因此封包并无像TCP封包有较为严格的检查机制。
2) UDP封包结构图为:
3) UDP数据传输特色:不可靠,但速度快,多用于实时性要求较高,但正确率不是很高的数据传输方式,如视频传输。
3.网络防火墙与OSI七层协议
1) 防火墙的原理:防火墙软件对封包的表头进行分析,而且设定分析规则,当发现某些特定的IP,特定的端口或者特定的封包信息(SYN/ACK等),就将该封包丢弃,这就是防火墙的原理。
2) OSI七层中,每层抵挡的数据有:
第二层:能够针对来源与目标的MAC进行抵挡
第三层:主要针对来源与目标的IP,以及ICMP的类别(type)进行抵挡
第四层:针对TCP,UDP的端口进行抵挡,也能够针对TCP的状态(code)来进行抵挡。