OSI模型
OSI时OSI/RM的简称:全称是Open Systems Interconnection Reference Model,开放系统互联参考模型;该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。该模型是参考模型而不是必须执行的标准,指按照该模型的要求,不同企业生产的网络设备可以互相连接。
OSI模型把网络通信分为7层(从低到高):
物理层 Physical
数据链路层 Data Link
网络层 Network
传输层 Transport
会话层 Session
表示层 Presentation
应用层 Application
低三层负责创建网络通信连接,高三层负责具体的端到端的数据通信,传输层负责低层与高层之间的连接;每一层完成一定的功能,每层都是直接向其上层提供服务,而且所有层次都相互支持。
资源子网对应高三层:应用层、表示层、会话层;由本地计算机系统及其协议实现其功能。
通信子网对应低三层:物理层、数据链路层、网络层;由网络设备与协议实现其功能。
传输层驻留在本地计算机,负责数据传输
OSI模型中层与层之间进行对等通信、且这种通信只是逻辑上的,真正的通信都是在最底层——物理层实现的,每一层要完成相应的功能,下一层为上一层提供服务,从而把复杂的通信过程分成了多个独立的、比较容易解决的子问题。
对等层协议之间交换的数据单元统称为协议数据单元PDU,而传输层及以下的各层的PDU另外还有特定的名称:
传输层:数据段(Segment)
网络层:分组(数据包)(Packet)
数据链路层:数据帧(Frame)
物理层:比特(Bit)
- 物理层:最基础的一层,建立在传输媒介基础上,起到建立、维护和取消物理连接的作用,实现设备之间的物理接口。物理层只接收和发送一串比特流,不考虑信息的意义和信息结构。包括对连接到网络上的设备描述其各种机械的、电气的、功能的规定。典型设备有:光纤、同轴电缆、双绞线、中继器和集线器。
- 数据链路层:在物理层提供比特流服务的基础上,将比特信息封装成数据帧Frame,起到在物理层上建立、撤销、标识逻辑链接和链路复用以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址。建立相邻结点之间的数据链接,通过差错控制提供数据帧(Frame)在信道上无差错的传输,同时为其上面的网络层提供有效的服务。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据检错、重发等。典型设备有:二层交换机、网桥、网卡。差错控制:在数据传输过程中如何发现并更在错误;流量控制:通信双方速度存在差异,需要协调匹配通信正常。
- 网络层:或通信子网层,是高层协议之间的界面层,用于控制通信子网的操作,是通信子网与资源子网的接口。在网络间进行通信的计算机之间可能会通过多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将解封装数据链路层收到的帧,提取数据包,包中封装有网络层包头,其中含有逻辑地址信息,包括源站点和目的站点地址的网络地址。典型设备是路由器。
网络层主要功能为管理数据通信,实现端到端的数据传送服务;主体协议是IP协议 - 传输层:建立在网络层和会话层之间,实质上它是网络体系结构中低层与高层之间衔接的一个接口层。用一个寻址机制来标识一个特殊的应用程序(端口号)。传输层不仅是一个独立的结构层,它还是整个分层体系结构的核心。传输层的数据单元是由数据组织成的数据段(Segment)这个层负责获取全部信息,因此它必须跟踪数据单元碎片、乱序到达的数据包和其他在传输过程中可能发生的危险。
主要功能为负责总体的数据传输和数据控制,主要包括两个协议:TCP:传输控制协议;UDP:用户报文协议 - 会话层:也称会晤层或对话层,在会话层及以上的高层次中,数据传达的单位不再另外命名,统称为报文。会话层不参与具体传送,它提供包括访问校验和会话管理在内的建立和维护应用之间通信的机制。会话层提供的服务可使应用建立和维持会话,并使会话同步,会话层使用校验点可以使通信会话在通信失效时从校验点继续恢复通信,这对传送大型文件极为重要。
主要功能是为通信进程建立连接。 - 表示层:对上服务应用层,对下接收会话层的服务,是为应用过程之中传送的信息提供表示方法的服务,它关心的只是发出的信息的语义和语法。表示层要完成某些特定的功能,主要有不同的数据编码格式的转换,提供数据压缩、解压缩服务,对数据进行加密、解密。如图像格式的显示就是由位于表示层的协议来支持的。表示层提供的服务包括:语法选择、语法转换等,语法选择是提供一种初始语法和以后修改这种选择的手段。语法转换涉及代码转换和字符集的转换、数据格式的修改以及对数据结构操作的适配。主要功能是进行加密和压缩。
- 应用层:是通信用户之间的窗口,为用户提供网络管理、文件传输、事务处理等服务。其中包含了若干独立的用户通用的服务协议模块。网络应用层是OSI的最高层,为网络用户之间的通信提供专用的程序。主要功能是为通信进程建立连接。
ATM
ATM:以信元为基础的一种分组交换和复用技术,它是为了多种业务设计的通用的面向连接的传输模式。适于局域网和广域网,具有高速数据传输率和支持多种类型的数据特点。
ATM是一项信元中继技术,是在LAN或WAN上传送声音、视频图像和数据的宽带技术。数据分组大小固定,能够把数据块从一个设备经过ATM交换机传送到另一个设备。所有信元具有同样的大小,使用相同大小的信元可以预计和保证应用所需要的带宽。
ATM交换机是ATM网络的重要组成部分,将数据快速地从一个节点传送到另一个节点;或者用作广域通信设备,在远程站点之间快速传递ATM信元。
异步传输模式ATM,就是建立在电路交换和分组交换的基础上的一种新的交换技术。ATM是一项数据传输技术,是实现宽带ISDN的业务核心技术之一。
ATM是一种异步传输模式;ATM以信元为基础单位;信元长度为53字节。
由于ATM网络是面向连接的,所以在发送数据前首相要先发送一个分组以建立连接,当这个初始分组经过子网时,该路径上所有的路由器都在他们的内部表中建立一个表项,用来标明该链接的存在,并且为它预留足够的资源。这时的链接通常称为虚电路。
ATM模型:物理层、ATM层、ATM适配层。
ATM集交换、复用、传输为一体,在复用上采用的是异步时分复用方式,通过信息的首部或标头来区分不同信道。
ATM的传送单元是固定长度53字节的信元,其中5字节为信元头,用来承载该信元的控制信息;48字节为信元体,用来承载用户要发送的信息。
广域网:
TCP/IP协议:是Internet的主体,进行数据交换所遵守的网络通信协议,是与Internet有关的一系列网络协议的总称。
TCP协议,Transmission Control Protocol,是工作在传输层的协议;IP协议,Internet Protocol,是工作在网络层的协议;通常TCP/IP协议表示这一族协议。
TCP/IP协议由四层实现,分别是物理层,网络层,传输层和应用层;与OSI模型的关系可以看作:OSI的低两层对应为TCP/IP协议的物理层,OSI的高三层对应为TCP/IP协议的应用层;实际上Internet中主要实现的是网络层和传输层的功能。
- TCP/IP协议物理层,提供了各种物理网络语TCP/IP之间的接口。TCP/IP并不关心物理层如何实现,只是使用物理层的功能。
- TCP/IP协议网络层,将数据包封装成数据报,并为其选择合适的路由,发送、传递数据包,包括IP协议、ARP协议、RARP协议、ICMP协议。
- TCP/IP协议传输层,提供端对端的可靠通信,通常使用TCP、UDP。
- TCP/IP协议应用层,为用户和主机之间提供了一个接口,应用程序通过此层访问网络,包括DNS、FTP协议、HTTP协议、SMTP协议
网络层使用的协议:
- IP协议:是网络层中最重要的协议,是整个Internet的基础协议,负责分配IP地址、提供路由;路由即IP协议选择传输的道路,并根据数据报报头的目的地址,将数据报传输给目的主机。IP不提供可靠的传输服务,对数据没有差错控制,它只使用报头的校验码,不提供重发和流量控制。
- ARP协议:即地址转换协议,在数据报向下一个站点传递时,负责将IP地址转换为物理地址。
- RARP协议:即反向地址转换协议,作用与ARP相反,负责将物理层地址转换为IP地址。允许主机从网关服务器的ARP表或者缓存上请求主机的IP地址。
- ICMP协议:即Internet控制报文协议,负责发送消息,报告错误,用于主机与路由器之间;ICMP提供易懂的出错报告信息,但是它只是报告问题而不是纠正问题,纠正问题由发送方完成。
ARP协议详解:
地址解析协议,即ARP,是一个根据IP地址获取物理地址的TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上所有主机,并接收返回消息,以此确定目标的物理地址;接收返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机相互信任的基础之上的,网络上的主机可以自主发送ARP应答消息,其他主机接到应答报文时不会检测该报文的真实性,而直接将其计入本机的ARP缓存,这就可能发生ARP欺骗。
OSI模型把网络分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接关联。在通过以太网发送IP数据包时,首先要封装三层、二层的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨二层、三层,所以需要使用地址解析协议。使用该协议可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址),以保证通信的正常进行
ARP工作过程示例:
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,ARP可以将主机B的IP地址(192.168.1.2)解析为主机B的MAC地址,工作流程如下:
- 根据主机A上的路由表内容,IP确定用于访问主机B的转发IP是192.168.1.2.然后主机A在本地ARP缓存中检查主机B的匹配MAC地址。
- 如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
- 主机B确定ARP请求中的IP地址与自己地址匹配,则将主机A的IP地址和MAC地址映射到本地的ARP缓存中。
- 主机B将包含其MAC地址的ARP回复信息直接发送给主机A。
5.当A收到从B发来的ARP回复时,会用主机B的IP地址和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。
ARP缓存是一个用来存储IP地址和MAC地址的缓冲区,本质是IP地址/MAC地址对应表,记录网络上其他主机的IP地址和对应的MAC地址。
ARP命令用于查询本机ARP缓存中IP地址到MAC地址的对应关系、添加或删除静态对应关系等。如果在没有参数的情况下使用,ARP命令将显示帮助信息。
apr-a(用于Windows)或arp-g用于查看缓存中的所有项目
ARP是通过报文工作的,报文包括:硬件类型、协议类型、硬件地址长度、协议长度、操作类型。
ARP建立在相互信任的基础上,它依赖于计算机中高速缓冲存储器动态更新,所以只保存最近使用的地址映射关系表项。攻击者可以在高速缓冲存储器更新表项之前修改地址转换表实现攻击。攻击者可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表,导致目标计算机与网关通信失败,更会导致通信重定向,所有数据都会通过攻击者的机器。
网络安全信任关系应该建立在IP和MAC共同基础上,设置静态MAC到IP对应表。
注:ARP是IPv4中的协议,IPv6中不再存在ARP,其功能由NDP实现。
RARP详解:
反向地址转换协议,允许局域网的物理机器从网关服务器的ARP表或缓存上请求其IP地址。网络管理员在局域网网关路由器里创建一个表以映射物理地址(MAC)表与其对应的IP地址。当设置一台新机器时,其RARP客户机程序需要向路由器上的RARP服务器请求相应的IP地址。
ARP是设备通过自己知道的IP地址来获得自己不知道的物理地址的协议,RARP针对的是一个设备(如无盘工作站)不知道自己的IP地址但知道自己的物理地址的情况。
工作过程:
- 网络上的每台设备都会有一个独一无二的硬件地址,通常由厂商分配的MAC地址,PC从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复PC的IP地址。
- RARP服务器收到RARP请求数据包,为其分配IP地址并将RARP回应发送给该机器。
- 该机器收到RARP服务器回应的RARP请求后,使用IP地址进行通讯。
ICMP详解:
是一种面向无连接的协议,用于传输出错报告控制信息,它是一个非常重要的协议,对于网络安全具有极其重要的意义。ICMP协议是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机和路由器之间传递控制信息(如报告错误、交换受限控制和状态信息等)。
ICMP提供一致易懂的出错报告错误,发出的出错报文返回到发送原数据的设备,其唯一的功能是报告问题而非解决问题,纠正错误由发送方完成。
主要功能:
- 侦测远端主机是否存在
- 建立及维护路由资料
- 重导资料传送路径(ICMP重定向)
- 资料流量控制
ICMP在沟通过程中主要通过不同的类别(Type)与代码(Code)让机器来识别不同的连线状况
IP地址:
Internet上每台主机都必须具有一个唯一的地址以区别于其他主机,这个地址就是Internet地址,即IP地址。在Internet上IP地址定义的主机地址使所有主机地址在网络上得到了统一。
IPv4 第四版本IP协议,是构成现今互联网技术的基石协议;IP地址由32位二进制组成,大约40亿个;其中有专用IP地址和特殊使用的IP地址
IP地址分为网络地址和主机地址两部分,以便于IP地址的寻址操作。
一个IP地址分为4段,可以表示为a.b.c.d,段与段之间用圆点分开。IP地址有两种表示方法:二进制形式和点分十进制
子网掩码(又叫网络掩码、地址掩码、子网络遮罩)
是一个32位二进制的值,可以把一个IP地址分离出网络地址和主机地址,采用点分十进制的现实,子网掩码不能单独存在,它必须结合IP地址一起使用。将32位的IP地址与32位的子网掩码各个位进行二进制的“与”运算(全1则得1,不全1则得0),得到的是该IP地址的网络地址。子网掩码可以判断两台计算机是否属于同一网段,通过上述运算,若得到的网络地址相同,则属于同一网段。
子网掩码由1和0组成,且1和0分别连续,子网掩码的长度是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
TCP详解:
传输控制协议 Transmission Control Protocol;面向连接的、可靠的、基于字节流的传输层协议;通过端对端检错与纠错提供可靠数据传输,保证数据在网络中正确传输并按照恰当的顺序到达目的节点,重传目的节点没有收到的任何数据,分支接受节点与源节点之间出现重复的数据报文段。
TCP被称为是端对端的协议,两端点建立连接需通过“三次握手”,即三次数据交换
TCP完成OSI模型中第四层——传输层的功能,TCP层是位于IP层之上、应用层之下的中间层,不同主机的应用层之间经常需要可靠的、像管道一样的连接,但IP层不提供这样的流机制,而是提供不可靠的包交换。
应用层像TCP层发送用于网间传输的、用8字节表示的数据流,然后TCP把数据流分成适当长度的报文段,之后TCP把结果包传给IP层,由它来通过网络将包传送给接受端的TCP层。TCP为了保住不发生丢包,就给每个包一个序号,同时序号也保证了传送到接受端的包按序接受,然后接受端对已成功收到的包发回一个相应的确认;如果发送端实体在合理的往返时延内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和
在保证可靠性上,采用超时重传和捎带确认机制。
在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。
在拥塞控制上,采用TCP拥塞控制算法。
TCP使用三次握手协议建立连接,当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1],并最终对对方的SYN执行ACK确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。
三次握手:
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
服务器端收到SYN报文,回应一个SYN(SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入建立状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
面向连接:意味着两个使用TCP的应用在彼此交换数据包之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信,广播和多播不能用于TCP。
TCP提供可靠性:
- 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变,由TCP传递给IP的信息单位称为报文段或段(segment)
- 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。TCP有延迟确认的功能,在此功能没有打开则是立即确认,功能打开则由定时器触发确认时间点。
- TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检验数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到次报文段(希望重发)
- TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序;如果必要,TCP将对收到的数据进行重新排序,将收到的数据以准确的顺序交给应用层。
- 既然IP数据报会发生重复,TCP的接收端必须丢弃重复数据。
- TCP还能提供流量控制,TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。
TCP协议用于控制数据段,是否需要重传的依据,是设立重发定时器。在发送一个数据段的同时启动一个重传,若在重传超时前收到确认就关闭该重传,如果重传超时前没有收到确认,则重传该数据段。在选择重发时间的过程中,TCP必须具有自适应性,它需要根据互联网当时的通信情况给出合适的重发时间。
UDP:
是用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供向事务的简单不可靠信息传送服务。UDP协议与TCP协议一样在传输层工作,是一种无连接的协议。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,无法得知发送的报文是否安全完整。众多的客户服务器模式的网络应用都需要使用UDP协议。
UDP是OSI参考模型中一种无连接的传输层协议,主要应用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务;UDP协议基本上是IP协议与上层协议的接口,适用于一次传输少量数据,UDP传输的可靠性由应用层负责。
通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包也不会对接收结果产生太大影响。
UDP报头由四个域组成,每个域占2个字节:源端口号、目标端口号、数据报长度、校验值。
数据报长度是指报头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分。
UDP协议使用报头中的校验值来保证数据的安全,首先在发送方提供算法计算得出,传递到接收方后还需要重新计算。若传输过程中数据受到损坏,发送方与接收方的校验计算值将不会相符,所以UDP可以通过此检测是否出错。
路由器(Router)是连接因特网中各局域网、广域网的设备,它会根据信道情况自动选择和设定路由,以最佳路径按前后顺序发送信号。路由器是用于连接不同的网络,所谓不同网络即网络地址不同。当数据从一个网络传输到另一个网络时,可以通过路由器的路由功能来完成。因此路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息。
路由和交换机的主要区别:交换机发送在OSI参考模型第二层(数据链路层),路由发生在第三层,即网络层。
主要工作:
为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。在路由器中通过路由表保存着各种传输路径的相关数据,供路由选择时使用。
数据包送到路由器后,通过数据包首部的目的主机IP地址和子网掩码计算出网络地址,即目的主机所在的网络,查找当前路由器的路由表,选择端口进行转发。
路由器工作在IP协议网络层,用于实现子网之间转发数据;路由器一般都有多个网络接口,包括局域的网络接口和广域的网络接口。每个网络接口连接不同的网络,路由器中记录有每个网络端口相连的网络信息,同时路由器中还保存有一张路由表,它记录有去往不同网络地址应送往的端口号。
当一台路由器收到IP数据包时,它将根据数据包中的目的IP地址项查找路由表,根据查找结果将此IP数据包送网对应端口,下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过路由协议来进行路由信息交换,从而更新路由表。