常见的网络协议

一、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

时间: 2024-08-07 09:11:59

常见的网络协议的相关文章

常见的网络协议有哪些?

1.IP协议:互联网协议 主要用于负责IP寻址.路由选择和IP数据包的分割和组装.通常我们所说的IP地址可以理解为符合IP协议的地址. 2.TCP协议:传输控制协议 该协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换.IP协议可以进行IP数据包的分割和组装,但是通过IP协议并不能清楚地了解到数据包是否顺利地发送给目标计算机.而使用TCP协议就不同了,在该协议传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送一个确认:如果在某个时限内没有收到确认,那么TCP将重新发送数据

常见的网络协议有哪些?

原文链接地址:http://blog.sina.com.cn/s/blog_9cf7416701012pw4.html 在网络的各层中存在着许多协议, 它是定义通过网络进行通信的规则, 接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息, 以这种规则规定双方完成信息在计算机之间的传送过程. 下面就对网络协议规范作个概述: ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算机的物理地址和临时指定的网络地址. 启动时它选择一个协议(网络层

#19 子网掩码的由来,与几种常见的网络协议

子网掩码: 对应的IP地址中,网络位1,主机位0 IP地址和子网掩码进行逻辑"与"运算,得到的结就是IP地址所对应的网络地址: 主机(终端)使用子网掩码的方式: 将本次通信的目标IP地址与本地IP地址所使用的子网掩码进行逻辑"与"运算,同时也要使用同一个子网掩码与本地IP地址进行逻辑"与"运算,比较这两个结果,如果相同,则表示两台主机位于同一逻辑网段中,可以直接利用ARP协议解析目标主机的Mac地址,从而进行数据通信:否则,无法直接利用ARP协议

常见的网络协议及其所在的层次

网络层:IP. ICMP. ARP 传输层:TCP. UDP.OSPF 应用层:DHCP.DNS. FTP. HTTP. SSH TELNET等

浏览器中常见网络协议介绍

本周五我在公司有一个关于<HTTP 协议>的培训,只有两个小时,估计能讲到的东西不会太多.实际上,浏览器为了完成 WEB 应用的各项功能,需要跟各种网络协议打交道,HTTP 只是其中一种.本文会介绍浏览器中常见的网络协议,以及各种协议之间的关系. 我们经常会听到「TCP/IP 协议」这个名词,从字面上看,有人会认为它专指 TCP 和 IP 两种协议.实际上大多数情况,TCP/IP 协议指的是整个网际协议族(Internet Protocol Suite),是利用 IP 协议进行通讯的其他协议统

Wireshark数据抓包分析——网络协议篇

Wireshark是目前最受欢迎的抓包工具.它可以运行在Windows.Linux及MAC OS X操作系统中,并提供了友好的图形界面.同时,Wireshark提供功能强大的数据抓包功能.使用它,可以以各种方式抓取用户所需要的网络数据包. 但是用户往往无法从数据包中直接获取所需要的数据.这是由于所有的信息在传输过程中,都会被按照各种网络协议进行封装.用户想要从海量的数据抓包中获取的有用的信息,必须了解各种常见的网络协议.为了方便用户对数据包的分析,本书详细介绍了常用的各种网络协议,如ARP.IP

TCP网络协议的三次握手及代码释义

讲解TCP协议,我们首先要了解什么是网络通讯协议. 1.网络通讯协议 两台计算机要想在网络中互相通讯,就必须要遵守一定的规定,并且只有通讯双方同时遵守了这些规定,才能够实现数据的相互传输.而这些规定,便是由网络通讯协议针对数据传输格式,传输速率,传输步骤等制定的. 2.网络协议分类 java.net 包中包含的类和接口,它们提供低层次的通信细节,其中包含了两种常见的网络协议的支持: 1)TCP(Transmission Control Protocal) 即传输控制协议,TCP协议是面向连接的通

博客专题计划:《在实践中深入理解常见网络协议》

距离学习CCIE的课程已经有近一年的时间,虽然这一年来已经丢下了挺多关于路由交换技术的知识,不过随着这一年时间以来通过对Linux和Python的学习研究和学校相关课程的学习,对于TCP/IP的理解是越来越清晰,至少可以慢慢形成自己的想法,于是想借此机会,整理一下过去的思绪,撰写<在实践中深入理解常见网络协议>的博客专题. 写博客已有近一年的时间,慢慢地也形成了自己写博文的一种风格,有一大部分也获得了许多网友的肯定,包括51cto网友,或者通过其它方式浏览我写博文的其它门户网站的网友,在此表示

PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性

关系数组 array("key"=>"value",...) ; get没有数据大小的限制 post上传大小没有限制 不指定上传方式,默认是get 文件上传 需要在html中 form属性中添加 enctype = "multipart/form-data" <!-- 上传文件必须设置 enctype ='multipart/form-data' --> <form action="text01.php"