概述篇
什么是计算机网络?
计算机网络主要由一些通用的、可编程的硬件互连而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。
- 计算机网络的不是软件概念,还包含硬件设备
- 计算机网络不仅仅是信息通信,还可以支持广泛的应用
计算机网络分类
计算机网络发展历史
互联网的发展历史
isp:网络服务提供商 中国移动...
中国互联网发展历史
计算机网络的层次结构
⭐ 计算机网络为什么要使用层次结构的设计?
各层之间相互独立:高层是不需要知道底层的功能是采取硬件技术来实现的,它只需要知道通过与底层的接口就可以获得所需要的服务;
灵活性好:各层都可以采用最适当的技术来实现,例如某一层的实现技术发生了变化,用硬件代替了软件,只要这一层的功能与接口保持不变,实现技术的变化都并不会对其他各层以及整个系统的工作产生影响;
易于实现和标准化:由于采取了规范的层次结构去组织网络功能与协议,因此可以将计算机网络复杂的通信过程,划分为有序的连续动作与有序的交互过程,有利于将网络复杂的通信工作过程化解为一系列可以控制和实现的功能模块,使得复杂的计算机网络系统变得易于设计,实现和标准化
层次结构设计的基本原则
- 各层之间是相互独立的
- 每一层有足够的灵活性
- 各层之间完全解耦
相互独立意思可以理解为各自是独立,强调的自成一体,有自己的独立的体系,或者功能,是一个整体。而相互解耦指的则是相互之间减少依赖,强调的是依赖关系,依赖程度越少,就是常说的耦合程度越低。
OSI 七层模型
- OSI 欲成为全球计算机都遵循的标准
- OSI 在市场化过程中困难重重,TCP/IP 在全球范围成功运行
TCP/IP 模型
现代互联网的网络拓扑
::: tip 路由器一般是工作在一个网络内部,负责的是同一个网段之间的路由。而网关则不一样,网关是一个网络非常重要的设备,一般作为网络的统一出口或入口使用的。意味着,一个网络和另外一个网络连接,从虚拟互联网络来看,就是两个网关的连接。 :::
- 边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
- 核心部分:由大量的网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的
把边缘部分和核心部分连接起来会形成现代互联网的树状结构
从用户角度出发,去看计算机网络,更多看到是各种模式:
1、客户-服务器方式(C/S 方式):即 Client/Server 方式,简称为 C/S 方式。
2、对等方式(P2P 方式):即 Peer-to-Peer 方式 ,简称为 P2P 方式。
计算机网络的性能指标
- 速率
bps=bit/s
eg:为什么电信拉的 100m,测试峰值速度只有 12M 每秒?
时延
- 发送时延
本机进行网络发送的时候,在本机所停留的时间
- 传播时延
- 排队时延
数据包在网络设备中等待被处理的时间
- 处理时延
数据包到达设备或者目的机器被处理所需要的时间
总时延=发送时延+传播时延+排队时延+处理时延
往返时间 RTT
RTT(Route-Trip Time) 是评估网络质量的一项重要指标
RTT 表示的是数据报文在端到端通信中的来回一次的时间
通常使用 ping 命令查看 RTT
物理层概述
物理层作用
连接不同的物理设备
传输比特流(01010101011...)
传输介质
- 双绞线
- 同轴电缆
- 光纤
- 无线介质:红外线,无线,激光
信道
信道是往一个方向传送信息的媒体
一条通信电路包含一个接收信道和一个发送信道
单工通信信道:只能一个方向通信,没有反方向反馈的信道,(有线电视、无线电收音机)
半双工通信信道:双方都可以发送和接收信息,不能双方同时发送,也不能同时接收,(非常落后)
全双工通信信道:双方都可以同时发送和接收信息(网线)
分用-复用技术
解决信道利用率低的问题
无需关注细节
数据链路层概述
解决:封装成帧,透明传输,差错检测
封装成帧
“帧”是数据链路层数据的基本单位
发送端在网络层的一段数据前后添加特定标记形成“帧”
接收端根据前后特定标记识别出“帧”
::: tip 提示 物理层不会管你’帧‘不’帧‘,只管比特流的传输。层与层之间相互独立,解耦。 :::
封装成帧的过程:
帧首部SOH
:00000001 和尾部EOT
:00000100是特定的控制字符(特定比特流)
透明传输
::: tip 透明
:一种实际存在的事物却又看起来不存在一样 :::
即使控制字符在帧数据中,但是要当做不存在的去处理
数据里面恰好有这些特定比特流怎么办?对数据中的控制字符进行特殊处理,在它的前面加一个转义字符
数据中也出现转义字符咋办?转义字符前再加一个转义字符
这种处理类似于编程语言中的转义字符
注:ESC
转义字符
差错检测
物理层只管传输比特流,无法控制是否出错
奇偶校验码
局限性
循环冗余校验码-CRC
一种根据传输或保存的数据而产生固定位数校验码的方法
检测数据传输或者保存后可能出现的错误
生成的数字计算出来并且附加到数据后面
模 2 除法
模 2 除法它既不向上位借位,也不比较除数和被除数的相同位数值的大小,只要以相同位数进行相除即可。
原则:
1、被除数的首位为 1,商为 1
2、被除数的首位为 0,商为 0
3、模 2 除法等同于按位异或,要保证每次除完首位都为 0,才能进行右移
异或运算:
4、计算时每次右移一位,当被除数的位数小于除数,其为余数
过程
- 选定一个用于校验的多项式G(x),并在数据尾部添加r 个 0(多项式 G(x)最高阶个 0)
G(x)是协议规定的,不同的协议使用不同的 G(x)
将添加 r 个 0 后的数据,使用模"2″除法除以多项式的位串
得到的余数填充在原数据 r 个 0 的位置得到可校验的位串
接收端接收的数据除以 G(x)的位串,根据余数判断出错(余数为 0 就没有出错)
CRC 的错误检测能力与位串的阶数 r 有关
数据链路层只进行数据的检测,不进行纠正,直接把错误的数据丢掉。
eg:使用 CRC 计算 101001 的可校验位串
- 第一步
- 第二步
- 第三步
最大传输单元 MTU
数据链路层的数据帧也不是无限大的,长度不能超过 MTU
数据帧过大或过小都会影响传输的效率
以太网 MTU 一般为 1500 字节
以太网协议详解
MAC 地址(物理地址、硬件地址)
每一个设备都拥有唯一的 MAC 地址
MAC 地址共 48(12*4)位,使用十六进制表示
以太网( Ethernet)是一种使用广泛的局域网技术
以太网是一种应用于数据链路层的协议
使用以太网可以完成相邻设备的数据帧传输
以太网数据格式
MAC 地址表
映射关系
发送数据帧
如果无法获取目的 mac 地址对应的硬件接口信息,
计算机网络概述篇-面试常考题
- 计算机网络的七层模型从顶往下分别是什么?请按顺序列举出来。
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
- 现在开发者更喜欢使用 TCP/IP 四层模型来划分计算机网络,为什么 TCP/IP 四层模型会取代 OSI 七层模型被广泛使用?
①OSI 的专家缺乏实际经验、他们基于理论来设计的 ②OSI 标准置顶周期过长,按 OSI 标准生产的设备无法及时进入市场 ③OSI 模型设计得并不合理,一些功能在多层中重复出现
- ARP 协议、RARP 协议属于计算机网络的哪一个层次?
数据链路层(这主要是一个归类的问题,这两个协议准确来说是工作在数据链路层和网络层之间,一般是把他归为数据链路层的协议)
- IP 协议、ICMP 协议属于计算机网络的哪一个层次?
网络层
- 传输层最重要的两个协议是什么?
TCP 协议、UDP 协议
- 常见的应用层协议有 HTTP 协议、FTP 协议等,你还能列举一些常见的应用层协议吗?
HTTP、FTP、SMTP、DNS、POP3、Telnet、TFTP、DHCP 等
- 路由器工作在计算机网络的哪几个层次?
物理层、数据链路层、网络层
- 现代网络设备互联的两种模式分别是什么?他们有什么特点?
客户 - 服务端模式、对等连接模式。客户 - 服务端模式由服务端提供网络服务,客户端使用服务,常常表现为一个服务端,多个客户端的连接模式。对等连接模式不分客户端和服务端,只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信
- 时延是判断计算机网络质量的重要标准,网络时延由哪几个部分组成?
网络时延可以划分成发送时延、传播时延、排队时延、处理时延几个部分
- 物理层主要的作用是什么?
物理层主要的作用是连接不同的网络设备并在网络设备之间传输比特流
- 请列举物理层常见的传输介质。
有线传输(铜线、光纤),无线传输
- 什么是信道,什么是单工信道、半双工信道、全双工信道?
信道是往一个方向传送信息的媒体,单工信道指的是只能发送或者接收的信道,半双工信道指的是双方都能发送和接收信息但是不能同时发送或同时接收的信道,全双工信道指的是双方可以自由发送和接收信息的信道
- 数据链路层的三个重要功能分别是什么?
封装成帧、透明传输、差错检测
- 物理层只负责比特流的传输,这些数据在数据链路层称为什么?
数据帧
- 为了界定区分一个单独的数据帧,数据链路层通常会做什么操作?
在数据的头部和尾部加入特殊比特位
- 假设有数据 00100101 需要传输,目标机器接收到的数据为 10100100,请问使用奇偶校验码是否可以检测出错误?
不能,因为奇偶校验位只能检测单个比特位出现的错误
- 假设有数据 1101011011 需要传输,采用 CRC 的生成多项式为 P (X)=X^4+X+1,请计算添加了 CRC 校验码之后的数据。
多项式位串为:10011,模二除法得到余数 1110,所以得到结果 11010110111110
- 什么是 MAC 地址?如何查看本机的 MAC 地址?MAC 地址有什么作用?
MAC 地址也称为物理地址、硬件地址,通过在 windows 系统下输入命令 ipconfig 可以查看网络设备的 MAC 地址,MAC 地址使用 48 个比特位标记一个物理设备
- 请简述以太网的工作过程。MAC 地址在其中起到了什么作用?
以太网(Ethernet)是一种是使用广泛的局域网技术、以太网是一种应用于数据链路层的协议、使用以太网可以完成相邻设备的数据帧传输。
在一个以太网里边,现在有 3 台计算机 A、B、C。都连接了路由器 D,如果 A 想发送信息给 B,就必须通过路由器才知道这个信息是发送给谁的,路由器怎么就知道发送给谁呢?因为路由器里边有个叫 MAC 地址表的东西,它保存了连接它自身的计算机的 MAC 地址和映射的硬件接口,通过 MAC 地址,就可以找到对应要发送的端口,就好比键值对。
以太网发送的数据由 5 部分组成:目的地址、源地址、类型、帧数据、CRC
目的地址(6 个字节,即 MAC 地址)、源地址(6 个字节),类型(2 个字节,0800 为 IP 数据报,0806 为 ARP 请求/响应,8035 为 RARP 请求/答应)、帧数据(46~1500 字节),CRC(4 字节,循环冗余校验码)。
MAC 地址作用:以太网协议通过 MAC 地址和硬件接口的映射关系了解到通过具体哪个接口把数据发送给下一跳。
重要概念
- 计算机网络
- ISP
- OSI 七层模型
- TCP/IP 四层模型
- C/S 模式
- P2P 模式
- RTT
- 信道
- 奇偶校验码
- CRC 循环冗余校验码
- MTU
- 路径 MTU
- 以太网