计算机网络体系结构
三种网络分层模型各个层之间的协议和功能★★★★★★
计算机网络体系可以大致分为一下三种,OSI七层模型、TCP/IP四层模型和五层模型。
- OSI七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。
- TCP/IP四层模型:是由实际应用发展总结出来的,从实质上讲,TCP/IP只有最上面三层,最下面一层没有什么具体内容,TCP/IP参考模型没有真正描述这一层的实现。
- 五层模型:五层模型只出现在计算机网络教学过程中,这是对七层模型和四层模型的一个折中,既简洁又能将概念阐述清楚。
OSI 七层模型是什么?每一层的作用是什么?
OSI 七层模型 即开放式通信系统互联参考模型,是国际标准化组织提出的一个网络分层模型,其体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用,而且有些功能在多个层中重复出现,而且是先有了理论模型,没有实际应用
🍈大体结构以及每一层提供的功能如下图所示:
-
应用层:为应用程序提供交互服务,数据单位为报文。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等。
-
表示层:主要负责数据格式的转换,如加密解密、转换翻译、压缩解压缩等,使得应用程序不必关心在各台主机中数据内部格式不同的问题。
-
会话层:**建立并管理会话,**负责在网络中的两节点之间建立、维持和终止通信,如服务器验证用户登录便是由会话层完成的。
-
传输层:为主机进程提供端到端的数据传输服务,包括复用/分用、可靠数据传输、流量控制、差错控制等,数据单位为报文段。协议有 TCP、UDP
-
TCP:提供面向连接的、可靠的数据传输服务;
-
UDP:提供无连接的、尽最大努力的数据传输服务,但不保证数据传输的可靠性。
-
-
网络层:为主机提供数据传输服务,选择合适的路由和交换结点,确保数据及时传送,包括IP选址、路由选择等,数据单位为数据报。协议有 IP、ICMP 。
-
数据链路层:将网络层传下来的IP数据包组装成帧,为同一链路的主机提供数据传输服务,包括封装成帧、差错控制、流量控制等,数据单位为桢,协议有 ARP、RARP
-
物理层:在物理介质上传输数据比特流,尽可能屏蔽传输媒介和通信手段的差异,使数据链路层感觉不到这些差异,实现相邻节点间比特流的透明传输。协议有 IEEE 802
TCP/IP 四层模型是什么?每一层的作用是什么?
TCP/IP 四层模型 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本,由以下 4 层组成:
- 应用层
- 传输层
- 网络层
- 网络接口层
计算机网络为什么要分层?优点? ★★★★★
平时使用框架开发一个后台程序来说,我们往往会按照每一层做不同的事情的原则将系统分为三层(复杂的系统分层会更多):
- Repository(数据库操作)
- Service(业务操作)
- Controller(前后端数据交互)
🍉复杂的系统需要分层,因为每一层都需要专注于一类事情。网络分层的原因也是一样,每一层只专注于做一类事情。
- 🍏各层相互独立,下层为上层提供服务,上层无需知道下层如何实现,只需使用下层提供的接口,这样可以将复杂的问题分解为多个容易处理的子问题
- 🍐灵活性好,当某层需要修改时,只需保持接口不变,不影响其他层的使用
- 🍑易于实现和维护,整个系统被划分为多个独立的子系统
- 促进标准化工作,因为每层的功能及其提供的服务可以通过协议来说明,如RFC文档
- 分层使得计算机网络系统具有很强的可扩展性
- 分层网络协议的设计和实现使得网络运营商、网络设备供应商和网络应用开发商能够各司其职,功能分明,有益于网络的推广
端到端通信和点到点通信的区别?
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务, 而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信, 它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程) 之间的通信。”端” 是指用户程序的端口,端口号标识了应用层中不同的进程。
计算机网络的主要功能?
1、硬件资源共享
可以在全网范围内提供对处理资源、存储资源、输入输出资源等昂贵设备的共享,使用户节省投资,也便于集中管理和均衡分担负荷。
2、软件资源共享
允许互联网上的用户远程访问各类大弄数据库,可以得到网络文件传送服务、远地进程管理服务和远程文件访问服务,从而避免软件研制上的重复劳动以及数据资源的重复存贮,也便于集中管理。
3、用户间信息交换
计算机网络为分布在各地的用户提供了强有力的通信手段。用户可以通过计算机网络传送电子邮件、发布新闻消息和进行电子商务活动。
4、分布式处理
当计算机网络中某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率
主机间的通信方式?
**客户-服务器(C/S):**有一个主机作为服务器,负责接受客户端的请求,客户是服务的请求方,服务器是服务的提供方
- 优点:随时提供服务、方便管理
- 缺点:可扩展性差、服务器压力、会出现单点失效问题
**对等(P2P):**不区分客户和服务器,每个主机既是客户端,又是服务器
- 优点:减轻了服务器的压力,提高了资源利用效率;可扩展性好;网络鲁棒性强,不会出现单点失效问题;去中心化
- 缺点:消息延迟(消息是随机转发给其他节点,需多次转发才能到达)、消息重复(每个节点都转发,会重复收到消息)、不方便管理
网络中的主机通信流程★★
- 主机A和主机B在同一个二层网络,直接走二层交换
主机 A 查看自己的 ARP 缓存,检查是否有主机 B 的 IP 到 MAC 的映射,如果有映射,构造报文,目的 IP 为主机 B 的 IP,源 IP 为主机 A 的 IP,目的 MAC 为主机 B 的 MAC,源 MAC 为主机 A 的 MAC,将报文发送给交换机 C
交换机 C 进行MAC 地址表学习,将主机 A 的 MAC 和报文入端口号记录下来,然后交换机 C 查看自己的 MAC 转发表,检查是否有主机 B 的 MAC 到端口的映射
如果有映射,获取对应的端口,将报文从此端口转发出去,报文到达主机 B。
如果交换机 C 没有主机 B 的 MAC 转发表映射,采用洪泛的形式广播报文,主机 B 收到报文后向主机 A 回复,交换机 C 进行 MAC 表学习,将主机B 的 MAC 和报文入端口号记录下来。
如果主机 A 没有主机 B 的 ARP 映射,主机 A 需要发送 ARP 请求,以获取主机B 的 MAC ,将报文发往交换机 C,交换机 C 采用洪泛的形式广播报文,主机 B 收到广播报文后,在自己的 ARP 缓存表中写入主机 A 的 IP 到 MAC 的映射,将自己的 MAC 封装到 ARP 回复报文中,单播给主机 A,主机 A 获取到主机 B 的 MAC后,在自己的 ARP 缓存表中写入主机 B 的 IP 到 MAC 的映射,构造报文发送给主机 B,过程同上。
主机 B 向主机 A 回复报文的过程类似
- 主机A和主机B不在同一个网络中,走三层路由
主机 A 查看自己的 ARP 缓存表,检查是否有路由器 E 的 IP 到 MAC 的映射,如果有映射,获取路由器 E 的 MAC,构造报文,目的 IP 为主机 B 的 IP,源 IP 为主机 A 的 IP,目的 MAC 为路由器 E 的 MAC,源 MAC 为主机 A 的 MAC,将报文通过交换机 C 发往路由器E,过程同上。 如果主机 A 没有路由器 E 的 IP 到 MAC 的映射,需要发送 ARP 请求,获取路由器 E 的 MAC,过程同上。路由器 E 收到主机A 的报文后,剥离报文的 MAC 帧头,查询路由表,发现目标主机 B 所在的网络是直连的,查看自己的 ARP 缓存表,如果有主机 B 的 IP 到 MAC 的映射关系,获取主机 B 的 MAC,封装报文 MAC 帧头,目的 MAC 为主机 B 的 MAC,源 MAC 为路由器 E 的 MAC,将报文通过交换机 D 发往主机 B,如果路由器 E 没有主机 B 的 IP 到MAC 的映射关系,需要发送 ARP 请求,获取主机 B 的 MAC,过程同上。
主机B向主机A回复报文的过程类似
路由器上的路由表一般是配置静态路由或者通过路由协议自动学习的
电路交换,报文交换和分组交换的区别
- 电路交换:整个报文的比特流从源点连续的直达终点,像在一个管道中传输。包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
- 报文交换:将整个报文转发到相邻节点,全部存储下来,查找转发表,转发到下一个节点。是存储-转发类型的网络。
- 分组交换:将报文分组转发到相邻节点,查找转发表,转发到下一个节点。也是存储-转发类型的网络。
计算机网络的主要性能指标
速率
注意速率的换算单位与存储容量的换算单位: 1kb/s = 1000 b/s 1kb = 1024 b
带宽
本来表示通信线路允许通过的信号频带范围,但在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,通常指单位时间内,数字信道所能传送的“最高数据率”,单位是比特/秒(b/s)。
网络设备所支持的最高速度
吞吐量
时延
总时延 = 排队时延 + 处理时延 + 传输时延 + 传播时延
- (1) 排队时延 :分组在链路上等待传输时所需的时间,分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
- (2) 处理时延 :主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
- (3) 传输时延(发送时延) :结点将分组所有比特推向链路所需的时间。
- (4) 传播时延 :从当前链路起点到下一个路由器传播所需要的时间,电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。
时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为单位的链路长度,即
时延带宽积 = 传播时延 * 信道带宽
往返时延RTT
利用率
常见的网络协议
应用层有哪些常见的协议?
- HTTP(Hypertext Transfer Protocol,超文本传输协议):基于 TCP 协议,是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的
- SMTP(Simple Mail Transfer Protocol,简单邮件发送协议):基于 TCP 协议,是一种用于发送电子邮件的协议。注意 ⚠️:SMTP 协议只负责邮件的发送,而不是接收。要从邮件服务器接收邮件,需要使用 POP3 或 IMAP 协议
- POP3/IMAP(邮件接收协议):基于 TCP 协议,两者都是负责邮件接收的协议。IMAP 协议是比 POP3 更新的协议,它在功能和性能上都更加强大。IMAP 支持邮件搜索、标记、分类、归档等高级功能,而且可以在多个设备之间同步邮件状态。几乎所有现代电子邮件客户端和服务器都支持 IMAP。
- FTP(File Transfer Protocol,文件传输协议) : 基于 TCP 协议,是一种用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式。注意 ⚠️:FTP 是一种不安全的协议,因为它在传输过程中不会对数据进行加密。建议在传输敏感数据时使用更安全的协议,如 SFTP。
- Telnet(远程登陆协议):基于 TCP 协议,用于通过一个终端登陆到其他服务器。Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。这就是为什么如今很少使用 Telnet,而是使用一种称为 SSH 的非常安全的网络传输协议的主要原因。
- SSH(Secure Shell Protocol,安全的网络传输协议):基于 TCP 协议,通过加密和认证机制实现安全的访问和文件传输等业务
- RTP(Real-time Transport Protocol,实时传输协议):通常基于 UDP 协议,但也支持 TCP 协议。它提供了端到端的实时传输数据的功能,但不包含资源预留存、不保证实时传输质量,这些功能由 WebRTC 实现。
- DNS(Domain Name System,域名管理系统): 基于 UDP 协议,用于解决域名和 IP 地址的映射问题
传输层有哪些常见的协议?
- TCP(Transmission Control Protocol,传输控制协议 ):提供 面向连接 的,可靠 的数据传输服务。
- UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。
网络层有哪些常见的协议?
IP(Internet Protocol,网际协议):TCP/IP 协议中最重要的协议之一,属于网络层的协议,主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。目前 IP 协议主要分为两种,一种是过去的 IPv4,另一种是较新的 IPv6,目前这两种协议都在使用,但后者已经被提议来取代前者。
ARP(Address Resolution Protocol,地址解析协议):ARP 协议解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。
ICMP(Internet Control Message Protocol,互联网控制报文协议):一种用于传输网络状态和错误消息的协议,常用于网络诊断和故障排除。例如,Ping 工具就使用了 ICMP 协议来测试网络连通性。
NAT(Network Address Translation,网络地址转换协议):NAT 协议的应用场景如同它的名称——网络地址转换,应用于内部网到外部网的地址转换过程中。具体地说,在一个小的子网(局域网,LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。
OSPF(Open Shortest Path First,开放式最短路径优先) ):一种内部网关协议(Interior Gateway Protocol,IGP),也是广泛使用的一种动态路由协议,基于链路状态算法,考虑了链路的带宽、延迟等因素来选择最佳路径。
RIP(Routing Information Protocol,路由信息协议):一种内部网关协议(Interior Gateway Protocol,IGP),也是一种动态路由协议,基于距离向量算法,使用固定的跳数作为度量标准,选择跳数最少的路径作为最佳路径。
BGP(Border Gateway Protocol,边界网关协议):一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议,具有高度的灵活性和可扩展性。
Internet与internet区别:
以小写字母i开始的internet(互联网或互连网)是一个通用名词,它泛指多个计算机网络互连而组成的网络,在这些网络之间的通信协议(即通信规则)可以是任意的。
以大写字母 I 开始的 Internet(因特网)则是一个专用名词,它指当前世界上最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且前身是美国的ARPANET
国际标准的互联网写法是 internet,字母 i 一定要小写!跨国性的超大互联网不仅有因特网,还有惠多网。 因特网是互联网的一种。因特网可不是仅有两台机器组成的互联网,它是由上千万台设备组成的互联网。因特网使用 TCP/IP 协议让不同的设备可以彼此通信。但使用 TCP/IP 协议的网络并不一定是因特网,一个局域网也可以使用 TCP/IP 协议。判断自己是否接入的是因特网,首先是看自己电脑是否安装了 TCP/IP 协议,其次看是否拥有一个公网地址(所谓公网地址,就是所有私网地址以外的地址)。国际标准的因特网写法是 Internet,字母 I 一定要大写!
网络把许多计算机连接起来,而互联网把许多网络连接起来,因特网是世界上最大的互联网
计算机网络提供的服务的三种分类?
1、面向连接服务与无连接服务
在面向连接服务中, 通信前双方必须先建立连接, 分配相应的资源(如缓冲区), 以保证通信能正常进行, 传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。在无连接服务中, 通信前双方不需要先建立连接, 需要发送数据时可直接发送,把每个带有目的地址的包(报文分组) 传送到线路上, 由系统选定路线进行传输。这是一种不可靠的服务。这种服务常被描述为“尽最大努力交付" (Best-Effort-Delivery), 它并不保证通信的可靠性。例如IP、UDP就是一种无连接服务的协议。
2、可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制, 能保证数据正确、可靠地传送到目的地。不可靠服务是指网络只是尽晕正确、可靠地传送, 而不能保证数据正确、可靠地传送到目的地, 是一种尽力而为的服务。对于提供不可靠服务的网络, 其网络的正确性、可靠性要由应用或用户来保障。例如, 用户收到信息后要判断信息的正确性, 如果不正确, 那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施, 可以把不可靠的服务变成可靠的服务。
3、有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现, 而不由用户实现。所发送的应答既可以是肯定应答, 也可以是否定应答, 通常在接收到的数据有错误时发送否定应答。例如, 文件传输服务就是一种有应答服务。无应答服务是指接收方收到数据后不自动给出应答。若需要应答, 则由高层实现。例如, 对于WWW服务, 客户端收到服务器发送的页面文件后不给出应答。
计算机网络和分布式系统的异同
-
同:
- 分布式系统是建立在计算机网络之上的,他们在物理结构上基本相同
- 他们都具有通信和资源共享的功能
-
异: 有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现, 而不由用户实现。所发送的应答既可以是肯定应答, 也可以是否定应答, 通常在接收到的数据有错误时发送否定应答。例如, 文件传输服务就是一种有应答服务。无应答服务是指接收方收到数据后不自动给出应答。若需要应答, 则由高层实现。例如, 对于WWW服务, 客户端收到服务器发送的页面文件后不给出应答。
计算机网络和分布式系统的异同
-
同:
- 分布式系统是建立在计算机网络之上的,他们在物理结构上基本相同
- 他们都具有通信和资源共享的功能
-
异: 计算机网络是分布式系统的基础,分布式系统是计算机网络技术发展的高级阶段(应用)他们的区别主要在高层软件上,分布式系统是建立在网络上的软件系统,用户不必关心网络环境