本来没想着更新计网,想直接整理一下 HTTP、TCP 那块,不过想了一下从头开始整理哇,顺便巩固一下学的知识
- 此系列文章对于考研远还是不够的,参考一下即可
- 文章主要针对科班上课做的简单笔记,以及后面针对一些面试涉及内容的详细讲解
- 再三声明:考研的同学好好去背书,做题!!!
- 此文章整理自:【计算机网络】(第七版)谢希仁
一 计算机网络在信息时代中的作用
21世纪是一个数字化、网络化,信息化的时代,它是一个以网络为核心的信息时代
有三大网络被人们所熟知:电信网络、有线电视网络、计算机网络
- 电信网络:提供电话、电报及传真等服务
- 有线电视网络: 向用户传送各种电视节目
- 计算机网络:使用户能在计算机之间传送数据文件
随着技术发展,电信网络和有线电视网络都逐渐融入了现代计算机网络技术,扩大了原有的服务范围,而计算机网络也能够向用户提供电话通信、视频通信以及传送视频节目的服务。
所以如果能将上述三种网络互相融合为一个网络就被称之为三网融合
二 因特网 Vs 互联网 Vs 互连网
因特网和互联网的区分主要因为 Internet 的中文译名不统一造成的
- 因特网:由全国科学技术名词审定委员会推荐的,比较准确,但长期未得到推广
- 互联网:针对流行程度上来说,互联网才是一定意义上被大众使用的译名
互联网和互连网的定义也很不同
- 互连网:指在局部范围互连起来的计算机网络。
- 互联网:指当今世界上最大的计算机网络(Internet)
三 互联网的特点
-
连通性 (connectivity)
-
- 即无论距离有多远,都可以便捷快速的交换各种信息
-
共享 (Sharing)
-
- 资源共享
四 互联网的组成
- 边缘部分:由所有连接在互联网上的主机组成,这部分是用户直接使用的,用于通信(传送数据、音频、视频)和资源共享
- 核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的(提供连通性和交换)
(一) 边缘部分
明确一个概念:我们通常说的 “主机A 和 主机B 进行通信”,实际上指的是在 主机A 上的某个程序和运行在 主机B 上的另一个程序进行通信,而由于 “进程” 就是 “执行着的程序” 所以也就是说:”主机A 的某个进程和 主机B 上的另一个进程在进行通信“ 这个比较严密的说法也可以简称为 ”计算机之间通讯“
在网络边缘端系统之间的通信方式可以划分为两大类:客户-服务器方式(C/S方式) 和 对等方式(P2P方式),下面来简单说一下:
(1) 客户-服务器方式(C/S方式)
-
C/S 全程为 Client/Server,即:客户/服务
-
客户-服务器方式描述的是进程之间的服务与被服务的关系,客户是服务请求方,服务器是服务方
-
客户程序:被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)
-
服务器程序:被动的等待接收来自各地的客户请求,可以同时处理多个请求
(2) 对等连接方式(P2P 方式)
-
p2p 即 peer to peer,因为 2 的英文是 two 与 to 发音一致,所以将 to 用 2 指代
-
等通信方式并不区分哪一个是服务请求方还是服务提供方,只要两个主机都运行了对等连接软件,就可以进行平等的、对等连接通信
(二) 核心部分
在网络核心部分起到重要作用的就是计算机网络,它是一种专用计算机(非主机)路由器是实现分组交换 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能,但是想要了解分组交换,就不可避免讲到其发展历经的极大过程
(1) 电路交换
电路交换主要是通过电话连通的方式而产生的:
- 如果电话机之间通过线路两两连接起来,即两个电话需要一条线
- 如果有5部电话,则需要10条电线,如下图:
-
所以 N 部电话机两两直接相连,就会导致需要
(N -1) / 2
条电线,即所需要的电线对的数量与电话机数量的平方( N2 )成正比 -
为了避免耗费线路过多,所以提出了交换机的概念,即每一部电话都连接到交换机上
从通信资源的分配角度看,交换”就是按照某种方式动态地分配传输线路的资源
※ 使用电路交换的时候需要经过三个必要阶段
- 建立连接:建立一条专用的物理通路,以保证双方通话时所需的通信资源在通信时不会被其他用户占用
- 通信:主叫和被叫双方就能互相通电话
- 释放连接:释放刚才使用的这条专用的物理通路(释放刚才占用的所有通信资源)
※ 电路交换特点
- 在通话时间内,通话的两个用户时钟占用端到端的通信资源
※ 电路交换缺点
使用电力交换来传送计算机数据,线路传输效率很低,因为计算机数据是突发式的出现在传输线路上,因此线路上真正用来传送数据的时间往往不到 10% ,甚至 1% ,被用户 占用的通信线路资源绝大部分时间都是空闲的
(2) 报文交换
报文交换的单位是报文,报文携带有目标地址,源地址等信息,报文交换在交换节点采用的是存储转发的传输方式。简单的理解就是:整个报文会先传到相邻的节点,全部存储下来再查找转发
这种情况下,有如下好处:
- 无需建立连接,不需要为双方建立专门的连接,所以不存在建立连接时延
- 动态分配路线,当发送方把报文交给交换设备时,交换设备先存储整个报文,然后选择一条合适的空闲路线,将报文发出去
- 提高了线路可靠性,和利用率,因为通信双方并不是依赖于一条固定的通信线路
缺点:
-
因为数据进入交换节点后要经历存储、转发这一过程,因此会引起转发时延(包括接收报文、校验正确性、排队、发送时间等)
-
报文交换对报文的大小没有限制,这就要求网路哦节点需要有较大的缓存空间
(3) 分组交换
同报文交换一样,分组交换也采用了存储转发方式,但解决了报文交换中大报文传输的问题,分组交换限制了每次传送的数据块大小的上限。把它的数据块划分为合理的小数据块再加上一些必要的控制信息,(如原地址,目的地址和编号信息等),构成分组,网络节点根据控制信息把分组送到下一节点,下一节点接收到分组后暂时保存并排队等待传输,然后根据分组控制信息选择它的下一个节点,直到到达目的节点。
分组交换的优点:
- 高效:在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用
- 灵活:为每一个分组独立地选择最合适的转发路由
- 迅速:以分组作为传送单位,可以不先建立连接就能向其他主机发送分组
- 可靠:保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性。
缺点:
- 分组在各结点存储转发时需要排队,这就会造成一定的时延
- 分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销
(3) 三种交换方式小结
电路交换,整个报文的比特流连续的从源点直达终点,好像在一个管道中传送
报文交换,整个报文先传送到相邻节点,全部存储下来以后,查找转发表,转发到下一个节点
分组交换,单个分组(这只是整个报文的一部分)传送到相邻节点,存储下来后,查找转发表,转发到下一个节点
- 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快
- 报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率
- 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性
(三) 网络的类别
(1) 按网路的作用范围划分
- 广域网 WAN (Wide Area Network):作用范围通常为几十到几千公里
- 城域网 MAN (Metropolitan Area Network):作用距离约为 5 ~ 50 千米,例如一般跨越几个截取甚至整个城市
- 局域网 LAN (Local Area Network) :局限在较小的范围(如 1 公里左右),例如一般比如学校或者工厂企业,相对较小的范围
- 个人区域网 PAN (Personal Area Network) :范围很小,大约在 10 米左右
(2) 按照网络的使用者进行分类
-
公用网:共用网是电信公司出资建造的大型网络,公用的意思就是所有愿意按电信公司规定缴纳费用的人都可以使用这种网络,也可以称为公众网
-
专用网:这是某个部门为了满足本单位特殊业务工作的需要而建造的网络,这种网络不向本单位以外的人提供服务,例如军队,银行,电力等等
(3) 补充接入网的概念
接入网 AN (Access Network),它又称为本地接入网或居民接入网
它并不属于互联网的核心部分,也不属于互联网的边缘部分
-
接入网是从某个用户端系统到互联网中的第一个路由器(也称为边缘路由器)之间的一种网络
-
接入网只是起到让用户能够与互联网连接的“桥梁”作用。很多接入网还是属于局域网
五 计算机网络的性能
(一) 计算机网络性能指标
(1) 速率
网络技术中的速率指的是数据的传送速率,也称为数据率或者比特率
速率的单位是 bit/s(比特每秒),或者有时候写成 b/s 、bps(bit per second)
- 数据率较高的时候,就会在 bit/s 前加一个字母,例如 k = 10^3 = 千 、M = 10^6 = 兆、G = 10^9 = 吉、T = 10^12 = 太、P = 10^15 = 拍、E = 10^18 = 艾、Z = 10^21 = 泽、Y = 10^24 = 尧
- 网络速率一般指的是额定速率或者标称速率
(2) 带宽
带宽本来是指某个信号具有的频带宽度信号的带宽,是指该信号所包含的各种不同频率成分所占据的频率范围,例如在传统的通信线路上传送的电话,信号的标准带宽是 3.1 kHz 从 300 Hz 到 3.4 kHz (即话音的主要成分的频率范围),这种意义的带宽单位是赫兹(或千赫、兆赫、吉赫)在过去很长一段时间通信的主干线路传送的,是模拟信号及连续变化的信号,因此表示某信道允许通过的信号频带范围就称为该信道的带宽或者通频带。
在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内,网络中的通信到所能通过的最高数据率,这种意义的带宽的单位就是数据率的单位,bit/s (比特每秒)
(3) 吞吐量
吞吐量是表示在单位时间内通过某个网络的实际数据量
(4) 时延
时延是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间
时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
A:发送时延
发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。发送时延也称为传输时延。(但一般不用传输时延,因为容易和别的弄混)
发送时延 = 数据帧长度(bit) / 发送速率(bit/s)
B:传播时延
传播时延是电磁波在信道中传播一定的距离需要花费的时间
传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)
C:处理时延
处理时延是主机或路由器在收到分组时要花费一定的时间进行处理而形成的
D:排队时延
分组在经过网络传输时,会经过许多路由器。分组在进入路由器之前要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发,这就产生了排队时延
一般来说,发送时延与传播时延是我们主要考虑的
- 对于报文长度较大的情况,发送时延是主要矛盾
- 报文长度较小的情况,传播时延是主要矛盾
(5) 时延带宽积
公式:时延带宽积 = 传播时延 * 带宽
下图就可以代表时延带宽积,圆柱型管道的长度就是传播时延,管道的截面积就是链路的带宽,因此时延带宽积就是这个管道的体积
对于一条正在传输数据的链路,只有在代表链路的管道都充满比特的时候,链路才的到充分的利用
(6) 往返时间
在计算机中传输的时候不仅仅是单向的,往返时间表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间
(7) 时延利用率
- 信道利用率:其是指出某信道有百分之几的时间被利用过(有数据通过),完全空闲的信道的利用率是 0
- 网络利用率:其是全网络的信道利用率的加权平均值
信道利用率并非越高越好,这是因为,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加
所以如图所示,当信道的利用率增大的时候,该信道引起的时延迅速增加
(二) 计算机网络的非性能特征
- 费用
- 质量
- 标准化
- 可靠性
- 可扩展性与可升级性
- 易于管理和维护
六 计算机网络体系结构
(一) 网络协议三要素
- 语法:数据与控制信息的结构或格式
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应
- 同步:事件实现顺序的详细说明
(二) 几种网络协议体系结构(暂时知道即可)
首先要提的是 OSI 七层协议体系结构,其概念是比较完整的,但是它即复杂又不使用
接着就是 TCP/IP 体系结构,它现在却得到了非常广泛的应用但是从实质上将, TCP/IP 只有最上面的一层,是因为下面的网络接口层并没与什么具体内容所以在下面我们采用一种折中的方式,那就是综合 OSI 和 TCP/IP 的优点采用一种只有五层协议的体系结构
简单说明一下这五层结构中,每一层大概是做什么的,其每一部分都会花费一章的篇幅来进行详细的解释,这里有个印象就可以了,下面我们从上层到底层来说
(1) 应用层
应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是主机中正在运行的程序。对于不同的网络应用需要不有不同的应用层协议。在互联网的应用层协议很多,如域名 DNS,支持万维网应用的HTTP 协议,支持电子邮件的 SMTP 协议,等等。我们把应用层的数据单元称为报文(messgae)。
(2) 运输层
运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓通用的,是指并不针对某个特定网路应用,而是多种应用可以使用同一个运输层服务。由于一台主机可以同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付给上面应用层的相关进程。
运输层主要有下面两种协议:
- 传输控制协议TCP(Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
- 用户数据报协议 UDP(User Datagram Protocol)——提供无连接的尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报
(3) 网络层
网络层负责为分组交换网上的不同主机提供通信服务。
在发送数据时,网络层把运输层产生的报文段或者用户数据报封装成分组或者包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作IP数据报,或简称数据报。
请注意:不要将运输层的 "用户数据报 UDP" 和网络层的 "IP数据报" 弄混,此外,无论哪一层传输的数据单元,都可以笼统的用"分组"来表示。
网络层的另一个任务就是选择合适的路由,是源主机运输层所传下来的分组,能够通过网络中的路由器来找到目的主机。
互联网是有大量的异构(heterogeneous)网络来通过路由器(Router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议IP(Internet Protocol)和许多路由选择协议, 因此互联网的网络层也叫作网际层或IP层。
(4) 数据链路层
数据链路层通常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的, 这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层量网络层交下来的IP数据报封装成帧(frameing),在两个相邻节点间的链路上传送帧,每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错信息等)
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始到哪个比特结束,这样数据链路层在收到一个帧后,就可从中提取数据部分,上交到网络层。
控制信息还能使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单的丢弃了这个出了差错的帧,以免继续在网络传输下去白白的浪费资源。如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,还要纠错), 那么就可以采用可靠数据传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。
(5) 物理层
在物理层上所传数据的单位是比特(bit)。发送方发送1或者0时,接收方应该接收相同的1或者0,因此物理层要考虑用多大的电压代表"1"或者"0", 以及接收方如何识别发送方所发出的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚如何连接。当然解释比特代表的意思,就不是物理层的任务。请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不是物理层协议之内而是在物理层协议的下面。因此也有人把物理层当做第0层。
在互联网所使用的的各种协议中,最重要的和最著名的就是TCP和IP两个协议。现在人们经常提到的TCP/IP并不一定是单指TCP和IP两个具体的协议,而往往是表示互联网所使用的的整个TCP/IP协议族(Protocol suite)。
(6) 补充:
① OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU
- PDU (Protocol Data Unit):协议数据单元,是一个数据单位
② OSI 把层与层之间交换的数据的单位称为服务数据单元 SDU (Service Data Unit)
③ 各层协议实际上就是在各个对等层之间传递数据时的各项规定
④ 协议是 “水平的”,即协议是控制对等实体之间通信的规则
⑤ 服务是 “垂直的”,即服务是由下层向上层通过层间接口提供的
七 结尾
如果文章中有什么不足,欢迎大家留言交流,感谢朋友们的支持!
如果能帮到你的话,那就来关注我吧!如果您更喜欢微信文章的阅读方式,可以关注我的公众号
在这里的我们素不相识,却都在为了自己的梦而努力 ❤
一个坚持推送原创开发技术文章的公众号:理想二旬不止