这个主要是一个网络课程的笔记,包含概述部分(第一周)的笔记整理,涉及网络主要资源,网络结构,网络协议的介绍。

概述

1. 设计网络

下面这两个因素会影响演算法(不知道是啥)和架构的设计:

  • bandwidth: 频宽,表示传送数据有多快
  • delay: 从一端送到另一端要多久能完成传输,表示传送数据要多久

2. TCP协议(Transmission Control Protocol)

位于第4层,提供可靠的传输(如果封包丢失,会要求对方再重新送一次)。

对于一个http请求,大概需要17条信息:

  • 6条用来寻找IP地址
  • 3条用来建立TCP链接
  • 4条用于http请求和acknowledgement
  • 4条用于关闭TCP连接

3. 基本概念

  • packet: 网络传递信息的基本单位
  • message: 原始的资料,比较长
  • switch: 可以是第二、三、四层的设备,一般会接成有回路(回路可以增加网络的可靠性,但也会导致错误)的交换机网络
  • router/gateway: 连接局域网的设备,通常broadcast会被router挡掉
  • spanning tree: 将交换机及工作站连起来,变成一个树状结构(任意两个node之间只有唯一路径),spanning tree本身也提供了routing的路径
  • address: 网卡的位置使用MAC address,主机的位置使用IP address
  • LAN: 表示一个局域网络
  • WAN: 表示世界范围的网络

4. 关于router

  • router会把连接的网络的状态告知其他router,彼此之间相互交换信息,就能知道整个网络当前的状态(这个状态是随时变动的)
  • 每个封包走哪条路线是根据上面这个动态的状态决定的
  • router的一个很重的功能就是分包,讲一个大封包切成小封包(每一个封包都有一个完整的地址),切分的原因是每一种网络都有一个封包最大值,比如:Ethernet最大值是1518bit,WIFI(IEEE 802.11)是2312bit
  • 任何一个封包在网络中绕(靠router绕),router每处理一个封包,上面记录的一个数字就会被减一,减到零的时候就把这个封包丢掉,这是丢包的一种可能性
  • 封包从LAN网送到Router的速度快,从Router从到WAN网的速度慢,导致封包在路由器处堆积发生丢包,这是丢包的另一种可能性
    传送速度不同导致丢包

5. internet本身会尽力将封包送至目的地,但是不能保证一定送到,因为会发生丢包,所以其本身是不可靠的

6. 网络资源的有效共享

  • 网络资源包括:

    • link:因为link频宽有限,就涉及到link共享的问题
    • node
    • switch
    • router
  • link共享技术: 多路复用(multiplexing)

    1. FDM(Frequency Division Multiplexing):每一个频宽都只有原来的1/4,但任何时候都可以用
    2. TDM(synchronous Time Division multiplexing): 使用整个频宽,但是时间有间隔
      FDM&TDM
    3. statical multiplexing
      • FIFO(queue)
      • Round-Robin(scheduler/queue)
      • priority

7. logial chennal

指连接关系的存在,真正指具体哪一条链路都没有关系。TCP建立连线指的就是logical channel。

8. 网络的不可靠性

  • bit丢失/burst errors(大量bit丢失)
  • router阻塞导致的丢包
  • link/node的宕机
  • 信息延迟
  • 信息乱序
  • 第三方的窜改(因为router是store-and-forward,给了第三方窜改的机会)

9. 网络协议

  • 水平维度:比如电脑对电脑,电脑对设备,设备对设备之间的协议
  • 竖向维度:比如application layer的服务建立在presentation layer服务上,后者又建立在session layer基础上,后者又建立在transport layer上,后者又建立在network layer之上,后者又建立在data-link layer上,最底层是physical layer,每一层都需要定义协议进行服务间的通信

10. 协议结构

协议结构

11. OSI Architecture

OSI: open system interconnection

  1. Transport层(蓝色):提供可靠/不可靠传输
  2. Network层(绿色):解决如何从一端送到另一端的选路线的问题
  3. DataLink层(红色):解决如何往前送一步的问题
  4. Physical层(黄色):如何通过实体介质传送
    OSI结构

12. 主机和路由器是如何相连的(以经过两个交换机为例)

  • switch:layer2设备,作用是把收进来的封包转出去,依据这一层header中的网卡位置
  • router:layer3设备,作用是根据目标ip选择路径,依据这一层header中的ip信息
  • 从data-link层(红色)出来的封包包含送封包的网卡和收封包的网卡的位置(48位),相当于网卡对网卡
  • 从network层(绿色)出来的封包包含两端主机的ip(ipv4 32位),是主机对主机的关系
  • 当主机和switch使用ethernet相连时,data-link层使用ethernet协议;当主机和AP使用无线相连时,data-link层使用wireless协议
    host-to-router

13. physical layer

解决如何将原始材料在介质上传输的问题,基本传输单位是bit

  • 材质

    • coaxial cable:同轴电缆
    • twisted pair:双绞线
    • optical fiber:光纤
    • air space
  • coding:coding是physical layer最重要的功能,是将二进制数据以特定的形式表达,比如高低电位、光的明暗,同时要把发送方的clock送给接收方,使得双方使用相同的传输速度处理数据

这一层关心如何将frame传给直接相连的主机或设备,注意是直接相连的,基本传输单位是frame

  • CSMA/CD: IEEE802.3 Ethernet使用这个MAC(media access protocol)协议
  • CSMA/CA: IEEE802.11 wireless使用这个协议

15. network layer

这一层关心如何将封包(packet)透过internet送到目的地主机,基本传输单位是packet

  • 处理routing:router之间会彼此通过routing protocol(RIP, OSPF, BGP)交换线路状况的情报,通过协议计算出来的路径结果存入routing table中,内容会动态更新
  • 一个封包进入router后,首先拿到destination IP,然后查routing tabel,找寻路径

16. transport layer

这一层提供不同主机process之间资料(message)的传送,基本传输单位是message,是host对host的关系,不同主机意味着跨网络

17. session layer

provides a name space that is used to tie together the potentially different transport streams that are part of a single application

18. presentaion layer

concerned about the format of data exchanged between peers

19. application layer

standardize common type of exchanges

20. OSI结构的特点

  1. 可以跨层
    osi跨层

  2. 协议结构构成沙漏型状
    osi沙漏

21. 网络性能

  • 指标

    1. 带宽:指1秒可以传送的bit数

      1Mbps = 1 x 10^6 bits/second,也就是1 x 10^-6 second(1 micro second,这个单位表明1个bit在时间轴上有多宽)传送1bit

      抓数据是在1个bit宽的中间抓取,速度越快,1bit的宽度越窄,越不好抓,所以高速网络不好实现

    2. latency(delay) = propagation time + transmission time + queuing time

      propagation time = 距离/速度(也就是信号实际传送的时间)

      transmission time = 信息size/bandwidth(也就是信息发送需要的时间)

      queuing time = 信息排队等待发送的时间

  • 基于上面两个指标,就有如下两种情况

    1. 短资料很快就送完,但需要长时间才能传送到对方,也就是资料已经发送完毕,但是前导资料还未到对方,这个时候propagation time远大于transmission time

    2. 长资料很慢才能发送完,未发送完之前,前导资料已经送达对方,这个时候transmission time远大于propagation time

  • bandwidth x delay:感觉这是衡量网络效能的又一个指标,本质也是propagation time和transmission time的较量

    1. pipe:一对process(TCP级)之间的实际连接可以视为一个pipe,同一message的不同部分pipe可能不同
    2. delay:对应上面的propagation time和pipe的长度有关,而bandwidth决定上面transmission time
    3. bandwidth x delay:表明在pipe中可以存的最大量的资料
    4. 对于大资料的传输,bandwidth就很重要
    5. 对于小数据比如http,delay就很重要,和上面的讨论结果一致

22. throughput

一方送资料,在等待(送一波后会停止)对方回应前,送出去的资料量塞满(delay x bandwidth)情况下,throughput越好。

  • RTT(round-trip time):送/回时间
  • Transmission time: TransferSize / Bandwidth
  • Transfer time: Transmission time + RTT
  • Throughput: TransferSize / Transfer time

throughput


参考资料

  1. https://www.bilibili.com/video/av69421265