计算机网络-自顶向下方法读书笔记-第一章

374 查看

第一章

读书

  • 互联网中的设备称为主机(host)或者终端系统(end system),包括客户端和服务器

    • 主机通过通信链路分组交换机连接
    • 路由器链路层交换机都是分组交换机
  • ISP是因特网服务供应商 有不同层级

  • 分组交换:主机与主机之间通过报文(message)通信,长的报文又会被分割成分组(packet、包)

  • 存储转发机制:交换机在收到一整组报文之后才开始向输出链路输出
  • 对于每一条输出链路分组交换机都有一个输出缓存,包必须在输出缓存里排队,这叫排队时延,一旦缓存占满,则会丢包

  • 在因特网中,IP地址的多级结构信息和路由器的转发表,决定了路由器拿到包之后往哪条链路送
  • 转发表是由路由选择协议自动设置的

  • 电路交换:另一种端与端通信手段,电话是这种手段的典型例子。特点是源和目标点建立起名副其实的连接,称为电路,这条路上的带宽全部为这个连接空出来。所以电路交换的速度非常可靠。

交换方式对比图

  • 分组交换中时延的分类

    • 处理时延:检查分组首部和决定将该分组导向何处所需要的时间是节点处理时延的一部分。其他因素包括检查比特级差错处理(通常是微秒级以下)等。在这之后,路由器将包引向通往路由器B链路之前的队列。
    • 排队时延:在队列中,当分组在链路缓存中等待传输时,它经受排队时延。 到达组的分组数量是到达该队列的流量强度的函数。实际的排队时延通常在毫秒到微秒级。
    • 传输时延:用L比特表示分组的长度,用R b/s表示从路由器A到路由器B的链路传输速率。传输时延是L/R。这是将所有分组比特推向链路所需要的时间。实际的传输时延通常在毫秒到微秒级。是包从路由器A中被推出去的时间。与两路由器的距离无关。
    • 传播时延:一旦一个比特被A推向链路,该比特需要向路由器B传播,从该链路的起点到路由器B的传播所需要的时间是传播时延。该比特以该链路的传播速率传播,其速率范围等于或略小于光速。传播时延等于两台路由器之间的距离除以传播速率,即传播时延是d/s,d是两台路由器间的距离,s是该链路的传播速率。传播时延在毫秒级。
    • 传输时延可以看做是车队(包)过收费站(路由器)的时间,而传播时延可看作路上花费的时间。
    • 节点总时延 = 处理时延 + 排队时延 + 传输时延 + 传播时延 一般来说处理时延通常是微不足道的。
  • 排队时延的特殊之处

    • 对于不同的分组(包)可能不一样(后到的可能要等先到的)
    • 取决于流量本身的特点(即突发还是平稳),包括流量到达该队列的速率、链路的传输速率和到达流量的性质
    • 令a表示分组到达队列的平均速率(每秒多少分组,pkt/s),假定所有包都是L b组成的,则比特到达队列的平均速率是La bps。而La/R被称为流量强度
    • 如果La/R > 1,则比特到达队列的平均速率超过从该队列传输出去的速率。在这种不幸的情况下,队列的增加将趋近于无界,并且排队时延将趋向无穷大。因此,流量工程中设计系统时流量强度不能大于1。在因特网中,接近1时将容易发生丢包。
    • 第n个分组有(n-1)L/R的排队时延
  • 端到端时延
    假设源主机和目的主机之间有N-1台路由器,并且该网络是无拥塞(不排队)的。那么端到端时延为:\( d{end-end} = N (d{proc} + d{trans} + d{prop})\)

  • 吞吐量

    • 在如以太网路及封包无线电之类的电信网络之中,吞吐量或网络吞吐量是指于一通讯通道上单位时间能成功传递的平均资料量,资料可以于实体或逻辑链接上传递,或通过某个网络节点。吞吐量的单位通常表示为位元每秒(bit/s或bps),有时也可看到封包每秒或封包每时槽等单位。
    • 在因特网内表现为网速。
  • 因特网的协议栈

    • 应用层(信的格式):应用程序的协议。
      • 我们把应用层的信息称为报文。
      • 典型协议如HTTPFTPSMTP(电邮)DNS
    • 运输层(平信还是挂号信):在应用程序端点之间传输应用层报文的协议。
      • 因特网中常用的有两个,即TCPUDP
      • TCP:面向连接,分割长报文,拥塞控制机制,可靠传递,双方速率匹配。
      • UDP:无连接。(啥也没有- -)。
      • 处于运输层的分组叫做报文段(segement)
    • 网络层(邮局):负责将数据报(datagram,处于网络层的分组)从主机移动到另一主机,使两端能够互连且决定最佳路径。
      • 从运输层拿到报文段和目标地址。然后进行路由
      • 网络层的典型协议是IP协议,用来识别目标地址。
      • 另一典型协议是网络控制消息协定(ICMP),它是IP的主要部分,一般不用于在两点间传输数据。它通常不由网络程序直接使用,除了pingtraceroute这两个特例。
    • 链路层(快递员):在两个网络实体之间提供数据链路连接的创建、维持和释放管理。
      • 构成链路层的分组(称之数据帧或帧),并对帧定界、同步、收发顺序的控制。
      • 负责传输过程中的流量控制,差错检测和差错控制等方面。
      • 数据链路层中的数据封装是指:封装的数据信息中,包含了地址段和数据段等。地址段含有点对点发送节点和接收节点的地址(如MAC),控制段用来表示数格连接帧的类型,数据段包含实际要传输的数据。
      • 网络层将数据报下发给链路层,链路层传输后,上报给目标结点的网络层。
      • 典型协议:异步传输模式(ATM)帧中继(frame relay)高级数据链路控制(HDLC)
      • 交换机、桥接器是本层设备。而集线器是物理层设备,不是数据链路层设备。
    • 物理层(公路和车):将一个比特一个比特移动。
      • 典型协议如:蓝牙协议数字用户线路(DSL)等等
      • 常见物理层设备:网卡、光纤、集线器
  • 封装

    • 因特网协议栈自顶向下传输时,各层会将上层信息包装,上层信息包装为有效载荷字段,本层信息包装为首部字段
    • 应用层报文 -> 运输层报文段 -> 网络层数据报 -> 链路层帧
  • 因特网攻击举例
    1. 用病毒和木马形成僵尸网络(肉鸡)。
    2. 拒绝服务攻击,包括弱点攻击(攻击bug)、带宽洪泛(常见、常是分布式,砸流量使丢包和延时)、连接洪泛(伪造大量TCP连接)
    3. 分组嗅探:抓包,窃取隐私。
    4. 伪造分组:IP哄骗等等。
习题
  • P2
    第一个包到达花费N*(L/R),然后每隔(L/R)就有一个包到达。所以总花费N*(L/R) + (P-1)*(L/R) = (N+P-1)*(L/R)

  • P3

    1. 电路交换网。因为需要高可靠性,且程序长时间运行并高频地发送数据,并没有浪费。这样能较好地发挥电路交换网的特点,避开它的缺点。
    2. 不需要。就算所有应用同时发送一个分组,还是有足够的容量,不会造成拥塞。
  • P6

    1. m/s
    2. L/R
    3. m/s+L/R
    4. A的出口链路开始的地方,刚离开A
    5. 在路上
    6. 已经到B了
    7. m=L/R*s=536km
  • P14

    1. 传输时延是L/R,排队时延是La/R*L/R*(1-La/R) 总时延是(I+1)L/(R*(1-I))
  • P15
    • 假设分组长度L,带宽是R,则I=La/R μ=R/L
    • (I+1)L/(R*(1-I)) = (a+μ-1)/(u*(μ-1))