计算机网络——篇一

简介

  • 计算机网络还没用统一的概念, 多少人认为:计算机网络是由一些通用的、可编程的硬件互连而成,通过这些硬件可以传送不同类型的数据,并且可以支持广泛和日益增长的应用
  • 计算机网络包含硬件设备和软件应用,可以按不同的标准分类:
    • 按作用范围:
      net1
    • 按网络的使用者:公用网络(互联网)、专用网络(军政医等)
  • 本篇结构:
    net2

计网简史

  • 第一阶段:单一网络ARPANET
    • 机器数量少,网络未互连,主要用于军事机构等
      net3
  • 第二阶段:三层结构互联网
    • 可以在学校、地区等拥有计算机的区域之间互连(主要还是米国)
      net4
  • 第三阶段:出现ISP(网络服务提供商)
    • 中国电信、移动、联通都是
    • 可以通过主干ISP全球互连,形成了今天的互联网
      net5
    • 链接可以查看全球的互联网连接线路,如图:
      net6
    • 这些线大部分是海底电缆
  • 中国计网简史:
    • 发展阶段:
      net7
    • 当前最大的公用计算机网络:出国流量也是通过这
      net8
    • 还有一些民营科技集团也推动了中国互联网发展:张朝阳(搜狐)、网易(丁磊)、新浪(王志东)、腾讯(马化腾)、百度(李彦宏)

计网层次结构

  • 计网采用层次结构的设计,为什么分层呢?
    • 主机之间的网络通信要保证物理通路顺畅,识别目的计算机,校验数据错误等
    • 为了合理解决上述纷繁复杂的问题,使用分层结构,层与层之间相对独立(解耦),关注各自的功能,保证足够的灵活性;这也是分层原则
  • OSI七层模型
    • 大致了解一下不同层次的功能:
      net9
    • OSI欲称为全球计算机遵循的标准,但是TCP/IP的成功推行,让OSI只成为了理论成果
    • 被打败是有原因的:
      • 缺乏实际经验,不贴合应用场景
      • 制定周期太长,无法及时投入市场
      • 模型设计不合理,有重复冗余
    • TCP/IP四层模型:
      net10
    • 通信流程:
      net11
  • 我们以学习四层模型为主,从一开始的概念可以看出,计算机、路由器都是可编程的硬件(可以用Perl语言实现protocols),主机应用之间的数据要通过由上到下的数据封装、解析传递,由下到上的拆包等过程
  • 当然,上述图示和分层都是抽象的概念,但的确可以帮助我们精简协议优化网络,对理解学习也很有帮助
  • 接下来结合具体数据形式、硬件单元分层介绍

互联网拓扑

  • 现代互联网拓扑
    • 边缘网络:可以理解成用户部分net12
    • 边缘部分除了散户,还可以是企业:
      net13
      • 一个企业有多个网关 ,需要统一网关接入ISP
    • 核心网络
      net14
  • 网络拓扑总览:
    net15
    • 用户并感知不到网关和ISP,最多是自家的路由器,也就是现在流行的C/S模式和P2P模式:
      net16
    • 对等连接的模式一般用在资源下载,还会介绍(flag立起来

网络性能指标

  • 峰值速度:常用单位Mbps,即Mbit/s,通常的百兆光纤只有12MB/s左右
  • 时延:后续学习协议时会常出现以下概念
    • 发送时延:报文长度/发送速率(网卡决定)
    • 传播时延:路径长度/传播速率(受限于传播介质)
    • 排队时延:等待处理时间
    • 处理时延:
    • 怎么记?一个报文从主机A出发(发送时延)到达下一台路由器B(传播时延),在此等待处理(排队时延),开始处理准备转发(处理时延)
  • RTT(Route-Trip time)
    • 表示数据报文在端到端通信中来回一次的时间
    • 评估网络质量的重要指标
    • ping命令查看,时间并不是稳定的:
      net17

物理层

  • 正式开始分层学习
  • 作用:
    • 传输比特流
    • 屏蔽设备差异
  • 设备:
    • 双绞线
      net18
    • 同轴电缆
      net19
    • 光纤
      net20
    • 红外线、无线、激光等介质
  • 物理特性(这个要考,你就背,背就完了)
    • 机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等
    • 电气特性:指明在接口电缆的各条线上出现的电压范围
    • 功能特性:指明某条线上出现某一电平的电压意义
    • 过程特性:指明对于不同功能的各种可能事件的出现顺序
    • 记住:设备和通信手段种类繁多,物理层的目的是尽可能地屏蔽差异,传输比特,为数据链路层服务
      • 有些基本的概念后,会介绍协议、服务、接口之间的关系
  • 信道
    • 往一个方向传送信息的媒体
    • 一条通信电路包含:接收信道+发送信道;为了避免冲突,出现了:
      • 单工信道:一个只能发,一个只能收
      • 半双工:一个发/收,另一个收/发
      • 全双工:可同时收发
    • 分用-复用技术:提高信道利用率:
      net21
      • 频分复用
      • 时分复用
      • 波分复用
      • 码分复用
      • 这些在物理层设备已经实现,属于信号通信技术就不再展开

数据链路层

  • 作用
    • 封装成帧
    • 透明传输
    • 差错检测
  • 比特位是物理层的基本单位,是链路层的数据基本单位
    • 在发送端将网络层的报文添加标记成帧(帧首部、帧尾部)
    • 在接收端识别拆帧交给网路层(下层给上层服务:下来了接着,上来了递上去)
  • 如果帧定界符和内容冲突呢?需要透明传输
    • 透明:重要术语,屏蔽底层实现,只提供API,例如物理层对数链层是透明的(它就在那,但是你看不到)
    • 这里的意思是:控制字符在数据中,但要当做不存在处理,用转义字符实现
      bet22
  • 物理层只管传输,无法监测过程中的错误,需要在此差错检测
    • 奇偶校验码
      net23
      • 根据内容的奇偶个数添加校验位0或1,传输后再检测奇偶个数,看是否一致
      • 局限:只能检测奇数个位错误,如果上面的同时错两位,无法检测到
    • 循环冗余校验码(CRC)
      • 根据数据产生固定校验码位数,如何产生?(要考)
  • 二进制模2除法
    • 作用:在这里产生CRC校验位
    • 和算术除法类似,但是不借位,使用异或操作(同0异1)
      net24
    • 得到CRC校验位:计算步骤的官方说法:
      net25
    • 但还是推荐看例子,这些规则的原理很伤脑筋,先记下就好:
      • 多项式G,填0:G的选取需要收发双发协商
        net26
      • 模2除法:注意写法,从高位开始除
        net27
      • 用得到的余数替换掉r个0,得到可校验数据串
    • 接收端如何校验的呢?
      • 将收到的数据模2除以G,根据余数判断
      • 余数为0则无错
    • 常用G(x)表:
      net28
  • 数链层值检错不纠错,错误报文直接丢弃,等上层通知重传吧

MTU

  • 最大传输单元(maximum transmission unit)
  • 规定数据帧的最大长度
    • 物理硬件限制
    • 性能影响(考虑时延)
  • 以太网的MTU=1500B
  • 路径MTU
    • 由链路中MTU的最小值决定
      net29

小结

  • 计网的知识点杂、碎~,不细想可能会觉得背就完了,细想发现想不通!
  • 我觉得还是要结合计算机基础相关知识,抽象的协议最终要落地在硬件上(不是网络编程那么简单的事),规则可能纷繁复杂,但如果不谈高屋建瓴的算法优化、架构设计,基本原则还是节约资源、提高效率,从这些角度思考,理得清记得牢,是入门的第一步
  • 这里更像是对物理层和数链层的介绍,还有一些细节的部分(要考)可以参考《计算机网络》
  • 如果对底层有兴趣可以看《现代交换原理和通信网技术》,揭开物理层的神秘面纱,去吧再见。。。

猜你喜欢

转载自blog.csdn.net/Yf_Roy/article/details/115258148
今日推荐