建站系列(三)--- 网络协议

目录

  • 相关系列文章
  • 前言
  • 一、定义
  • 二、术语简介
  • 三、协议的组成要素
  • 四、网络层次划分
  • 五、常见网络协议划分
  • 六、常用协议介绍
    • (一)TCP/IP
    • (二)HTTP协议(超文本传输协议)
    • (三)SSH协议

相关系列文章

建站系列(一)— 网站基本常识
建站系列(二)— 域名、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五层协议,它们之间的对应关系如下图所示:
    ![QQ图片20220320224340.png][1]

五、常见网络协议划分

  • 应用层:HTTPFTPDNSDHCPSSHTelnet、SMTP等
  • 表示层:ASCII、GIF、JPEG等
  • 会话层:SCP、RPC、SQL、AppleTalk、ASP等
  • 传输层:TCPUDP
  • 网络层: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知识深如海洋,愿你我共同探索!!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DC/DC开关电源学习笔记(五)开关电源的主要技术指标

(五)开关电源的主要技术指标 1.输入参数2.输出参数3.效率4.电压调整率和负载调整率5.动态特性:负载突变时输出电压的变化6.电源启动时间(Set-Up Time)与保持时间(Hold-Up Time)1.输入参数 输入电压大小,交流还是直流,相数,频率等。 2.输出参数 输出功率,输出电压,输出…

算法-26. 删除有序数组中的重复项-⭐

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做…

2023-9-10 集合-Nim游戏

题目链接&#xff1a;集合-Nim游戏 #include <iostream> #include <cstring> #include <algorithm> #include <unordered_set>using namespace std;const int N 110, M 10010;int n, m; int s[N], f[M];int sg(int x) {if(f[x] ! -1) return f[x];//…

NeuroFlash:AI文章写作与生成工具

【产品介绍 ​ 】 名称 NeuroFlash 上线时间 2015 具体描述 Neuroflash是一款基于人工智能的文本和图像生成器&#xff0c;可以帮助用户快速创建高质量的内容。Neuroflash拥有超过100种短文和长文的文本类型&#xff0c;涵盖了各种营销场景和需求。只需要输入简单的指示&#…

云计算与虚拟化

一、概念 什么是云计算&#xff1f; 云计算&#xff08;cloud computing&#xff09;是分布式计算的一种&#xff0c;指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序&#xff0c;然后&#xff0c;通过多部服务器组成的系统进行处理和分析这些小程序得到结果…

【LeetCode】210. 课程表 II——拓扑排序

题目链接&#xff1a;210. 课程表 II 题目描述&#xff1a; 现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如…

gmssl v2 用 dgst 命令通过 sm2 签名出的结果,在别的工具上无法验签的问题分析

结论 通过分析发现&#xff0c;导致问题的原因是&#xff1a;gmssl v2 调用的算法不是 sm2 算法。 分析详情 具体情况如下所述 在 gmssl 调用 pkey_ec_init 函数时&#xff0c;默认会把 ec_scheme 设置为 NID_secg_scheme 签名的过程中会调用 pkey_ec_sign 函数&#xff0c…

29.Xaml TreeView控件---->树形控件,节点的形式显示数据

1.运行效果 2.运行源码 a.Xaml源码 <Window x:Class="testView.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic…

删除linux(centos7)系统自带的open jdk,安装配置jdk环境

查看jdk版本 安装的linux自带jdk8版本&#xff0c;我们不用自带的。 安装jdk步骤 1、下载 下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads 2、创建目录 创建文件夹&#xff0c;用来部署JDK&#xff0c;将JDK安装部署到&#xff1a;/export/se…

云原生Kubernetes:pod资源管理与配置

目录 一、理论 1.pod 2.pod容器分类 3.镜像拉取策略 4.pod 的重启策略 二、实验 1.Pod容器的分类 2.镜像拉取策略 三、问题 1.apiVersion 报错 2.pod v1版本资源未注册 3.格式错误 4.取行显示指定pod信息 四、总结 一、理论 1.pod (1) 概念 Pod是kubernetes中…

Matlab学习-自定义函数

Matlab学习-自定义函数 常用自定义函数 文章目录 Matlab学习-自定义函数1. 打印时间2. 计算统计参数3. 画图函数 1. 打印时间 function result calculate_time(time)% Function describe : calculate time% Input : time:N*1% Output : result.hour/min/sec hour/min/sec…

中断子系统 --- 硬件相关层

中断控制器驱动 由于linux支持中断控制器的级联&#xff0c;因此多个中断控制器就可能包含相同的硬件中断号。为了可以通过中断号唯一地标识一个中断&#xff0c;linux引入了irq domain机制以实现将硬件中断号映射为全局唯一的逻辑中断号。 Hwirq映射到irq 每个中断控制器都对…

Day59|leetcode 503.下一个更大元素II、42. 接雨水

leetcode 503.下一个更大元素II 题目链接&#xff1a;503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 视频链接&#xff1a;单调栈&#xff0c;成环了可怎么办&#xff1f;LeetCode&#xff1a;503.下一个更大元素II_哔哩哔哩_bilibili 题目概述 给定一个循环…

HDMI 直通 ILA 调试实验

FPGA教程学习 第十四章 HDMI 直通 ILA 调试实验 文章目录 FPGA教程学习前言实验原理程序设计实验过程实验尝试总结TODO 前言 HDMI 输入直通到 HDMI 输出的显示&#xff0c;完成一个简单的 HDMI 输入输出检测。 实验原理 开发板 HDMI 输出接口芯片使用 ADV7511&#xff0c;HD…

使用Jconsole监控JMX

使用Jconsole监控 Jconsole启动 直接本地启动jdk工具 本地连接 本地启动java应用直接点击就可以连接 本地远程连接 idea启动服务连接 配置运行配置 配置远程参数 -Djava.rmi.server.hostname127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxrem…

【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

【深度学习】 Python 和 NumPy 系列教程(廿二):Matplotlib详解:2、3d绘图类型(8)3D饼图(3D Pie Chart)

一、前言 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名&#xff0c;并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库&#xff0c;可以用于开发各种类型的应用程序&#xff0c;包括Web开发、数据分…

模方新建工程时,显示空三与模型坐标系不一致怎么解决

答:检查空三xml与模型的metadata.xml的坐标系是否一致&#xff0c;metadata文件是否有在data目录外面。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.0新增单体化建模模块&#xff0c;…

CISP认证介绍(CISECISO)

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 什么是CISP CISP &#xff08;Certified Information Security Professional&#xff09; 注册信息安全专业人员资格认证&#xff0c;由中国信息…

第十届IEEE电气工程与自动化国际学术论坛(IFEEA 2023)

第十届IEEE电气工程与自动化国际学术论坛&#xff08;IFEEA 2023&#xff09; 2023 10th International Forum on Electrical Engineering and Automation IFEEA论坛属一年一度的国际学术盛会。因其影响力及重要性&#xff0c;IFEEA论坛自创建筹办以来&#xff0c;便受到国内…