计算机网络之物理层,数据链路层,网络层 学习笔记

注意:本篇博客笔记基于学习哔哩哔哩中的湖科大的计算机网络微课程 做的笔记总结,所使用的图片来自该课堂的截图。

计算机网络微课堂(有字幕无背景音乐版)计算机网络微课堂(有字幕无背景音乐版)为了满足不同网友对字幕以及背景音乐的需求,特意制作了无字幕无背景音乐版、无字幕有背景音乐版、有字幕无背景音乐版和有字幕有背景音乐版,大家可以根据自己的喜好选择观看。用简单的语言描述复杂的问题,用形象生动的动画演示抽象的概念,用精美的文案给人视觉上的享受。让初学者更容易入门计算机网络。 希望在计算机网络的学习、复习和考研中能够助你一臂之力。获取资料,请在评论中留, 视频播放量 1506558、弹幕量 31325、点赞数 30891、投硬币枚数 36408、收藏人数 75202、转发人数 11115, 视频作者 湖科大教书匠, 作者简介 ,相关视频:王道计算机考研 计算机网络,中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程,计算机网络一小时速成!,【自学编程】编程技术如何自学 | 白嫖达到报班的效果 | 我已经被培训班通缉,计算机网络,计算机网络 第8版 谢希仁,我真希望学计算机之前,有人能告诉这些该多好,每次我撑不下去的时候就会打开这个视频!,计算机学习最强技能树 照着这个路线不再迷茫,【155集全】计算机网络,1080P高清,我见过的最好的计算机网络课程,学长喊你来学习,该无脑计算机吗?一个视频讲透计算机类所有专业!【框框的b站大学-计算机类专业上期】https://www.bilibili.com/video/BV1c4411d7jb?spm_id_from=333.337.search-card.all.click

目录

一、计算机网络概述

1.因特网的概述

网络,互联网和因特网

因特网服务提供者 ISP

因特网的组成

2.三种交换方式

①电路交换

②分组交换(重点掌握其特点)

③报文交换

三种交换对比及其优缺点

3.计算机网络的定义和分类

4.计算机网络的性能指标

比特和速率(重点)

带宽

吞吐量

时延(重点)

时延带宽积

往返时间

利用率(重点)

丢包率

5.计算机网络体系结构(超重点)

①常见的计算机网络体系结构

②计算机网络体系结构分层的必要性(知道)

总结

③计算机网络体系结构分层思想举例

④计算机网络体系结构的专用术语

总结 

二、物理层学习

1.物理层的基本概念:

2.物理层下面的传输媒体(了解)

导引型传输媒体

非导引型传输媒体

3.传输的方式

串行/并行传输

同步传输和异步传输(重点区分二者的概念)

单工/半双工/全双工

总结

4. 编码与调制

5. 信道的极限容量

三、数据链路层

1.传输的流程以及数据链路层的概述

2.封装成帧

3.差错检测

奇偶校验

循环冗余校验CRC

4.可靠传输

保证可靠传输的一些协议

5.PPP(点对点)协议

透明传输

媒体接入层

静态划分信道

动态接入控制

6.MAC地址、IP地址和ARP协议(超重点)

MAC地址介绍

MAC地址格式

IP地址

ARP协议---地址解析协议

小结

7.集线器与交换机

集线器

交换机

交换机自学习和转发帧流程

STP生成树协议

VLAN虚拟局域网

四、网络层

1.网络层概述(有重点)

2.网络层提供的两种服务

面向连接的虚电路服务

无连接的数据报服务

3.IPV4地址概述(重点)

来源和发展

表示方法---点分十进制(重点)

4.分类地址分类方法(重点)

分类编址的IPV4地址

划分子网的IPV4地址

无分类编址的IPv4地址

5.IP数据报发送转发过程(传输的过程是重点)

6.路由选择协议

1.路由器的功能和结构

2.路由信息协议RIP

3.开放最短路径优先OSPF

4.边界网关协议BGP

7.IPV4数据报的首部格式

8.网际控制报文ICMP

9.虚拟专用网VPN和网络地址转换NAT

五、运输层和应用层


一、计算机网络概述

1.因特网的概述

网络,互联网和因特网

  • 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。

  • 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是"网络的网络(Network of Networks)";

  • 因特网(Internet)是世界上最大的互连网络(用户数以亿计,互联的网络数以百万计)

 因特网发展的三个阶段:

因特网服务提供者 ISP

因特网服务提供者(Internet Service Provider,简称ISP):

通过ISP接入因特网。ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等连网设备,任何机构和个人只要向ISP交纳规定的费用,就可以从ISP得到所需要的IP地址。互联网上的主机都必须有IP地址才能通信

基于ISP的三层结构的因特网:

因特网的组成

  • 边缘部分:由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享

  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)

     

2.三种交换方式

①电路交换

电话交换机接通电话线的方式称为电路交换;

从通信资源分配角度来看,交换(Switch)就是按照某种方式动态地分配传输线路的资源;

电路交换三个步骤:

  • 建立连接(分配通信资源):例如在使用电路交换打电话前,必须先拨号请求建立连接,当被叫用户听到电话交换机送来的拨号音并拿起电话后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信中不会被其他用户占用

  • 通话(一直占用通信资源):分配的资源始终被占用

  • 释放连接(归还通信资源)

②分组交换(重点掌握其特点)

  • 发送方:①构建分组 ②发送分组

  • 路由器:①缓存分组 ②转发分组

  • 接收方:①接收分组 ②还原报文

③报文交换

报文交换与分组交换类似,不过对报文没有限制大小,现如今多使用分组交换。所以就不对其进行展开介绍了;

三种交换对比及其优缺点

3.计算机网络的定义和分类

定义:一些互相连接的、自治的计算机的集合

  • 互连:指计算机之间可以通过有线或无线的方式进行【数据通信

  • 自治:指独立的计算机,它有自己的硬件和软件,可以【单独运行使用

  • 集合:指至少需要两台计算机

计算机网络的分类:

按交换技术:①电路交换网络 ②报文交换网络 ③分组交换网络

按使用者:①公用网 ②专用网(军队,铁路,电力等系统)

按传输介质:①有线网络 ②无线网络

按覆盖范围:①广域网WAN ②城域网MAN ③局域网LAN(比如常见的校园网) ④个域网PAN

按拓扑结构:①总线型网络 ②星型网络 ③环型网络 ④网状型网络

4.计算机网络的性能指标

比特和速率(重点)

性能指标可以从不同的方面来度量计算机网络的性能

比特(bit):计算机中的数据量单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个10.

速率(b/s):连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率;

带宽

信号所包含的各种不同频率成分所占据的频率范围;单位:Hz(kHz,MHz,GHz)

带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的"最高数据率" ;单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)

联系:一条通信线路的"频带宽度"越宽,其所传输数据的"最高数据率"也越高

吞吐量

  • 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量

  • 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。

  • 吞吐量受网络的带宽或额定速率的限制。

时延(重点)

在处理过程中所需要的时间;

由这里我们可以看出,在采购与网络设备相关的产品的时候,一定要尽量保证设备之间的速率和带宽相匹配,否则会导致不必要的资源浪费;

 例题分析:  

我们可以从这两道例题可以看出来,在进行数据传输的时候,如果忽略处理时延,那么发送时延和传播时延究竟谁占传播中时间消耗的主导? 答案是根据具体情况具体分析

总结:

时延带宽积

往返时间

在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互,我们有时很需要知道双向交互一次所需要的时间,因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标;

利用率(重点)

信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)

网络利用率:全网络的信道利用率的加权平均

丢包率

丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率 具体可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等;

丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们意识不到丢包

分组丢失的两种情况

  • 分组在传输过程中出现误码,被结点丢弃。

  • 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞。

丢包率反映了网络的拥塞情况

  • 无拥塞时路径丢包率为0

  • 轻度拥塞时路径丢包率为1%~4%。

  • 严重拥塞时路径丢包率为5%~15%

总结:  

5.计算机网络体系结构(超重点)

①常见的计算机网络体系结构

 TCP/IP体系结构: 将物理层和数据链路层合并成一层了,并且将回话层和表示层给删除掉了;

TCP/IP体系结构的接口层并没有规定什么具体的内容,这样做的目的是可以互连全世界各种不同的网络接口,例如有线的以太网接口,无线的局域网WIFI接口,而不限定仅使用一种或几种接口;

因此本质上,TCP/IP体系结构只有上面三层;IP协议是网际层的核心协议,TCP和UDP是TCP/IP体系结构运输层的两个重要协议,TCP/IP体系结构的应用层包含了大量的应用层协议,例如:HTTP,DNS等;

IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务。而TCP协议在享受IP协议提供网络互连服务的基础上,可向引用层的相应协议提供可靠传输服务UDP在享受IP协议提供网络互连服务的基础上,可向应用层的协议提供不可靠的传输服务; IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不同的网络接口,另一方面,为各种网络应用提供服务。 TCP/IP协议体系中包含了大量的协议,IP协议和TCP协议是其中非常重要的两个协议,因此用TCP和IP来表示整个协议大家族。

②计算机网络体系结构分层的必要性(知道)

”分层“可将庞大而复杂的问题,转化为若干个小的局部问题,而这些较小的局部问题就比较易于研究和处理。

情况一:先来看一种简单的连接:两台计算机进行连接通信

注意:

①严格来说,传输媒体并不属于物理层,它并不包含在体系结构中。

②计算机网络中传输的信号,并不是举例的方波信号;这里举例方波信号是为方便理解;

情况二:在总线型网络上,还面临什么需要解决的问题?

如图所示:主机A要给主机C发送数据,但是表示数据的信号会通过总线传播到总线上的每一主机,那么问题来了,主机C如何知道该数据是发送给自己的,自己要不要接受?而主机B,D,E又如何知道该数据并不是发送给自己的,自己应该拒绝? 这就很自然的引出来如何标识网络中的各主机问题!

主机在发生数据时,应该给数据附加上目的地址,当其他主机收到后,根据目的地址和自身地址来决定是否接受数据,这就又引出了一个问题,目的主机如何从信号所表示的一连串比特流中区分地址和数据?也就是说要解决分组的封装格式问题;另外对于总线型网络还会出现下面的问题,例如某个时刻总线是空闲的,也就是说没有主机来使用总线发送数据,片刻之后主机B和D同时向总线发送数据,这会导致信号碰撞,因此如何协调各主机争用总线,也是必须要解决的问题;

需要说明的是,这种总线型的网络早已被淘汰。

现在常用的是以太网交换机将多台主机互连形成的交换式以太网,那么以太网交换机又是如何实现的呢?我们将这些问题全部归属到数据链路层。

 只要解决了物理层和数据链路层之间的一些问题,我们就可以实现分组在一个网络上传输的。理论上确实是这样,但是我们每天使用的因特网是由非常多个的网络和路由器连起来的,仅解决物理层和数据链路程的问题,还是不能正常工作的;看下图:

至此,我们解决了物理层,数据链路层以及网络层各自的问题,则可以实现分组在网络间传输的问题。但是这对于计算机网络的应用来说仍然不够,例如假设这台主机中运行着两个与网络通信相关的应用进程,一个是浏览器进程,另一个是QQ进程,这台服务器中运行者与网络通信相关的服务进程。某个时刻主机收到了来自服务器的分组,那么这些分组是应该交给浏览器进程处理呢?还是应该交给QQ进程处理?这就引出了我们如何标识与网络通信相关的应用进程,进而解决进程之间基于网络的通信问题

至此,我们解决了物理层,数据链路层,网络层和运输层的相关问题之后,则可以实现进程之间基于网络的通信。

基础上只需要制定各种应用层的协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。

总结

 作用范围:

③计算机网络体系结构分层思想举例

当我们利用浏览器发送网页请求到服务器并发生响应的过程中,数据会怎么变化呢?

浏览器发送:

  • 应用层按照HTTP协议的规定构建一个HTTP请求报文(请求要干什么)。应用层将HTTP请求的报文交给运输层处理

  • 运输层给HTTP请求报文添加一个TCP首部(区分应用进程),使之成为TCP报文段。运输层将TCP报文段交给网络层处理

  • 网络层给TCP报文段添加一个IP首部(使之可以在互联网上传输),使之成为IP数据报。网络层将IP数据报交付给数据链路层处理

  • 数据链路层给IP数据报添加一个首部(让其能在一段链路上传输,能被相应主机接收)和一个尾部(让目的主机检查所接收到的帧是否有误码),使之成为帧。数据链路层将帧交给物理层

  • 物理层将帧看作比特流,如果网络是以太网,它还会在帧上加前导码(让目的主机做好接收帧的准备)。接着将比特流变成相应信号发送到传输媒体

路由器转发:

  • 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层(交付的实际是帧)

  • 数据链路层将帧去掉首部和尾部后,将其交付给网络层(交付的实际是IP数据报)

  • 网络层解析IP数据报首部,从中提取目的网络地址,然后查找自身路由表,确定转发端口。接着数据链路层封装,物理层再封装,将比特流变成信号发送出去。

服务器接收:

  • 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层(交付的实际是帧)

  • 数据链路层收到帧后,去除首部和尾部,将其交付给网络层(交付的实际是IP数据报)

  • 网络层收到IP数据报后,去除IP首部,将其交付给运输层(交付的实际是TCP报文)

  • 运输层收到TCP报文后,从中得知是与哪个端口上的进程通信,去除TCP头部后,交付给应用层(交付的实际是HTTP请求报文)

  • 应用层收到HTTP请求报文后,将其解析给对应进程,并执行相关操作,返回HTTP响应报文

    版权声明:该片段为CSDN博主「Infinity_and_beyond」的原创文章中的内容; 原文链接:计算机网络详细笔记【湖科大教书匠,内含B站链接】_Infinity_and_beyond的博客-CSDN博客_湖科大教书匠

④计算机网络体系结构的专用术语

这些专用术语来源与OSI七层协议体系结构;但是也适用于TCP IP的4层体系结构,和5层协议原理体系结构。

实体:

实体:任何可发送或接收信息的硬件或者软件进程

对等实体:收发双方相同层次中的实体

协议:

控制两个对等实体进行逻辑通信【这种通信实际上不存在,只是便于我们考虑问题】的规则的集合;

 计算机网络三要素

tcp的三次握手可以充分的体现计算机网络协议三要素中的同步:(在运输层会详细的讲解三次握手)

  • 语法:定义所交换信息的格式(即报文格式,不需要记忆,可以看懂就行)

  • 语义:定义收发双方所要完成的操作(即收,发任务需要各自定义)

  • 同步:定义收发双方的时序关系(如先建立侦听才可以通信是有先后顺序的)

服务:

  • 在协议控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务;

  • 要实现本层协议,还需要使用下面一层所提供的服务;

  • 协议是"水平的",服务是"垂直的";

  • 实体看得见相邻下层所提供的的服务,但是并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是"透明"的(我们肯定看得见手机为我们提供的各种服务,但是我们只是享受这些服务,没有必要去弄懂手机的工作原理)

 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口(就像Web里的request域,后端前端都能取到),用于区分不同的服务类型;

  • 数据链路层的服务访问点为帧的"类型"字段;

  • 网络层的服务访问点位IP数据报首部中的"协议字段";

  • 运输层的服务访问点为"端口号";

  • 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语;

总结 

二、物理层学习

1.物理层的基本概念:

  • 物理层考虑的是怎么才能在连接各种计算机的传输媒体上传输数据比特流

  • 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么;

物理层协议主要任务:

  • 机械特性:指明接口所用接线器的形状尺寸引脚数目排列固定锁定装置

  • 电气特性:指明在接口电缆的各条线上出现的电压范围

  • 功能特性:指明某条线上出现的某一电平的电压表示何种意义

  • 过程特性:指明对于不同功能的各种可能事件的出现顺序

2.物理层下面的传输媒体(了解)

导引型传输媒体

非导引型传输媒体

3.传输的方式

串行/并行传输

串行传输是指数据是1个比特1个比特依次发送的,发送端与接收端之间只用1条数据传输线即可; 并行传输是指一次发送n个比特而不是一个比特,在发送端和接收端之间需要有n条传输线路;

串行传输的效率是并行传输的N倍,但是并行传输所需要的成本也是非常昂贵的。

在计算机网络中,数据在传输线路上的传输时串行传输;而计算机内部(如CPU和内存)多使用并行传输

同步传输和异步传输(重点区分二者的概念)

同步传输:数据块以稳定的比特流形式传输,字节之间没有间隔。接收端在每个比特信号的中间时刻进行检测,以判别接收到的是比特0还是1。由于不同设备的时钟频率存在一定差异,不可能完全相同,在传输大量数据的过程中,所产生的判别时刻的累计误差会导致接收端对比特信号的判别错位。因此需要采取方法使双方的时钟保持同步;

实现收发双方时钟同步的方法:

  • 外同步:在收发双方之间加一条单独的时钟信号线,发送端在发送数据信号的同时,另外发送一路时钟同步信号,接收端按照时钟同步信号的节奏来接收数据;

  • 内同步:发送端将时钟同步信号编码到发送数据中一起传输(传统以太网所采用的就是曼彻斯特编码)

异步传输:

以字节为独立的传输单位,字节间的时间间隔不是固定的,接收端仅在每个字节的起始处对字节内的比特实现同步,为此通常传送前要在每个字节前后加上起始位和结束位

  • 异步是指字节之间异步(字节之间的时间间隔不固定)

  • 字节中的每个比特仍然要同步(各比特的持续时间是相同的)

单工/半双工/全双工

总结

4. 编码与调制

计算机网络中计算机需要处理和传输用户的文字,图片,音频和视频,它们可统称为消息

  • 消息(message)包括文字、图片、音频和视频

  • 数据是运送消息的实体;计算机中的网卡将比特1和0变换成相应电信号发送到网线(计算机只能处理二进制的数据),即信号。

  • 信号是数据的电磁表现,由信源(网卡)发出的原始电信号称为基带信号。

  • 基带信号又可分为两类,一类是数字基带信号(CPU和内存传输的信号),一类是模拟基带信号(麦克风收到声音后产生的音频信号)。

信号需要在信道中进行传输,信道可分为数字信道和模拟信道

在不改变信号性质的前提下,仅对基带信号的波形进行变换,称为编码。编码后产生的信号还是数字信号,可以在数字信道中传输;

把基带信号的频率范围搬移到较高的频段,并转换为模拟信号,称为调制。调制后产生的信号还是模拟信号,可以在模拟信道中传输;

简单来说,码元就是一段调制好的基本波形,可以表示比特信息;

常用编码:

①不归零编码 正电平代表比特1,负电平代表比特0。在整个码元时间内,电平不会出现零电平;

这种编码方式如何区分连续几个相同电平呢?

这要求发送方发送和接收方接收严格同步,这就需要额外一根传输线来传输时钟信号。接收方按照时钟节拍逐个接收码元。但是对于计算机网络,多的线不如拿来传输数据,因此由于存在同步问题,计算机中的数据传输不使用不归零编码;

②归零编码 每个码元传输结束后信号都要"归零",所以接收方只要在信号归零后进行采样即可,不需要单独的时钟信号。

实际上,归零编码相当于把时钟信号用"归零"方式编码在了数据之内,这称为"自同步"信号

归零编码中的大部分数据带宽都用来传输"归零"而浪费掉了(编码效率低);

③曼彻斯特编码 码元的中间时刻既表示时钟,又表示数据。根据正负跳变来区分比特

具体如何根据跳变实现同步?

第一次数据跳变的时间记录下来【即半个码元的时间】,此后每过一个码元的时间就进行检测,根据跳变方向决定数据为0还是1。

④差分曼彻斯特编码 ①跳变仅表示时钟 ②码元开始处电平是否发生变化表示数据。 比曼彻斯特变化少,更适合较高的传输速率;

基本的调制方法:

本段来自博文:计算机网络详细笔记【湖科大教书匠,内含B站链接】_Infinity_and_beyond的博客-CSDN博客_湖科大教书匠

5. 信道的极限容量

通信质量较差的信道在传输信号的过程中会发生严重失真(无法识别原信号)【码间串扰】

三、数据链路层

1.传输的流程以及数据链路层的概述

先来看看数据链路层在网络体系中的地位:

主机H1要给主机H2发送信息,会经过3个路由器和电话网,局域网,广域网等多种网络;

从5层协议原理体系结构来看,主机应具有体系中的各个层次而路由器只需要具有体系中的下面三层,各设备通过通过物理层下面的传输媒体进行互连;

大致过程:

数据发送的传输过程,主机H1将待发送的数据逐层封装后,通过物理层将构成数据包的各比特转化为电信号,发送到传输媒体,数据包进入路由器后,由下往上逐层解封到网络层,路由器根据数据包的目的网络地址和自身转发表,确定数据包的转发端口,然后从网络层向下逐层封装数据包,并通过物理层将数据包发送到传输媒体,预报最终到达主机H2时,还要由下往上逐层解封,最终解封出主机H1发送的数据。

我们在研究数据链路层的时候,可以先不用考虑其他层的影响,只考虑数据链路层就行,看图的水平方向;

  • 链路(Link):从一个结点到相邻结点的一段物理线路,中间没有任何其他交换结点;

  • 数据链路(Data Link):把实现通信协议的硬件和软件加到链路上,就构成了数据链路;

  • 数据链路层以为单位传输和处理数据;

数据链路层的三个重要问题:封装成帧,差错检测,可靠传输;

2.封装成帧

如图所示,两台主机通过一段链路互连,两台主机都会对所发送或接收的数据包进行5个层次的封装或解封。

数据链路层为数据加上帧首和帧尾使之成为帧的过程;添加帧头和帧尾的目的不是为了在链路上以帧为单位来传送数据,就是为了实现数据链路层本身的功能。

  • 帧头和帧尾中含有重要的控制信息

  • 帧头帧尾的作用之一就是帧定界(变成比特传输后据此区分每个帧的起始和结束)

  • 为了提高帧的传输效率,应当使帧的数据部分长度尽可能大,帧的数据部分应远大于帧头和帧尾,这样才能提高帧的传输效率。

  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)

透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样(即保证接收方接到的数据是完整的数据)

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输

    • 帧头帧尾有标志位用来划分一个个帧,如果帧内部恰好也出现了标志位,则在第一次扫描时在标志位前面加一个转义字符帮助区分哪个是真正的帧头。考虑到转义字符也可能在帧内部出现,因此在转义字符前也加转义字符。接收方接到消息后但凡看到转义字符开头就会去掉转义字符并且对其后一个字符不做特殊处理

  • 面向比特的物理链路使用比特填充的方法实现透明传输

    • 零比特填充:在发送前,对帧的数据部分进行扫描,5个连续的比特1后就插入1个比特0,防止其与首部尾部的标志位混淆。接收方接收时将每5个连续的比特1后面的0剔除即可

小结:

3.差错检测

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能变成0,0可能变成1。这叫比特差错

  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Big Error Rate);

  • 使用差错检测码(如Mac帧尾的FCS)来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一;

奇偶校验

在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中"1"的个数为奇数(奇校验)或为偶数(偶校验);

如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)

由于奇偶校验的无码率比较高,因此计算机网络的数据链路层一般不会采用这种检测方法;

循环冗余校验CRC

  • 收发双方约定好一个生成多项式G(x)

  • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输

  • 接收方通过生成多项式来计算收到的数据是否产生了误码

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。

  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。

  • CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层

  • 在计算机网络中通常采用检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

4.可靠传输

不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做

可靠传输:想办法实现发送端发送什么,接收端就收到什么

尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。

  • 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理

  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务

  • 比特差错只是传输差错中的一种,从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复(此处我们将帧的称呼改为了分组)

  • 分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层

  • 可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输;

  • 可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求

 小结:

保证可靠传输的一些协议

①停止-等待协议SW

②回退N帧协议GBN

③选择重传协议SR

由于个人方向的原因,这里就不再对这些协议进行深入学习;

要了解的,可以参考视频:计算机网络微课堂(有字幕无背景音乐版)

5.PPP(点对点)协议

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议, 用于规定帧的格式

透明传输

透明传输:是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样(即保证接收方接到的数据是完整的数据);

①字节填充法:面向字节的异步链路采用插入转义字符的字节填充法;

②比特填充法:面向比特的同步链路采用插入比特0的比特填充法;

  • 发送方:对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0

  • 接收方:对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除

  •  点对点多协议的工作状态:

媒体接入层

例如:多台主机连接到这根同轴电缆上,它们共享这根传输媒体,形成了一个总线型的局域网,各主机竞争使用总线,随机的在信道上发送数据,如果恰巧有两个或更多的站点在同一时刻发送数据,那么信号在共享媒体上就要产生碰撞,即发送了冲突,使得这些站点的发送都失败

共享信道要着重考虑的一个问题,就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Acess Control)。

 随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有限领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

静态划分信道

行道复用:

  • 复用(Multiplexing)就是通过一条物理线路同时传输多路用户的信号。

  • 当网络中传输媒体的传输容量大于多条单一信道的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

频分复用FDM:

将传输线路的频带资源划分成多个子频带,形成多个子信道。各子信道之间留出隔离频带,以免造成子信道间干扰。当多个信号输入一个多路复用器时,这个复用器将每一个信号调制到不同频率的载波上,接收端由相应的分用器通过滤波将各路信号分隔开,将合成的复用信号恢复成原始的多路信号;

时分复用TDM:

时分复用技术将时间划分为一段段等长的时分复用帧,每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙。每个用户所占的时隙是周期性出现的,其周期就是时分复用帧的长度;

波分复用WDM:

波分复用其实就是光的频分复用。经过光调制,分别将光载波变换到不同波长。这些光波经过光复用器就可以在一根光纤中传输。到达终点后用光分用器将不同波长的光进行还原得到信息,光信号传输一段距离后会衰减,对衰减的光信号必须进行放大才能继续传输;

码分复用CDM:

码分复用CDM(最初用于军事通信)是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA

CDM的每一个用户可以在同样的时间使用同样的频带进行通信,由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰;

码片序列的挑选原则:

  1. 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列

  2. 分配给每个站的码片序列必须相互正交(规格化内积为0)

动态接入控制

多个主机连接到一根总线上,当信息同一时间传送相遇时就会发生碰撞。如何协调各主机的工作,使信息避免碰撞是很重要的。

载波监听多址接入/碰撞检测(CSMA/CD)【不用于无线网络】:

96比特时间是指发送96比特所需要的时间,也称为帧间最小间隔。其作用是是接收方可以检测出一个帧的结束,同时也使得其他站点都能有机会平等竞争信道并发送帧

  • 每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间

  • 在以太网中发生帧的主机越多,端到端往返传播时延越大,发生碰撞的可能性就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长

最小帧长:

假设A向D发送帧,如果帧很短的话,在2 τ 2\tau2τ内就会将帧发送完毕,帧发送完毕后不会进行碰撞检测,而此时依然有发生碰撞的可能。所以必须保证在2 τ 2\tau2τ时间内帧不会被发送完,在这段时间里能够保持碰撞检测

  • 以太网规定最小帧长为64字节,即512比特(512比特即争用期)

  • 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节

  • 以太网的最小帧长保证了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞

  • 如果在争用期没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞

  • 如果在争用期检测到碰撞就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞检测而异常中止的无效帧

最大帧长:当帧过长时,其他线路会迟迟得不到资源,同时也可能导致接收方缓冲区溢出,因此帧的最大长度也有规定。

小节知识点来自:CSDN博主「Infinity_and_beyond」的原创文章,原文链接:计算机网络详细笔记【湖科大教书匠,内含B站链接】_Infinity_and_beyond的博客-CSDN博客_湖科大教书匠

6.MAC地址、IP地址和ARP协议(超重点)

MAC地址介绍

MAC地址是以太网的MAC子层所使用的的地址;

  • 只有一条路径的信道不需要地址;(使用点对点信道的数据链路层不需要使用地址。)

  • 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址

  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址。

    • MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址

    • MAC地址有时也被称为物理地址。但是MAC地址不属于物理层而是属于数据链路层。

  • 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识;

MAC地址格式

单播MAC地址即明确的目的MAC地址。将此地址填入帧的目的地址栏中,接收到该帧的主机将此地址与自身MAC地址进行匹配,若相同则接收,不同则丢弃。

  • 假设主机B要给主机C发送单播帧,主机B首先要构建该单播帧,在帧首部中的目的字段填入主机C的MAC地址,源地址字段填入自己的MAC地址,然后在加上帧首部的其他字段,数据载荷以及帧尾部,就构成了单播帧

  • 广播MAC地址为FF-FF-FF-FF-FF-FF,将此地址填入帧的目的地址栏中,接收到该帧的主机检索该地址发现是广播地址,因此接收该帧。

MAC地址中第一字节后4比特为(1,3,5,7,9,B,D,F)时,MAC地址是多播地址。将此地址填入帧的目的地址栏中,接收到该帧的主机将此多播地址与自己多播组列表中的地址进行逐一配对,如果有匹配的项,则接收,否则丢弃。

 该节小结:

IP地址

需要注意的是IP地址属于网络层的范畴,而不是属于数据链路层的范畴。

这里只是介绍一些IP地址的作用,后面会详细讲解;

  • IP地址是Internet上的主机和路由器所使用的的地址,由两部分信息构成:

    • 网络编号:标识因特网上数以百万计的网络;

  • 主机编号:标识同一网络上不同主机(或路由器各接口)

MAC地址不具备区分不同网络的功能,而IP地址可以通过网络编号做到;

如果只是一个单独网络,不接入因特网,则使用MAC地址就足够了(这不是一般用户的应用方式) 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用

数据包转发过程中IP地址与MAC地址变换情况:(数据包在一次先下封装的时候,在网络层和数据链路层是需要分别封装源的ip地址和目的地的IP地址,以及 源的MAC地址和目的地的MAC地址)

  • 路由器上有路由表,记录了要到目的IP地址,先要走哪些路(即下一跳位置)。所以H1起初只带有目的IP地址,查询路由表后路由器指路,从而知道下一步该往哪里走,从而不断转发直至到达目的地。

我们可以从这个流程图中得知H1,R1,R2都不知道对应的MAC地址为啥?

那么我们可以通过IP地址得到MAC地址吗? IP ---> MAC ?

后面我们介绍的ARP协议就是来解决这个问题的!

来看一道例题:

 本节小结:

ARP协议---地址解析协议

地址解析协议ARP属于TCP/IP体系结构的网际层(网络层),其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址。

我们先来看一个案例:下图是一个共享总线型的以太网。

为了简单起见,我们只画出了该网络中的三台主机。各主机所配置的IP地址。和其网卡上固化的MAC地址。

假设主机B要给主机C发送数据包,主机B知道主机C的IP地址,但不知道它的MAC地址。因此主机B的数据链路程在封装MAC帧的时候就无法填写目的的MAC地址字段,进而也就无法构建出要发送的MAC帧。实际上每台主机都会有一个ARP的高速缓存列表, ARP高速缓存表中记录了IP地址与MAC地址的对应关系。在本例中,当主机B要给C发送数据包时,会首先在自己的ARP高速缓存列表中查找主机C的IP地址所对应的MAC地址,但是发现未找到,因此主机B要发送ARP的请求报文,来获取主机C的MAC地址:广播一个ARP请求报文(封装在MAC帧中,目的地址为广播地址FF-FF-FF-FF-FF-FF),翻译成中文后的大白话内容大致如下:

  • 我的IP地址是:xxx ;我的MAC地址是:XXX;我想知道C主机的MAC地址是多少?这个广播帧会被总线上其他主机都可以收到。

  • A主机收到后交由上层处理,发现B问的不是它,所以不予理会。

  • C收到后交由上层处理,上层的ARP进程解析ARP请求报文后发现这个IP地址正是自己,需要响应,因此首先将B的MAC地址和IP地址的对应关系记录到自己的ARP高速缓存表中,然后给主机B发送响应报文,以告知自己的MAC地址。响应报文的大致内容是:我的IP地址为XXX,我的MAC地址为XXX。(ARP响应报文被封装在MAC帧中发送,目的地址为主机B的MAC地址)。主机C给主机B发送封装有ARP响应报文的单播帧,总线上的其他主机都能收到该单播帧。

总线上的其他主机都能收到该单播帧后会进行MAC地址匹配,如果发现不匹配则丢弃该帧,如果MAC地址匹配上,网卡将帧交给上层处理;上传的ARP进程解析ARP响应报文,将其包含的主机C的IP地址和MAC地址记录到自己的ARP高速缓存列表中。然后主机B就可以给主机C发送之前想要发送的数据包的。ARP高速缓存表中的每一条记录,都有其类型,类型分为动态和静态两种;

  • 动态类型:指记录是主机自动获取的,生命周期默认为两分钟。当时间超过生命周期之后,将记录自动删除。这样做的原因是, IP地址与MAC地址的对应关系并不是永久性的。比如当主机的网卡坏了之后,更新新的网卡,他的IP地址没有变化,但是MAC地址发生了变化。

  • 静态类型:手工设置的条目,不同操作系统下的生命周期。

 注意:ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用。

小结

7.集线器与交换机

集线器

集线器HUB的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

交换机

交换机是一种负责转发信号的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路

  • 以太网交换机通常由多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式

  • 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)

  • 以太网交换机一般都具有多种速率的接口。

  • 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。

  • 以太网交换机是一种即插即用的设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。

  • 帧的两种转发方式

    • 存储转发(大部分以太网的转发方式)

    • 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查是否有差错)

对比:

交换机自学习和转发帧流程

先要详细了解的可以视频:计算机网络微课堂(有字幕无背景音乐版)哔哩哔哩bilibili

STP生成树协议

STP可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题;

 本节小结:

VLAN虚拟局域网

 为什么需要VLAN?

随着交换式以太网规模的扩大,广播域相应扩大,而巨大的广播域会带来很多弊端;

广播风暴:

假设网络中的某个主机要给另一个主机发送一个数据帧,但是在自己的ARP高速缓存表中无法查询到目的主机的MAC地址,于是首先要发送ARP广播请求来获取目的主机的MAC地址,该ARP广播请求会传播整个网络,网络中其他所有主机都可以收到该广播。这就是所谓的广播风暴。

  • 广播风暴会浪费网络资源和网络中各主机的CPU资源。因此除了应用中必须使用广播,否则网络中的主机应尽量避免不使用广播。

如何分割广播域?

  1. 路由器

    由于路由器属于网络层设备,默认情况下不对广播数据包进行转发,因此自然达到隔离的效果。但是成本较高,局域网内部全靠路由器分割广播域是不现实的

  2. VLAN虚拟局域网技术

VLAN实现机制:

  • VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网帧属于哪一个VLAN

    • VID的取值范围是0~4095。

    • 0和4095都不用来表示VLAN,因此用于表示VLAN的VID的有效范围是1~4094。

  • 802.1Q帧时由交换机来处理的,而不是用户主机来处理的(只有去了标签主机才能识别)

    • 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q,简称"打标签"。

    • 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称"去标签"。

四、网络层

1.网络层概述(有重点)

主要任务是实现网络互连,进而实现数据包在【各网络】之间的传输

要实现网络层任务,需要解决以下的问题:

  • 网络层向运输层提供怎样的服务?是“可靠传输” 还是”不可靠传输“;

    • 数据包在传输的过程中可能会出现误码。

    • 也有可能由于路由器繁忙而被路由器丢弃。

    • 还有可能出现按序发送的数据包,不能按序到达接收方。

如果网络层对上述可能出现的错误不采取任何措施,那么提供的是不可靠传输服务。如果网络层对于上述传输错误采取措施,并使得接收方能正确接收发送方所发送的数据包,提供的是可靠传输服务。从网络体系结构提供的服务是不同的,如因特网使用的TCP/IP协议的网际层提供的是无连接的,不可靠的数据包服务。

  • 网络层寻址问题

    • TCP/IP协议的网际层使用的IP地址

  • 路由选择问题(依据的是数据包中的目的地址和路由器中的路由表)

    • 路由表中的下一跳路由器该怎么选择? 有两个方式:一种是 由用户或网络管理员进行人工配置(使用规模较小且网络拓扑不改变的小型互联网) ,另一种是实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路由记录(使用规模较大且网络拓扑经常改变的大型互联网)。

 小结:

2.网络层提供的两种服务

面向连接的虚电路服务

  • 可靠的通信由网络来保证

  • 必须建立网络层的连接----虚电路VC(Virtual Circuit)。

  • 通信双方沿着已建立的虚电路发送分组。

  • 目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)。

  • 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。

  • 通信结束后,需要释放之前所建立的虚电路。

无连接的数据报服务

  • 可靠通信应当由用户主机来保证

  • 不需要建立网络层连接

  • 每个分组可走不同路径

  • 每个分组的首部必须携带目的主机的完整地址

  • 这种通信方式所传送的分组可能误码、丢失、重复和失序

  • 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉

  • 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。

由于TCP/IP体系结构的因特网的网际层提供的是简单灵活,无连接的,尽最大努力交付的数据报服务,因此本章主要围绕网际层如何传送IP数据报这个主题进行讨论。

3.IPV4地址概述(重点)

在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚。

IPv4地址就是因特网上的每一台主机(或路由器)的每一个接口分配一个在【全世界】范围内是【唯一的32比特的标识符】。

来源和发展

表示方法---点分十进制(重点)

4.分类地址分类方法(重点)

分类编址的IPV4地址

分类介绍:

  • A类地址网络号第1位固定为0,网络号后面部分不能全0,也不能全1,所以网络号范围是1~126

  • B类地址网络号前2位固定为10,网络号后面部分可以全取0或1,所以网络号范围是128.0~191.255

  • C类地址网络号前3位固定为110,网络后后面部分可以全取0或1,所以网络号范围是192.0.0~223.255.255

划分子网的IPV4地址

为什么需要划分子网?

比如一个单位有几千台主机,申请C类(最大只能254个)的明显不够使用,此时需要申请一个B类(最大65534个)网络地址,很容易得知,分配出去几千个IP地址后,申请得到的B类网络还剩下很多IP地址。当单位扩大规模,需要再添加两个子网的时,又要为这两个子网分别申请B类地址,申请的时间比较长,而且还会花费一些不必要的支出,会增加其他路由器中路由表的记录等缺点,实际上子网1申请到的B类地址还有很多没用到,我们希望能够将这些剩余地址应用到其他子网中。

如何实现子网划分?

子网掩码的作用要知道呀!!!  ----  结合主机的ip地址可以计算出主机所在的网络地址,还可以表明分类ip地址的主机号被借用了几个比特作为子网号。

 细节解析:

 默认子网掩码的IPv4地址:

 小结:

无分类编址的IPv4地址

划分子网在一定程度上缓解了因特网发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁

为此,因特网工程任务组IE TF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立了ipv6工作组负责研究新版本IP已彻底解决IP地址耗尽的问题。

1993年,IETF发布了无分类域间路由选择CIDR

  • CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念

  • CIDR可以更加有效地分配IPv4地址空间

  • CIDR使用"斜线记法",或称CIDR记法。即在IPv4地址后面加上斜线"/",【在斜线后面写上网络前缀所占比特数量

  • CIDR实际上是将网络前缀都相同的连续IP地址组成一个"CIDR地址块"

 路由聚合(构造超网):

 考研练习:

 本节小节:

5.IP数据报发送转发过程(传输的过程是重点)

建议配合这个13分钟到视频一起观看:计算机网络微课堂(有字幕无背景音乐版)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1c4411d7jb?p=48&vd_source=8eaa56c0356b7a86f2c10571ee56b9f2

IP数据报的发送和转发过程包含以下两个部分:

  • 主机发送IP数据报

  • 路由器转发IP数据报

为了将重点放在TCP/IP协议栈的网际层发送和转发IP数据包的过程上,在之后的举例中,我们忽略使用ARP协议来获取目的主机或路由器接口的MAC地址的过程,以及以太网交换机自学习和转发帧的过程。

看下面的案例:在下面的小型互联网中,路由器接口0直连了一个交换式以太网,路由器接口1直连了一个交换式以太网,我们给该网络分配的下面的网络地址和子网掩码,给网络中的各主机和路由器的接口配置了相应的IP地址和子网掩码(如图所示):

我们知道同一个网络中的主机之间是可以直接通信的,这属于直接交付。不同网络之间的主机之间的通信,需要通过路由器来中转,这属于间接交付。那么源主机如何判断目的主机是否与自己在同一个网络中?

下面我们来举例说明:假设主机C要给主机F发送IP数据报,主机C将自己的IP地址和子网掩码相与(做与运算)就可以得到主机C所在网络的网络地址既然主机C要给主机F发送IP数据报,那就必然得知道主机F的IP地址,否则ip数据报就没办法发送了。主机C将主机F的IP地址与自己的子网掩码相与,就可以得到目的网络地址,该地址与主机C的网络地址不相等,这时主机C就知道了主机F与自己不在同一个网络之中,所以他们之间的交互就属于间接交付。此时主机C需要将IP数据包传给路由器,由路由器将IP数据报转发给主机F。此时问题又来了,主机C是如何知道路由器的存在,或者是说【主机C应该把IP数据交给哪个路由器进行转发呢?】实际上用户为了让本网络中的主机能和其他网络中的主机进行通信,就必须给其指定本网络中的一个路由器,由该路由器帮忙进行转换,所指定的路由器也称为默认网关。对于本例,我们可以将路由器接口0的IP地址指定给该接口所直连网络中的各个主机作为默认网关。同理接口一也是这样的。这样当本网络中的主机,要和其他网络中的主机进行通信时,会将IP数据报传输给默认网络,由默认网关帮主机将IP数据报转发出去。

 假设本力中的主机A要给主机D发送数据报,这属于间接交付。主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器。【那么路由器接收到IP数据报之后又是如何进行转发的呢?

  • 路由器首先会检查IP数据报的手部是否出错,如果出错则直接丢弃该IP数据报,并且通告源主机。若没有出错,则进行转换。

  • 根据IP数据报的目的地址,在路由表中查找匹配的条目,若找到匹配的条目,则转发给条目中指示的下一跳。如果找不到则丢弃该IP数据报并通告源主机。为了简单起见,我们假设本例中数据报没有出错。

  • 路由器取出IP数据报首部中的地址值,包含源地址和目的地址,分别是主机A的IP地址和主机D的IP地址。解析完成后,路由器就要对该IP数据报进行查表转发。(当我们给路由器的接口配置IP地址和子网掩码的时候,路由器就知道了自己的该接口是与哪个网络直连的。)

  • 路由器根据IP数据报的目的地址在自己的路由表中查找匹配的路由条目,逐条检查路由条目。将目的地址与路由条目中的地址掩码相与得到目的网络地址,如果该目的的网络地址与条目中的目的网络地址不相同则这条路由条目不匹配,如果相同则表示匹配,怎会按照路由表中的下一跳指示,也就是从接口一转发该数据报。这样主机D就可以收到从路由器转发来的数据报。

在实际设计路由器的时候,过程远远比这个复杂,比如说你查找的效率要非常高,不然的话转发的速度就会很慢,上面只是路由转发数据报的一个基本的过程,大致过程就是这样的,是为了方便理解其中的转换过程。

如果主机A在该网络中发送了一个广播报,然后该网络中的各个主机和设备都会接收到该广播报,路由器他也会接收到,但是路由器并不会对这个广播报进行转发。也就是说路由器是隔离广播域的。这样可以避免广播风暴。

注意:

  • 中继器和集线器工作在物理层,既不隔离冲突域,也不隔离广播域。

  • 网桥和交换机工作在数据链路层,可以隔离冲突域不能隔离广播域。

  • 路由器工作在网络层,既隔离冲突域也隔离广播域。

静态路由配置:

静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表

  • 这种人工配置方式简单、开销小。但不能及时适应网络状态的变化。一般只在小规模网络中采用。

  • 可能由于:①配置错误 ②聚合了不存在的网络 ③网络故障而出现路由环路错误。

  • 默认路由为:0.0.0.0/0 。其作用是当路由表不知道往哪里转发时,就会往默认路由指定的下一跳位置转发,根据网络号最长匹配原理,默认路由网络号长度为0,因此一定是最后一个被匹配的条目。

  • 特定主机路由:具体主机IP/32。网络号前缀长度32保证了这是第一个被匹配的静态条目。

如何防止错误路由导致IP数据报永久兜圈?

  1. 在IP数据报首部设置生存时间TTL字段。

    • IP数据报进入路由器后,TTL字段的值减1若TTL的值减1后不等于0,则被路由器转发,否则被丢弃

  2. 对于聚合后或由于网络故障而不存在的路由条目【设置黑洞路由(在路由表中配置黑洞路由条目)】。

    • 所谓黑洞路由,即路由器应该丢弃的路由。 IP数据包进入黑洞路由之后就有去无回了,也就是路由器丢弃了该数据报而不是进行转发数据报。

小结:

6.路由选择协议

1.路由器的功能和结构

因特网所采用的的路由选择协议主要特点:

  • 自适应:动态路由选择,能较好地适应网络状态的变化。

  • 分布式:路由器之间交换路由信息。

  • 分层次:将整个因特网划分为许多较小的自治系统AS。

 路由选择协议是在路由器上运行的;

路由器的基本结构:路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是负责转发分组

整个路由器的结构可以划分为两大部分:一个是路由选择部分,一个是分组转发部分。

  • 路由选择部分的核心构件是路由选择处理机,它的任务是根据所使用的路由选择协议,周期性的与其他路由器进行路由信息的交互,来更新路由表。

  • 分组转发部分由三部分构成。分别是交换结构,一组输入端口,一组输出端口;信号从某个端口进入路由器,物理层将信号转化成比特流送交数据链路层处理,数据链路层从比特流中识别出真帧,去掉帧头和帧尾之后,送交网络层处理。如果送交网络层的分组是普通带转发的数据分组,则根据分组首部中的目的地址进行查表转发,如果找不到匹配的条目,则丢弃该分组。否则,按照匹配条目中所指示的端口进行转发。如果送交网络层的分组是路由器之间交换路由信息的路由报文,则会把这个分组送交给路由选择处理机,路由选择处理机根据分组的内容来更新自己的路由表。(路由表一般仅包含从目的网络到下一跳的映射。路由表需要对网络拓扑变化的计算最优化。转发表是从路由表中得出。)

2.路由信息协议RIP

  • RIP认为号的路由就是”距离短“的路由,也就是通过路由器最少的路由。

  • 当到达同一目的网络有多条"距离相等"的路由时,可以进行等价负载均衡

  • RIP包含以下三个要点

    • 仅和相邻路由器交换信息。

    • 交换的是各自路由表的信息。

    • 周期性交换信息。

  • 路由器到直连网络的距离定义为1

  • 路由器到非直连网络的距离定义为所经过的路由器数+1

  • 允许一条路径最多只能包含15个路由器。"距离"等于16时相当于不可达。因此,RIP只适用于小型互联网

 RIP存在的问题:

3.开放最短路径优先OSPF

4.边界网关协议BGP

 具体的内容这里就不再赘述了。

想要详细了解的看该视频:计算机网络bilibili

7.IPV4数据报的首部格式

版本:占4比特,表示IP协议版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本为号为4(IPv4)。

首部长度:占4比特,表示IP数据报首部长度。该字段取值以4字节为单位。

  • 最小十进制取值为5,表示IP数据报首部只有20字节【4字节单位,所以取值5对应20字节】固定部分

  • 最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分

可选字段:长度从1到40个字节不等。用来支持排错、测量及安全等措施。可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。

填充字段:确保首部长度为4字节长度的整数倍,使用全0进行填充。

区分服务:占8比特,利用该字段的不同数值可提供不同等级的服务质量,只有在使用区分服务时,该字段才起作用。一般情况下不使用该字段。

总长度:占16比特,表示IP数据报的总长度【首部+数据载荷】,最大取值为十进制65535,以字节为单位。

标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识【可理解为ID】。IP软件维持一个计数器,每产生一个数据报,计数器值+1,并将此值赋给标识字段。

标志:占3比特,各比特含义如下

  • DF位:1表示不允许分片,0表示允许

  • MF位:1表示"后面还有分片",0表示"这是最后一个分片"

  • 保留位:必须为0

片偏移(必须是整数):占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少单位

  • 片偏移以8个字节为单位

8.网际控制报文ICMP

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP

  • 主机或路由器使用ICMP来发送差错报告报文和询问报文

  • ICMP报文被封装在IP数据报中发送

ICMP差错报告报文共有以下5种:

  • 终点不可达

  • 源点抑制

  • 时间超过

  • 参数问题

  • 改变路由(重定向)

具体参考:计算机网络微课堂(有字幕无背景音乐版)哔哩哔哩bilibili

9.虚拟专用网VPN和网络地址转换NAT

 需要注意的是:私有地址只能用于一个机构的内部通信,而不能用于因特网上的主机通信。换句话说,私有弟子只能用作本地地址,而不能用作全球地址。在因特网中的所有路由器,对目的地址是私有地址的,IP数据报一律不进行转发。

 网络地址转换NAT:

 本节小结:

五、运输层和应用层

由于篇幅原因,所以把另外两层放到另一篇博客了,链接如下:

计算机网络之运输层和应用层 学习笔记_未来很长,别只看眼前的博客-CSDN博客icon-default.png?t=M5H6https://blog.csdn.net/weixin_53142722/article/details/125567049

猜你喜欢

转载自blog.csdn.net/weixin_53142722/article/details/125569713