计算机网络概念复习

计算机网络复习

用于概念和非计算题的复习和扫盲,参考书籍为《computer networking: top down approaches》

应用层 Application layer

  • HTTP/HTTPS

    • 报文构成:初始状态行(status line)6个首部行(header line)然后是实体体(entire body)
    • 各种代码:200OK,301对象永久转移 400请求不能被服务器理解 404Not Found 505不支持Http协议版本
  • CDN(Cotent distribution network):常用于视频网站,SMTP 常用于E-mail传输协议、

  • Web缓存

    • 最近请求过的对象保存,方便再次访问
  • DNS Domain name server

    • 就像互联网的目录,映射ip地址 到有意义的字符 如政府 国家后缀的网址
      1. 分层的DNS服务器
      • 递归查询和迭代查询:从请求host 到local DNS的查询是递归的,其余都是迭代的
      1. 一个使得主机能够查询到这个数据库的协议
    • p96 p2p 的计算
  • DHCP (Dynamic Host Configuration
    Protocol)动态主机配置协议

    • 是一种动态的向终端提供IP地址、网关、DNS等配置参数的协议
    • How does this work?
      • 发现阶段:客户端广播发送报文
      • server offer 报文
      • 客户端发送request 报文
      • server ACK

运输层Transport layer

  • TCP/IP 网络最基础的协议
    • ICMP Internet 控制报文协议
      • TCP/IP的子协议
      • 用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息
    • UDP 套接字
      • 与TCP 面向连接,UDP主打无连接传输,做能传输的最少的工作
      • 也有校验和的功能,开头32bit为源端口号 和目的端口号(TCP一样) 紧跟着长度和校验和
    • TCP堵塞处理
      • 处理丢失,损坏和延时
        • SR 选择重传 和GBN 回退N步
          • 回退N步时使用 N=window size
    • TCP sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置
    • ack number:表示的是期望的对方(接收方)的下一次sequence number是多少
    • TCP 三次握手
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUgG1uEL-1672983956415)(tcp.png)]
    • RTT:某报文段从发出到被确认的时间;超时时间必须大于它,否则将没有意义
      • 使用指数加权移动平均来估计 RTT的估计和RTT的偏差可以用来估计重传超时的间隔
      • T i m e o u t I n t e r v a l = E s t R T T + 4 D e v R T T TimeoutInterval=EstRTT+4DevRTT TimeoutInterval=EstRTT+4DevRTT
    • 判断IP 在不在一个局域网内部
    • 可以看出多少位是网络号,多少位是主机号
  • 广播地址
    • 在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机
  • FSM 有限状态机,在该书中常被用于记录接受的状态

网络层 Network layer:数据平面

  • IPv4 / IPv6
    • IPv6 解决v4地址不够用(2^32 太少) 位数很多因此用hex表示
      • 扩大地址容量
      • 简化高效的40字节首部
      • 流标签
    • 数据报分片
      • MTU(Maximum Transmission Unit)最大传输单元 常用1500字节
      • 超过就要被分片,在接收端重新组合
    • 子网掩码
      • 子网:互联主机接口的设备和路由器接口的网络形成一个子网
      • 为解决IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,IP地址哪些标识的是主机所在的子网,哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用
      • 常见的255.255.255.0: 11111111 11111111 11111111 00000000 表示为24位
      • 和ip地址进行AND(&)运算
  • NAT: 网络地址转换
    • 私网IP转换为公网的IP 比如192.168.0.1 转换到公网(LAN to WAN) NAT 路由器上有一张转换表
    • NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机
    • NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad

网络层 Network layer:控制平面

  • SDN 软件定义网络

    • 核心思想:转发 控制 分离
    • 通信层
    • 网络范围状态管理层
    • 对于网络控制应用程序的接口
  • OpenFlow:网络通信协议 应用于SDN架构控制器和转发器之间的通信

    • 6653默认端口号
  • 网际协议IP是TCP/IP体系中两个最重要的协议之一,也是最重要的因特网标准协议之一。与IP协议配套是用的四个协议:

  1. 地址解析协议ARP:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
  2. 逆地址解析协议RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
  3. 网际控制报文协议ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会
  4. 网际组管理协议IGMP:用于探寻、转发本局域网内的组成员关系。

路由器选择

  • Bellman-Fold最短路径算法

      1. 初始化:将除源点外的所有顶点的最短距离估计值 d i s t [ v ] ← + ∞ dist[v] \larr +\infty dist[v]+, d i s t [ s ] ← 0 dist[s] \larr 0 dist[s]0;
      2. 迭代求解:反复对边集E中的每条边进行松弛操作,使得顶点集V中的每个顶点v的最短距离估计值逐步逼近其最短距离;(运行|v|-1次)
      3. 检验负权回路:判断边集E中的每一条边的两个端点是否收敛。如果存在未收敛的顶点,则算法返回false,表明问题无解;否则算法返回true,并且从源点可达的顶点v的最短距离保存在 dist[v]中
    • 与Dijstra相比,复杂度更高,但是可以处理负权边
  • forwarding-转发

  • AS: autonomous system 自治系统

  • BGP 边界网关协议

    • 决定位于相同AS中的路由器转发表
    • 让子网知道其他子网的存在
    • 因此它完成任务的手段为:
      • 从邻居获得前缀
      • 确定到该前缀的“最好的”路由
  • OSPF 开放最短路优先

    • 优点:安全,多条相同的开销路径,对单播与多播的综合支持
    • 一台路由器构建整个AS的拓扑图,每台路由器本地运行一个Dijkstra 算法,并选择最短的
      • Dijstra 算法:经典的贪心最短路径算法,先贪心的找到一条,然后对每个结点松弛,检验是否有跨越两个节点更短的方法
        Dijstra
  • 分组交换 packet switchings

    • 分组交换的概率问题, 如果用户活跃5%的时间,意味着在一个时间片内,每个用户有5% 的概率激活,此时再算多少个用户激活的概率就很简单了

链路层

链路层提供

  1. 差错检测和纠正
  2. 成帧
  3. 链路接入
  4. 可靠交付
  5. 比特级别差错检测和纠正
  • 奇偶校验parity bit
    • 二维行列同时校验,出错可定位行号列号,一维类似uart
  • CRC 循环冗余检测
    • polynomial code
    • 公式 D ∗ 2 r X O R   R = n G D*2^r XOR\ R =nG D2rXOR R=nG (详见计算题)
    • 计算方法为按位异或XOR, 加不进位,减不错位

随机接入协议

  • ALOHA协议

    • 时隙ALOHA
      • 时间被划分为L/R s 的时隙,类似时钟周期,只在时隙开始时传输
      • 节点都是同步的,意为每个节点都共用一个时钟
      • 若有碰撞,则节点在时隙的结束之前检测到,该节点以概率p在后续的时隙中重传它的帧,即为二项分布
      • lim ⁡ N → ∞ N p ∗ ( 1 − p ∗ ) N − 1 \lim_{N\rarr \infin} Np^*(1-p^*)^{N-1} limNNp(1p)N1可得最大效率为 1 / e 1/e 1/e
    • 普通ALOHA
      • 当帧第一次到达就直接丢出去,节点在等待一个帧的传输时间后,就直接以p的概率传输该帧
      • 如果出现碰撞,一样是以p 的概率立刻重传
      • lim ⁡ N → ∞ p ∗ ( 1 − p ) 2 ( N − 1 ) \lim_{N\rarr \infin} p^*(1-p)^{2(N-1)} limNp(1p)2(N1)最大效率为 1 / 2 e 1/2e 1/2e
  • 载波侦听多路访问/冲突检测 CSMA/CD

    • 效率 E = 1 1 + 5 d p r o p / d t r a n s E=\frac{1}{1+5d_{prop}/d_{trans}} E=1+5dprop/dtrans1
    • d p r o p d_{prop} dprop信号在任意两个适配器中传播的最大时间
    • d t r a n s d_{trans} dtrans 传输一个最大长度的以太网帧需要的时间
  • 轮流协议 taking-turns protocol

计网 计算题 复习

  • TCP 校验和
      1. 把校验和字段置为0;
      2. 对IP头部中的每16bit进行二进制求和;
      3. 如果和的高16bit不为0,则将和的高16bit和低16bit反复相加,直到和的高16bit为0,从而获得一个16bit的值;
      4. 将该16bit的值取反,存入校验和字段。
    • 1的补码
      • 将所有数据相加,然后高8位低8位相加 取反
    • TCP的校验和是必需的,而UDP的校验和是可选的
    • DNS 查询时延 发送和返回
  • 1Mb=10^6 bits=150,000 bytes
  • 1MiB= 2^20 1MB=10^6
  • CSMA/CD争用期 51.2 μ s 51.2 \mu s 51.2μs
    • 重传失败次数 n
    • r = m i n ( n , 10 ) r=min(n,10) r=min(n,10)
    • 选择随机一个数在数集 $K=[0,…,2^r-1] $
    • 设u为发送512bits的时间
    • 等待时间为 K ∗ u K*u Ku
  • P2P 计算题 需要注意的细节
    • 单节点 acess 取最小时间 delay是直接加吗?
    • 分清楚 下载速率和服务器上传速率
    • 有buffer 的情况,即为只要下载一个到buffer钟,然后

Q & A

  • Q: 为啥ARP 要在广播帧之中发送?
  • A: 查询前是不知道目的主机具体的mac地址,通过广播的方式,让局域网所有主机收到这个以太网帧,而只有目的主机会从接收的帧中解出ip数据报并知道了源主机的ip地址,然后发送一个arp响应的时候就只需要单播就能找到源主机了,同时更新arp表
  • Q:为啥应用常用udp? 为啥语音通话中常用tcp?
  • A:因为应用往往涉及进程间通信,udp比较简单易用,并且可以节省计算机资源 语音视频对于丢包问题要求较为严格,tcp 自带的协议可以很好的纠正丢包,而udp则对于丢包是交由上层处理
  • Q:How does traditional internet address-based forwarding differ from the more modern concept of ‘match-plus-action’?
  • A:In traditional internet, allocation of address space was based on a class system, A, B, C where the number of addresses allocated depended on the class. Modern allocation of address space is indicated by the subnet mask (/n), e.g. /30 will allocate 4 address.
  • Q:Describe how packet loss can occur at output ports. Can this loss be prevented by increasing the switch fabric speed? 输出端口的丢包可以被加速解决吗?
  • A:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值