整理一下计算机网络的一些基本概念,比如像什么是协议,什么是五层协议栈之类的东西,另外还有一些零零散散的东西。主要参考《计算机网络:自顶向下方法》。
目录
1 因特网
因特网是网络的网络,不同的网络彼此相连。网络中,主机(端系统)通过通信链路和分组交换机连接在一起。不同的链路由不同的物理媒介构成,不同的链路以不同的传输速率来传输数据。分组交换机可分为网络层路由器和链路层交换机。端系统通过ISP(因特网服务提供商)接入互联网。
因特网部件要运行一系列协议,这些协议控制因特网中信息的收发。
协议(protocol)定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。
1.1 网络边缘
应用程序、端系统、接入网。
通常把与因特网相连的计算机和其他设备称为端系统。
因为它们位于网络边缘,所以叫端系统。同时因为它们运行应用程序,所以也称为主机。主机又可以进一步分为客户(client)和服务器(server)。
接入网是指将端系统物理连接到其边缘路由器的网络。
1.2 网络核心
由互联因特网端系统的分组交换机和链路组成的网状网络。
2 分组交换和电路交换
2.1 分组交换
分组:为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组。
2.1.1 时延
节点总时延=处理时延+排队时延+传输时延+传播时延
(1)处理时延
进行分组处理的时延,比如检查分组首部和决定分组走向,检查差错所花的时间。
(2)排队时延
对分组处理完后,分组被送进队列进行等待,等待所花的时间即为排队时延。
(3)传输时延
将分组送到链路上所花的时间。传输时延=L/R。L为分组长度,R为传输速率。
(4)传播时延
一个个比特在链路中传播,比特从起点到终点传播所花的时间即为传播时延。传播时延=d/s,d为起点到终点之间的距离,s为链路的传播速率,一般就是光速。
2.1.2 丢包
在链路前排队的时候由于队列容量有限,队列满了后,到达的分组就会被路由器丢弃。
2.1.3 吞吐量
吞吐量可以理解为数据传输的速率(bps)。吞吐量分为瞬时吞吐量和平均吞吐量。
2.2 电路交换
电路交换要在通信的双方之间建立一条专用的端到端连接,这是一条真实的物理链路。并且双方在进行通信时将始终占用这条连接。
2.3 分组交换和电路交换对比
分组交换不适合实时的服务,但分组交换相比于电路交换能提供更好的带宽共享,且比电路交换更简单有效,且成本低。电路交换对电路的利用率很低,因为用户在占用链路进行通信的时候并不是一直在传输数据,有很多空闲时间。
3 协议层次
为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议以及实现这些协议的网络硬件和软件。
为什么要分层?
协议分层具有模块化和结构化的优点。分层提供了一种结构化方式来讨论系统组件。模块化使系统更新更为容易。
为实现某个功能,把其划分成多个层次,每层通过该层中执行某些动作或使用直接下层的服务来提供服务。这使得某层的服务易于改变,只要保持该层对上层的服务不变,且使用下层的相同服务,那么当该层发生变化时,其他的其余部分不需要变化。对于大而复杂且需要不断更新的系统,改变服务的实现而不影响其他组件。
3.1 五层协议
(1)应用层
应用层是网络应用程序及它们的应用层协议存留的地方。常见的应用层协议有HTTP(超文本传输协议,提供Web文档请求和传送)、SMTP(简单邮件传输协议,提供电子邮件报文传送)、FIP(文件传输协议,提供两个端系统间的文件传输)、DNS(域名系统,将域名转换为网络地址)。应用层协议分布在多个端系统上,两个端系统间的应用程序使用协议交换分组。应用层分组称为报文(message)。
(2)运输层
运输层在应用程序端点之间传送应用层报文。因特网中有两种运输层协议:TCP(传输控制协议)和UDP(用户数据报协议)。前者有连接、可靠;后者无连接、不可靠。TCP的分组为报文段,UDP的称为数据报。
注:《计算机网络:自顶向下方法》中为了避免和网络层数据报混淆,把运输层分组都称为报文段。
(3)网络层
网络层负责将分组从一台主机移动到另一台主机。网络层协议有IP(网际协议)以及一些路由选择协议,比如OSPF(开放最短路优先)和BGP(边界网关协议)。网络层分组称为数据报。
(4)链路层
链路层负责将分组从源与目的地路径上一个的节点移动到另一个节点。链路层协议有:PPP(点对点协议)、以太网、DOCSIS(有线电缆数据服务接口规范)。链路层分组称为链路层帧。
注:ARP(地址解析协议)提供将网络层地址(IP地址)转换为链路层地址(MAC地址)的机制。这个协议到底属于哪一层?上网查,发现一般都说是网络层协议。这里我觉得《计算机网络:自顶向下方法》的论述更为合理。
…,一个ARP分组封装再链路层帧中,因而再体系结构上位于链路层之上。然而,一个ARP分组具有包含链路层地址的字段,因而可以认为是链路层协议,但它也包含网络层地址,因而也可认为是网络层协议。所以,可能最好把APR看成是跨越链路层和网络层边界两边的协议,…
(5)物理层
物理层的任务是将帧中的一个个比特从一个节点移动到下一个节点。
3.2 七层OSI模型
七层OSI模型多了两层:表示层、会话层。
表示层的作用是使通信的应用程序能够解释交换数据的含义。提供的服务包括:数据压缩、数据加密和数据描述。
会话层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
参考资料:
[1]《计算机网络:自顶向下方法》