简介
- 计算机网络还没用统一的概念, 多少人认为:计算机网络是由一些通用的、可编程的硬件互连而成,通过这些硬件可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。
- 计算机网络包含硬件设备和软件应用,可以按不同的标准分类:
- 按作用范围:
- 按网络的使用者:公用网络(互联网)、专用网络(军政医等)
- 按作用范围:
- 本篇结构:
计网简史
- 第一阶段:单一网络ARPANET
- 机器数量少,网络未互连,主要用于军事机构等
- 机器数量少,网络未互连,主要用于军事机构等
- 第二阶段:三层结构互联网
- 可以在学校、地区等拥有计算机的区域之间互连(主要还是米国)
- 可以在学校、地区等拥有计算机的区域之间互连(主要还是米国)
- 第三阶段:出现ISP(网络服务提供商)
- 中国电信、移动、联通都是
- 可以通过主干ISP全球互连,形成了今天的互联网
- 链接可以查看全球的互联网连接线路,如图:
- 这些线大部分是海底电缆
- 中国计网简史:
- 发展阶段:
- 当前最大的公用计算机网络:出国流量也是通过这
- 还有一些民营科技集团也推动了中国互联网发展:张朝阳(搜狐)、网易(丁磊)、新浪(王志东)、腾讯(马化腾)、百度(李彦宏)
- 发展阶段:
计网层次结构
- 计网采用层次结构的设计,为什么分层呢?
- 主机之间的网络通信要保证物理通路顺畅,识别目的计算机,校验数据错误等
- 为了合理解决上述纷繁复杂的问题,使用分层结构,层与层之间相对独立(解耦),关注各自的功能,保证足够的灵活性;这也是分层原则
- OSI七层模型
- 大致了解一下不同层次的功能:
- OSI欲称为全球计算机遵循的标准,但是TCP/IP的成功推行,让OSI只成为了理论成果
- 被打败是有原因的:
- 缺乏实际经验,不贴合应用场景
- 制定周期太长,无法及时投入市场
- 模型设计不合理,有重复冗余
- TCP/IP四层模型:
- 通信流程:
- 大致了解一下不同层次的功能:
- 比较普遍的方式是结合两种模型,分为五层:物理层、数据链路层、网络层、传输层和应用层
- 我们以学习四层模型为主,从一开始的概念可以看出,计算机、路由器都是可编程的硬件(可以用Perl语言实现protocols),主机应用之间的数据要通过由上到下的数据封装、解析传递,由下到上的拆包等过程
- 当然,上述图示和分层都是抽象的概念,但的确可以帮助我们精简协议优化网络,对理解学习也很有帮助
- 接下来结合具体数据形式、硬件单元分层介绍
互联网拓扑
- 现代互联网拓扑
- 边缘网络:可以理解成用户部分
- 边缘部分除了散户,还可以是企业:
- 一个企业有多个网关 ,需要统一网关接入ISP
- 核心网络:
- 网络拓扑总览:
- 用户并感知不到网关和ISP,最多是自家的路由器,也就是现在流行的C/S模式和P2P模式:
- 对等连接的模式一般用在资源下载,还会介绍(flag立起来)
- 用户并感知不到网关和ISP,最多是自家的路由器,也就是现在流行的C/S模式和P2P模式:
网络性能指标
- 峰值速度:常用单位
Mbps
,即Mbit/s,通常的百兆光纤只有12MB/s左右 - 时延:后续学习协议时会常出现以下概念
- 发送时延:报文长度/发送速率(网卡决定)
- 传播时延:路径长度/传播速率(受限于传播介质)
- 排队时延:等待处理时间
- 处理时延:
- 怎么记?一个报文从主机A出发(发送时延)到达下一台路由器B(传播时延),在此等待处理(排队时延),开始处理准备转发(处理时延)
- RTT(Route-Trip time)
- 表示数据报文在端到端通信中来回一次的时间
- 评估网络质量的重要指标
- 用
ping
命令查看,时间并不是稳定的:
物理层
- 正式开始分层学习
- 作用:
- 传输比特流
- 屏蔽设备差异
- 设备:
- 双绞线
- 同轴电缆
- 光纤
- 红外线、无线、激光等介质
- 双绞线
- 物理特性(这个要考,你就背,背就完了)
- 机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等
- 电气特性:指明在接口电缆的各条线上出现的电压范围
- 功能特性:指明某条线上出现某一电平的电压意义
- 过程特性:指明对于不同功能的各种可能事件的出现顺序
- 记住:设备和通信手段种类繁多,物理层的目的是尽可能地屏蔽差异,传输比特,为数据链路层服务
- 有些基本的概念后,会介绍协议、服务、接口之间的关系
- 信道
- 往一个方向传送信息的媒体
- 一条通信电路包含:接收信道+发送信道;为了避免冲突,出现了:
- 单工信道:一个只能发,一个只能收
- 半双工:一个发/收,另一个收/发
- 全双工:可同时收发
- 分用-复用技术:提高信道利用率:
- 频分复用
- 时分复用
- 波分复用
- 码分复用
- 这些在物理层设备已经实现,属于信号通信技术就不再展开
- 物理层设备
- 中继器
- 集线器
数据链路层
- 作用
- 封装成帧
- 透明传输
- 差错检测
- 流量控制和可靠传输
- 比特位是物理层的基本单位,帧是链路层的数据基本单位
- 在发送端将网络层的报文添加标记成帧(帧首部、帧尾部)
- 需要通过字符计数法、首尾标志法等定界(帧长)
- 在接收端识别拆帧交给网路层(下层给上层服务:下来了接着,上来了递上去)
- 在发送端将网络层的报文添加标记成帧(帧首部、帧尾部)
- 如果帧定界符和内容冲突呢?需要透明传输
- 透明:重要术语,屏蔽底层实现,只提供API,例如物理层对数链层是透明的(它就在那,但是你看不到)
- 这里的意思是:控制字符在数据中,但要当做不存在处理,用转义字符实现
- 物理层只管传输,无法监测过程中的错误,需要在此差错检测
- 奇偶校验码
- 根据内容的奇偶个数添加校验位
0或1
,传输后再检测奇偶个数,看是否一致 - 局限:只能检测奇数个位错误,如果上面的同时错两位,无法检测到
- 根据内容的奇偶个数添加校验位
- 循环冗余校验码(CRC)
- 根据数据产生固定校验码位数,如何产生?(要考)
- 奇偶校验码
- 二进制模2除法
- 作用:在这里产生CRC校验位
- 和算术除法类似,但是不借位,使用异或操作(同0异1)
- 得到CRC校验位:计算步骤的官方说法:
- 但还是推荐看例子,这些规则的原理很伤脑筋,先记下就好:
- 多项式G,填0:G的选取需要收发双发协商
- 模2除法:注意写法,从高位开始除
- 用得到的余数替换掉r个0,得到可校验数据串
- 多项式G,填0:G的选取需要收发双发协商
- 接收端如何校验的呢?
- 将收到的数据模2除以G,根据余数判断
- 余数为0则无错
- 常用G(x)表:
- CRC只检错不纠错,错误报文直接丢弃,等上层通知重传吧
- 数链层还有纠错编码:海明码
- IEEE802参考模型将数据链路层划分为两个子层,媒体访问控制MAC 子层和逻辑链路控制 LLC 子层,有很多细节(都要考)
- MAC 子层与物理层相关联
- LLC子层则完全独立出来,为高层提供服务
- 后面仅介绍以太网(有线局域网)的数据转发流程
- 这层的协议部分、硬件设备,还有流量控制与可靠传输可以参考其他资料(很推荐,考研党必看)
MTU
- 最大传输单元(maximum transmission unit)
- 规定数据帧的最大长度
- 物理硬件限制
- 性能影响(考虑时延)
- 以太网的MTU=1500B
- 路径MTU
- 由链路中MTU的最小值决定
- 由链路中MTU的最小值决定
以太网
- 以太网(Ethernet)是一种广泛使用的局域网
- 局域网(LAN)是从范围上划分的,并不限制在网络接口层
- LAN可分为:无限局域网和有线局域网,以太网属于有线局域网
- 对应的有CSMA/CA协议和CSMA/CD协议来保证传输质量(要考!)
- 以太网协议是数链层数据传输的主要协议
- 了解了真实数据传输流程后,我们发现,在考虑数据传送的过程中,可以只关注某一层,简化理解:
- Ethernet规定了包括物理层的连线、电子信号和介质的内容
- 是目前应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET
MAC地址
- 全球唯一标识一台计算机设备,刻在网卡上,不可改变
- cmd中使用命令
ipconfig /all
即可查看,格式形如30-B4-9E-ED-85-CA
,共48位(6字节)
以太网协议
- 数据格式
- 类型标识了帧数据带的是何种协议下的数据
- 类型标识了帧数据带的是何种协议下的数据
- 数据转发流程(很重要)
- 怎么路由器匹配MAC地址表呢,这不是IP层设备吗?(而且书上说路由器不同端口接不同网段啊啊啊)是这样的:
- 属于同一网络号(网段)下(无论是内网还是外网),这时路由器本质上当交换机使(LAN口),数链层即可实现主机间通信
- 交换机是同一网段设备之间数据转发的机器,工作在数链层
- 怎么路由器匹配MAC地址表呢,这不是IP层设备吗?(而且书上说路由器不同端口接不同网段啊啊啊)是这样的:
- 两个问题:
- 如何在不同网段传输数据?
- 如果MAC表中地址未知,怎么解决?
- 这就要学习下一篇的网络层,使用路由器和APR协议实现!
小结
- 计网的知识点杂、碎~,不细想可能会觉得背就完了,细想发现想不通!
- 我觉得还是要结合计算机基础相关知识,抽象的协议最终要落地在硬件上(不是网络编程那么简单的事),规则可能纷繁复杂,但如果不谈高屋建瓴的算法优化、架构设计,基本原则还是节约资源、提高效率,从这些角度思考,理得清记得牢,是入门的第一步
- 这里更像是对物理层和数链层的介绍,还有一些细节的部分(要考)可以参考《计算机网络》
- 如果对底层有兴趣可以看《现代交换原理和通信网技术》,揭开物理层的神秘面纱,去吧再见。。。