OSI(OpenSystem Interconnect),即开放式系统互联。 通常都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。算法
网络协议的简介:缓存
定义:协议是网络中计算机或设备之间进行通讯的一系列规则集合。安全
什么是规则?服务器
交通中的红黄绿灯:红灯停,绿灯行就是规则。cookie
我国汽车靠右行就是规则。网络
OSI七层模型less
OSI(OpenSystem Interconnect),即开放式系统互联。 通常都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。工具
(1)物理层(Physical Layer)编码
物理层是OSI参考模型的最低层,它利用传输介质为数据链路层提供物理链接。它主要关心的是经过物理链路从一个节点向另外一个节点传送比特流,物理链路多是铜线、卫星、微波或其余的通信媒介。加密
(2)数据链路层(Data Link Layer)
数据链路层是为网络层提供服务的,解决两个相邻结点之间的通讯问题,传送的协议数据单元称为数据帧。
(3)网络层(Network Layer)
网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。
(4)传输层(Transport Layer)
传输层的做用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。
传输层传送的协议数据单元称为段或报文。
(5)会话层(Session Layer)
会话层主要功能是管理和协调不一样主机上各类进程之间的通讯(对话),即负责创建、管理和终止应用程序之间的会话。
(6)表示层(Presentation Layer)
表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另外一系统的应用层读出。若是必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通讯中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
(7)应用层(Application Layer)
应用层是OSI参考模型的最高层,是用户与网络的接口。该层经过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。
TCP/IP协议
译名为传输控制协议/因特网互联协议,又名网络通信协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成本身的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求从新传输,直到全部数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
OSI模型与TCP/IP协议的对应
左边是OSI模型,右边是TCPIP协议栈分层模型,能够看得出,两个模型有很清晰的对应关系。
两个模型的下四层是一一对应的,而OSI模型的上三层对应到TCPIP协议的应用层,因此在谈论“应用层”概念的时候,要注意讨论的是哪一个模型。
数据传输的协议单元
依据标准的OSI术语,每层间对应的“协议数据单元”(Protocol Data Unit,简称PDU)的名称都是不一样的
物理层为“位”(bit),即日常讲的二进制数位流,在物理传输介质上以二进制数字信号传输(简单的如高电平表明“1”,底电平表明“0”)。
物理层的传输介质包括:
同轴电缆(coaxical cable):细缆和粗缆,目前已经不经常使用;
双绞线(twistedpair):UTP(Unshielded Twisted Paired , 非屏蔽双绞线),这种即平时经常使用的网线;STP (Shielded Twisted Pair,屏蔽双绞线),这种线适用于电磁干扰恶劣的工业环境;(这两种线使用铜线作介质,到用户家虽然看起来就一两根,但在运营商的管线里是几千条几百条线在一块儿的大对线缆,常常是偷铜者的目标)
光纤(OpticalFiber):使用光信号来传播数字信号的介质,坐火车处处看到路边写的大标语:“光纤没铜,挖了没用”就是指这个;
无线电波(wirelessradio);
数据链路层PDU名称叫数据帧“Frame”,例如帧中继技术名称叫Frame Relay ,其数据单元名字叫“帧”,对以太网来讲是以太帧。
网络层PDU的名称叫数据包Packet, 由于IP协议在这一层,因此互联网上的数据通常被称为IP数据包。
传输层PDU的名称叫数据段Segment ,这个层面最著名的是传输控制协议TCP和用户数据报协议UDP。
会话层Session 的PDU叫SPDU,会晤协议数据单元;
表示层Presentation的PDU叫PPDU,表示协议数据单元;
应用层Application的PDU叫APDU,应用协议数据单元;
数据封包和解包过程
用户数据报文的一个封装过程,应用程序的数据使用TCP协议进行传输,用户数据被切割成合适的数据片断后,被加上网络层协议IP的首部字节,成为IP数据包,而后被加上数据链路层的以太网首部,成为以太网数据帧,再由以太网驱动程序将帧转化为二进制位流,在物理层面传送。
数据包传输过程
路由器是跨越物理层、数据链路层、网络层的设备。
最简单的路由器的概念是一台装有两块网卡的主机,主机内部安装的路由软件能够根据IP地址在两块网卡间转发IP数据包,两块网卡各有一个IP地址,具备两个物理接口的路由器同这个道理是相似的。
由上图图四能够看到,IP地址的概念是属于IP协议,IP协议是属于OSI模型第三层网络层的,全部跨越网络层的设备都须要有IP地址。最左边的主机同路由器的左侧接口各有一个IP地址,使用IP协议通讯;最右边的服务器和路由器右侧接口各有一个IP地址,使用IP协议通讯;路由器的不一样接口的IP地址是属于不一样的IP子网的,路由器就是在不一样IP子网间传送IP数据包的设备,路由是根据IP数据包里的地址选择正确传递路径的过程。
TCP/IP 四层模型
ARP协议:
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
原理:
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的全部主机,并接收返回消息,以此肯定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留必定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是创建在网络中各个主机互相信任的基础上的,网络上的主机能够自主发送ARP应答消息,其余主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。
网络接口层的安全威胁
在网络中,flooding是指从任何节点经过一个路由器发送的信息包会被发送给与该路由器相连的全部其余节点(除了发送信息包出来的那个节点)。
在典型的MAC flooding中,攻击者能让目标网络中的交换机不断泛洪大量不一样源MAC地址的数据包,致使交换机内存不足以存放正确的MAC地址和物理端口号相对应的关系表。若是攻击成功,交换机会进入failopen模式,全部新进入交换机的数据包会不通过交换机处理直接广播到全部的端口(相似HUB集线器的功能)。攻击者能进一步利用嗅探工具(例如Wireshark)对网络内全部用户的信息进行捕获,从而能获得机密信息或者各类业务敏感信息。
损坏:天然灾害、动物破坏、老化、误操做
干扰:大功率电器/电源线路/电磁辐射
电磁泄漏:传输线路电磁泄漏
搭线窃听:物理搭线
欺骗:ARP欺骗
嗅探:常见二层协议是明文通讯的(以太、arp等)
拒绝服务:macflooding,arpflooding等
arp欺骗:
攻击者在局域网网段发送虚假的IP/MAC对应信息,篡改网关MAC地址,使本身成为假网关
受害者将数据包发送给假网关(攻击者)
假网关(攻击者)分析接收到的数据包,把有价值的数据包记录下来(好比QQ以及邮箱登陆数据包)
假网关再把数据包转发给真正的网关
互联网网络层
译名为传输控制协议/因特网互联协议,又名网络通信协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成本身的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求从新传输,直到全部数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
IP协议简介:
IP协议是用于将多个包交换网络链接起来的,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的从新组装功能,以适应不一样网络对包大小的要求。
IP实现两个基本功能:寻址和分段。IP能够根据数据包包头中包括的目的地址将数据报传送到目的地址,在此过程当中IP负责选择传送的道路,这种选择道路称为路由功能。若是有些网络内只能传送小数据报,IP能够将数据报从新组装并在报头域内注明。IP模块中包括这些基本功能,这些模块存在于网络中的每台主机和网关上,并且这些模块(特别在网关上)有路由选择和其它服务功能。对IP来讲,数据报之间没有什么联系,对IP很差说什么链接或逻辑链路。
互联网层网络安全威胁
传输层
IP分片技术
以太网的MTU是1500,你能够用 netstat -i 命令查看这个值。若是IP层有数据包要传,并且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操做,使每一片的长度都小于或等于MTU。咱们假设要传输一个UDP数据包,以太网的MTU为1500字节,通常IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。若是数据部分大于1472字节,就会出现分片现象。
IP分片攻击
若是有意发送总长度超过65535的IP碎片,一些老的系统内核在处理的时候就会出现问题,致使崩溃或者拒绝服务。另外,若是分片之间偏移量通过精心构造,一些系统就没法处理,致使死机。因此说,漏洞的原由是出在重组算法上。pingo‘ death是利用ICMP协议的一种碎片攻击。攻击者发送一个长度超过65535的EchoRequest数据包,目标主机在重组分片的时候会形成事先分配的65535字节缓冲区溢出,系统一般会崩溃或挂起。ping不就是发送ICMPEcho Request数据包的吗?让咱们尝试攻击一下吧!无论IP和ICMP首部长度了,数据长度反正是多多益善,就65535吧
IP数据包
数据包的结构:数据包的结构很是复杂,不是三言两语可以说清的,在这里主要了解一下它的关键构成就能够了,这对于理解TCP/IP协议的通讯原理是很是重要的。数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成,包括包头和包体,包头是固定长度,包体的长度不定,各字段长度固定,双方的请求数据包和应答数据包的包头结构是一致的,不一样的是包体的定义。数据包的结构与咱们日常写信很是相似,目的IP地址是说明这个数据包是要发给谁的,至关于收信人地址;源IP地址是说明这个数据包是发自哪里的,至关于发信人地址;而净载数据至关于信件的内容。正是由于数据包具备这样的结构,安装了TCP/IP协议的计算机之间才能相互通讯。咱们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具备相当重要的意义。
咱们能够用一个形象一些的例子对数据包的概念加以说明:咱们在邮局邮寄产品时,虽然产品自己带有本身的包装盒,可是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才可以邮寄。这里,产品包装盒至关于数据包,里面放着的产品至关于可用的数据,而专用纸箱就至关于帧,且一个帧中只有一个数据包。“包”听起来很是抽象,那么是否是不可见的呢?经过必定技术手段,是能够感知到数据包的存在的。 就是用数据包捕获软件Iris捕获到的数据包的界面图,在此,你们能够很清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。经过分析这些数据,网管员就能够知道网络中到底有什么样的数据包在活动了。
TCP/UDP协议
面向链接的TCP协议:
TCP(TransmissionControl Protocol,传输控制协议)是基于链接的协议,也就是说,在正式收发数据前,必须和对方创建可靠的链接。一个TCP链接必需要通过三次“对话”才能创建起来,也就是所谓的”TCP的三次握手”。
面无链接的UDP协议:
UDP(UserData Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非链接的协议,它不与对方创建链接,而是直接就把数据包发送过去!
“面向链接”就是在正式通讯前必需要与对方创建起链接。好比你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。
TCP的三次握手:
其中的过程很是复杂,咱们这里只作简单、形象的介绍,你只要作到可以理解这个过程便可。咱们来看看这三次对话的简单过程:主机A向主机B发出链接请求数据包:“我想给你发数据,能够吗?”,这是第一次对话;主机B向主机
A发送赞成链接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工做)的数据包:“能够,你何时发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我如今就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,通过三次“对话”以后,主机A才向主机B正式发送数据。
“面向非链接”就是在正式通讯前没必要与对方先创建链接,无论对方状态就直接发送。与手机短信很是类似:你在发短信的时候,只须要输入对方手机号就OK了。
TCP:FTPHTTP POP IMAP SMTP TELNET SSH
UDP
Q聊天,在线视频RTSP,网络语音电话VoIP
第一次握手:创建链接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时本身也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP链接成功)状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。
传输层的安全威胁
在网络中,flooding是指从任何节点经过一个路由器发送的信息包会被发送给与该路由器相连的全部其余节点(除了发送信息包出来的那个节点)。
在典型的MAC flooding中,攻击者能让目标网络中的交换机不断泛洪大量不一样源MAC地址的数据包,致使交换机内存不足以存放正确的MAC地址和物理端口号相对应的关系表。若是攻击成功,交换机会进入failopen模式,全部新进入交换机的数据包会不通过交换机处理直接广播到全部的端口(相似HUB集线器的功能)。攻击者能进一步利用嗅探工具(例如Wireshark)对网络内全部用户的信息进行捕获,从而能获得机密信息或者各类业务敏感信息。
拒绝服务:syn flood/udp flood/Smurf欺骗:TCP会话劫持窃听:嗅探伪造:数据包伪造
应用层的安全威胁
域名解析:DNS电子邮件:SMTP/POP3文件传输:FTP网页浏览:HTTP……
拒绝服务:超长URL连接欺骗:跨站脚本、钓鱼式攻击、cookie欺骗窃听:嗅探伪造:应用数据篡改暴力破解:应用认证口令暴力破解等……