目录
相关系列文章
建站系列(一)--- 网站基本常识
建站系列(二)--- 域名、IP地址、URL、端口详解
[建站系列(三)--- 网络协议](#建站系列(三)— 网络协议)
建站系列(四)--- Web服务器之Apache、Nginx
建站系列(五)--- 前端开发语言之HTML、CSS、JavaScript
建站系列(六)--- 后端开发语言
建站系列(七)--- 常用前后端框架
建站系列(八)--- 本地开发环境搭建(WNMP)
前言
提及Web,便不得不提网络协议,前文仅提到过一次网络协议,当然并非是因为网络协议不重要,网络协议可以说是整个计算机网络中互相通信的基础,在网络中占有举足轻重的地位,相比前文所讲,网络协议也更加难让人理解,那么接下来就好好来学习一下吧!
一、定义
- 网络协议,是人为规定的计算机网络中互相通信的对等实体之间进行数据交换所需要遵循的规则、标准或约定的集合。
- 简单理解,协议即规则,网络协议即网络中设备间通信的规则(当然实际上却是一个非常复杂的过程)。
- 例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外还需转换其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。
- 如果上面的例子你没看懂,那就再简化一下吧,你想和一个法国人交流(假设你不懂法语),但是双方语言不通导致你们说的话对方都听不懂,此时你们就无法进行正常交流,如果给你们加一下条件要求你们都使用英语的话那么便可以正常的进行沟通,因为双方都会英语也就听得懂对方说的是什么。而要求使用英语便是一项简单的协议。
二、术语简介
- 上文所提的对等实体通常是指计算机网络体系结构中处于相同层次的信息单元。一般系统网络协议包括五个部分:通信环境,传输服务,词汇表,信息的编码格式,时序、规则和过程。
- TCP/IP 是因特网的正式网络协议,是一组在许多独立主机系统之间提供互联功能的协议,规范因特网上所有计算机互联时的传输、解释、执行、互操作,解决计算机系统的互联、互通、操作性,是被公认的网络通信协议的国际工业标准。TCP/IP是分组交换协议,信息被分成多个分组在网上传输,到达接收方后再把这些分组重新组合成原来的信息。除TCP/IP外,常用的网络协议还有UDP、HTTP等。
三、协议的组成要素
- (1)语义:语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应;
- (2)语法:语法是用户数据与控制信息的结构与格式,以及数据出现的顺序;
- (3)时序:时序是对事件发生顺序的详细说明。(也可称为"同步")。
- 人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。
四、网络层次划分
-
为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型 (Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。其中第四层完成数据传送服务,上面三层面向用户。
-
OSI模型
名称 | 层次 | 功能 |
---|---|---|
物理层 | 1 | 实现计算机系统与网络间的物理连接 |
数据链路层 | 2 | 进行数据打包与解包,形成信息帧 |
网络层 | 3 | 提供数据通过的路由 |
传输层 | 4 | 提供传输顺序信息与响应 |
会话层 | 5 | 建立和中止连接 |
表示层 | 6 | 数据转换、确认数据格式 |
应用层 | 7 | 提供用户程序接口 |
- 其中第4层完成数据传送服务,上面3层面向用户。对于每一层,至少制定两项标准:服务定义和协议规范。前者给出了该层所提供的服务的准确定义,后者详细描述了该协议的动作和各种有关规程,以保证服务的提供。
- 除了标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议 ,它们之间的对应关系如下图所示:
五、常见网络协议划分
- 应用层:HTTP 、FTP 、DNS 、DHCP 、SSH 、Telnet、SMTP等
- 表示层:ASCII、GIF、JPEG等
- 会话层:SCP、RPC、SQL、AppleTalk、ASP等
- 传输层:TCP 、UDP等
- 网络层:IP、IPX、ICMP、ARP等
- 数据链路层:PPP、ATM等
- 物理层:网卡、网线、集线器、中继器、调制解调器等
六、常用协议介绍
(一)TCP/IP
-
TCP/IP并非是单独一个协议,而是指一个体系结构,TCP/IP是由一组具有专业用途的多个子协议组合而成的,这些子协议包括TCP、IP、UDP、ARP、ICMP等。TCP/IP凭借其实现成本低、在多平台间通信安全可靠以及可路由性等优势迅速发展,并成为Internet中的标准协议。
-
IP协议(Internet Protocol,网际互连协议)
- IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层,规定了一套地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位与运算后就可以得到网络地址。
-
UDP协议(User Datagram Protocol,用户数据报协议)
- UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了
-
TCP(Transmission Control Protocol,传输控制协议)
- TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
-
TCP建立连接的三次握手
- TCP三次握手(简化)的过程如下:
- (1)客户端发送报文给服务器端,请求建立连接;
- (2)服务器端接收到来自客户端的TCP报文之后。返回一段TCP报文表明确认收到数据;
- (3)客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的。
- 三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
-
TCP断开连接的四次挥手
- TCP四次挥手(简化)的过程如下:
- (1)客户端想要断开连接,主动向服务器端发送一段TCP报文,表明请求断开连接;
- (2)服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要释放连接,随后服务器端进入(半关闭状态)并返回一段TCP报文;
- (3)服务器端自从发出确认报文之后,经过一段时间后,做好了释放服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文;
- (4)客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,并向服务器端发送一段报文,服务器端收到从客户端发出的TCP报文之后,正式确认关闭服务器端到客户端方向上的连接。
-
FTP协议
- FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
- 默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20,如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
-
Telnet协议
- Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
(二)HTTP协议(超文本传输协议)
- HTTP是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
- 浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
- HTTP状态码
- HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100--199),成功响应(200--299),重定向(300--399),客户端错误(400--499)和服务器错误 (500--599)。
常见状态码 | 描述 |
---|---|
100 | 临时相应,客户端应继续其请求 |
101 | 服务器根据客户端的请求切换协议 |
200 | 请求成功 |
201 | 请求成功并且服务器创建了新的资源 |
202 | 服务器已经接收请求,但尚未处理 |
203 | 非授权信息,服务器已成功处理请求,但返回的信息可能来自另一来源 |
204 | 无内容。服务器成功处理,但未返回内容 |
205 | 重置内容,服务器处理成功,用户终端应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | 部分内容,服务器成功处理了部分请求 |
300 | 多种选择,针对请求,服务器可执行多种操作 |
301 | 永久移动(重定向),请求的资源已被永久的移动到新的位置,返回信息会包括新的URI,浏览器会自动定向到新URI |
302 | 临时移动,与301类似,但资源只是临时被移动,客户端应继续使用原有URI |
303 | 查看其它地址,与301类似,使用GET和POST请求查看 |
304 | 未修改,所请求的资源未修改,服务器返回此状态码时,不会返回任何资源 |
305 | 使用代理,所请求的资源必须通过代理访问 |
307 | 临时重定向,与302类似,使用GET请求重定向 |
400 | 请求参数有误,当前请求无法被服务器理解 |
401 | 请求需要用户的身份验证 |
402 | 预留状态码,将来使用 |
403 | 服务器已经理解请求,但是拒绝执行此请求 |
404 | 请求失败,请求的资源未在服务器上发现 |
405 | 客户端请求中的请求方法不能被用于请求相应的资源 |
406 | 服务器无法根据客户端请求的内容特性完成请求 |
407 | 与401响应类似,只不过客户端必须在代理服务器上进行身份验证 |
408 | 请求超时 |
500 | 服务器内部错误,无法完成请求 |
501 | 服务器不支持当前请求,无法完成请求 |
502 | 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应 |
503 | 临时的服务器维护或者过载,服务器当前无法处理请求 |
504 | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | 服务器不支持或者拒绝支持在请求中所使用的HTTP协议版本,无法完成请求 |
(三)SSH协议
- SSH(Secure Shell,安全外壳协议)协议为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题
网络协议内容颇多,此处介绍的也仅是其中一部分,或许难以理解,还需各位多做功课,WEB知识深如海洋,愿你我共同探索!!