一、网络协议
1.1 什么是网络协议
网络协议:network protocol。是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的动作(action)
协议规范了网络中所有信息发送和接收过程:
-
语法(Syntax)
- 数据与控制信息的结构和格式
- 信号电平
-
语义(Semantics)
- 需要发出何种控制信息
- 完成何种动作以及做出何种响应
- 差错控制
-
时序(Timing)
- 事件顺序
- 速度匹配
1.2 为什么需要网络协议
网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同。因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。就像我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信
举个栗子:张三说客家话,李四说粤语,并且彼此不懂对方的语言。这种情况下,两人交流就是鸡同鸭讲,谁也不知道对方在说什么。如果此时,来了一个人王五即可以讲客家话也能讲粤语,他就可以作为张三和李四的“桥梁”,将张三的话翻译成粤语给李四,将李四的话翻译成客家话给张三。
通过上面的例子,“王五”就是那个“网络协议”,为不同数据端提供一个桥梁,使得不同的数据端能够进行正常通信。
1.3 一次请求都需要用到哪些协议
- 传输数据 - 网络层的IP层协议。首先如何知道对应的机器的地址?通过IP可以确认具体的机器
- 找到目标机器后 - 传输层的TCP层协议。需要知道该机器上哪个程序接收本次请求?通过端口可以确定具体的程序
- 确定程序后,区分请求 - 应用层的RPC协议。如何区分不同的请求呢?如果将每个请求关联对应的响应呢?通过消息id区分
- 以上这些最后是由物理层的光缆、电缆、无线信道等支持的,如何控制信号在物理层之上的传递,还需要PPP协议、ARP协议等。
1.4 不同层的协议简介
二、应用层的协议
2.1 HTTP协议 - 超文本传输协议
- HTTP:Hyper Text Transfer Protocol,超文本传输协议。
- 概述:是一个简单的请求 - 响应协议。是一个基于 TCP/IP 通信协议来传递数据(HTML文本、图片文件、查询结果等)
- 作用:它制定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
2.2 HTTPS协议 - 超文本传输协议
- HTTPS:Hyper Text Transfer Protocol over SecureSocket Layer。超文本传输协议。
- 组成:HTTPS = HTTP + SSL/TLS。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。
- 作用:HTTPS的开发目的,是提供网站服务器的身份认证,保护交换资料的隐私和完整性
拓展:
2.3 RPC协议 - 远程过程调用协议
- RPC:Remote Procedure Call
- 概述:是一种自定义网络协议,由具体框架来定
2.4 RTMP协议 - 实时消息协议
- RTMP:Real Time Messaging Protocol
- 概述:基于TCP的数据传输协议
2.5 P2P协议 - 点对点协议
- P2P:peer-to-peer
- 概述:用于文件分发的
2.6 DNS协议 - 域名系统协议
参考:计算机网络 | 图解 DNS & HTTPDNS 原理
- DNS:Domain Name System
- 概述:是将域名解析为 IP 地址的一项互联网基础服务
2.7 GTP协议 - 隧道协议
参考:GPRS隧道协议
- GTP:GPRS Tunnelling Protocol
- 概述:是一组基于IP的通信协议,用于在GSM、UMTS和LTE网络中承载GPRS
2.8 DHCP协议 - 动态主机设置协议
参考:动态主机设置协议
- DHCP:Dynamic Host Configuration Protocol。又称 动态主机组态协定
- 概述:是一个用于IP网络的网络协议,使用UDP协议工作。用于 内部网或网络服务供应商自动分配IP地址给用户,或内部网管理员对所有电脑作中央管理。
三、传输层的协议
3.1 TCP协议 - 传输控制协议
参考: 传输控制协议
- TCP:Transmission Control Protocol。
- 概述:是一种面向连接的、可靠的、基于字节流的传输层通信协议
3.2 UDP协议 - 用户数据报协议
参考:用户数据报协议
- UDP:User Datagram Protocol
- 概述:是一个简单的面向数据包的通信协议。为网络层以上和应用层以下提供了一个简单的接口
四、网络层的协议
4.1 OSPF协议 - 开放式最短路径优先
参考:开放式最短路径优先
- OSPF:Open Shortest Path First
- 概述:是一种基于IP协议的路由协议。是对链路状态路由协议的一种实现,运作于自治系统内部
4.2 BGP协议 - 边界网管协议
参考:BGP协议
- BGP:Border Gateway Protocol
- 概述:是一种用来在路由选择域之间交换网络层可达性信息的路由选择协议
4.3 IPSec协议 - 互联网安全协议
参考:IPSec协议
- IPSec:Internet Protocol Security
- 概述:是一个协议包,透过对 IP协议 的分组进行 加密 和 认证 来保护IP协议的网络传输协议组
4.4 IP协议 - 网际协议
参考:网际协议
- IP:Internet Protocol。网际协议,又称 互联网协议
- 概述:是用于分组交换数据网络的协议。是在TCP/IP协议簇中的主要协议,任务仅仅是根据源主机和目的主机的地址来传送数据。
4.5 GRE协议 - 通用路由封装
参考:通用路由封装
- GRE:Generic Routing Encapsulation
- 概述:是一种可以在虚拟点对点链路中封装多种网络层协议的隧道协议
4.6 ICMP协议 - 互联网控制协议
参考:互联网控制协议
- ICMP:Internet Control Message Protocol
- 概述:是互联网协议族的核心协议之一。它用于网际协议中发送控制消息,提供可能发生在通信环境中的各种问题反馈
五、数据链路层的协议
5.1 ARP协议 - 地址解析协议
参考:地址解析协议
- ARP:Address Resolution Protocol
- 概述:是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议
5.2 STP协议 - 生成树协议
参考:STP协议
- STP:Spanning Tree Protocol
- 概述:是一个用于局域网中消除环路的协议。STP的主要目的就是确保在网络中存在冗余路径时,不会产生环路。
5.3 PPP协议 - 点对点协议
参考:点对点协议
- PPP:Point-Point Protocol
- 概述:是数据链路层封装协议的一种。它通常用在两节点间创建直接的连接,并可以提供连接认证、传输加密以及压缩。
5.4 CSMA/CD协议 - 载波监听多点接入/碰撞检测协议
参考:CSMA/CD协议
- CSMA/CD:Carrier Sense Multiple Access With Collision Detection
- 概述:是一种争用型的介质访问控制协议。主要是提供寻址和媒体存取的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信而不相互冲突。