计算机网络是计算机技术与通信技术相互结合的产物。
计算机网络的组成
一般而论,计算机网络有三个主要组成部分:若干个主机
,它们为各用户提供服务;一个通信子网
,它主要由节点交换机和连接这些节点的通信链路组成;一系列协议
,这些协议是为在主机与主机之间、主机与子网之间、子网中各节点之间的通信而用的,是通信双方事先约定好的、必须遵守的规则。
计算机网络的功能
数据通信
链接的建立和拆除
数据传输控制
差错检测
流量控制
路由选择
多路复用
计算机网络的性能指标
带宽
带宽(bandwidth)本来是指模拟信道中信号具有的频带宽度,单位是Hz(或 KHz、MHz、GHz 等)。
计算机网络中的带宽是指数字信道可通过最高数据率,即每秒比特(bit)数,单位是比特每秒(b/s 或 bit/s)。
Mbps、Mb/s、MB/s傻傻分不清?
8Mbps=8Mb/s=1MB/s
推荐参考文章:一文看懂Mbps、Mb/s、MB/s 有什么区别
吞吐量
单位时间内通过某个网络(或信道、接口)的数据量,用于对现实世界中网络的测量,以便知道实际上到底有多少数据量能够通过网络。显然吞吐量受网络的带宽或网络额定速率的限制。
可理解为网络的实际带宽
时延 ⭐
- 发送时延,又称传输时延:(带宽越宽 时延越短)
发送时延 = 数据块长度(bit)/信道宽度(bit/s)即 发送的数据 发送完毕需要的时间 - 传播时延:(距离越近 时延越短)
传播时延 = 信道长度(m)/信号在信道上传播的速率(m/s)即 电磁波传播一定距离花费的时间 - 处理时延:换节点为存储转发而进行必要的处理所花费的时间。
- 排队时延:节点缓存队列中分组排队所经历的时延。排队时延的长短往往取决于网络当中当时的通信量。
总时延
= 发送时延
+ 传播时延
+ 处理时延
+ 排队时延
时延带宽积
时延带宽积 = 传播时延 × 带宽
用于表示 通信链路上已经传输但尚未收到的比特数
往返时延 RTT(Round-Trip Time) ⭐
数据在链路上从发送端到接收端,再从接收端返回发送端的时间总和。
在互联网中,往返时延还包括中间节点的处理时延、排队时延以及转发数据时的发送时延。
RRT = 传播时延 + 各中间结点的处理时延、排队时延以及转发数据时的发送时延
有些资料书对RRT的定义是:
从发送方发送数据开始,到发送方收到来自接收方的确认消息(接收方收到数据后便立即发送确认),总共经历的时间。
上方定义是说从发送方发送数据开始,也就是包括发送时延,但是通过做大量题目之后,就会发现往返时间不包括发送时延。
网络协议三要素
- 语法:数据与控制信息的结构或格式
- 语义:何种控制信息、何种动作、何总响应
- 同步:事件实现顺序的详细说明
分层是对复杂系统进行分解的方法之一
各层相互独立 各层都可采用最适合的技术实现
不同层间协议的集合称为 协议栈
OSI/RM 参考模型
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
由ISO(国际标准化组织)统一规定的互联网参考模型Open Standard Interconnection /Reference Model(开放系统互连参考模型)
TCP/IP 模型 ⭐
物理层、数据链路层、网络层(IP层)、传输层、应用层
TCP/IP 模型是由 OSI 模型演化而来,TCP/IP 模型将 OSI 模型由七层简化为五层(一开始为四层),应用层、表示层、会话层统一为应用层。
层级 | OSI七层模型 | TCP/IP模型-五层 | TCP/IP模型-四层 | 常用协议 |
---|---|---|---|---|
7 | 应用层 | 应用层 | 应用层 | HTTPS、HTTP、Telnet、FTP、TFTP、DNS、SMTP |
6 | 表示层 | |||
5 | 会话层 | |||
4 | 传输层 | 传输层 | 传输层 | TCP、UDP |
3 | 网络层 | 网络层 | 网络层 | IP、ARP、RARP、ICMP、IGMP、OSPF |
2 | 数据链路层 | 数据链路层 | 网络接口层 | 以太网、令牌环、PPP、PPTP、L2TP、ARP、ATMP |
1 | 物理层 | 物理层 | 物理线路、光纤、无线电 |
ARP 到底属于哪一层
ARP 属于网络层,原因是 ARP 属于 TCP/IP 协议簇。在 TCP/IP 模型中,未定义 OSI 参考模型的物理层和数据链路层这两层的功能,它定义的都是在网络层及以上的协议。
ARP 属于数据链路层,理由按照 OSI 参考模型,数据链路层封装 IP 报文时,需要通过 ARP 获取链路层目的地址,添加到报文头部,这就不属于网络层的功能了。
结论:在 TCP/IP 模式中 ARP 协议属于网络层,在 OSI 参考模型中 ARP 协议属于数据链路层。
OSI的七层协议体系结构的概念清楚,理论也比较完整,但其既复杂又不实用。TCP/IP体系结构则不同,现在已经得到了非常广泛的应用。
在网络中数据的传输过程示意图如下 ⭐
(1) 应用层:规定应用进程在通信时所遵循的协议,其 PDU 为报文(message)。
(1) 传输层:负责网络上进程间的通信,其 PDU 为报文段(segment)或用户数据报(user datagram)。
(1) 网络层:实现分组交换网上不同主机间的通信,其 PDU 为 IP数据报。
(1) 链路层:实现网络上两个相邻节点间的通信,其 PDU 为帧(frame)。
(1) 物理层:透明地传输比特流,其 PDU 为 bit 。
PDU: 协议数据单元(Protocol Data Unit ),指对等层次之间传递的数据单位。