Network_计算机网络协议架构简介

一、网络协议

1.1 什么是网络协议

网络协议(network protocol) 是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

计算机网络中互相通信的对等实体之间交换信息时,可能由于这两端所用字符集不同。为了能进行通信,规定每一端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的端之后,再变换为该端字符集的字符。就像我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信。

网络协议规定了通信实体之间所交换的消息的 格式意义顺序 以及针对收到信息或发生的事件所采取的 动作(action)

网络协议是由三个要素组成:

  • 语法(Syntax):语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。

  • 语义(Semantics):语义是解释控制信息每个部分的意义,它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。

  • 时序(Timing):时序是对事件发生顺序的详细说明,(也可称为“同步”)。

Tips: 语义(Semantics) 表示要做什么,语法(Syntax) 表示要怎么做,时序(Timing) 表示做的顺序。

1.2 常见的计算机网络体系结构

OSI体系结构(7层) 是理论上的国际标准,但是在生产商的真正生产应用过程中,利用的是 TCP/IP体系结构(4层)。在TCP/IP体系结构中,有时又将链路层(网络接口层),分成了数据链路层和物理层,被称为原理体系结构(5层)。 OSI七层模型和TCP/IP协议的四层模型

在TCP/IP体系体系结构中各个层要解决的问题:

  • 物理层:解决在各种传输媒体上传输0和1的问题
  • 数据链路层:解决分组在一个网络(或一段链路)上传输的问题
  • 网络层:解决分组在多个网络上传输(路由)的问题
  • 运输层:解决进程之间基于网络的通信问题
  • 应用层:解决通过应用程序的交互来实现特定网络应用的问题

1.3 OSI模型的七层结构:

  • 应用层:负责为应用软件提供网络服务。
  • 表示层:负责处理两个通信系统中交换信息的表示方式。
  • 会话层:负责在数据传输中设置和维护网络上两节点间的通信连接。
  • 传输层:负责提供端对端的接口。
  • 网络层:负责对子网间的数据进行路由选择。
  • 数据链路层:负责在网络实体间建立和维护数据链路。
  • 物理层:负责管理电脑硬件设备功能,如电缆、集线器、中继器等。

1.4 TCP/IP模型的四层结构:

  • 应用层:向用户提供一组常用的应用程序。
  • 传输层:提供了主机到主机的通信服务,包括通用的可靠服务使用面向连接的TCP实现,以及一般的不可靠的服务使用无连接的UDP实现。
  • 网络层:这一层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报首部,考查IP首部,通常有多个首部,包括IP选项。
  • 网络接口层:这是TCP/IP模型的最低层,负责管理电脑硬件设备功能。

1.5 TCP/IP模型的五层结构:

  • 应用层:负责程序之间的沟通,简单的电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议等(Telent)等。
  • 传输层:负责两台主机之间的数据传输。
  • 网络层:负责地址管理和路由选择。
  • 数据链路层:负责设备之间的数据帧的传送和识别。
  • 物理层:负责光/电信号的传递方式。

1.6 OSI七层模型和TCP/IP协议模型的区别

  1. TCP/IP是一个协议簇;而OSI(开放系统互联)则只是一个模型,且TCP/IP的开发时间在OSI之前,TCP/IP参考模型比OSI参考模型层次更清晰简练。

  2. TCP/IP是由一些交互性的模块做成的分层次的协议,其中每个模块提供特定的功能;OSi则指定了哪个功能是属于哪一层的。TCP/IP参考模型比OSI参考模型有更好的网络管理功能。

  3. TCP/IP是五层结构,而OSI是七层结构。OSI的最高三层在TCP中用应用层表示。

  4. 五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP,对于我们程序猿来说,我们需要搞懂 TCP/IP五层协议 中的前四种协议即可。因为物理层主要是一些传输介质(网线等)类似于电脑的硬件部分,我们软件开发无需深入了解哈。

二、应用层的协议

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:Domain Name System
  • 概述:是将域名解析为 IP 地址的一项互联网基础服务

2.7 GTP协议 - 隧道协议

  • 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:Border Gateway Protocol
  • 概述:是一种用来在路由选择域之间交换网络层可达性信息的路由选择协议

4.3 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:Spanning Tree Protocol
  • 概述:是一个用于局域网中消除环路的协议。STP的主要目的就是确保在网络中存在冗余路径时,不会产生环路。

5.3 PPP协议 - 点对点协议

  • PPP:Point-Point Protocol
  • 概述:是数据链路层封装协议的一种。它通常用在两节点间创建直接的连接,并可以提供连接认证、传输加密以及压缩。

5.4 CSMA/CD协议 - 载波监听多点接入/碰撞检测协议

  • CSMA/CD:Carrier Sense Multiple Access With Collision Detection
  • 概述:是一种争用型的介质访问控制协议。主要是提供寻址和媒体存取的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信而不相互冲突。