一、OSI模型
名称 层次 功能
物理层 1 实现计算机系统与网络间的物理连接
数据链路层 2 进行数据打包与解包,形成信息帧
网络层 3 提供数据通过的路由
传输层 4 提供传输顺序信息与响应
会话层 5 建立和中止连接
表示层 6 数据转换、确认数据格式
应用层 7 提供用户程序接口
(1)物理层——Physical
这是整个OSI参考模型的最低层,它的任务就是提供网络的物理连接。所以,物理层是建立在物理介质上(而不是逻辑上的协议和会话),它提供的是机械和电气接口。主要包括电缆、物理端口和附属设备,如双绞线、同轴电缆、接线设备(如 网卡等)、RJ-45接口、串口和并口等在网络中都是工作在这个层次的。
物理层提供的服务包括:物理连接、物理服务数据单元顺序化(接收物理实体收到的比特顺序,与发送物理实体所发送的
比特顺序相同)和数据电路标识。
(2)数据链路层——DataLink
数据链路层是建立在物理传输能力的基础上,以帧为单位传输数据,它的主要任务就是进行数据封装和数据链接的建立。
封装的数据信息中,地址段含有发送节点和接收节点的地址,控制段用来表示数据连接帧的类型,数据段包含实际要传输 的数据,差错控制段用来检测传输中帧出现的错误。 数据链路层可使用的协议有SLIP、PPP、X.25和帧中继等。常见的集线器和低档的交换机网络设备都是工作在这个层次上,Modem之类的拨号设备也是。工作在这个层次上的交换机俗称“第二层交换机”。
具体讲,数据链路层的功能包括:数据链路连接的建立与释放、构成数据链路数据单元、数据链路连接的分裂、定界与同步、顺序和流量控制和差错的检测和恢复等方面。
(3)网络层——Network
网络层属于OSI中的较高层次了,从它的名字可以看出,它解决的是网络与网络之间,即网际的通信问题,而不是同一网段内部的事。网络层的主要功能即是提供路由,即选择到达目标主机的最佳路径,并沿该路径传送数据包。除此之外,网络层还要能够消除网络拥挤,具有流量控制和拥挤控制的能力。网络边界中的路由器就工作在这个层次上,现在较高档的交换机也可直接工作在这个层次上,因此它们也提供了路由功能,俗称“第三层交换机”。
网络层的功能包括:建立和拆除网络连接、路径选择和中继、网络连接多路复用、分段和组块、服务选择和流量控制。
(4)传输层——Transport
传输层解决的是数据在网络之间的传输质量问题,它属于较高层次。传输层用于提高网络层服务质量,提供可靠的端到端的数据传输,如常说的QoS就是这一层的主要服务。这一层主要涉及的是网络传输协议,它提供的是一套网络数据传输标准 ,如TCP协议。
传输层的功能包括:映像传输地址到网络地址、多路复用与分割、传输连接的建立与释放、分段与重新组装、组块与分块
。
根据传输层所提供服务的主要性质,传输层服务可分为以下三大类:
A类:网络连接具有可接受的差错率和可接受的故障通知率(网络连接断开和复位发生的比率),A类服务是可靠的网络服务,一般指虚电路服务。
C类:网络连接具有不可接受的差错率,C类的服务质量最差,提供数据报服务或无线电分组交换网均属此类。
B类:网络连接具有可接受的差错率和不可接受的故障通知率,B类服务介于A类与C类之间,在广域网和互联网多是提供B类服务。
网络服务质量的划分是以用户要求为依据的。若用户要求比较高,则一个网络可能归于C型,反之,则一个网络可能归于B型甚至A型。例如,对于某个电子邮件系统来说,每周丢失一个分组的网络也许可算作A型;而同一个网络对银行系统来说则只能算作C型了。
(5)会话层——Senssion
会话层利用传输层来提供会话服务,会话可能是一个用户通过网络登录到一个主机,或一个正在建立的用于传输文件的会话。
会话层的功能主要有:会话连接到传输连接的映射、数据传送、会话连接的恢复和释放、会话管理、令牌管理和活动管理
。
(6)表示层——Presentation
表示层用于数据管理的表示方式,如用于文本文件的ASCII和EBCDIC,用于表示数字的1S或2S补码表示形式。如果通信双方用不同的数据表示方法,他们就不能互相理解。表示层就是用于屏蔽这种不同之处。
表示层的功能主要有:数据语法转换、语法表示、表示连接管理、数据加密和数据压缩。
(7)应用层——Application
这是OSI参考模型的最高层,它解决的也是最高层次,即程序应用过程中的问题,它直接面对用户的具体应用。应用层包含用户应用程序执行通信任务所需要的协议和功能,如电子邮件和文件传输等,在这一层中TCP/IP协议中的FTP、SMTP、POP等协议得到了充分应用。
二、协议层次
网络中常用协议以及层次关系
网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议
传输层:TCP协议与UDP协议;
应用层:FTP、HTTP、TELNET、SMTP、DNS等协议
HTTP协议
HTTP是一个属于应用层的面向对象的协议基于tcp,由于其简捷、快速的方式,适用于分布式超媒体信息系统,全称是Hypertext Transfer Protocol(超文本传输协议),而且它是属于上面的层次模型的应用层。
HTTPS协议
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
FTP协议
文件传输协议
主要功能是完成从一个系统到另一个系统完整的文件拷贝。同时,它也是一个应用程序。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
FTP工作原理如下:
与大多数互联网服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户机与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户机向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户机在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户机的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的不同点在于:当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户机向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
两种方式的命令链路连接方法是一样的。
FTPS协议
安全文件传输协议
FTPS协议在它的下层使用了SSL/TLS 传输层协议,可以对控制信息和数据通道进行加密。FTPS可以有多种使用方法,最常见的模法称为显式FTPS(Explicit FTPS)。在显式FTPS的模式下,客户与服务器的端口21相连接,并且启动一个普通的非加密的FTP会话,然后,客户请求TLS(Trasport Layer Security)传输层安全机制——进行SSL/TLS协议规定的握手、数字证书认证、建立加密的命令通道和数据通道。通道建立后,任何敏感的数据就可以在命令/数据通道中被加密而传输了。(有关SSL/TLS认证和加密的详细内容请参看《晨曦》2005年12期文章“SSL协议及其应用”。)
FTPS仅仅是FTP协议的一个扩展,因而它得到大部分服务器的支持,并且由于它和FTP使用同一个端口,在用户的防火墙上就没有必要再开另外的端口了。
TCP/IP协议组
TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。
IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。
TCP层负责面向应用的可靠的或费可靠的数据传输机制,这是网络编程的主要对象。
TCP
TCP,即传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接前,TCP连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求。
TCP是一个面向连接的保证可靠的传输协议。通过TCP协议,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个Socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个Socket(通常都是Server Socket)等待建立连接时,另一个Socket可以要求进行连接,一旦这两个Socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送和接收操作。
TCP的适用情况:
TCP发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发,因此TCP最大的优点是可靠。一般网页(http)、邮件(SMTP)、远程连接(Telnet)、文件(FTP)传送就用TCP
TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。
UDP
UDP,即用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户端和服务器之间建立一个连接,且没有超时重发等机制,固而传输速度很快。
UDP是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网路上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间已经内容的正确性都是不能被保证的。
UDP的适用情况:
UDP是面向消息的协议,通讯时不需要建立连接,数据的传输自然是不可靠的,UDP一般多用于多点通讯和实时的数据业务,比如语音广播、视频、QQ、TFTP(简单文件传送)、SNMP(简单网络管理协议)、RTP(实时传送协议)RIP(路由信息协议,如报告股票市场,航空信息)、DNS(域名解释)。注重速度流畅。
UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。
TCP与UDP的区别:
1.TCP是可靠的,通过数据校验保证发送和接收到的数据是一致的;UDP是不可靠的,发送一串数字分组(1,2,3)可能接收到时就变成(1,0,0)了,做UDP连接时需要自己做数据校验。
2.TCP数据是有序的,以什么顺序发送的数据,接收时同样会按照此顺序;UDP是无序的,发出(1,2,3),有可能按照(1,3,2)的顺序收到。应用程序必须自己做分组排序。
3.TCP因为建立连接、释放连接、IP分组校验排序等需要额外工作,速度较UDP慢许多。TCP适合传输数据,UDP适合流媒体。
4.UDP比TCP更容易穿越路由器防火墙。
Telnet协议
远程登录服务协议
它的基本功能是,允许用户登录进入远程主机系统。通过远程登录,我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作一样。这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用的服务器程序。
Telnet协议是TCP/IP协议族中的一员,应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。
它提供了三种基本服务:
1)Telnet定义一个网络虚拟终端为远地系统提供一个标准接口。客户机程序不必详细了解远地系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
然而事情总是具有两重性的,Telnet在为用户提供远程登录服务的同时,也为黑客侵入服务器系统提供了方便。因此,在WindowsNT操作系统提供的Telnet服务中设置了安全认证机制,即NTLM(WindowsNT LAN Manager)。这是一种基于挑战/响应验证的机制。其工作流程是这样的:
1、客户端首先在本地加密当前用户的密码成为密码散列;
2、客户端向服务器发送自己的帐号,这个帐号是没有经过加密的,明文直接传输;
3、服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战);
4、客户端再用加密后的密码散列来加密这个 challenge ,然后把这个返回给服务器。作为 response(响应);
5、服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器;
6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge;
7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。
详细了解认证:NTLM认证协议及SSPI的NTLM实现
更多协议了解:网络中常用的各种协议(针对TCP/IP协议组)
原文地址:https://www.cnblogs.com/xuey/p/9647584.html