学习是一种信仰。
分类: 网络与安全
2013-08-31 14:30:02
一.OSI7层模型
由下至上为1至7层,分别为:
应用层(Application layer)
表示层(Presentation layer)
会话层(Session layer)
传输层(Transport layer)
网络层(Network layer)
数据链路层(Data link layer)
物理层(Physical layer)
其中上三层称之为高层,定义应用程序之间的通信和人机界面。什么意思呢,就是上三层负责把电脑能看懂的东西转化为你能看懂的东西,或把你能看懂的东西转化为电脑能看懂的东西。
下四层称之为底层,定义的是数据如何端到端的传输(end-to-end),物理规范以及数据与光电信号间的转换。
下面一层一层的来说明:
应用层,很简单,就是应用程序。这一层负责确定通信对象,并确保有足够的资源用于通信,这些当然都是想要通信的应用程序干的事情。
表示层,负责数据的编码、转化,确保应用层的正常工作。这一层,是将我们看到的界面与二进制间互相转化的地方,就是我们的语言与机器语言间的转化。数据的压缩、解压,加密、解密都发生在这一层。这一层根据不同的应用目的将数据处理为不同的格式,表现出来就是我们看到的各种各样的文件扩展名。
会话层,负责建立、维护、控制会话,区分不同的会话,以及提供单工(Simplex)、半双工(Half duplex)、全双工(Full duplex)三种通信模式的服务。我们平时所知的NFS,RPC,XWindows等都工作在这一层。
传输层,负责分割、组合数据,实现端到端的逻辑连接。数据在上三层是整体的,到了这一层开始被分割,这一层分割后的数据被称为段(Segment)。三次握手(Three-way handshake),面向连接(Connection-Oriented)或非面向连接(Connectionless-Oriented)的服务,流控(Flow control)等都发生在这一层。
网络层,负责管理网络地址,定位设备,决定路由。我们所熟知的IP地址和路由器就是工作在这一层。上层的数据段在这一层被分割,封装后叫做包(Packet),包有两种,一种叫做用户数据包(Data packets),是上层传下来的用户数据;另一种叫路由更新包(Route update packets),是直接由路由器发出来的,用来和其他路由器进行路由信息的交换。
数据链路层,负责准备物理传输,CRC校验,错误通知,网络拓扑,流控等。我们所熟知的MAC地址和交换机都工作在这一层。上层传下来的包在这一层被分割封装后叫做帧(Frame)。
物理层,就是实实在在的物理链路,负责将数据以比特流的方式发送、接收。
二.网络协议
IP(Internet Protocol 网际协议)连接两个节点。每个节点都由一个32位地址来标识。当发送消息时,IP协议从较高级的协议(TCP或UDP)接受消息,并添加包含有关目标主机信息的IP报头。
TCP(传输控制协议),TCP要求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被动打开(passive open)的操作,以利用一个已知的端口号创建一个连接,这时,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。客户应用程序必须执行一个主动打开(active open),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。客户应用程序可以将动态端口号作为本地的端口使用。服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN),随后,客户恢复一个ACK,这样就建立连接了。如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送。
UDP(用户数据报协议),UDP是一个速度很快的协议,因为它仅仅指定了数据传输所需要的最低机制,它的缺点,消息接收顺序不确定,第一个发送的消息可能最后一个被接到。消息可能丢失,也可能同时接收到2个相同的消息。在发送多播和广播时,我们通常不希望从每个节点都返回一个确认,这样将使服务器超负荷,并且网络负荷变大,所以在这个情况下使用UDP协议是很好的选择。
ICMP(Internet控制消息协议)是一个控制协议,IP设备用来向其他的IP设备通知网络中的活动和错误。如果没有TCP协议,则IP并不是一个可靠的协议,并且没有确认,没有数据的错误控制功能(只有一个报头校验和),也不能重新传输。ICMP消息在IP报头的内部发送,ICMP消息来发送的类型:响应和响应回复,目标不可达和重定向,超时。在用PING命令时会发送4个ICMP消息。
IGMP(Internet组管理协议)是IP协议的一个扩充,必须由IP模块来实现。多播应用程序使用IGMP,利用IGMP消息发送对某个多播地址的一组成员请求,这样就能够注册某条多播消息,也可以使用IGMP取消成员的关系。
FTP(File Transfer Protocol 文件传输协议)用于将文件复制到服务器,反之亦然。他还能列举服务器上的文件和目录。他是一个基于TCP的应用层协议,FTP命令封装在TCP消息的TCP数据块中。
HTTP(Hypertext Transfer Protocol 超文本传输协议)HTTP是一个可靠的协议,这通过使用TCP来实现,HTTP具有:缓存、客户应用程序身份识别、支持各种MIME格式的不同附件等。
HTTPS(SSL上的HTTP)如果需要与WEB服务器交换机密数据,则可以使用HTTPS,SSL(Secure Socket Layer 安全套接字层),SSL在TCP之上,他使用一个公钥/私钥原理来交换保密的对称密钥,用一个对称密钥来加密消息。想要支持HTTPS,WEB服务器必须安装一个证书,HTTPS默认端口是443。
SMTP(Simple Mail Transfer Protocol 简单邮件传输协议)是一个用于发送和接受邮件消息的协议。SMTP不允许我们从邮件服务器读取消息,为此需要使用POP3或者IMAP协议。
POP3(Post Office Protocol 邮局协议)是为断开环境设计的。利用POP3,客户可以访问服务器,并获取服务器为其所保留的消息。
IMAP(Internet Message Access Protocol Internet消息访问协议)用来访问邮件服务器上的邮件,IMAP客户可以有脱机模式,这时可以在本地机器上对邮件进行操作。IMAP使客户能够对远程邮箱进行操作,就像是本地操作邮箱一样。
NNTP(Network News Transfer Protocol 网络新闻传输协议)是一个用于提交,中继和获取消息的应用层协议,该协议提供了能够访问新闻服务器并且从中获取选定消息的客户应用程序,并且还支持服务器到服务器的消息传输。
SNMP(Simple Network Management Protocol 简单网络管理协议)可以对网络上的设备进行管理。SNMP的目的在于利用性能问题和故障触发的警报来有效的管理设备,并且允许对设备进行配置。与网络设备相关联的SNMP代理将有一个MIB(Management Information Base 管理信息库)数据库,它将面向对象的方式包含了该设备的可管理信息。SNMP客户通过发送SNMP GET 请求来访问数据库中的信息,用SNMP SET 请求配置MIB数据库。
Telnet协议,该协议使我们能够利用用户身份验证连接到一个远程系统,然后从一个控制台环境远程调用命令。
互联网的各项应用,其实都是分层的,也就是各位网络达人常说的OSI七层模型,下面我们就来具体看看互联网的OSI七层模型。
一、什么是互联网OSI模型?
OSI(Open System Interconnection)是指开放式系统互联参考模型。在我们的平常使用的计算机网络中存在众多体系结构,如IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构等。由于体系太多,为了能够解决不同网络之间的互联问题,国际标准化组织制定了这个OSI模型。OSI将网络通信工作分为七层,由高到低依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI模型结构图
二、数据如何各层之间传输?
物理层,数据链路层,网络层属于OSI模型的低三层,负责创建网络通信连接的链路,传输层,会话层,表示层和应用层是OSI模型的高四层,具体负责端到端的数据通信。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然,并不是所有通信都是要经过OSI的全部七层,如物理接口之间的转接,只需要物理层中进行即可;而路由器与路由器之间的连接则只需网络层以下的三层。
三、各层的作用是什么?各自包括哪些就应用?
1.物理层。物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。物理层为上层协议提供了一个传输数据的物理媒体。
属于物理层定义的典型规范包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
2.数据链路层。数据链路层在不可靠的物理介质上提供可靠的传输。数据链路层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
3.网络层。网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。
网络层协议的代表包括:IP、IPX、RIP、OSPF等。
4.传输层。传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
传输层协议的代表包括:TCP、UDP、SPX等。
5.会话层。会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
6.表示层。表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
7、应用层。应用层为操作系统或网络应用程序提供访问网络服务的接口。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
四、在各层之间,数据是以什么单位进行传输的?
这个问题比较有意思,数据在各层之间的单位都是不一样的,在物理层数据的单位称为比特(bit);在数据链路层,数据的单位称为帧(frame);在网络层,数据的单位称为数据包(packet);传输层,数据的单位称为数据段(segment)。
ping是工作在哪一层的,用的什么协议?
PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
PING命令是属于ICMP协议规定的,而ICMP是内嵌于IP层的,因此,可以说,PING是网络层的命令。按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,我们应能得到4个回送应答。
ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
TCP和UDP的区别,怎样区分一个连接用的是TCP还是UDP?
TCP是面向连接的,有比较高的可靠性,一些要求比较高的服务一般使用这个协议,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向无连接的,使用这个协议的常见服务有DNS、SNMP、QQ等。QQ程序既接受服务又提供服务,在以后的QQ版本中也支持使用TCP协议了。
DDOS网络攻击:
DDOS全名是Distributed Denial of service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,它可以利用无用流量占据网络中的所有带宽,导致出现数据拥塞,从而无法进行正常工作的情况。
DDoS攻击技术的详尽分析:TCP/IP协议栈实现中存在的漏洞,对于利用TCP/IP协议中存在漏洞进行攻击的模式来说,典型的例子就是死亡之Ping攻击。利用这一漏洞,攻击者可以创建一个超过IP标准最大限制65536字节的IP数据包。当该巨型数据包进入使用存在漏洞的TCP/ IP协议栈和操作系统的系统时,就会导致崩溃。 所有的最新操作系统和协议栈都可以防范采用死亡之Ping模式的攻击,但是,时不时的,我就会发现有人还在运行无法防范死亡之Ping攻击的系统。这种情况告诉我们,大家都应该及时对网络设备和软件进行更新。仅仅因为它依然可以运行,并不等于这样的情况是安全的。