计算机网络体系结构

本文详细介绍了计算机网络的经典体系结构,包括五层协议模型、OSI七层模型以及TCP/IP协议模型。重点讲解了各层的主要功能,如应用层的交互、传输层的TCP与UDP协议、网络层的IP协议以及数据链路层的帧传输和物理层的比特流传输。此外,还讨论了数据在各层之间的传递过程和协议的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0d3zBtII-1631114012833)(…/…/images/计算机网络分层网络体系结构基本概念图.PNG)]

经典网络体系结构有三种,分为是简单的TCP/IP结构五层结构OSI七层结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z7eUxc28-1631114012837)(…/…/images/计网各种协议的作用层.PNG)]

1. 五层协议模型

前面提到,计算机网络的功能包括实现计算机集合间的互联,从使用者来说,就是实现两个计算机程序间的互联,比如说QQ、微信,计算机网络最常见的功能就是实现两台计算机上软件间的信息传递

人们通常将整个计算机网络构建为多个模型,其中最经典的就是五层协议模型。

1.1 应用层

在人们使用计算机时,计算机与使用者的直接交互点就是计算机软件,而五层模型把软件等划分为应用层,由此可见应用层的任务就是通过应用进程间的交互来完成特定网络应用。

**应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用,直接为应用进程提供服务的。**应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。

对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。

1.2 传输层

现在,我们使用应用层的软件已经生成了报文,下一步就是实现报文在两台计算机集合内的传递,这就是运输层的功能,运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。运输层的引入实现了多种应用可以使用同一个运输层服务,因此运输层有复用和分用的功能。

  • 复用:指多个应用层进程可同时使用下面运输层的服务
  • 分用:指运输层把收到的信息分别交付上面应用层中的相应进程。

运输层主要使用以下两种协议:

  1. 传输控制协议 TCP(Transmission Control Protocol)–提供面向连接的,可靠的数据传输服务。
  2. 用户数据协议 UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。

1.3 网络层

现在运输层已经实现了应用层应用的复用分用功能,

1.4 数据链路层

1.5 物理层

物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异, 使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。

通信方式

根据信息在传输线上的传送方向,分为以下三种通信方式:

  • 单工通信:单向传输

  • 半双工通信:双向交替传输

  • 全双工通信:双向同时传输

带通调制

模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。

1.2 数据链路层

  • 负责节点-节点间的数据传输
  • 组帧:将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
  • 物理寻址在帧头中增加发送端和接收端的物理地址标识数据
  • 差错检测:目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
  • 流量控制:避免淹没接收端
  • **接入(访问)控制:**在任一给定时刻决定哪个设备拥有链路控制使用权

透明传输

透明表示一个实际存在的事物看起来好像不存在一样。帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。

信道分类

广播信道

一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。

主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用 CSMA/CD 协议。

点对点信道

一对一通信。因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。

CSMA/CD 协议

CSMA/CD 表示载波监听多点接入 / 碰撞检测。

多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。

载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。

碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送

数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, …, (2k -1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。

PPP 协议

互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

PPP 的帧格式:

  • F 字段为帧的定界符

  • A 和 C 字段暂时没有意义

  • FCS 字段是使用 CRC 的检验序列

  • 信息部分的长度不超过 1500

MAC 地址

MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。

一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配

器,因此就有两个 MAC 地址。

局域网

局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。可以按照网络拓扑结构对局域网进行分类: 星形环形直线形

以太网

以太网是一种星型拓扑结构局域网。

早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。

目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转

发。

以太网帧格式:

类型 :标记上层使用的协议;

数据 :长度在 46-1500 之间,如果太小则需要填充;

FCS :帧检验序列,使用的是 CRC 检验方法;

+++

1.3 网络层

###3.1 网络层协议

因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。

与 IP 协议配套使用的还有三个协议:

  • 地址解析协议 ARP(Address Resolution Protocol)

  • 网际控制报文协议 ICMP(Internet Control Message Protocol)

  • 网际组管理协议 IGMP(Internet Group Management Protocol)

IP 数据报格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NeWvU0Do-1631114012839)(…/…/…/images/IP数据报的格式.png)]

版本 : 有 4(IPv4)和 6(IPv6)两个值;

首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为固定部分长

度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。

区分服务 : 用来获得更好的服务,一般情况下不使用。

总长度 : 包括首部长度和数据部分长度。

生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL

为 0 时就丢弃数据报。

协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。

首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算

的工作量。

标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。

片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。

IP 地址编址方式

IP 地址的编址方式经历了三个历史阶段:分类,子网划分,无分类

**** 分类:由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。

2. 子网划分:通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。

3. 无分类:无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。

地址解析协议 ARP

网际控制报文协议 ICMP

虚拟专用网 VPN

网络地址转换 NAT

+++

1.4 传输层

1.4.1 传输层功能

  • 分段和重组
  • SAP寻址
  • 端到端的连接控制

网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。

+++

1.5. 应用层

1.5.1 应用层协议

网络应用应该遵循应用协议,包括公开协议和私有协议

协议内容包括:

  • 消息的类型:请求消息还是响应消息
  • 消息的语法格式:
  • 字段的语义:字段中信息的含义
  • 规则:进程间何时发送/相应消息

域名系统

DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每个站点只保留它自己的那部分数据。域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。

DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。在两种情况下会使用 TCP 进行传输:如果返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)。区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。

文件传送协议

FTP 使用 TCP 进行连接,它需要两个连接来传送一个文件:

  • 控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答。

  • 数据连接:用来传送一个文件数据。

根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式:

  • 主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于1024,因为 0~1023 是熟知端口号。
  • 被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙。但是被动模式会导致服务器端的安全性减弱,因为开放了过多的端口号。

动态主机配置协议

DHCP (Dynamic Host Confifiguration Protocol) 提供了即插即用的连网方式,用户不再需要手动配置 IP 地址等信息。

DHCP 配置的内容不仅是 IP 地址,还包括子网掩码、网关 IP 地址。

DHCP 工作过程如下:

  1. 客户端发送 Discover 报文,该报文的目的地址为 255.255.255.255:67,源地址为 0.0.0.0:68,被放入 UDP中,该报文被广播到同一个子网的所有主机上。如果客户端和 DHCP 服务器不在同一个子网,就需要使用中继代理。

  2. DHCP 服务器收到 Discover 报文之后,发送 Offffer 报文给客户端,该报文包含了客户端所需要的信息。因为客户端可能收到多个 DHCP 服务器提供的信息,因此客户端需要进行选择。

  3. 如果客户端选择了某个 DHCP 服务器提供的信息,那么就发送 Request 报文给该 DHCP 服务器。

  4. DHCP 服务器发送 Ack 报文,表示客户端此时可以使用提供给它的信息。

Web 页面请求过程

** DHCP** 配置主机信息

  • 假设主机最开始没有 IP 地址以及其它信息,那么就需要先使用 DHCP 来获取。

  • 主机生成一个 DHCP 请求报文,并将这个报文放入具有目的端口 67 和源端口 68 的 UDP 报文段中。

  • 该报文段则被放入在一个具有广播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 数据报中。该数据报则被放置在 MAC 帧中,该帧具有目的地址 FF:FF:FF:FF:FF:FF,将广播到与交换机连接的所有设备。

  • 连接在交换机的 DHCP 服务器收到广播帧之后,不断地向上分解得到 IP 数据报、UDP 报文段、DHCP 请求报文,之后生成 DHCP ACK 报文,该报文包含以下信息:IP 地址、DNS 服务器的 IP 地址、默认网关路由器的 IP地址和子网掩码。该报文被放入 UDP 报文段中,UDP 报文段有被放入 IP 数据报中,最后放入 MAC 帧中。

  • 该帧的目的地址是请求主机的 MAC 地址,因为交换机具有自学习能力,之前主机发送了广播帧之后就记录了MAC 地址到其转发接口的交换表项,因此现在交换机就可以直接知道应该向哪个接口发送该帧。

  • 主机收到该帧后,不断分解得到 DHCP 报文。之后就配置它的 IP 地址、子网掩码和 DNS 服务器的 IP 地址,并在其 IP 转发表中安装默认网关。

2. ARP 解析 MAC 地址

  • 主机通过浏览器生成一个 TCP 套接字,套接字向 HTTP 服务器发送 HTTP 请求。为了生成该套接字,主机需要知道网站的域名对应的 IP 地址。

  • 主机生成一个 DNS 查询报文,该报文具有 53 号端口,因为 DNS 服务器的端口号是 53。

  • 该 DNS 查询报文被放入目的地址为 DNS 服务器 IP 地址的 IP 数据报中。

  • 该 IP 数据报被放入一个以太网帧中,该帧将发送到网关路由器。

  • DHCP 过程只知道网关路由器的 IP 地址,为了获取网关路由器的 MAC 地址,需要使用 ARP 协议。

  • 主机生成一个包含目的地址为网关路由器 IP 地址的 ARP 查询报文,将该 ARP 查询报文放入一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧转发给所有的连接设备,包括网关路由器。

  • 网关路由器接收到该帧后,不断向上分解得到 ARP 报文,发现其中的 IP 地址与其接口的 IP 地址匹配,因此就发送一个 ARP 回答报文,包含了它的 MAC 地址,发回给主机。

3. DNS 解析域名

  • 知道了网关路由器的 MAC 地址之后,就可以继续 DNS 的解析过程了。
  • 网关路由器接收到包含 DNS 查询报文的以太网帧后,抽取出 IP 数据报,并根据转发表决定该 IP 数据报应该转发的路由器。
  • 因为路由器具有内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,因此路由表中已经配置了网关路由器到达 DNS 服务器的路由表项。
  • 到达 DNS 服务器之后,DNS 服务器抽取出 DNS 查询报文,并在 DNS 数据库中查找待解析的域名。
  • 找到 DNS 记录之后,发送 DNS 回答报文,将该回答报文放入 UDP 报文段中,然后放入 IP 数据报中,通过路由器反向转发回网关路由器,并经过以太网交换机到达主机。

4. HTTP 请求页面

  • 有了 HTTP 服务器的 IP 地址之后,主机就能够生成 TCP 套接字,该套接字将用于向 Web 服务器发送 HTTP GET 报文。

  • 在生成 TCP 套接字之前,必须先与 HTTP 服务器进行三次握手来建立连接。生成一个具有目的端口 80 的 TCP SYN 报文段,并向 HTTP 服务器发送该报文段。

  • HTTP 服务器收到该报文段之后,生成 TCP SYN ACK 报文段,发回给主机。

  • 连接建立之后,浏览器生成 HTTP GET 报文,并交付给 HTTP 服务器。

  • HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。

  • 浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,之后进行渲染,显示 Web 页面。

  • 应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。

  • 传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。

  • 网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。

  • 数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。

  • 物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

2. OSI七层模型

OSI七层网络模型在经典五层协议的应用层基础上拓展了新的两层,分别是表示层和会话层。

其中表示层和会话层用途如下:

表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。

会话层 :建立及管理会话。

3. TCP/IP协议模型

TCP/IP协议模型在经典五层模型之上进行了简化,一般来说其包括了

  • 网络接口层
  • 网际层
  • 运输层
  • 应用层

4. 层际协议

层级协议是控制两个对等实体进行通信的规则的集合,协议是水平的。

(根据OSI模型分类)

  • 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)

  • 数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)

  • 网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)

  • 传输层:TCP、UDP、SPX

  • 会话层:NFS、SQL、NETBIOS、RPC

  • 表示层:JPEG、MPEG、ASII

  • 应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

5. 数据在各层之间的传递过程

在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。也就是数据封装和数据拆封

为什么要数据封装:

  • 增加控制信息:构造协议数据单元(PDU)

控制信息包括什么:

  • 地址:标识发送端、接收端
  • 差错检测编码:用于差错检测或纠正
  • 协议控制:实现协议功能的附加信息。如:优先级、服务质量、安全控制等

路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值