计算机网络分层

计算机网络非常复杂,而复杂的系统往往需要分层,每一层专注于实现本层的功能点。

计算机网络分层有以下原则:

1、各层之间相互独立。当前层不需要了解其他层是怎么实现的,层与层之间通过接口通信。

2、每一层要有足够的灵活性。以便应对未来发生的变化。

3、各层之间完全解耦。

计算机网络有两种著名的分层模型:OSI七层模型、TCP/IP四层模型。

OSI七层模型

OSI全称“开放式系统互联通信参考模型”(英语:Open System Interconnection Reference Model,缩写为 OSI),OSI七层模型如下图:

简述计算机网络IOS分层 计算机网络分层原则_简述计算机网络IOS分层

OSI概念清晰,理论完整,并且由国际电信联盟电信标准化部门与国际标准组织(ISO)两大组织共同推出,但OSI并没有成为计算机网络事实上的标准。事实上,计算机网络采用的是TCP/IP四层模型,或者说TCP/IP协议簇。

OSI七层模型没能成为事实上的标准,主要有以下原因:

1、OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力。

2、OSI标准制定周期过长,按OSI标准生产的设备无法及时进入市场。在OSI模型推出时,基于TCP/IP协议的互联网已经在全球范围内成功运行,占领了市场。

3、OSI模型设计的并不合理,一些功能在多层中重复出现。

TCP/IP协议

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议簇中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP协议的4层如下:

应用层:为应用进程提供服务。兼顾了OSI应用层、表示层、会话层的功能。
传输层:管理端到端的通信连接。功能类似于OSI模型的传输层。
网络层:进行网络连接的建立和终止以及IP地址的寻找等功能。功能类似于OSI模型的网络层。
网络接口层:兼顾了OSI物理层、数据链路层的功能。

简述计算机网络IOS分层 计算机网络分层原则_IP_02

假设计算机A向计算机B传输数据,数据在网络中的传输过程如下图

简述计算机网络IOS分层 计算机网络分层原则_IP_03

1、假设计算机A向计算机B发送一封邮件,邮件的SMTP协议属于应用层,邮件经过计算机A的应用层、传输层、网络层、网络接口层发送给路由器。

2、路由器只有两层,网络层和网络接口层。路由器将数据发送给计算机B。

3、数据经过计算机B的网络接口层、网络层、传输层、应用层到达计算机B的邮件程序。

现代互联网的网络拓扑

互联网的网络拓扑主要分成两部分,边缘部分和核心部分。

边缘部分

边缘部分主要指家庭、公司中的电脑、手机、路由器、地区的 ISP。 ISP全称互联网服务提供商(Internet Service Provider),指的是面向公众提供互联网信息服务的经营者,例如:中国电信、中国移动、中国联通。

简述计算机网络IOS分层 计算机网络分层原则_IP_04

核心部分

核心部分有地区 ISP、主干 ISP、以及国际路由器组成。地区 ISP 连接到主干 ISP,主干 ISP 相互连接,并且与国际路由器进行连接。国际路由器与其它国家的主干 ISP 进行连接。主干ISP、国际路由器之间通过海底电缆或者一些跨地区的电缆连接。

简述计算机网络IOS分层 计算机网络分层原则_IP_05

现代互联网网络拓扑如下:

简述计算机网络IOS分层 计算机网络分层原则_OSI_06

计算机网络的性能指标

计算机网络的性能指标主要有速率、时延、往返时间RTT。

计算机网络的速率计量单位是bps,bps=bit/s,比特每秒。

简述计算机网络IOS分层 计算机网络分层原则_TCP_07

开通100兆的宽带,为什么下载速度最高只有12M左右呢?因为运营商说的100兆不是100MB,而是指“100兆比特每秒”,1字节等于8比特,100 / 8 =  12.5 MB/S。

时延分为4部分:

发送时延:发送时延 = 数据长度(𝑏𝑖𝑡) / 发送速率(𝑏𝑖𝑡/𝑠)。受限于计算机网卡。
传播时延:传播时延 = 传输路径距离 / 传播速率(𝑏𝑖𝑡/𝑠)。受限于传输介质。
排队时延:数据包在网络设备中等待被处理的时间。
处理时延:数据包到达设备或者目的机器被处理所需要的时间。

总时延 = 发送时延 + 传播时延 + 排队时延 + 处理时延

RTT(Route-Trip Time)表示数据报文在端到端通信中来回一次的时间,是评估网络质量的一项重要指标,通常使用ping命令查看RTT。