测试开发人员需要掌握的计算机网络知识

一:网络分类

  电信网络(电话网),有线电视网络,计算机网络(着重讲的这个)

二:计算机网络分类之按照覆盖范围:城域网、局域网、广域网(其它分类用的不多,不再讲解)

  1.城域网(MAN)

    城域网(Metropolitan Area Network)是作用范围在广域网与局域网之间的网络,其网络覆盖范围通常可以延伸到整个城市,借助通信光纤将多个局域网联通公用城市网络形成大型网络,使得不仅局域网内的资源可以共享,局域网之间的资源也可以共享。

  2.局域网(LAN,内网)

    局域网(Local Area Network)是一种在小区域内使用的,由多台计算机组成的网络,覆盖范围通常局限在10 千米范围之内,属于一个单位或部门组建的小范围网,局域网可以实现文件管理,应用软件共享,打印机共享,扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭性的,可以由办公室的两台计算机组成,也可以由一个公司内的上千台计算机组成。

  3.广域网(WAN,外网)

    广域网(Wide Area Network)是一种跨越大的、地域性的计算机网络的集合。通常跨越省、市,甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网。

三:OSI七层网络模型

  

  1.第一层:物理层  

    激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。

    比如说我们比较熟悉的:网卡、双绞线、电缆等。

  2.第二层:数据链路层

    物理寻址,同时将原始比特流转变为逻辑传输线路,该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

    有关数据链路层的知识点:简单理解为数据的通道即可。  

    1>  数据链路层为网络层提供可靠的数据传输;

       2>  基本数据单位为帧;

       3>  主要的协议:以太网协议;  

       4>  两个重要设备名称:网桥和交换机

  3.第三层:网络层

    控制子网的运行,如逻辑编址,分组传输,路由选择。络层中涉及众多的协议,其中包括最重要的协议,就是IP协议。IP协议的主要功能有:无连接数据传输、数据报路由选择和差错控制。

    有关网络层的重点为:  

    1>  网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;

       2>  基本数据单位为IP数据报;  

    3>  包括的主要协议:

       IP协议(Internet Protocol,因特网互联协议);  

       ICM协议(Internet Control Message Protocol,因特网控制报文协议);  

       ARP协议(Address Resolution Protocol,地址解析协议);  

       RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)  

    4>  重要的设备:路由器。

  4.第四层:传输层

    是一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。(TCP协议属于这一层)

    网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的断口。

    有关传输层的重点:  

    1>  传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;

       2>  包含的主要协议:TCP(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol、用户数据报协议);  

    3>  重要设备:网关。

  5.第五层:会话层

    不同机器上的用户之间建立及管理会话

    为会话实体间建立连接。 为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作:

      将会话地址映射为运输地址

      选择需要的运输服务质量参数(QOS)

      对会话参数进行协商

      识别各个会话连接

      传送有限的透明用户数据

  6.第六层:表示层

    信息的语法语义以及它们的关联,如加密解密,转换翻译,压缩解压缩

    表示层是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要会话层来完成这种转换。

  7.第七层:应用层

    应用层向应用程序提供服务,这些服务按其向应用程序提供的特性分成组,并称为服务元素。有些可为多种应用程序共同使用,有些则为较少的一类应用程序使用。

    各种应用程序协议:如HTTP,FTP,SMTP,POP3。

    HTTP:超文本传输协议;FTP(端口号为21):文件传输协议;SMTP(端口号为25):简单邮件传输协议;POP3(端口号为110):邮局协议第3版;Finger:用户信息协议。

四:常见协议

    1.TCP协议

      TCP协议是OSI模型中的第四层传输层,是面向连接的通信协议,通过三次握手建立连接,通讯完成是要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。

      TCP协议的三次握手:所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

      

      类似我们打电话

        A:在吗?我找你有事【发送一个SYN,请求连接】

          B:我在,你能听到我说话吗?【确认了连接,ACK=1,然后再发个请求SYN】

          A:我听到了【确认对方的链接,连接建立】

      

      为什么不能两次握手或者四次握手?

       两次握手=>客户端只能知道自己发出的请求服务器端收到了,服务器端不知道服务器端发给客户端发的信息客户端能不能收到。

       四次握手=>客户端和服务器端均已知能互相通信,如果再发送确认信息,就是浪费资源。

    2.IP协议(OSI模型中的网络层)

      TCP/IP 协议网络上的每一个网络适配器都有一个唯一的 IP 地址。IP 地址是一个 32 位的地址,这个地址通常分成 4 端,每 8 个二进制为一段,但是为了方便阅读,通常会将每段都转换为十进制来显示,比如大家非常熟悉的 192.168.0.1。

       IP 地址分为两个部分:网络 ID、主机 ID具体哪部分属于网络 ID,哪些属于主机 ID 并没有规定。

      绝大部分 IP 地址属于以下几类:

         A 类地址:IP 地址的前 8 位代表网络 ID ,后 24 位代表主机 ID。

         B 类地址:IP 地址的前 16 位代表网络 ID ,后 16 位代表主机  ID。

         C 类地址:IP 地址的前 24 位代表网络 ID ,后 8 位代表主机  ID。

      这里能够很明显的看出 A 类地址能够提供出的网络 ID 较少,但是每个网络可以拥有非常多的主机。

        如何看出一个 IP 地址到底是哪类地址呢?

        如果 32 位的 IP 地址以 0 开头,那么它就是一个 A 类地址。

        如果 32 位的 IP 地址以 10 开头,那么它就是一个 B 类地址。

        如果 32 位的 IP 地址以 110 开头,那么它就是一个 C 类地址。

        如果 32 位的 IP 地址以 111 开头,那么它就是一个 D 类地址。                           

        如果 32 位的 IP 地址以 1111开头,那么它就是一个 E 类地址。

      那么转化为十进制(四段)的话,我们就能以第一段中的十进制数来区分 IP 地址到底是哪类地址了。

      注意:每一类都有一些排除地址,这些地址并不属于该类,它们是在一些特殊情况使用地址

    3.TCP/IP协议  

      TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合。准确的来说TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。传统上来说 TCP/IP 被认为是一个四层协议:

      

    4.UDP协议(OSI模型中的传输层)

      Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的的事情。面向连接的是TCP,该协议几乎做了所有的事情。

      UDP协议包括:TFTP(简单文件传输协议)、SNMP(简单网络管理协议)、DNS(域名解析协议)、NFS(网络文件系统)、BOOTP。

      TCP与UDP的区别:  

      TCP是面向连接的,可靠的字节流服务;  

      UDP是面向无连接的,不可靠的数据报服务。  

      TCP可靠,保证数据完整性和重发以及差错控制,  UDP不可靠。      

      如何选择:  安全性级别高:选用TCP  信息量少且不重要的:选用UDP

    5.HTTP协议(OSI模型中的应用层)

      超文本传输协议(HTTP,Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。http协议是无状态协议对于事物处理没有记忆能力(缺少状态意味着如果后续处理需要前面的信息 ,无状态协议解决办法: 通过1、Cookie 2、通过Session会话保存。)

      (1)HTTP协议包括哪些请求?(有8种,剩余的不常见,不再解释)

         GET:请求读取由URL所标志的信息。

         POST:给服务器添加信息(如注释)。

         PUT:在给定的URL下存储一个文档。

         DELETE:删除给定的URL所标志的资源。

      (2)GET和POST请求的差别

        <1>get是从服务器上获得数据,而post是用来向服务器上传递数据。

        <2>get将表单中数据按照variable=value的形式,添加到action所指向的url后面,并且两者之间使用“?”连接,各个变量之间使用“&”连接,即url?参数=值&参数=值...这样的明文方式传输,传送的数据量较小,不能大于2kb(HTTP协议没有规定URL的最大长度,但是规定服务器如果不能处理太长的url,就得返回414状态码,url的最大长度与用户的浏览器有关,同时也和服务器能够处理的最大程度url有关)。post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向的url。

        <3>post可以传输大量的数据,所以上传文件只能用post。

        <4>get安全性非常低,因为在传输过程,数据都放在请求的url中,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。post所有的操作对用户来说都是不可见的(post请求的参数放body部分,按F12也直接暴露了,所以对懂的人无安全性可言),所以post安全性较高。(post请求的接口需要借助工具做接口测试,get请求的接口直接用浏览器即可,当然也可以借助接口测试工具)。

        <5>get是form表单的默认方法。

      (3)HTTP状态返回码

       1XX:信息响应类,表示接收到请求并且继续处理

       2XX:处理成功响应类,表示动作被成功接收并处理

        200 OK: 客户端发的请求在服务器端被正常处理,并提供了请求的网页;(常见)

        204 No Content :客户端发送的请求已经被正常处理,但服务器没有响应的资源可以返回,浏览器显示的页面不会更新;

        206 Partial Content: 客户端进行了范围请求,服务器端成功的执行了GET请求,返回了相应的实体内容;  

       3XX:重定向响应类,需要进一步的操作以完成请求 

        301 Moved Permanently: 永久性重定向,表示请求的资源已经被分配了新的URI,以后应使用新的URI进行访问; 

        302 Found: 临时性重定向,表示请求的资源被临时分配了新的URI(以后还有可能发生变化),希望用户这一次使用新的URI访问资源;  

        303 See Other :表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。与302状态码功能相同,但303状态码表示客户端应当采用GET方法获取资源;  

        304 Not Modified :如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销;

        307 Temporary Redirect: 临时重定向,与302状态码功能相同,但307按照浏览器标准,不会从POST变为GET;  

       4XX:客户端错误,客户请求包含语法错误或者无法完成请求 

        400 Bad Request: 客户端的请求报文中存在语法错误(解决办法:检查语法,重新尝试,如果依然有错误提交工单);  

        401 Unauthorized 客户端发送的请求需要有相关的认证信息,您试图访问受限页面但未经授权时,网站返回HTTP 401错误。错误登录尝试是导致这一错误的主因。(解决办法:联系网站管理员获得正确的账户。 提交工单联系技术人员处理。);  

        403 Forbidden: 服务器拒绝客户端的访问资源,一般是网站没有绑定默认首页或者绑定默认首页错误(解决办法:您检查自己程序的默认首页是哪种,后台添加默认首页即可);  (常见)

        404 Not Found: 服务器上无法找到请求的资源,该文件可能被移到别的地方去了,或根本就不存在(解决办法:1请您登陆ftp检查文件或网页是否不存在,把缺少的网页文件恢复到正确的位置。 2提交工单恢复您一周内某天的数据。);  (常见)

       5XX:服务端错误,服务器不能正确执行一个正确的请求(要去看下服务器端日志,看下抛出的异常,再具体分析什么原因造成的)

        500 Internal Server Error: 服务器端在执行请求时发生错误,服务器端的网站程序设计有问题并且服务器没有打开详细错误提示;  (常见)

        503 Service Unavailable: 服务器暂时处于超负荷状态或正在停机维护,现在无法处理请求(解决办法:1Linux虚拟主机通过后台重启站点即可恢复正常。如果不行请提交工单。 2widows虚拟主机请提交工单联系技术人员处理)。(常见)

        500错误是经常遇到的问题,就本人的经验,原因及解决方法归纳如下:

          1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。 这个原因是网站报500错误的最主要原因,很多网站为什么突然会报500错误(service unavailable)呢?90%是由于空间压力过大,超出了空间设定的上限而造成的。 遇到这个问题,最好是第一时间找到空间商的售后服务,他们一般会帮你回收一下应用程序池,问题便得到解决。如果没有找到售后服务,可以自己在空间管理后台,找到“回收应用程序池”那个项目,自己手动执行一下即可。不过,一些空间管理后台并没有提供该项服务。   

         2、如果排除了第1的可能性,那么很大原因便是程序上出现了问题。 可以做个简单的测试页面,看是否能运行成功,再检测报错的页面,从而针对性的进行修改。 该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。

         3、如果测试中所进行的操作需要向数据库中插入数据,若大数据量的情况下导致数据库中表空间已满,或者缓冲池较小无法满足数据的存取等,都有可能导致HTTP500错误。 解决方法是调整数据库、修改连接池大小等等,根据个人具体情况进行修正即可。

      (4)HTTP与HTTPS的区别与联系

        HTTP是超文本传输协议,被用在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此HTTP协议不适合传输一些敏感信息,如:信用卡号,密码等支付信息。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL用于对HTTP协议传输的数据进行加密,从而诞生了HTTPS。

        两者主要区别:

        1.https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。个人网站、小网站没有必要用。

        2.http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议(https也不是绝对的安全,在黑客攻击,拒绝服务攻击,服务器劫持等方面几乎不起作用,最关键的SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样即可)。

        3.http和https使用的是完全不同的连接方式,用的端口也不一样,http是80,https是443。

        4.https的连接很简单,是无状态的,https协议是SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议。

        5.https连接缓存不如http高效,会增加数据开销和功耗,甚至已有的安全措施也因此会受到影响。

        6.https协议握手阶段比较费时

    6.FTP协议(OSI模型中的应用层)

      FTP协议是文件传输协议,同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

      通常 Windows自带“ftp”命令,这是一个命令行的 FTP 客户程序,另外常用的 FTP 客户程序还有 CuteFTP、Ws_FTP、Flashfxp(我们公司使用的是这个,用来上传代码什么的)、LeapFTP、流星雨-猫眼等。

五:Cookie和Session

   1.Session和Cookie的区别

      (1).session存储在服务器端,用户无法修改,相对比较安全,cookie存储在客户端,用户通过手段可以进行修改,相对不安全。

      (2).session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器资源,单个cookie在客户端的限制是3k,就是说一个站点在客户端存放的cookie不能超过3k。

      (3).cookie适合做保存用户个人设置,爱好等,session适合做客户的身份验证。

      (4).两者都可以通过时间来设置时间长短。

      (5).禁止了cookie,session是不能启动的。

   2.Session和Cookie协议和原理

      Session服务器端给每个客户分配一个唯一的数字,作为每个客户的标识。当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里面是否已经包含了一个session 标识(称为session id),如果已经包含说明以前已经为客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会创建一个)。

      Cookie是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或是硬盘上,每次发出页面请求时,都会把里面的数据发送给服务器端,可以利用它在远程浏览器存储数据并以此跟踪和识别用户机制。

   3.Session的运行机制,多台web服务器如何共享session

      共享就是每台服务器共用一个,那显然就是把这个session专门放到一个地方比如数据库,每台服务器都调用这个数据库里面的session。

六:什么是DNS?

  DNS(Domain Name System)即域名系统,是互联网的一项服务。在互联网上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析。如将http://www.cnblogs.com/主机名转换为IP地址:211.137.51.78

posted @ 2019-10-09 11:48  婷婷学测试开发  阅读(1136)  评论(0编辑  收藏  举报