计算机网络分层
计算机网络非常复杂,而复杂的系统往往需要分层,每一层专注于实现本层的功能点。
计算机网络分层有以下原则:
1、各层之间相互独立。当前层不需要了解其他层是怎么实现的,层与层之间通过接口通信。
2、每一层要有足够的灵活性。以便应对未来发生的变化。
3、各层之间完全解耦。
计算机网络有两种著名的分层模型:OSI七层模型、TCP/IP四层模型。
OSI七层模型
OSI全称“开放式系统互联通信参考模型”(英语:Open System Interconnection Reference Model,缩写为 OSI),OSI七层模型如下图:
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物理层、数据链路层的功能。
假设计算机A向计算机B传输数据,数据在网络中的传输过程如下图
1、假设计算机A向计算机B发送一封邮件,邮件的SMTP协议属于应用层,邮件经过计算机A的应用层、传输层、网络层、网络接口层发送给路由器。
2、路由器只有两层,网络层和网络接口层。路由器将数据发送给计算机B。
3、数据经过计算机B的网络接口层、网络层、传输层、应用层到达计算机B的邮件程序。
现代互联网的网络拓扑
互联网的网络拓扑主要分成两部分,边缘部分和核心部分。
边缘部分
边缘部分主要指家庭、公司中的电脑、手机、路由器、地区的 ISP。 ISP全称互联网服务提供商(Internet Service Provider),指的是面向公众提供互联网信息服务的经营者,例如:中国电信、中国移动、中国联通。
核心部分
核心部分有地区 ISP、主干 ISP、以及国际路由器组成。地区 ISP 连接到主干 ISP,主干 ISP 相互连接,并且与国际路由器进行连接。国际路由器与其它国家的主干 ISP 进行连接。主干ISP、国际路由器之间通过海底电缆或者一些跨地区的电缆连接。
现代互联网网络拓扑如下:
计算机网络的性能指标
计算机网络的性能指标主要有速率、时延、往返时间RTT。
计算机网络的速率计量单位是bps,bps=bit/s,比特每秒。
开通100兆的宽带,为什么下载速度最高只有12M左右呢?因为运营商说的100兆不是100MB,而是指“100兆比特每秒”,1字节等于8比特,100 / 8 = 12.5 MB/S。
时延分为4部分:
发送时延:发送时延 = 数据长度(𝑏𝑖𝑡) / 发送速率(𝑏𝑖𝑡/𝑠)。受限于计算机网卡。
传播时延:传播时延 = 传输路径距离 / 传播速率(𝑏𝑖𝑡/𝑠)。受限于传输介质。
排队时延:数据包在网络设备中等待被处理的时间。
处理时延:数据包到达设备或者目的机器被处理所需要的时间。
总时延 = 发送时延 + 传播时延 + 排队时延 + 处理时延
RTT(Route-Trip Time)表示数据报文在端到端通信中来回一次的时间,是评估网络质量的一项重要指标,通常使用ping命令查看RTT。