什么是网络协议?
网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。
当然,网络协议也有很多种,具体选择哪一种协议则要看情况而定。Internet上的计算机使用的是TCP/IP协议。
比如日常生活中,交通有交通法,国家有宪法,劳动有劳动法,电商有电商法,企业有企业法。我们必须要遵循这些法律,不能违背规则。软件也一样,不遵循这个规则那就用不了,协议就相当于一个法规,用来规范网络中的操作。
协议的层次结构是什么?
由于网络节点之间联系的复杂性,在制定协议时,通常把复杂成分分解成一些简单成分,然后再将它们复合起来。最常用的复合技术就是层次方式,网络协议的层次结构如下:
- 结构中的每一层都规定有明确的服务及接口标准。
- 把物理通信线路作为最低层,它使用从最高层传送来的参数,是提供服务的基础。
- 除了最高层外,中间的每一层都向上一层提供服务,同时又是下一层的用户。
- 把用户的应用程序作为最高层。
HTTP协议
超文本传输协议(文本,视频,音频,图片…)
基本步骤:
请求 ---- 响应
- 建立 TCP 连接
- 客户端 向服务器 发送请求命令
- 客户端 发送请求头 信息
- 服务器 应答
- 服务器 返回响应头 信息
- 服务器 发送数据
- 服务器关闭TCP连接
HTTP的请求方法:
HTTP 1.0:GET,POST,HEAD
HTTP 2.0:OPTIONS,PUT,PATCH,DELETE,TRACE, CONNECT
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
9 | PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
状态码
200 -请求成功
状态码分类:
1** 服务器收到请求,需要请求者继续执行操作.
2** 成功,操作被成功接收并处理. 外卖已送到.好吃与否 不知道.
3** 重定向,需要进一步操作
4** 客户端错误,请求包含语法错误 或 无法完成请求
5** 服务器错误.服务器在处理请求时 发生错误.
HTTP状态码列表:
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接受。已经接受请求,但未处理完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求 |
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
303 | See Other | 查看其它地址。与301类似。使用GET和POST请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
306 | Unused | 已经被废弃的HTTP状态码 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 请求要求用户的身份认证 |
402 | Payment Required | 保留,将来使用 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求信息 |
412 | Precondition Failed | 客户端请求信息的先决条件错误 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 |
414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理 |
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式 |
416 | Requested range not satisfiable | 客户端请求的范围无效 |
417 | Expectation Failed | 服务器无法满足Expect的请求头信息 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
TCP/IP的四层协议是什么?
比如说接口测试,就是客户端给服务器发送请求,服务器收到请求给你反馈结果。
接口测试就是测运输层,想传输数据得有网络,想有网得有网络接口层(插网线),最后就能实现一个完整应用。只有第一层第二层第三层都实现了才能有第四层,每一层都是不可或缺的。
TCP/IP协议
TCP/IP协议是这三大协议中最重要的一个,作为互联网的基础协议,没有它就不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不过TCP/IP协议也是这三大协议中配置起来最麻烦的一个。单机上网还好。而通过局域网访问互联网的话,就要设置详细的IP地址,网关,子网掩码,DNS服务器等参数。
TCP/IP尽管是目前最流行的网络协议,但TCP/IP协议在局域网中的通信效率并不高,使用它在浏览“网上邻居”中的计算机时,经常会出现不能正常浏览的现象。此时安装NetBEUI协议就会解决这个问题。
TCP/IP是基础协议,NetBEUI协议是基于TCP/IP协议衍生出来的高级协议。
上网分为两种,一种是局域网(固定某个区域内比如公司内可以使用的网络,出了公司就用不了,也称为内网),一种是因特网(普通互联网,也叫外网)。
TCP/IP访问互联网时可以很稳定,但是访问局域网时就会很慢,这时可以增加NetBEUI协议。
NetBEUI协议
NetBEUI协议可以增强用户接口。它是NetBEUI协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。
NetBEUI协议在许多情形下很有用,是Windows 98之前的操作系统的缺省协议。NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不许要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,小型局域网的计算机也可以安上NetBEUI协议。另外还有一点注意,如果一台只装了TCP/IP协议的Windows 98机器想要加入到域,也必须安装NetBEUI协议。
现在的电脑是自带NetBEUI协议的。
如果用只安装了TCP/IP协议去用局域网会卡,这时增加NetBEUI协议会变得不卡,它把接口增强了,增加了通信效率,传输速度就会变快,就是用来弥补TCP/IP的弊端的。
NetBEUI协议是所有行业的鼻祖,增加通信效率,提高网速,提高下载速度。
比如百度网盘上下载,人家故意把下载速度变慢,然后体验开会员飞速下载,体验时间到后又变回原来蜗牛般的速度,就是因为这个网络加速器,花钱的快,不花钱的慢,通过这个来赚钱。
IPX/SPX协议
IPX/SPX协议本来就是Novell开发的专用于NetWare网络中的协议,但是也非常常用—大部分可以联机的游戏都支持IPX/SPX协议,比如星际争霸,反恐精英等。虽然这些游戏通过TCP/IP协议也能联机,但显然还是通过IPX/SPX协议更省事,因为根本不需要任何设置。除此之外,IPX/SPX协议在非局域网络中的用途似乎不是很大。如果确定不在局域网中联机玩游戏,那么这个协议可有可无。
IPX/SPX是所有网络游戏的鼻祖,自从有了它,才诞生了网络游戏,没有它,只能各玩各的,没办法一起玩。
OSI的七层协议是什么?
1、物理层
模型的最低层或第一层,该层包括物理联网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面PC上插入网络接口卡,你就建立了计算机联网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。网络物理问题,如电线断开,将影响物理层。这一层的数据叫做比特。
说白了就是电脑为什么能上网?是因为通电了,可以开机了,传输了比特流,网线里传输的是比特流。比特流的大小快慢决定网速。比特流传输是不稳定的,这叫网络波动。
2、数据链路层
OSI模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及检错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。如果在传送数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。
别人占用了你的比特流,就会导致你的数据链路层传输的帧出现问题,帧出了问题就会出现网络延迟和卡顿。
3、网络层
模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权。网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。由于网络层处理,并智能指导数据传送,路由器连接网络各段,所以路由器属于网络层。在网络中,“路由”是基于编址方案、使用模式以及可达性来指引数据的发送。
网络层是来决定我给你发送,是选择哪条线路的,选对了就快,选错了就慢,有了网就可以传输数据了。
4、传输层
OSI模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。例如,以太网无法接收大于1500字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组。该过程即被称为排序。工作在传输层的一种服务是TCP/IP协议套中的TCP(传输控制协议),另一项传输层服务是IPX/SPX协议集的SPX(序列包交换)。
1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024Byte,1B=8bit,网络上传输的是以字节为单位。
数据包包含数据片,数据片包含字节。
数据包:比如我给你传一个3G的视频,这个3G就是数据包
数据片:3G的视频不能一下子就传过去了,需要分割成一点一点的数据片,一点一点传输
字节:1字节是1Byte
5、会话层
负责在网络中的两节点之间建立、维持和终止通信。会话层的功能包括:建立通信连接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。
三次握手和四次挥手
1.客户端我想给你发个东西,你接收一下
2.如果服务端拒绝就直接取消了,如果同意就给客户端回复,这样两次就连上了
3.连接上之后你要告诉我要干嘛去,要传什么内容
4.告诉完之后就开始传输
1.传完文件了,要断开连接
2.3.服务器告诉客户端数据接收完了客户端才能断开,如果没接收完就断开那就是传输失败。
4.服务端告诉客户端接收完之后客户端断开
6、表示层
应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。
表示层管理数据的解密与加密,如系统口令的处理。例如:在Internet上查询你银行账户,使用的即是一种安全链接。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。
就是你给我发送的信息中间可能会有些内容涉密比如账号和密码,这时如果不通过表示层加密,抓包时就可以直接把账号和密码抓出来,抓出来的是乱码才对,如果抓出来的是明文,把账号和密码直接就抓出来了那就是表示层安全措施很不到位,是特别严重的表示层的bug。
国际通用的格式:UTF-8,如果不想让别人看就用GB-2312
7、应用层
是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。
进入应用层是已经进入系统测试阶段。所有的冒烟测试(点点点)都是在应用层进行测试,这是最后期了。
我们应该从数据链路层就开始介入测试了,看看网络能不能传输,测测弱网,网络波动时还能不能进行传输,接口传输时请求能不能发过去,返回来的内容是不是正确的,请求报文和响应报文是不是对的,三次握手和四次挥手是不是可以正常连通,通信的状态是否稳定,解码和编码编译格式的问题,然后再进入应用层测试。
OSI协议与TCP/IP协议区别在哪?