计算机网络是计算机专业的王牌核心课程之一,在面试中的重要性不言而喻,年假的这一段时间,重新刷了一遍这门课,其中记录下来一些笔记(当然,抄了书上不少~),分享出来,留作备忘.
本文结构:
1.1:什么是 Internet
1.2 网络边缘
1. 3 网络核心
1 .4 分组交换网中的时延、丢包和吞吐量
1 .5 协议层次和它们的服务模型(最重要)
1 .6 网络安全
1.1:什么是 Internet
在本文用一种特定的网络(Inernet)作为例子学习计算机网络及其协议(也就是说网络 其实有很多标准,但是 Internet 的 TCP/IP 现在占统治地位)。
本节首先讲述了因特网的具体构成,即构成因特网的基本硬件和软件组件;然后介绍作为网络基础设施的因特网为分布式应用提供的传输服务。
1 具体构成
主机或端系统:
传统端系统,如桌面计算机、linux工作站、服务器等。 非传统端系统:如智能电话、联网的汽车、家用电器,云计算的虚拟主机等。 传统和非传统端系统有个共同的特点,一般安装有操作系统,操作系统环境中运行应用程序。一般把这种有应用程序、操作系统的计算设备统称为主机。
通信链路:
端系统通过通信链路和分组交换机连接到一起。 通信链路的物理介质主要包括同轴电缆、双绞线、光纤和无线电。
当一个端系统有数据要向另一个端系统发送时,发送端系统将数据分段,并为每段加上首部字节。这些数据传输单元统称分组或数据包。这些分组通过网络发送到目的端系统, 在那里被还原成初始数据。
分组交换机: 分组交换机从输入端口接收到达的分组,并从它的输出端口转发该分组。 路由器和链路层交换机是最常见的两种分组交换机。
端系统通过电信服务提供商 ISP 接入因特网,包括像中国电信那样的家庭 ISP、本地有线网络公司等等。可以认为ISP 是一个由多个分组交换机和多段通信链路组成的网络。
端系统、分组交换机和其他因特网设备,都要运行控制信息发送和接收的一系列协议软 件。TCP 和 IP 是因特网中两个最为重要的协议。协议标准一般由因特网工程任务组 IETF 制 定,这些文档被称为 RFC。其他组织例如 IEEE 也在制定用于网络的标准,例如以太网标准, 无线 Wifi 标准。
相对于 Internet,有些专用网络被称为内联网 Intranet,因为它们与 Internet 采用同样类 型的主机、路由器、链路和协议,但是对于 Internet 用户并不开放。例如政府、私人公司的网络。
2:服务描述
从通信基础设施的角度来描述因特网,它提供了一种通信服务。这种网络传输服务是通过主机的操作系统提供给应用程序的。
因为应用程序运行在端系统上,所以端系统代表网络提供了一个应用程序编程接口 API。 类似 C 语言的 printf()在屏幕输出一些内容,在 C 语言开发的应用程序中可以使用最基本的 send()和 recv()函数发送或者接收消息。大部分的网络通信都是通过调用这种网络通信函数实现的。大部分的高级程序设计语言都有自己的网络通信函数,而且函数接口都是类似的。
3:什么是协议
网络协议约定了网络中数据发送和接收、以及数据本身组织(数据流是如何划分成分 组或者数据包,以及分组格式)的一些规范。
例如浏览器和 Web 服务器他们使用 HTTP 协议规范 Web 页面的传输;两个以太网网卡 使用以太网协议规范它们之间的数据传输。计算机网络广泛地使用了协议,不同的协议用于 完成不同的通信任务。掌握计算机网络知识的过程就是理解网络协议的构成、原理和工作的过程。
网络协议在主机中一般以软件形式(应用程序、操作系统中的协议模块、网卡的驱动) 和硬件形式(网卡)存在。
1.2 网络边缘
接入网(access network),即将端系统连接到边缘路由器的物理链路。边缘路由器是端系
1 接入网
统进入到 Internet 的第一台路由器。
网络接入大致可以分为以下类型: .住宅接入,将家庭端系统与网络相连. .公司接入,将商业或教育机构中的端系统与网络相连。
有线接入,将主机系统使用有线链路与网络相连。 .无线接入,将移动端系统使用无线链路与网络相连。
•住宅接入
住宅接入是指将家庭端系统(PC 或家庭网络)与 Internet 边缘路由器相连接。
20 多年前人们通过普通模拟电话线用拨号调制解调器与 ISP 相连。这样的调制解调器速率大约有 56bps。现在有 ADSL 和光纤接入技术。
ADSL 概念上类似于拨号调制解调器,它是一种新型调制解调器技术,还是使用电话线。
ADSL 在家庭和 ISP 之间使用频分多路复用技术(FDM)将通信链路划分为 3 个不重叠的频段:
·高速下行信道,24M。
·中速上行信道,2.5M。
·普通的双向电话信道。
频分多路复用(Frequency-division multiplexing,FDM),是指载波带宽被划分为多种不 同频带的子信道,每个子信道可以并行传送一路信号的一种多路复用技术。在频分复用系统中,信道的可用频带被分成若干个互不交叠的频段,每路信号用其中一个频段传输,因而可以用滤波器将它们分别滤出来,然后分别解调接收。
由于光纤通信具有大容量、长距离和抗电磁干扰等优点,使光纤通信很好地适应了当今通信发展的需要。光纤入户有很多种架构,其中主要有两种:一种是点对点形式拓扑,从中心局到每个用户都用一根光纤;另外一种是使用点对多点形式拓扑方式的无源光网络(PON), 采用点到多点的方案可大大降低光收发器的数量和光纤用量,并降低中心局所需的机架空间, 具有成本优势,目前已经成为主流。
光纤宽带和 ADSL 接入方式的区别就是:ADSL 是电信号传播,光纤宽带是光信号传播 速度可以达到 100多Mbps。
•公司接入
光纤接入所用的设备主要有两种,一种是部署在电信运营商机房的局端设备,叫光线路终端(OLT),另一种是靠近用户端的设备,叫光网络单元(ONU)。光纤宽带是在运营商机房通过设备把电信号调制成光信号,通过光纤传输到用户处。用户需要使用运营商机房端设备相 配套的光猫,把光信号转换为用户电脑等设备可以使用的电信号,通过网线连接用户设备上网使用。
在公司和大学校园,局域网 LAN 通常被用于连接端用户与边缘路由器。
以太网是事实的工业标准。 以太网的运行速率是 I00Mbps 或 1G bps,它使用双绞线将 一些端系统连接起来,并与边缘路由器连接。边缘路由器负责转发目的地不在本局域网的 数据包。
最初的以太网使用共享介质,因此端系统共享 LAN 的传输速率。但是 20 世纪以后,共享以太网技术已经完成向交换以太网技术迁移。一台链路层交换机允许所有主机以端口的全部速率同时发送和接收。
以上几种接入方式都是有线接入。
•无线接入
无线接入主要包括无线局域网 WLAN(Wifi)和广域无线接入网 3G、4G 网络。
基于 IEEE 802.11 技术的 WLAN 覆盖范围大约几百米,可以提供超过 54Mbps 的速率。 3G、4G 基站的覆盖范围大约几公里,可以提供超过 3-4Mbps 的速率。
2 物理介质
•双绞线
双绞线由两根隔离的铜线组成,每根大约 1mm 粗,以规则的螺旋形式排列。一对电线
构成了一个通信链路。非屏蔽双绞线(UTP),常用于计算机网络中数据传输,速率从 100Mbps 到 1 Gbps。非屏蔽双绞线最长的传输距离大约 100m。
•同轴电缆
同轴电缆的两个铜导线是同心的而不是并行的。借助于这种结构以及特殊的绝缘体保护 层,同轴电缆具有几百兆的传输速率。同轴电缆在有线电视系统中应用相当普遍。
•光纤 使用光脉冲表示比特信号。一根光纤能够支持极高的比特速率,高达数十甚至数百 Gbps。
光纤通信具有大容量、长距离和抗电磁干扰等优点。这些特征使得光纤成为长途导引型传 输介质,例如跨海链路、长途电话网络、因特网的主干。使用光纤时不可以直接对着眼睛, 以免灼伤。
•无线电 无线电信道依赖于传播环境和传输信号的距离。环境上的考虑取决于路径损耗和遮挡衰落,以及干扰。
无线电信道可以大致地划分为两类:一类是能够跨越数十到几百米的 WLAN;另一类是跨越几千米 3G、4G 网络。
•卫星无线电
通信中常使用两类卫星:同步卫星和低地球轨道卫星 。 从地面站到卫星再回到地面站的距离较长,卫星无线电通常会有较长信号传播时延,可多达 200ms。
1. 3 网络核心
1-2 电路交换和分组交换
数据通过网络有两种基本方式:电路交换和分组交换。 在电路交换网络中,沿着通信路径,为端系统之间通信所提供的资源(缓存、传输速率) 在通信会话期间会被预留。
传统的电话网络是电路交换网络的例子 在分组交换网络中,则没有预留带宽等通信资源,数据分组按需使用这些资源。 Internet 是分组交换网络。
•电路交换
电路交换网络中,当两台主机要通信时,网络在两台主机之间创建一条专用的端到端 连接,这个过程需要专门的信令协议(Signalling Protocol)。由于预留了资源,用户通话过程 中能够达到电路级性能。
电路交换网络中的多路复用
电路交换中的链路通过频分多路复用或者时分多路复用实现带宽在多个用户之间分配。
FDMA(Frequency Division Multiple Access)链路在连接期间为每条连接分配一个专用频 段。在电话网络中,这个频段通常具有4k。可以使用调频无线电台的例子来理解频分复用, 调频台也使用 FDMA 来共享 88~108Mhz 的频谱,其中每个电台被分配一个100khz 的频带。
TDMA(Time Division Multiple Access)链路中时间被划分为固定区间的帧,并且每帧又被 划分为固定数量的时隙。TDMA 链路在每个帧中为一个连接指定一个时隙。
•分组交换
在计算机网络中,源主机将长报文划分为较小的数据块,称为分组。在源和目的地之间, 这些分组通过通信链路和分组交换机传送。
多数分组交换机使用存储转发传输机制。存储转发传输机制是指在交换机能够开始向 输出链路传输该分组的第一个比特之前,必须接收到整个分组。对于每条相连的链路,该分 组交换机具有一个输出缓存,它用于存储路由器准备发往那条链路的分组。
Internet 中,每个端系统都有一个 IP 地址。源主机向目的主机发送分组时,分组会包含目的地的 IP 地址。
路由器(一种根据 IP地址转发分组的交换机)具有一个转发表,将目的IP 地址(其实是目的IP地址的一部分)映射成输出链路。当分组到达路由器时,路由器检查分组目的地址, 使用目的 IP 地址搜索转发表,决定分组的输出链路。
转发表一般是由路由协议自动设置。
•分组交换与电路交换比较
分组交换是统计多路复用。 电路交换中如果用户没有通信,已分配频率或时间会被浪费。 由于一个特定用户一般不会持续处于活跃状态,因此分组交换可以通过同时转发多个用户的数据而最大化通信链路的传输性能,表现出优于电路交换的性能。这时链路传输能力将 在所有需要传输分组的用户中,以分组为单位进行分配。这种按需(而不是预分配)共享资源的方式被称为统计多路复用。
3 网络的网络-Internet
端系统通过接入网与因特网相连。而因特网是由数以亿计的用户和几十万个网络构成 的。它是网络的网络。
因特网边缘的接入网络通过分层的ISP(Internet Service Provider)层次结构与因特网的其 他部分相连,接入网络位于这个层次结构的底部。这个层次结构的最顶层是数量相对较少的 第一层 ISP.例如中国电信某市分公司,它是接入 ISP,家庭用户通过它接入 Internet;中国电信总公司可以认为是第二层ISP,通常覆盖一个区域或国家,它与美国等国家的第一层ISP相连接。 一个第二层 ISP 网络也可以选择与其他第二层网络直接相连,例如中国电信和中国移动也有 接口互联,在这种情况下,流量能够在两个第二层网络之间直接流动,而不必流经某第一层网络。
有些内容服务提供商ICP(Internet Content Provider),例如Google它在世界范围内部署 了几十个数据中心,以服务全球的用户。这些数据中心经过专门的网络互联,同时与各个层次的 ISP 网络互联,从而方便了搜索服务最终向用户的交付。
1 .4 分组交换网中的时延、丢包和吞吐量
因特网是基础设施,为运行在端系统上的应用提供服务。 分组在传输时存在时延、丢包,因此要限制端系统之间的吞吐量
1 分组交换网中的时延概述分组在传输的每个节点都经受了几种不同类型的时延。最为重要的是节点处理时延、
排队时延、传输时延和传播时延,这些时延的总和是节点总时延。
•处理时延
检查分组首部、检查分组比特级差错和决定将该分组发到何处所需要的时间是处理时延。 处理时延取决于路由器处理能力。高速路由器的处理时延通常是微秒或更低的数至级。
•排队时延
分组中输出端口队列中,等待传输时,它经厉排队时延。 一个分组的排队时延将取决于队列的长度,或者说取决于网络中的流量。实际的排队时延通常在毫秒到微秒级。
•传输时延
将分组传送到链路需要的时间。
传输时延等于分组长度除以链路传输速率(网卡工作速率)。实际的传输时延通常在毫秒 到微秒级。
由于发送和接收端口一般工作在相同的速率,所以只需要考虑发送时延。
•传播时延
分组的一个比特从该链路的起点到终点所需要的时间是传播时延。 传播时延等于两台路由器之间的距离除以传播速率。在广域网中传播时延在毫秒的量级。
2 排队时延和丢包
节点时延最为复杂的成分是排队时延,它很大程度上取决于流量到达该队列的速率、 输出链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。
路由器的输出缓存是有限的,所以排队容量是有限的,流量强度接近于 1 时排队时延 也不会趋向无穷大,后续到达的分组由于没有地方存储,路由器将丢弃该分组。
3 端到端时延
假定在源主机和目的主机之间有 n 台路由器,并且该网络是无拥塞的,在每台路由器和源主机都会经历处理时延,传输时延,传播时延.显然源主机和目的主机之间总时延是 n 台路由器的总时延。
可以利用 Traceroute(linux)、Tracert 和 pathping(windows)程序,确定两台计算机 之间的时延。
这几个命令发送时记录了从它发送一个分组到它接收到对应返回报文所经受的时间,它 同时也记录了返回该报文的路由器(或目的地主机)的名字和地址,从而可以构造到达目的地 途中所有路由器的时延。
4 计算机网络中的吞吐量
如果将数据看成是流体,将通信链路看成是管道,发送端到接收端的吞吐量取决于整个路径中容量最小的链路,或者说是瓶颈链路的传输速率。
1 .5 协议层次和它们的服务模型
1 分层的体系结构
利用分层的体系结构,可以讨论一个定义良好的、复杂的系统。 这种简化本身可以为模块化带来便利,因为在各个层次改变服务的实现不会影响该系统
其他部分,这是分层的另一个重要优点。
协议分层
因特网的协议由 5 个层次组成:物理层、链路层、网络层、传输层和应用层。
•应用层
网络应用程序及其应用层协议实现的地方。例如实现 HTTP 协议的浏览器/Web 服务器、 电子邮件和 FTP 等。
应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。将这种位于应用层的信息分组称为消息(message)。
•传输层
传输层提供了在应用程序之间传送消息的服务。
在因特网中,有两个运输层协议,即 TCP 和 UDP,利用其中的任何一个都能传输应用层
消息。
TCP 向它的应用程序提供了面向连接的服务。这种服务包括了可靠传输(传丢了会重传)
和流量控制。
UDP 协议向它的应用程序提供无连接服务。 在本文中,将传输层分组称为报文段(segment)。
•网络层 因特网的网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主 机。因特网的网络层协议是 IP 协议,该协议定义了数据报的格式。网络层也包括决定路由的选路协议,选路协议决定了路由器的转发表,数据报根据该转发表从源传输到目的地。
•链路层
为了将分组从一个节点(主机或路由器)移动到路径上相邻的下一个节点,网络层必须依 靠链路层的服务。 在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报 传递给下一个节点。在该下个节点,链路层将数据报上传给网络层。
链路层提供的服务取决于应用于该链路的特定链路层协议。例如某个数据报可能被一条 链路上的以太网和下一条链路上的无线网络所处理。
在本文中,我们将链路层分组称为帧(frame)。
•物理层
链路层的任务是将整个帧从一个节点移动到邻近的网络节点,而物理层的任务是将该帧中的一个比特从一个节点移动到下一个节点。例如以太网支持许多物理层介质:有 UTP,有光纤等。
国际标准化组织 ISO 提出计算机网络的七层结构,称为开放系统互连 OSI 模型。这个模型从来没有被采用过,Internet 设计估计也没参考过它,因为 Internet 出现应该比它早。
2 分组的封装
(非常重要! 以下内容是本文的主线,以后的知识点都是这条主线上的某个环节,大家务必注意)
应用程序通过调用操作系统提供的网络编程接口将消息传递给传输层模块。
操作系统中的传输层软件模块给消息添加一个头部后(以区别不同的应用程序),调用网络层软件模块的编程接口,将报文段传递给网络层。
同样,网络层软件模块也是位于操作系统中,它给报文段又添加了一个头部后(以区别 不同的主机),调用网卡驱动程序的编程接口,将数据报传递给网卡。
可以认为位于操作系统中的网卡驱动程序和网卡硬件构成了链路层,它给数据报添加了帧头部后(以区别不同的网卡),发送进入了网络。
链路层交换机实现了网络协议第一层(物理层)和第二层,在同一个局域网内转发帧。 帧在同一个局域网的计算机之间、计算机和路由器、路由器和路由器之间直接交付。
路由器实现了网络协议的第一层(物理层)到第三层,在不同的网络间转发数据报。路由器是一种具有多个网络接口的设备,在不同的网络中都有接口,负责收发数据。数据报 是封装在帧中转发的。路由器收到一个帧后,提取出数据报,向前转发时又重新封装成帧 (此时链路层发送/接收地址改变了)。
链路层交换机转发帧、路由器转发数据报都是通过查询转发表来实现的。
在接收端,帧被解封装,提取出数据报,又从数据报中取出报文段,最后提取出消息 交付给接收应用程序。
1 .6 网络安全
1 信息安全
•保密性 具有一定保密程度的信息只能让有权读到或更改的人读到和更改。措施:加密。
•完整性 在存储或传输信息的过程中,原始的信息不能允许被随意更改。措施:消息摘要。
•不可抵赖性 对自己行为的不可抵赖及对行为发生的时间的不可抵赖。措施:数字签名。
•可用性 对于信息的合法拥有和使用者,在他们需要这些信息的任何时候,都应该保障他们能够及时得到所需要的信息。措施:访问控制。
2 网络安全
Internet 设计时没有考虑安全问题。 网络安全是关于:坏人如何攻击计算机网络,如何防卫,以及如何设计网络架构能够防御攻击的问题。
威胁来源:
•恶意软件
恶意软件通常能够自我复制: 从感染的主机, 伺机进入其他有类似缺陷的主机。例如木马、病毒、蠕虫。
•DoS 攻击
攻击者通常使用过量的服务请求或流量,使资源(server, bandwidth) 不可用。
•网络嗅探
在网络接口混杂模式下读取/记录所有经过的数据报,从而窃取秘密。
•欺骗
录制正常数据,通过重放,麻痹网络管理员。或者生成具有任意源地址、分组内容、目的地址的分组,然后发送到网络中实现一些不正常的目标。