《计算机网络》谢希仁
# 博客笔记 (opens new window)
# 第一章 概述
# 最重要的内容:
(1)互联网边缘部分和核心部分的作用,其中包含分组交换的概念。
(2)计算机网络的性能指标。
(3)计算机网络分层次的体系结构,包含协议和服务的概念。
# 小结
# 1、K和k,B和b的区别
计算机中 k = 1000(速率), K = 1024(存储大小), B 为字节, b为 bit
# 2、运算方式
# 3、网络的性能指标
**8项:**速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率
4、速率和带宽
速率就是实际速率,带宽是最大速率(比如路由器最大网速)
# 5、时延
发送时延、传播时延、处理时延(不方便计算,一般忽略)、排队时延(可与处理时延合并为处理时延)
发送时延和传送时延哪个是主导的时延?由例子可知,要具体问题具体分析,不同情况下两种都有可能成为主导。
# 6、什么是以太网?什么是因特网?
以太网和因特网都是计算机网络领域的概念,但它们的定义和概念略有不同。
- 以太网是局域网(LAN)中最常用的协议之一。它是一种基于 CSMA/CD(载波监听多路访问/冲突检测)协议的局域网技术,通过电缆连接多台计算机,实现计算机之间的数据传输。以太网的传输速率可以从最初的10 Mbps,逐步提高到100 Mbps、1 Gbps、10 Gbps等,具有传输速率快、成本低等优点。以太网通常被用于局域网或数据中心内部的连接。
- 而因特网(Internet),是由多个计算机网络互联而成的全球性计算机网络。它是由美国国防部在上世纪60年代末期开发的,最初是为了让美国的研究机构和大学之间可以共享计算机资源和数据。随着互联网技术的不断发展,现在因特网已经成为全球最大的计算机网络,连接了全球数十亿的终端设备和计算机。因特网使用了一系列的协议和技术,例如 TCP/IP协议、域名系统(DNS)、路由协议等,实现了跨越不同地区和国家的计算机网络之间的通信和数据传输。
# 7、TCP/IP体系结构中的各层协议
# 8、体系结构分层的必要性
相当于做一个软件设计时,选择模块化处理,而不是混合到一起,便于处理各种问题
# 9、体系结构分层思想(请求与响应)
分层思想举例 假设现在有一个小型互联网网络,N1,N2是网络,N1那边有主机,N2那边有网络服务器。 我们在主机上用浏览器访问某网址,其实是我们向网络服务器发送一个请求,网络服务器就返回一个响应,浏览器把它解析后我们就看到了网址的页面。
其实是主机的浏览器进程与Web服务器进程基于网络的通信。 五个层次在这个过程的作用是:
- 主机发送:(自上而下)
应用层:根据HTTP协议构建一个报文,把报文交给运输层处理。
运输层:根据HTTP请求报文添加一个TCP首部,使之成为TCP报文段。该首部的作用:区分应用进程、实现可靠传输。然后将TCP报文段交给网络层处理。
网络层:给TCP报文段添加IP首部,是指成为IP数据报,作用是使之可以在互联网上传输(即,被路由器转发)。然后将IP数据报交给数据链路层处理。
数据链路层:给IP数据报添加首部和尾部,使之成为帧。帧首部的作用是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接受。帧尾部的目的是让目的主机检查所接受到的帧是否有误码。数据链路层将帧交给物理层。
物理层:将帧看作比特流。给该比特流前加前导码,作用是让目的主机做好接受帧的准备。物理层将添加前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器。
- 路由器转发:(先自下而上 - 解析,后自上而下 - 转发)
物理层:收到信号后将信号变换为比特流,去掉前导码,交付给数据链路层。实际上交付的是帧。 数据链路层:去掉帧的首部和尾部,将其交付给网络层,实际上交付的是IP数据报。 网络层:解析IP数据报的首部,从中提取目的网络地址,查找自身的路由表,确定转发端口,以便数据转发。网络层将IP数据报交付给数据链路层。 数据链路层:添加一个首部和尾部,变成帧。 物理层:接受帧,将其看作比特流,加前导码。将加了前导码的比特流变换成相应的信号发送到传输媒体。
- 服务器接收(自下而上 - 解析报文,然后响应)
物理层:信号通过传输媒体到达服务器的物理层,物理层将其变为比特流,去掉前导码,交付给数据链路层。实际上交付的是帧。 数据链路层:去掉帧的首部和尾部,将其交付给网络层,实际上交付的是IP数据报。 网络层:将IP数据报的首部去掉后,将其交付给运输层,实际上交付的是TCP报文段。 运输层:将TCP报文段的首部去掉后,将其交付给应用层。实际上交付的是HTTP请求报文。 应用层:对HTTP请求报文进行解析,然后给主机发回响应报文。
# 10、协议是水平的,服务是垂直的
# 11、计网体系结构中的专用术语
PDU - 对等层之间
SDU - (上下)层与层之间
# 思考
# 1、若使用电路交换来传送计算机数据,效果如何?
由于计算机数据的传送具有一定的突发性,用户之间建立连接后一般只有少部分时间用于数据传送,但期间却一直占用着该条连接,因此利用率较低。计算机网络通常采用分组交换
# 2、计算机网络体系结构为什么要分层?各层的主要任务的是什么?
(1)计算机网络体系结构之所以要分层,主要是为了实现模块化和分工合作的设计思想,将整个网络系统分解为若干个相对独立的层次,每层都有自己的功能和责任,便于设计、实现和维护网络系统。同时,分层还可以提高网络的灵活性和可扩展性,使得网络系统更易于适应不同的应用需求和技术变革。 一般而言,计算机网络体系结构分为五层,从下往上依次是物理层、数据链路层、网络层、传输层和应用层。
(2)各层主要任务如下:
- 物理层:负责将比特流转化为信号,并通过物理介质传输信号,实现数据的传输。主要任务包括数据的编码、调制、传输介质的选取和接口的设计等。
- 数据链路层:负责将数据帧从一个节点传输到相邻节点,实现可靠的数据传输。主要任务包括数据帧的封装和解封、差错检测和纠正、流量控制和访问控制等。
- 网络层:负责将数据包从源节点传输到目的节点,实现不同网络之间的互连。主要任务包括寻址和路由选择、分组的转发和复制、拥塞控制和服务质量保证等。
- 传输层:负责在端到端的通信中提供可靠的数据传输服务。主要任务包括数据的分段和重组、流量控制和拥塞控制、错误检测和纠正等。
- 应用层:负责提供各种网络应用服务,例如电子邮件、文件传输、远程登录等。主要任务包括应用协议的设计和实现、用户接口的设计和实现、网络安全和管理等。
各层之间通过协议栈相互联系,每层协议都有自己的数据单元和头部,通过头部中的控制信息传递给下一层或上一层,从而实现协议的交互和数据的传输。通过分层的设计,可以使得网络协议的设计和实现更加清晰和简单,便于扩展和更新,同时也提高了网络的可靠性和安全性。
# 3、什么是互联网
互联网是指利用标准化的网络协议,将全球范围内数以亿计的计算机网络互相连接而成的网络。
# 第二章 物理层
# 最重要的内容:
- 物理层的任务
- 几种常用的信道复用技术。
- 几种常用的宽带接入技术,重点是
FTFX
。
# 2.1 物理层的基本概念
物理层是计算机网络体系结构中的第一层,负责传输原始比特流,是整个网络体系结构中最底层的一层。它主要负责将数字信号转换为适合于在物理媒介上传输的信号,并控制数据在传输媒介上传输的方式。
物理层协议的主要任务:四大特性
# 2.2 物理层下的传输媒体
三种:导引型传输媒体、非导引型传输媒体、无线电频谱管理机构
# 2.3 传输方式
# 串行传输 与 并行传输
计算机远距离传输 -- 串行传输
计算机内部数据传输 -- 并行传输
# 同步传输 与 异步传输
异步传输:要在每个字节前后分别加上 起始位 和 结束位
思考 同步与异步
# 通信
# 2.4 编码与调制
# 数据通信中常用术语
三种:消息、数据、信号
# 编码
基带信号 -- 编码 --> 转换为数字信号
# 调制
基带信号 -- 调制 --> 转换为模拟信号(音频)
# 码元
在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
# 2.4.1 常用编码
四种:不归零编码、归零编码、曼彻斯特编码、差分曼彻斯特编码
# 2.4.2 常用调制
基本调制(二元制)
三种:调幅(AM)、调频(FM)、调相(PM)
混合调制(多元制)
# 2.5 信道的极限容量
# 奈氏准则(理想)
# 香农公式(受干扰)
# 影响信道数据的因素
# 奈氏准则和香农公式的意义
# 思考
1、如何能使 1
个码元包含更多的比特呢?
采用混合调制的方法 —— (举例)正交振幅调制 QAM
2、混合调制中,每个码元可以包含几个比特? 每个码元与 4 个比特的对应关系可以随便定义吗?
每个码元可以包含不同数量的比特,具体取决于所使用的调制方式及其他因素。
每个码元与 4 个比特的对应关系不能随便定义,具体取决于所使用的调制方式。
# 第三章 数据链路层
# 最重要的内容:
数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(
PPP
协议以及CSMA/CD
协议)的特点。数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
(1)封装成帧:是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息。
帧头和帧尾的作用之一就是帧定界。(含转义符可代表不是定界)
帧头和帧尾包含了一些重要的控制信息,其中一些包括:
- 帧起始标志:帧头通常包含一个特定的字节序列,用于指示帧的开始,以便接收方能够正确地识别帧的开始位置。
- 帧长度:帧头中通常包含一个表示帧的长度的字段,用于指示整个帧的长度,以便接收方能够正确地接收和处理整个帧。
- 协议版本:帧头中可能包含一个表示协议版本的字段,该字段用于指示使用的协议版本,以便接收方能够正确地解析帧的内容。
- 校验和:帧尾中通常包含一个校验和字段,用于检查整个帧在传输过程中是否出现了错误,并确保接收方接收到的帧是完整和正确的。
- 帧结束标志:帧尾中通常包含一个特定的字节序列,用于指示帧的结束,以便接收方能够正确地识别帧的结束位置。 这些控制信息可以帮助接收方正确地解析和处理整个帧,并确保数据的完整性和正确性。
(2)透明传输:是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
- 面向字节的物理链路层使用字节填充(或称字符填充)的方法实现透明传输。(转义字符
ESC
,避免误判) - 面向比特的物理链路使用比特填充方法的实现透明传输。(
PPP
协议零比特填充)
(3)差错检测:实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1 可能会变成 0,而 0 也可能变成 1。这称为比特差错(只是传输差错的一种,还有分组丢失、分组失序以及分组重复)。
检测方法有:奇偶校验(通常用于较低的数据传输速率和较短的数据长度)、循环冗余校验(CRC)、帧校验序列(FCS) -- 后两者常用,较为可靠
检错码只能检测出帧在传输过程中出现了差错,但不能定位错误,因此无法纠正错误。
冗余信息更多的纠错码可以进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
分组丢失、分组失序以及分组重复:一般不出现在数据链路层,出现在其上层
(4)可靠传输:
可靠传输是一种保证数据传输过程中数据不会丢失、损坏、重复、失序的技术。
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。(不可靠:仅丢弃误码的帧,啥也不做)
- 不局限于数据链路层,其它层也可实现
- 但是实现比较复杂,开销较大,是否使用可靠传输取决于应用需求(不使用:误码问题也可由上层解决)
三大协议:
停止-等待协议 SW -- 要等待确认号才可继续发送(一般情况效率低)
回退N帧协议 GBN -- 滑动窗口发送与接收,接收方采用累积确认,出现误码会回退 N 帧重传(此时效率低下,浪费资源)
选择重传协议 SR -- 滑动窗口发送与接收,接收方采用逐一确认,出现误码选择性重传
以太网
MAC
层的硬件地址。适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。
MAC
帧格式:
点对点协议 PPP
帧的格式:
# 思考:
1、接收方的数据链路层如何从物理层交付的比特流中提取一个个的帧?
接收方的数据链路层从物理层交付的比特流中提取一个个的帧的过程称为帧的“解封装”(De-encapsulation)。该过程可以通过以下步骤完成:
- 接收方的物理层将比特流传递给数据链路层,数据链路层需要检查每个比特,以便找到帧的起始标志,通常为一个特定的字节序列,例如01111110。
- 一旦找到起始标志,数据链路层就开始解析帧头。帧头通常包含了一些重要的控制信息,例如帧的长度和协议版本等信息,这些信息可以帮助接收方正确地解析和处理整个帧。
- 接下来,数据链路层从比特流中读取帧的数据部分,并将其存储在接收缓冲区中。这个过程将一直持续到接收到帧结束标志,通常也是一个特定的字节序列,例如01111110。
- 最后,数据链路层对接收到的帧进行错误检查,通常是通过校验和或循环冗余校验(CRC)来完成的。如果帧中检测到错误,数据链路层可以将其丢弃,或者向上层协议发送错误消息。 通过这些步骤,接收方的数据链路层可以从物理层交付的比特流中提取一个个的帧,然后将其传递给更高层的协议进行进一步处理。
2、什么是可靠传输?
3、既然数据分组(DATA0)需要编号,那么确认数组(ACK0)是否也需要编号呢?
需要 -- 解决确认迟到所导致的重复确认问题 -- 避免发送方重复发送