51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2548|回复: 0
打印 上一主题 下一主题

[原创] 网络协议的类型、优缺点、作用

[复制链接]
  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2019-3-28 15:57:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一、网络协议的定义

         ● 网络协议是一种特殊的软件,是计算机网络实现其功能的基本机制

         ● 网络协议的本质是规则,即各种硬件和软件必须遵循的共同规则

         ● 网络协议并不是一套单独的软件,他融合于其他所有软件系统中,协议在网络中无所

            不在

    二、常用的网络协议

           TCP  UDP     HTTP   HTTPS    FTP  DNS  Telnet    TCP/IP    SSL/TLS   websocket

    1、TCP协议,(transmission control protocol),传输控制协议。

          定义:TCP协议是一种面向连接的、可靠的、传输速度慢、基于字节流的传输层通信协议。

                   在简化的计算机网络OSI模型中完成第四层传输层所指定的功能。



    提供可靠的端到端的通信,可以保证接收方收到的数据与发送方发送的数据完全一致,能够保证数据不丢失、无差错,同时还有流量控制和拥塞控制的功能,所以TCP协议比较复杂,能够为要求可靠性的应用层协议提供服务,如文件传输、邮件收发、网页浏览、远程登录等等





          作用:主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换



         IP协议的作用:可以进行IP数据包的分割和组装

         IP协议的缺点:但是通过IP协议并不能清楚的了解到数据包是否顺利的发送给目标计算机

         TCP的特点:

    (1)面向连接的

    (2)提供可靠的数据传输服务

    (3)提供流量控制。TCP能够控制进程发送数据的速率,保证另一端不被大量的数据“淹没”而出现溢出。

    (4)提供拥塞控制。当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞。

    (5)提供全双工通信。TCP提供双向的数据传输服务。TCP允许通信双方的应用进程在任何时候发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。

    (6)TCP是面向字节流的。TCP中的“流”是指流入到进程或从进程流出的字节



    2、UDP协议

    用户数据包协议(User Datagram Protocol)

    UDP协议不能保证数据不丢失、无差错,也不能保证接收方收到数据的顺序和发送方发送数据的顺序一样。UDP协议比较简单,但效率比较高,能为对可靠性要求不高,对实时性要求比较高的应用提供服务,如传输音频和视频。

    定义:UDP协议是OSI(Open System Interconnection,开放式系统互联)模型中的一种

    无连接的、简单不可靠的、传输速度快、面向事务的传输层通信协议。

    UDP协议的特点:



    (1)无连接的。

    (2)UDP是一种尽力而为的服务方式,不提供可靠的数据传输服务(比如数据的丢失、重复和无序)。

    (3)UDP是高效的传输协议。

    (4)UDP没有拥塞控制和流量控制。



    TCP和UDP协议的区别



    A、TCP面向连接(打电话要先拨号建立连接);

          UDP是无连接的(发送数据之前不需要建立连接)。

    B、TCP提供可靠的服务(通过TCP连接传送的数据,无差错、不丢失、不重复、按序到达);

          UDP尽最大努力交付,不保证可靠交付。

    C、TCP基于字节流(实际上是TCP把数据看成一连串无结构的字节流)。

          UDP是基于报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低

         (对实时应用很有用,IP电话,实时视频电话)。

    D、TCP保证数据正确性;

          UDP可能丢包。

    E、TCP保证数据顺序;

          UDP不保证。

    F、每一条TCP连接只能是点到点的;

         UDP支持一对一、一对多、多对一、多对多的交互通信

    G、TCP的逻辑通信信道是全双工的可靠信道

          UDP则是不可靠信道

    H、TCP的首部开销20字节

           UDP的首部开销8字节

    I、TCP要求系统资源较多,UDP较少



    3、TCP/IP协议

         实质: TCP/IP其实就是TCP和IP等协议的组合,即传输控制协议/互联网协议。

        应用场景:主要用于在安装了不同硬件和不同操作系统的计算机之间,实现可靠的网络通

                         信。TCP协议可以保证数据包传输的可靠性;IP协议可以保证数据包被传输到

                        目标计算机上。

    4、FTP协议

         文件传输协议(File Transfer Protocol)。

         用途:主要用于在两台计算机之间实现文件的上传与下载,其中一台计算机作为FTP的客

                    户端,另一台作为FTP的服务端。通过FTP协议可以上传、下载几乎所有的文件类

                    型,比如txt  exe  doc  pdf   mp3  zip rar等

    5、Telnet协议

          定义:远程登录协议,是Internet上普遍采用的仿真网络协议,同时Telnet也是从远程

                    位置登录常用的程序。

          作用:通过Telnet程序登录远程Telnet计算机。一般采用授权的用户名和密码登录。登录

                    之后就如同使用本地计算机一样,使用远程计算机的的硬盘、运行应用程序等。

    6、DNS协议

    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

    作用:

    ● 该协议主要负责将域名转换成网络可以识别的IP地址(www.cce.com.cn转换成221.122.32.15),域名和IP地址是一一对应的。

    ● 因为访问网站的时候,最终都是转换成IP地址进行访问的

    ● 直接设置DNS服务器。可以提高网络的访问速度,保证访问的正确性



    DNS的两种查询方式:递归查询和迭代查询

    a)递归解析
    当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式,如图所示的是递归方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。

    b)迭代解析

    当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图所示。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。比如说:baidu.com的服务器ip地址在192.168.4.5这里,你自己去查吧,本人比较忙,只能帮你到这里了。



    7、HTTP协议

         超文本传输协议( Hyper Text Transfer Protocol )

        定义:● 是用于从万维网(www)服务器传输超文本到本地浏览器的传送协议

                  ● 是 基于TCP/IP通信协议来传递数据(HTML、图片、查询结果等)的协议

                  ● 是一个属于应用层的、面向对象的协议

                  ● 由于其简捷、快速的适用于分布式超媒体信息系统

        工作原理:HTTP协议工作在客户端-服务端架构上。

                        浏览器作为HTTP客户端通过URL向HTTP服务端(即WEB服务器)发送请求,

                        WEB服务器根据接收到的请求后,向客户端发送响应信息。

        HTTP请求/响应的步骤:

                   A、客户端连接到web服务器:一个HTTP客户端通常是浏览器,与web服务器的

                        HTTP端口(默认为80)建立一个TCP套接字连接

                   B、发送HTTP请求:通过TCP套接字,客户端向web服务器发送一个文本的请求

                        报文,一个请求报文由请求行、请求头部、空行和请求数据组成

                   C、服务器接收请求并返回HTTP响应:WEB服务器解析请求,定位请求资源。服

                         务器将资源副本写到TCP套接字,由客户端读取。一个响应由状态行、响应头

                         部、空行、响应数据组成

                   D、释放TCP连接:若connection模式为close,则服务器主动关闭TCP连接,客户

                         端被动关闭连接,释放TCP连接;若connection模式为keepalive,则该连接

                         会保持一段时间,在该时间内可以接着接收请求

                    E、客户端(浏览器)解析HTML内容:客户端首先解析状态行,查看表明请求是

                         否成功的状态代码  ;然后解析每一个响应头,向应头告知以下为若干字节的

                          HTML文档和文档的字符集。客户端读取响应数据HTML,根据HTML的语法

                          对其进行格式化,并在浏览器窗口中显示

         特点:● 无连接:其含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收

                       到客户的应答后,断开连接,可以节省传输时间

                   ● 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。

                                   缺少状态意味着如果后续处理需要前面的信息,则必须重传。这可能导致

                                   每次连接传送的数据量增大。但是在服务器不需要先前信息时,他的应答

                                   就较快

                    ● 简单快速:客户向服务器发送请求时,只需传送请求方法和路径。

                                       请求方法常用POST  GET  HEAD,每种方法规定了客户与服务器联系的

                                       类型不同。

                                       HTTP协议简单,似的HTTP服务器的程序规模小,因而通信速度快

                     ● 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type

                                  标记

                     ● 支持B/S   C/S模式

        HTTP请求方法:HTTP1.0定义三种方法,即POST   GET   HEAD

                                  HTTP1.1新增5种方法,OPTIONS   PUT  DELETE  TRACE  CONNECT

                     ● GET:请求指定页面信息,并返回实体主体

                     ● POST:向指定资源提交数据进行处理请求(例如提交表单、上传文件)

                     ● HEAD:类似GET请求,只不过返回的响应中没有具体的内容,用于获取报头

                     ● PUT:从客户端向服务器传送的数据取代指定的文档的内容

                     ●  DELETE:请求服务器删除指定的页面

                     ●  CONNECT:HTTP/1.1协议中预留给能够将连接改为管道式的代理服务器

                     ●  OPTIONS:允许客户端查看服务器的性能

                     ● TRACE:回显服务器收到的请求,主要用于测试或诊断

        POST和GET的区别:

                     ● GET提交的数据会显示在地址栏中(即数据放在URL之后,以?分割URL和传输的

                        数据,参数之间以&相连);

                       POST提交的数据放在HTTP包的body中,因此地址栏不会显示提交的数据

                     ● GET提交的数据大小有限制(因为浏览器对URL的长度有限制);

                        POST提交的数据没有限制

                     ● GET方式提交数据会带来安全问题,比如登录页面,通过GET方式提交数据时,

                        用户名和密码会出现在地址栏上,如果页面可以被缓存或者其他人可以访问这台

                        机器,就可以从历史记录获得该用户的用户名和密码。

                         POST不存在安全问题

                    ● GET方式需要使用Request.QueryString来取得变量的值

                        POST通过Request.Form来取得变量的值

    8、SSL/TLS协议

         ● SSL(Secure Sockets Layer),安全套接层。上世纪90年代由网景公司设计。原先互

             联网使用的HTTP协议是明文的,存在很多缺点(传输内容会被偷窥(嗅探)和篡改)。

             SSL就是为了解决这些问题

          ● 到了1999年,SSL因为广泛应用,已经成为互联网上的事实标准。IETF就在那一年把

              SSL标准化,标准化名称改为TLS(Transport  Layer  Security),传输层安全协议

           ● SSL和TLS是同一个东西的不同阶段






    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 22:40 , Processed in 0.067447 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表