计算机网络
《计算机网络:自顶向下方法》学习笔记、Wireshark 实验
计算机网络和因特网
什么是因特网
- 描述因特网的具体构成,即构成因特网的基本硬件和软件组件
- 根据为分布式应用提供服务的联网基础设置描述因特网
具体构成描述
因特网中存在大量主机,或称为端系统。它们通过通信链路和分组交换机连接到一起。当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,由此形成的信息包称为分组。这些分组通过网络发送到目的端系统,在那里被装配成初始数据。
分组交换机从一条入通信链路接受到达的分组,并从一条出通信链路转发该分组,分组交换机中最常见的两种是路由器(router)和链路层交换机(link-layer switch)。链路层交换机通常用于接入网中,而陆幽清通常用于网络核心中。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径(route 或 path)。
端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网。每个ISP是由一个或多个分组交换机和多段通信链路组成的网络,为端系统提供了不同类型的网络接入。每个 ISP 都是独立管理的,运行 IP 协议,遵从一定的命名和地址习惯。
端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制因特网中的信息的接受和发送。
服务描述
从为应用程序提供服务的基础设施的角度描述因特网。分布式应用程序涉及多台相互交换数据的端系统,运行在端系统上而不是网络核心中的分组交换机中。
与因特网相连的端系统提供了一个应用程序编程接口(Application Programming Interface,API)该 API 规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的地软件交付数据的方式。
什么是协议
一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及保温发送和/或接受一条报文或其他时间所采取的动作。
网络边缘
通常把与因特网项链的计算机和其他设备称为端系统,因为它们位于因特网的边缘。端系统也称为主机,因为它们容纳(host)应用程序。主机有时又分为两类:客户(client)和服务器(server)。
接入网
接入网(access network)是指将端系统连接到其边缘路由器(edge router)的物理链路。边缘路由器是端系统到任何其他远程端系统路径上的第一台路由器。接入链路有许多种:
- DSL、电缆、FTTH、拨号和卫星,用于家庭接入
- 以太网和 WiFi,用于企业和家挺接入
- 3G 和 LTE,广域无线接入
物理媒体
使用以上接入技术时,也需要使用对应的物理媒体。
- 双绞铜线
- 同轴电缆
- 光纤
- 陆地无线电信道
- 卫星无线电信道
网络核心
网络核心,即由互联网端系统的分组交换机和链路构成的网状网络。
通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit swiching)和分组交换(packet switching)。
分组交换
各种网络应用中,端系统彼此交换报文(message),报文能够包含协议设计者需要的任何东西。报文可以执行一种控制功能,也可以包含数据。为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组(packet)。在源和目的之间,每个分组都通过铜线链路和分组交换机(packet switch)传送。
存储转发传输
多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。存储转发机制是指在交换机能够开始向输出端传输该分组的第一个比特之前,必须接收到整个分组。
排队时延和分组丢失
每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机有一个输出缓存(output buffer),也称为输出队列(output queue),它用于存储路由器准备发往那条链路的分组。该输出缓存在分组交换中骑着重要作用。如果到达的分组需要传输到某条链路,但是该链路正忙于传输其他分组,该到达分组必须在输出缓存中等待。因此,除了存储转发时延以外,分组还要承受输出缓存的排队时延(queue delay)。这些时延时是变化的,取决于网络中的拥塞程度。因为缓存大小是有限的,一个到达的分组可能发现该缓存已经被其他等待传输的分组填满,这时将出现分组丢失(丢包,packet lost),到达的分组或已经排队的分组之一将被丢弃。
转发表和路由选择协议
因特网中,每个端系统具有一个称为 IP 地址的地址,当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的 IP 地址,该地址具有一种等级结构。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。每台路由器具有一个转发表(forwarding table)用于将目的地址(或它的一部分)映射为输出链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当的输出链路,路由器则将分组导向该输出链路。
因特网具有一些特殊的路由选择协议(routing protocol)用于自动设置转发表。
电路交换
在电路交换网络中,在端系统通信会话期间,预留了端系统间通信沿路径所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些资源不是预留的,会话的报文按需使用这些资源,后果可能是不得不等待接入通信链路。
网络的网络
提供网络接入的 ISP 本身也需要接入网络,使网络形成了复杂的结构。
分组交换网中的时延、丢包和吞吐量
协议层次机器服务模型
分层的体系结构
协议分层
各层的所有协议被称为协议栈(protocol stack),因特网的协议栈由5个层次组成:物理层,链路层,网络层,运输层,和应用层。
- 应用层是网络应用程序及它们的应用层协议存留的地方,包含许多协议,例如 HTTP,SMTP 和 FTP。位于应用层的信息分组称为报文(message)
- 运输层是在应用程序端点之间传送应用层报文。因特网中有两个运输层协议,TCP 和 UDP,利用其中任何一个都能运输应用层报文。位于运输层的信息分组称为报文段(segment)
- 网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。包括 IP 协议和一些路由选择协议。
- 为了将分组从一个节点(主机或路由器)移动到路径的下一个节点,网络层必须依靠链路层服务。在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。在下一个节点,链路层将数据上传给网络层。包括以太网,WiFi 和电缆接入网的 DOCSIS 协议。链路层分组称为帧(frame)
- 物理层的任务是将帧中的一个一个比特从一个节点移动到下一个节点。该层协议也与链路相关,并且进一步与实际传输媒体相关。比如关于双绞铜线或者同轴电缆的协议。
OSI模型
因特网协议栈并不是唯一的协议栈,国际标准化组织(OSI)提出计算机网络应组织为大约 7 层,应用层,表示层,会话层,运输层,网络层,数据链路层和物理层。
封装
在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field),有效载荷通常来自于上一层的分组。
面对攻击的网络
- 将有害程序植入计算机
- 攻击服务器和网络基础设置
- 嗅探分组
- 伪装