《计算机网络自顶向下》阅读笔记

缩写

  1. ISPInternet Service Provider,因特网服务提供商)

    包含公司ISP、大学ISP

  2. TCPTransmission Control Protocol传输控制协议

  3. IPInternet Protocol网际协议

  4. RFCRequest For Comment,请求评论)

  5. DSLDigital Subscriber Line,数字用户线)

  6. CMTSCable Modem Termination System,电缆调制解调器端接系统)

  7. FTTHFiber To The Home,光纤到户)

  8. LANLocal Area Network,局域网)

  9. FDMFrequency-Division Multiplexing,频分复用)

  10. TDMTime-Division Multiplexing,时分复用)

  11. IXPInternet Exchange Point,因特网交换点)

  12. DoS attackDenial-of-Service attack,拒绝服务攻击)

    大多数因特网 D o S DoS DoS攻击属于以下三种类型

    • 弱点攻击
    • 带宽洪泛
    • 连接宏泛
  13. DDosDistributed DoS,分布式 D o S DoS DoS

  14. P2P architecturePeer-to-Peer architecture,对等体系结构)

  15. SSLSecure Sockets Layer,安全套接字层)

    是对TCP的加强,这种强化是在应用层实现的

  16. HTTPHyperText Transfer Protocol超文本传输协议

  17. RTTRound-Trip Time,往返时间)

  18. CDNContent Distribution Network,内容分发网络)

    专用CDN:由内容提供商自己拥有

    第三方CDN:代表多个内容提供商分发内容

    两种不同的服务器安置原则:

    • 深入:时延低,但维护难
    • 邀请做客:时延较高,但维护简单

    集群选择策略:

    • 地理上最邻近
    • 实时测量
  19. SMTPSimple Mail Transfer Protocol简单邮件传输协议

  20. POP3Post Office Protocol-Version 3第三版邮局协议

  21. IMAPInternet Mail Access Protocol,因特网邮件访问协议)

  22. TLDTop-Level Domain,顶级域)

  23. RRResource Record资源记录

  24. DASHDynamic Adaptive Streaming over HTTP,经 H T T P HTTP HTTP的动态适应流)

    对于不同的质量水平,客户动态的请求来自不同版本且长度为几秒的视频段数据块

  25. ACKpositive acknowledgment,肯定确认)

  26. NAKnegative acknowledgment,否定确认)

  27. ARQAutomatic Repeat reQuest自动重传请求协议

  28. GBNGo-Back-N回退 N N N

  29. SRSelective Repeat选择重传

  30. PPPPoint-to-Point Protocol点对点协议

  31. MTUMaximum Transmission Unit,最大传输单元)

    以太网和PPP链路层协议通常具有 1500 1500 1500字节的MTU

  32. MSSMaximum Segment Size,最大报文段长度)

    TCP/IP的首部通常为 40 40 40字节( 20 + 20 20+20 20+20),因此MSS通常为 1460 1460 1460字节( 1500 − 40 1500-40 150040

  33. ECNExplicit Congestion Notification,明确拥塞通告)

    对于TCPIP的拓展方案允许网络明确向TCP发送方和接收方发出拥塞信号

    TCP收到ECN拥塞指示时,接收主机中的TCP通过在接收方到发送方的TCP ACK报文段中设置ECE(明确拥塞通告回显)比特,通知发送主机中的TCP收到拥塞指示

  34. DCCPDatagram Congestion Control Protocol,数据报拥塞控制协议)

  35. QUICQuitck UDP Internet Connections Q U I T QUIT QUIT协议)

  36. SDNSoftware-Defined Networking软件定义网络

  37. TCAMTenary Content Address Memory,三态内容可寻址存储器)

  38. HOLHead-Of-the-Line,线路前部)

    HOL阻塞是指输入队列中排队的分组必须等待通过交换结构发送,因为它被线路前部的另一个分组所阻塞

  39. AQMActive Queue Management,主动队列管理)

  40. REDRandom Early Detection,随机早期检测)

    RED算法是得到最广泛研究和实现的AQM算法之一

  41. FCFSFirst Come First Service,先来先服务)

    也被称为FIFOFirst-In-First-Out,先进先出)

  42. WFQWeighted Fair Queuing,加权公平排队)

  43. CIDRClassless Interdomain Routing无类别域间路由选择

  44. DHCPDynamic Host Configuration动态主机配置协议

  45. NATNetwork Address Translation,网络地址转换)

    通过NAT路由器上的NAT转换表,让外部广域网和内部专用网络能够进行沟通

  46. ICMPInternet Control Message Protocol互联网控制报文协议

  47. SNMPSimple Network Management Protocol简单网络管理协议

  48. BGPBorder Gateway Protocol边界网关协议

  49. OSPFOpen Shortest Path First,开放式最短路径优先)

  50. MOSPFMulticast extensions to OSPF,多播 O S P F OSPF OSPF

  51. LSLink State链路状态

  52. DVDistance-Vector距离向量

  53. RIPRouting Information Protocol路由信息协议

  54. ASAutonomous System,自治系统)

    自治系统由其全局唯一的 A S AS AS号(ASN)唯一标识

  55. MIBManagement Information Base,管理信息库)

    网络管理的组件之一

  56. PDUProtocol Data Unit,协议数据单元)

  57. MACMedium Access Control,媒体访问控制)

  58. NICNetwork Interface Card,网络接口卡)

  59. FECForward Error Correction,前向纠错)

    接收方检测和纠正差错的能力

  60. CRCCyclic Redundancy Check循环冗余检测

  61. HDLChigh-level data link control,高级数据链路控制)

  62. CDMACode Dicision Multiple Access码分多址

  63. CSMACarrier Sense Multiple Access载波侦听多路访问

  64. CSMA/CDCSMA with Collision Detection具有碰撞检测的 C S M A CSMA CSMA

  65. ARPAddress Resolution Protocol地址解析协议

  66. VLANVirtual Local Network,虚拟局域网)

  67. MPLS(Multiprotocol Label Switching多协议标签交换)

  68. VPNVirtual Private Network,虚拟专用网)

概念

  1. 主机、端系统

    主机可划分为客户服务器

  2. 传输速率

    单位:bit/sbps

  3. 分组

    源将长报文划分为较小的数据块,称之为分组

    分组包含两种类型的字段:首部字段有效荷载字段

  4. 分组交换机

    两种主要类型

    • 路由器

      每台路由器具有一个转发表,用于将目的地址(或目的地址的一部分)映射成输出链路

      路由器使用路由选择协议来自动的设置转发表

      路由器的四个组件:

      • 输入端口

        执行终结入物理链路的物理层功能

        与位于入链路远端的数据链路层交互来执行数据链路层功能

        执行查找功能,通过查询路由表决定路由器的输出端口

      • 输出端口

        存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组

      • 交换结构

        将输入端口连接到输出端口

        交换的几种方式:

        • 经内容交换

        • 经总线交换

        • 经互联网络交换

          纵横式网络能够并行转发多个分组

      • 路由选择处理器

        执行路由选择协议,维护路由选择表和关联链路状态信息,并为该路由器计算转发表

        路由器通过使用最长前缀匹配规则确定转发路径

    • 链路层交换机

      主要功能:

      • 过滤

        决定将一个帧转发到某个接口,还是将其丢弃

      • 转发

        决定帧应该被导向哪个接口,并且把帧移动到该接口

      交换机的过滤和转发借助于交换机表完成

      工作流程

      假设一个目的地址为 D M A C DMAC DMAC的帧从接口 x x x到达

      1. 如果交换机表中没有对 D M A C DMAC DMAC的表项,交换机向除了 x x x外的所有接口转发该帧(被称为泛洪
      2. 如果存在一个表项将目的地址 D M A C DMAC DMAC和接口 x x x联系起来,则丢弃该帧
      3. 如果存在一个表项将目的地址 D M A C DMAC DMAC和不为 x x x的接口 y y y联系起来,则将该帧转发到接口 y y y的输出缓存中

      交换机是自学习

      学习过程:

      1. 初始为空
      2. 在每个接口接收到的入帧,交换机在表中存储该帧的源地址字段中的** M A C MAC MAC地址**、该帧到达的接口当前时间
      3. 一段时间(被称为老化期)后,交换机没有收到以该地址作为源地址的帧,就从表中删除这一项;如果一台 P C PC PC被另一台 P C PC PC代替,则原来的项也会被删除

    路由器提供对广播风暴的控制,而链路层交换机没有

  5. 协议

    TCPIP是因特网中最重要的两个协议

    协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作

  6. 套接字

    进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文

    套接字是应用程序和网络之间的应用程序编程端口

    简单的套接字编程

    T C P   s e r v e r TCP\space server TCP server

    from socket import *
    HOST = ''
    PORT = 12000
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    serverSock = socket(AF_INET, SOCK_STREAM)
    serverSock.bind(ADDR)
    serverSock.listen(5)
    while True:
     print('waiting for connection...')
     cliSock, addr = serverSock.accept()
     print('get connection from {}'.format(addr))
    
     while True:
         msg = cliSock.recv(BUFSIZ).decode()
         print(msg)
         if msg.upper() == 'QUIT':
             cliSock.send("Byebye!".encode())
             print('end connection.')
             break
         tranMsg = msg.upper()
         cliSock.send(tranMsg.encode())
    
     cliSock.close()
    

    T C P   c l i e n t TCP\space client TCP client

    from socket import *
    HOST = 'localhost'
    PORT = 12000
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    clientSock = socket(AF_INET, SOCK_STREAM)
    clientSock.connect(ADDR)
    while True:
     msg = input('> ')
     clientSock.send(msg.encode())
     retMsg = clientSock.recv(BUFSIZ)
     print(retMsg.decode())
     if msg.upper() == 'QUIT':
         break
    clientSock.close()
    

    U D P   s e r v e r UDP\space server UDP server

    from socket import *
    serverPort = 12000
    BUFSIZ = 2048
    serverSocket = socket(AF_INET, SOCK_DGRAM)
    serverSocket.bind(('', serverPort))
    print('waiting for connection...')
    while True:
     data, addr = serverSocket.recvfrom(BUFSIZ)
     print('get connection from {}'.format(addr))
     tranData = data.decode().upper()
     print(tranData)
     msg = tranData if tranData != "QUIT" else "Byebye"
     serverSocket.sendto(msg.encode(), addr)
    

    U D P   c l i e n t UDP\space client UDP client

    from socket import *
    serverName = 'localhost'
    serverPort = 12000
    BUFSIZ = 2048
    clientSock = socket(AF_INET, SOCK_DGRAM)
    while True:
     message = input("> ")
     clientSock.sendto(message.encode(), (serverName, serverPort))
     backMsg, serverAddr = clientSock.recvfrom(BUFSIZ)
     print(backMsg.decode())
     if message.upper() == 'QUIT':
         break
    clientSock.close()
    

    一个UDP套接字由(目的 I P IP IP地址,目的端口号)这个二元组全面标识

    TCP套接字由(源 I P IP IP地址,源端口号,目的 I P IP IP地址,目的端口号)这个四元组标识

  7. 接入网

    将端系统物理连接到边缘路由器的网络

  8. 物理媒体

    可分为两种类型:

    • 导引型媒体

      双绞铜线是最便宜且最常用的导引型传输媒体

    • 非导引型媒体

  9. 存储转发传输

    交换机在向输出链路传输该分组的第一个比特之前,必须接收到整个分组

    P P P个分组经 N N N条链路的时延(只考虑传输时延, L L L为分组长度, R R R为传输速率): d 端 到 端 = ( N + P − 1 ) L R d_{端到端}=(N+P-1)\frac{L}{R} d=(N+P1)RL

  10. 输出缓存

    也称为输出队列,用于存储路由器准备发往的那条链路的分组

    排队时延在此产生

  11. 分组丢失

    也叫做丢包,缓存满了之后,到达的分组或已经排队的分组之一会被丢弃

    是在路由器中的队列中,分组被实际丢弃或丢失

  12. 电路交换和分组交换

    电路交换中,端系统通信会话期间,预留了端系统之间沿路径通信所需的资源

    电路通过FDMTDM来实现

    FDM中频段的宽度被称为带宽

    TDM中一条电路的传输速率等于帧速率乘以一个时隙中的比特数量

  13. 时延

    包括节点处理时延排队时延传输时延传播时延

    累加起来是节点总时延

    传播时延等于两个路由器之间的距离除以传播速率

  14. 流量强度

    假设 α \alpha α为分组到达队列的平均速率, R R R是传输速率, L L L是分组的长度(单位为 b i t bit bit),则流量强度为 L α R \frac{L\alpha}{R} RLα

    设计系统时流量强度不能大于1

    随着流量强度接近1,平均排序时延迅速增加

  15. 吞吐量

    瞬时吞吐量平均吞吐量

    单位为bps

    吞吐量取传输路径上所有链路速率的最小值

    在今天,互联网中吞吐量的限制因素通常是接入网

  16. 服务模型

    某层向上一层提供的服务

  17. 协议栈

    各层所有的协议被称为协议栈

  18. 5层因特网协议栈

    自顶向下依次是:

    1. 应用层

      位于应用层的信息分组被称为报文

    2. 运输层

      运输层的分组被称为报文段

    3. 网络层

      网络层分组被称为数据报

    4. 链路层

      链路层分组被称为

    5. 物理层

      比特流的形式传输

  19. O S I OSI OSI参考模型

    1. 应用层

    2. 表示层

      使通信的应用程序能够交换数据的含义,包括数据压缩、数据加密和数据描述

    3. 会话层

      提供了数据交换的定界和同步功能

    4. 运输层

    5. 网络层

    6. 链路层

    7. 物理层

  20. 病毒

    需要某种形式的用户交互来感染用户设备的恶意软件

  21. 蠕虫

    无需任何明显用于交互就能进入设备的恶意软件

  22. 分组嗅探器

    记录每个流经分组副本的被动接收机

  23. 应用程序体系结构

    两种主流体系结构:

    • 客户-服务器体系结构
    • 对等(P2P)体系结构
  24. 进程通信

    网络应用程序由成对的进程组成

    发起通信的进程被称为客户,等待联系的进程是服务器

  25. 进程寻址

    主机通过**IP地址**标识

    进程通过端口号标识

  26. 应用程序服务

    可以从四个方面对应用程序服务要求进行分类

    • 可靠数据传输

      对运输层而言,代表能确保应用程序的一端发送的数据正确、完全的交付给该应用程序的另一端

    • 吞吐量

      可用吞吐量指发送进程能像接收进程交付比特的速率

    • 定时

    • 安全性

    TCP提供面向连接的服务可靠的数据传送服务

    UDP提供无连接不可靠服务

  27. 应用层协议

    定义了运行在不同端系统上的应用程序进程如何相互传递报文,特别定义了:

    • 交换的报文类型(请求报文、响应报文等)
    • 报文类型的语法
    • 字段的语义
    • 确定进程何时、如何发送报文,如何对报文进行响应
  28. 电子邮件

    三个主要组成部分:

    • 用户代理
    • 邮件服务器
    • 简单邮件传输协议SMTP
  29. 多路分解与多路复用

    将运输层报文段的数据交付到正确的套接字的过程叫多路分解

    从源主机不同的套接字中收集数据块,并为每个数据块封装上首部信息,然后将报文段传递到网络层的过程叫多路复用

  30. 周知端口号

    0 − 1023 0-1023 01023范围内的端口号被称为周知端口号

  31. 自动重传请求协议( A R Q ARQ ARQ

    基于ACKNAK控制报文,使得接收方可以让发送方知道哪些内容被正确接收,哪些内容接收有误并且需要重传

  32. 停等协议

    发送方确信接收方已经正确接收当前分组后,才会发送一块新数据

  33. 比特交替协议

    分组序号在0和1之间交替

  34. 流水线可靠数据传输协议

    允许发送方发送多个分组而无需等待

    差错恢复的方式:

    • 回退 N N N步( G B N GBN GBN

      常被称为滑动窗口协议

      接收方丢弃所有失序分组

      出现超时时,发送方重传所有已发送但还未被确认过的分组

    • 选择重传( S R SR SR

      接收方将确认一个正确接收的分组而不管其是否时序(但序号需要在自己的接收窗口中)

      超时时,发送方仅重传那些它怀疑在接收方出错(丢失或受损)的分组

      窗口长度必须小于或等于序号空间大小的一半

      若用 n n n个比特表示序号,则序号的范围为 0 到 ( 2 n − 1 ) 0到(2^{n}-1) 0(2n1),则窗口长度必须小于等于 2 n − 1 2^{n-1} 2n1

  35. 单工、半双工与全双工

    单工仅允许单向传输

    半双工允许双向传输,但同一时刻只允许朝一个方向传输

    全双工允许双向传输,同一时刻允许两个方向同时传输

  36. 点对点与多播

    点对点:单个发送方和单个接收方之间的连接

    多播:一次发送操作中,从一个发送方将数据传送传送给多个接收方

  37. 冗余 A C K ACK ACK

    再次确认某个报文段的 A C K ACK ACK

  38. 供给载荷

    运输层向网络中发送报文段(包含初始数据和重传数据)的速率

  39. 拥塞控制方法

    端到端拥塞控制

    网络层没有为运输层拥塞控制提供显示支持

    网络辅助的拥塞控制

    路由器向发送方提供关于网络中拥塞状态的显示反馈信息

  40. 瓶颈链路

    对于每条连接,沿着该连接路径上的所有其他路径都不拥塞,而且与该瓶颈链路的传输容量相比,它们都有充足的传输容量,则该链路被称为瓶颈链路

  41. 网络层功能

    转发

    将分组移动到适当的输出链路

    转发方式:

    • 基于目的转发:只根据最终目的地来选择路径

      查找目的IP地址(“匹配”),然后将分组发送到有特定输出端口的交换结构(“动作”)

    • 通用转发:基于多种因素决定转发路径

      O p e n F l o w OpenFlow OpenFlow协议

    路由选择

    通过路由选择算法来确定转发路径

  42. 网络层可以提供的服务

    • 确保交付
    • 具有时延上界的确保交付
    • 有序分组交付
    • 确保最小带宽
    • 安全性

    但网络层只提供尽力而为服务

  43. 分组调度的方式

    先进先出

    优先权排队

    循环排队

    加权公平排队

  44. 子网

    分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离得到网络的断电,这些隔离的网络中的每一个都叫做一个子网

  45. 子网掩码

    223.1.1.0/24里的/24记法被称为子网掩码

    也可将其写成如下形式:255.255.255.0

  46. 网络前缀

    形式为a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,被称为网络前缀,亦可简称为前缀

  47. 默认网关

    第一跳路由器地址通常被称作默认网关

  48. 专用网络

    亦称作具有专用地址的地域,是指其地址仅对该网络中的设备有意义的网络

  49. 任播地址

    IPv6中引入,这种地址可以将数据报交付给一组主机中的任意一个

  50. 转发表和流表的维护方法

    每路由器控制

    在每台路由器中运行一种路由选择算法,每台路由器都包含转发和路由选择功能

    逻辑集中式控制

    逻辑集中式控制器计算并分发转发表以供每台路由器使用, S D N SDN SDN采用了该种控制方式

  51. 路由选择算法

    分类方式1:

    • 集中式路由选择算法

      用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径

      具有全局状态信息的算法通常被称作链路状态( L S LS LS)算法

    • 分散式路由选择算法

      路由器以迭代、分布式的方式计算出最低开销路径,每个结点仅有与其直接相连链路的开销信息就能开始工作

      距离向量( D V DV DV)算法就属于分散式路由选择算法

    分类方式2:

    • 静态路由选择算法

      通常人工进行调整

    • 动态路由选择算法

      随着网络流量负载或拓扑发生变化而改变路由选择路径

    分类方式3:

    • 负载敏感算法

      链路开销会动态的变化以反映出底层链路的当前拥塞水平

    • 负载迟钝算法

      链路开销不明显的反映当前的拥塞水平

    LS算法

    使用全局信息

    典型的LS算法有 D i j k s t r a Dijkstra Dijkstra算法

    在拥塞敏感的路由选择中,可能会出现振荡

    因特网上的路由器能够进行自同步

    即使路由器初始以相同周期、不同时刻开始执行算法,但算法的执行时机最终会同步

    DV算法

    DV算法是一种迭代的、异步的和分布式的算法

    采用 B e l l m a n − F o r d Bellman-Ford BellmanFord算法

    可能会遇到路由选择环路无穷计数问题

    要解决该问题,可以采用毒性逆转,即如果 Z Z Z通过 Y Y Y到达 X X X,则 Z Z Z通告 Y Y Y它到 X X X的距离是 ∞ \infin ,但这个方法不能解决一般的无穷计数问题,只适用于只有两个直接相连的邻居节点的环路

  52. 自治系统内部路由选择协议

    在一个自治系统内部运行的路由选择算法就叫做自治系统内部路由选择协议,通常采用 O S P F OSPF OSPF路由选择协议

  53. 自治系统间路由选择协议

    所有的 A S AS AS运行相同的 A S AS AS间路由选择协议BGP

    B G P BGP BGP是所有因特网中最重要的协议(唯一的竞争者可能是IP协议)

  54. 网关路由器和内部路由器

    网关路由器是一台位于 A S AS AS边缘的路由器,直接连接到其他 A S AS AS中的一台或多台路由器

    内部路由器仅连接在自己 A S AS AS内部的主机和路由器

  55. 路由

    路由器通过 B G P BGP BGP连接通告前缀时,前缀中包含了一些BGP属性前缀及其属性称为路由

  56. 热土豆路由选择

    从所有可能的路由中,选择 到该路由的 N E X T − H O P NEXT-HOP NEXTHOP路由器 的开销最小的那一条路由

    这是一个"自私"的算法,它选择在自己 A S AS AS中开销最小的路由,而不管其他部分的开销

  57. I P IP IP任播

    C D N CDN CDN公司为多台服务器指派相同的 I P IP IP地址,当客户向该 I P IP IP地址发送请求时,因特网路由器向最近的服务器转发该请求分组,最近的服务器由 B G P BGP BGP路由选择算法定义

    实际中, C D N CDN CDN通常不使用 I P IP IP任播,但 I P IP IP任播广泛的引用与 D N S DNS DNS

  58. S D N SDN SDN控制平面

    SDN控制平面可划分为:

    • S D N SDN SDN控制器

      功能可分为3个层次:

      • 通信层

        南向接口,负责 S D N SDN SDN控制器和受控网络设备之间的通信,通常使用 O p e n F l o w OpenFlow OpenFlow协议

      • 网络范围状态管理层

      • 网络控制应用程序层

        北向接口,允许网络控制应用程序在状态管理层之间读/写网络状态和流表

    • S D N SDN SDN网络控制应用

  59. 网络管理的组件

    管理服务器

    被管设备

    管理信息库( M I B MIB MIB

    网络管理代理

    网络管理协议

  60. 链路层信道

    广播信道

    连接有线局域网、卫星网和混合光纤同轴电缆接入网中的多台主机,使用媒体访问协议来协调帧传输

    点对点通信链路

    由链路一端的单个发送方和链路另一端的单个接收方组成

  61. 链路层提供的服务

    成帧

    链路接入

    M A C MAC MAC协议规定了帧在链路层上传输的规则

    可靠交付

    差错检测和纠正

  62. 网络适配器

    又被称为网络接口卡

    链路层的主体部分在网络适配器中实现

    位于适配器核心的是链路层控制器,该控制器通常是实现了许多链路层服务的专用芯片

  63. 差错检验

    差错检验的3种技术:

    • 奇偶校验

      描述差错检测和纠正背后的基本思想

      奇校验:添加一个附加比特,使得1的总数为奇数

      偶校验:添加一个附加比特,使得1的总数为偶数

      二维奇偶校验:对每一行和每一列都进行一维的奇偶校验

    • 检验和

      更多的应用于运输层

      对接收的数据的和 取反码,通过看结果是否全为1来检测是否出错

    • 循环冗余检测( C R C CRC CRC

      更多的应用于适配器中的链路层

      发送方和接收方须先协商一个 r + 1 r+1 r+1比特生成多项式 G G G,对于给定的 d d d比特数据段 D D D,发送方需要给它添加 r r r个附加比特 R R R,使得 ( D ⋅ 2 r + R ) % G = 0 (D\cdot 2^r+R)\%G=0 (D2r+R)%G=0(则 R = ( D ⋅ 2 r ) % G R=(D\cdot 2^r) \%G R=(D2r)%G

      接收方用 G G G去除接收到的 r + d r+d r+d比特数据,若结果非0,则说明传输出现了差错

  64. 多路访问协议

    可以划分为3种类型:

    • 信道划分协议

      T D M TDM TDM:将事件划分为时间帧,每个帧再划分为 N N N时隙,每个节点的传输速率为 R N   b p s \frac{R}{N}\ bps NR bps R R R为信道的总传输速率)

      F D M FDM FDM:将 R   b p s R\ bps R bps信道划分为 N N N个不同的频段,每个节点分配一个,每个节点的传输速率为 R N   b p s \frac{R}{N}\ bps NR bps

      C D M A CDMA CDMA:码分多址,给每个节点分配一个不同的编码,使不同的节点能够同时传输

    • 随机接入协议

      随机接入协议中,一个传输节点总是以信道的全部速率进行发送

      有碰撞时,涉及碰撞的节点反复重发该帧(不必马上重发,需要等待一个随机时延),直到无碰撞通过

    • 轮流协议

      轮询协议

      指定一个主节点,主节点以循环的方式轮询每个节点,告知他们能传输的帧的最大数目

      令牌传递协议

      一个被称作令牌的特殊帧在节点之间以某种固定的次序传递

      一个节点收到令牌时,当它有帧要传输时,发送最大数目的帧数,然后将令牌转发给下一个节点;如果它没有帧要传输,则立即向下一个节点转发令牌

  65. M A C MAC MAC地址

    又被称为LAN地址物理地址

    地址长度为 6 6 6字节,共有 2 48 2^{48} 248个可能的 M A C MAC MAC地址

    并不是主机或路由器具有 M A C MAC MAC地址,而是它们的适配器 M A C MAC MAC地址

    没有两块适配器拥有相同的 M A C MAC MAC地址

    M A C MAC MAC广播地址为: F F − F F − F F − F F − F F − F F FF-FF-FF-FF-FF-FF FFFFFFFFFFFF(48位都为1)

  66. 多协议标签交换( M P L S MPLS MPLS

    在第二层首部和第三层首部之间添加了一个MPLS首部

    MPLS首部的包含的字段:

    • 标签

    • 预留的3比特实验字段

    • 1比特 S S S字段,用于指示一系列成栈的 M P L S MPLS MPLS首部的结束

    • 寿命字段

    MPLS增强的转发

    在转发表项中添加了入标签和出标签

    MPLS能够并且已经被用于实现虚拟专用网VPN

协议

应用层协议
HTTP

W e b Web Web,流式多媒体,基于TCP协议

W e b Web Web页面是由对象组成的

H T T P HTTP HTTP服务器并不保存关于客户的任何信息,所以HTTP是一个无状态协议

持续连接非持续连接

HTTP默认采用持续连接

HTTP请求报文格式

请求行:方法字段、 U R L URL URL字段、 H T T P HTTP HTTP版本字段

首部行:首部字段、值

实体体

样例:

GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
Accept-language: zh

使用 G E T GET GET方法时实体体为空,只有用 P O S T POST POST方法时才使用实体体

条件 G E T GET GET方法

添加首部行

If-modified-since: Web, 9 Sep 2015 09:23:24

HTTP响应报文格式

初始状态行:版本、状态码、状态信息

首部行

实体体

样例:

HTTP/1.1 200 OK
Connection: close
Date: Tue, 18 Aug 2015 15:44:04 GMT
Server: Apache/2.2.3(CentOS)
Last-Modified: Tue, 18, Agu 2015 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html
(data data data data ...)

常见状态码

状态码状态信息
200OK
301Moved Permanently
400Bad Request
404Not Found
505HTTP Version Not Supported
304Not Modified

cookie

四个组件:

  • HTTP响应报文中的一个cookie首部行

    Set-cookie: 1678
    
  • HTTP请求报文中的一个cookie首部行

    Cookie: 1678
    
  • 用户端系统中保留一个cookie文件,由用户浏览器进行管理

  • 位于Web站点的一个后端数据库

Web缓存器

也叫代理服务器

SMTP

电子邮件,基于TCP协议

使用持续连接

语法

HELO domain_name
MAIL FROM: <1550223143@qq.com>
RCPT TO: <zhj1550223143@gmail.com>
DATA
FROM: 1550223143@qq.com
TO: zhj1550223143@gmail.com
Subject: Learning Computer Network
The content of the mail
. 
QUIT
POP3

邮件访问协议,基于TCP协议

三个阶段:

  • 特许
  • 事务处理
  • 更新

命令

特许阶段

user <username>
pass <password>

事务处理

list
retr
dele
quit

IMAP协议比POP3协议更为复杂,也更加强大

现在基于Web的电子邮件:浏览器和邮件服务器之间使用HTTP协议,但邮件服务器和其他邮件服务器之间仍然使用SMTP协议

Telnet

远程终端访问,基于TCP协议

FTP

文件传输,基于TCP协议

DNS

目录服务,基于UDP协议

主机可以根据主机名来标识,还可以根据IP地址来标识,DNS提供主机名到IP地址转换的目录服务

DNS提供的其他服务

  • 主机别名
  • 邮件服务器别名
  • 负载分配

三类DNS服务器

  • DNS服务器
  • 顶级域(TLD)DNS服务器
  • 权威DNS服务器

还有一类本地DNS服务器

查询方式

  • 递归查询
  • 迭代查询

DNS广泛的使用了缓存技术

DNS记录和报文

DNS服务器中存储了资源记录 R R RR RR

资源记录是一个包含了下列字段的四元组

(Name, Value, Type, TTL)
  • T y p e Type Type A A A,则 N a m e Name Name是主机名, V a l u e Value Value是对应的 I P IP IP地址
  • T y p e Type Type N S NS NS,则 N a m e Name Name是域名, V a l u e Value Value是知道如何获取该域中主机的 I P IP IP地址的权威DNS服务器的主机名
  • T y p e Type Type C N A M E CNAME CNAME,则 N a m e Name Name是别名, V a l u e Value Value是对应的规范主机名
  • T y p e Type Type M X MX MX,则 N a m e Name Name是别名, V a l u e Value Value是对应的邮件服务器的规范主机名

T T L TTL TTL是该记录的生存时间

DNS报文格式

BitTorrent

最为流行的P2P文件分发协议,基于TCP协议

P2P和客户-服务器体系结构的分发时间

设服务器上载速率为 u s u_s us,对其他主机, d i d_i di表示下载速率, u i u_i ui表示上载速率,F为文件的总比特数

则客户-服务器体系结构的最小分发时间为 m a x ( N F u s , F d m i n ) max(\frac{NF}{u_s},\frac{F}{d_{min}}) max(usNFdminF)

P 2 P P2P P2P体系结构的最小分发时间为 m a x ( F u s , F d m i n , N F u s + ∑ i = 1 N d i ) max(\frac{F}{u_s},\frac{F}{d_{min}}, \frac{NF}{u_s+\sum\limits_{i=1}^{N}{d_i}}) max(usF,dminFus+i=1NdiNF)

参与一个特定文件分发的所有对等方的集合被称为一个洪流

请求块时采用最稀缺优先技术

优先请求在邻居中最稀缺且自己没有的块

采用一报还一报的激励机制

给当前能够以最高速率向自己发送数据的邻居以优先权

每隔30秒需要随机另选一个邻居发送数据

DHCP

动态主机配置协议,基于UDP协议

又被称为即插即用协议零配置协议

是一个客户-服务器协议

获取IP地址的4个步骤

  • DHCP服务器发现

    通过发送DHCP发现报文来完成( U D P UDP UDP分组中,目的端口号为 67 67 67 I P IP IP数据报中,源 I P IP IP地址填 0.0.0.0 0.0.0.0 0.0.0.0,目的 I P IP IP地址填广播地址 255.255.255.255 255.255.255.255 255.255.255.255

  • DHCP服务器提供

    使用DHCP提供报文来完成(依旧使用广播地址 255.255.255.255 255.255.255.255 255.255.255.255),报文内容包含发现报文的事务ID、向客户推荐的 I P IP IP地址、网络掩码和IP地址租用期

  • DHCP请求

    客户从一台或多台 D H C P DHCP DHCP服务器的提供中选择一个,向对应的服务器发送 D H C P DHCP DHCP请求报文(源 I P IP IP地址依旧使用 0.0.0.0 0.0.0.0 0.0.0.0),回显配置的参数

  • DHCP ACK

    服务器对 D H C P DHCP DHCP请求进行响应,发送一个 D H C P   A C K DHCP~ACK DHCP ACK报文,证实要求的参数

SIPRTP

因特网电话,基于TCP协议或UDP协议

NFS

远程文件服务器,通常基于UDP协议

SNMP

简单网络管理协议,通常基于UDP协议

用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文

请求响应模式

S N M P SNMP SNMP管理服务器向 S N M P SNMP SNMP 代理发送请求,代理接受请求后,执行一些动作,然后对该请求发送一个回答(请求常用于查询或修改 M I B MIB MIB对象值)

陷阱报文

代理向管理服务器发送的一种非请求报文,用于通知管理服务器一个异常情况已经导致了 M I B MIB MIB对象值的改变

报文格式参考链接

BGP

边界网关协议,基于TCP协议

是一种自治系统间路由选择协议,是一种分布式和异步的协议

BGP为每台路由器提供了完成以下任务的手段

从邻居 A S AS AS获取前缀的可达性信息

确定到该前缀的"最好的"路由

BGP连接

跨越两个 A S AS AS B G P BGP BGP连接称为外部BGP连接 e B G P eBGP eBGP

在相同 A S AS AS内部的两台路由器之间的 B G P BGP BGP会话称为内部BGP连接 i B G P iBGP iBGP

BGP属性

路由器通过 B G P BGP BGP连接通告前缀时,前缀中包含了一些BGP属性

两个重要的属性:

  • A S − P A T H AS-PATH ASPATH

    包含了已经通过的 A S AS AS的列表

    当一个前缀通过某 A S AS AS时,就将该 A S AS AS A S N ASN ASN加入到 A S − P A T H AS-PATH ASPATH的现有列表中

  • N E X T − H O P NEXT-HOP NEXTHOP

    A S − P A T H AS-PATH ASPATH起始的路由器接口 I P IP IP地址

BGP路由组件

每条 B G P BGP BGP路由包含3个组件: N E X T − H O P ; A S − P A T H ; 目 的 前 缀 NEXT-HOP;AS-PATH;目的前缀 NEXTHOP;ASPATH;

路由选择算法

BGP采用了一种比热土豆路由算法更加复杂但综合了其特点的算法,顺序调用以下规则直到剩下一条路由:

  1. 路由被指派一个本地偏好值(可能由该路由器设置,或者从相同 A S AS AS的另一台路由器学到,它的值完全取决于网络管理员),具有最高本地偏好值的路由将被选择
  2. 如果具有最高本地偏好值的路由有多个,则选择具有最短 A S − P A T H AS-PATH ASPATH的路由(如果该规则是路由选择的唯一规则,则采用距离向量算法计算最短路,其中距离测度采用 A S AS AS跳而非路由器跳数)
  3. 如果还有多个路由,则使用热土豆路由选择
  4. 如果还有多个路由,则使用 B G P BGP BGP标识符来选择路由
RIP

路由信息协议,基于UDP协议

使用 B e l l m a n − F o r d Bellman-Ford BellmanFord算法

运输层协议
TCP

TCP面向连接的,提供全双工服务

TCP连接是点对点的

TCP报文格式:

序号: 32 b i t 32bit 32bit,发送的报文段的第一个首字节的序号

确认号: 32 b i t 32bit 32bit,期望收到的下一个字节的序号

W i n d o w Window Window:接收窗口字段, 16 b i t 16bit 16bit,用于指示接收方愿意接受的字节数

D a t a   O f f s e t Data\ Offset Data Offset:首部长度字段, 4 b i t 4bit 4bit,以 32 b i t 32bit 32bit为单位

6比特的标志字段

A C K ACK ACK比特用于指示确认字段中的值是有效的

S Y N SYN SYN比特用于TCP连接的建立(三次握手)

F I N FIN FIN比特用于TCP连接的拆除(四次挥手)

R S T RST RST比特用于连接的重设

当接受到的报文段的端口或IP地址和当前主机进行的套接字不匹配时,该主机向源发送一个特殊重置报文段,将 R S T RST RST标志位设置为1

P S H PSH PSH比特用于指示接收方应立即将数据交给上层

U R G URG URG比特用于指示报文段的紧急数据指针字段是有效的

首部字段通常为 20 20 20字节

TCP提供累积确认

只确认流中至第一个丢失字节的字节

往返时间

大多数TCP的实现仅在某个时刻做一次 S a m p l e R T T SampleRTT SampleRTT测量,而不是为每个发送的报文段都进行一次测量

TCP绝不为重传的报文段计算SampleRTT

S a m p l e R T T SampleRTT SampleRTT均值: E s t i m a t e d R T T = ( 1 − α ) ⋅ E s t i m a t e d R T T + α ⋅ S a m p l e R T T EstimatedRTT=(1-\alpha)\cdot EstimatedRTT+\alpha\cdot SampleRTT EstimatedRTT=(1α)EstimatedRTT+αSampleRTT

R T T RTT RTT偏差: D e v R T T = ( 1 − β ) ⋅ E s t i m a t e d R T T + β ⋅ S a m p l e R T T DevRTT=(1-\beta)\cdot EstimatedRTT+\beta\cdot SampleRTT DevRTT=(1β)EstimatedRTT+βSampleRTT

其中 α \alpha α的推荐值为 0.125 0.125 0.125 β \beta β的推荐值为 0.25 0.25 0.25

超时重传间隔

T i m e o u t I n t e r v a l = E s t i m a t e d R T T + 4 ⋅ D e v R T T TimeoutInterval=EstimatedRTT+4\cdot DevRTT TimeoutInterval=EstimatedRTT+4DevRTT

每次重传都会将 T i m e o u t I n t e r v a l TimeoutInterval TimeoutInterval设置为原来的两倍,而不使用该公式来计算

一旦受到 3 3 3个冗余 A C K ACK ACK T C P TCP TCP就执行快速重传

TCP为应用程序提供了流量控制服务

TCP通过让发送方维护一个接收窗口的变量来提供流量控制

该变量指示接收方还有多少可用的缓存空间

TCP连接管理

  • 三次握手

    1. 客户端TCP首先向服务器端的TCP发送一个SYN报文段(SYN标志位被设置为1,并随机选择一个初始序号 c l i e n t _ i s n client\_isn client_isn放入报文段的序号字段中)
    2. 收到SYN报文段后,服务器发送一个SYNACK报文段(SYN比特置为1,选择一个初始序号 s e r v e r _ i s n server\_isn server_isn放入序号字段中,将 c l i e n t _ i s n + 1 client\_isn+1 client_isn+1放入确认号字段中)
    3. 收到SYNACK报文段后,客户再向服务器发送一个报文段(SYN比特置为0,将确认号字段设置为 s e r v e r _ i s n + 1 server\_isn+1 server_isn+1

    其中在第二步的时候服务器会为TCP连接设置缓存和变量,但这使得TCP容易受到SYN洪泛的拒绝服务攻击。而客户会在第三步为该连接分配缓存和变量

    第三步的报文段已经可以传输数据

  • 四次挥手

    1. 客户TCP向服务器发送一个特殊的TCP报文段(FIN标志位设置为1)
    2. 服务器向客户发送一个确认报文段
    3. 服务器向客户发送终止报文段(FIN比特置为1)
    4. 客户向服务器段发送确认报文段

    服务器受到最后的确认报文段后关闭,经过一段等待时间后,客户端关闭(为了避免最后的确认报文段丢失,所以需要等待一段时间,通常为 2 R T T 2RTT 2RTT

TCP客户端状态

TCP服务器状态

image-20201231201722214

TCP的拥塞控制

TCP采用端到端拥塞控制

运行在发送方的TCP拥塞控制机制跟踪一个额外的变量拥塞窗口,通常记为 c w n d cwnd cwnd

拥塞避免算法的3个主要部分

  • 慢启动

    一旦发生超时事件就进入慢启动状态

    c w n d cwnd cwnd从1个 M S S MSS MSS开始增加,以指数级别增长,每收到完整的一组 A C K ACK ACK,就将 c w n d cwnd cwnd翻一番(相当于每到达一个 A C K ACK ACK就给 c w n d cwnd cwnd增大一个 M S S MSS MSS

    当到达 s s t h r e s h ssthresh ssthresh(慢启动阈值)时,就进入拥塞避免状态

    当收到三个冗余 A C K ACK ACK时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半, c w n d cwnd cwnd设置为 s s t h r e s h ( + 3 ⋅ M S S ) ssthresh(+3\cdot MSS) ssthresh(+3MSS),进入快速恢复状态

    遇到超时时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半,重新启动慢启动状态

  • 拥塞避免

    每收到完整的一组 A C K ACK ACK c w n d cwnd cwnd就增加一个 M S S MSS MSS(相当于每到达一个 A C K ACK ACK就增加 M S S c w n d \frac{MSS}{cwnd} cwndMSS

    当收到三个冗余 A C K ACK ACK时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半, c w n d cwnd cwnd设置为 s s t h r e s h ( + 3 ⋅ M S S ) ssthresh(+3\cdot MSS) ssthresh(+3MSS),进入快速恢复状态

    遇到超时时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半,进入慢启动状态

  • 快速恢复(推荐部分,并非必需)

    继续收到冗余的 A C K ACK ACK时,每收到一个给 c w n d cwnd cwnd增加一个 M S S MSS MSS

    当收到一个新的非冗余的 A C K ACK ACK时,进入拥塞避免状态

    当遇到超时时,将 s s t h r e s h ssthresh ssthresh设置为当前 c w n d cwnd cwnd的一半,进入慢启动状态

TCP的两个版本

TCP Tahoe版本未采用快速恢复

TCP Reno版本综合了快速恢复

TCP拥塞控制通常被称为加性增、乘性减

TCP吞吐量

设当前窗口是w字节,用W表示w的值

则一条连接的平均吞吐量为 0.75 × W R T T \frac{0.75\times{W}}{RTT} RTT0.75×W

设丢包率为 L L L,则一条连接的平均吞吐量为 1.22 × M S S R T T L \frac{1.22\times{MSS}}{RTT\sqrt{L}} RTTL 1.22×MSS

UDP

UDP报文格式:

检验和提供了差错检验功能

发送方对报文段中所有16比特字的和进行反码运算(求和的溢出将被回卷),得到的结果被放在UDP报文的检验和字段

首部开销通常为 8 8 8字节

网络层协议
IP

IPv4数据报格式

I H L IHL IHL:首部长度

T y p e   o f   S e r v i c e Type\space of\space Service Type of Service:服务类型(比如可以将要求低时延的数据报和普通的数据报区分开来)

T o t a l   L e n g t h Total\space Length Total Length:数据报的总长度(首部加数据)

I d e n t i f i c a t i o n , F l a g s , F r a g m e n t   O f f s e t Identification,Flags,Fragment\ Offset Identification,Flags,Fragment Offset:用于 I P IP IP分片

T i m e   t o   L i v e Time\ to\ Live Time to Live T T L TTL TTL,每经过一台路由器,该值减1,该值为0时将被丢弃

P r o t o c o l Protocol Protocol:标识应该交给哪个运输层协议

S o u r c e   A d d r e s s , D e s t i n a t i o n   A d d r e s s Source\ Address,Destination\ Address Source AddressDestination Address 32 b i t 32bit 32bit

IPv4数据报的首部通常为 20 20 20字节

IPv4编址

主机和物理链路之间的边界叫做接口

从技术上来说,一个IP地址与一个接口相关联,而不是与包括该接口的主机或路由器相关联

地址通常通过点分十进制记法书写

因特网的地址分配策略被称为无类别域间路由选择CIDR

a . b . c . d / x a.b.c.d/x a.b.c.d/x / x /x /x的写法,让网络部分的长度更加自由化

CIDR被采用前,IP地址的网络部分被限制为8、16或24比特(分别被称为A、B、C类网络)

IPv6数据报格式

T r a f f i c   c l a s s Traffic\ class Traffic class:类似IPv4 T y p e   o f   c l a s s Type\ of \ class Type of class

F l o w L a b e l Flow Label FlowLabel:流标签,用于给特殊流的分组加上标签

P a y l o a d   l e n g t h Payload\ length Payload length:有效荷载长度

N e x t   h e a d e r Next\ header Next header:使用和IPv4 P r o t o c o l Protocol Protocol字段相同的值

H o p   l i m i t Hop\ limit Hop limit:跳限制,与IPv4中的 T i m e   t o   l i v e Time\ to\ live Time to live字段类似

S o u r c e   A d d r e s s , D e s t i n a t i o n   A d d r e s s Source\ Address,Destination\ Address Source AddressDestination Address 128 b i t 128bit 128bit

IP数据报首部一共 40 40 40字节

IPv4IPv6的迁移

可以采用建隧道的方法,将IPv6数据报封装到IPv4数据报中

ICMP

最典型的应用是差错报告

ICMP通常被认为是IP的一部分,但从体系结构上讲,它位于IP之上,因为ICMP报文是承载在IP分组中的

ICMP报文有一个类型字段和一个编码字段,并且包含引起该 I C M P ICMP ICMP报文首次生成的 I P IP IP数据报的首部和前 8 8 8个字节

ICMP的报文类型请参考维基百科

OSPF

OSPF是一种链路状态协议(LS协议),使用洪泛链路状态信息和 D i j k s t r a Dijkstra Dijkstra最短路算法

路由器会向自治系统内所有其他路由器广播路由选择信息

优点

安全

多条相同开销的路径

对单播和多播的综合支持

支持在单个 A S AS AS中的层次结构

A S AS AS中只有一个 O S P F OSPF OSPF区域被配置成为主干区域(主干区域的作用是为该 A S AS AS中其他区域之间的流量提供路由选择),主干区域包含本 A S AS AS中的所有区域边界路由器,还可能包含一些其他的非边界路由器

分组先路由到一个区域边界路由器,再通过主干路由到位于目的区域的区域边界路由器,再路由到最终目的地

链路层和物理层协议
以太网

现在以太网中使用交换机

交换机是无碰撞的

以太网帧结构

image-20210101221114145

数据字段:承载IP数据报,至少为 46 46 46字节,最大传输单元( M T U MTU MTU)为 1500 1500 1500字节

目的地址:目的MAC地址,6字节;如果适配器收到的以太网帧的目的地址字段的值不等于当前适配器的 M A C MAC MAC地址,也不是广播地址( F F − F F − F F − F F − F F − F F FF-FF-FF-FF-FF-FF FFFFFFFFFFFF),也不是当前适配器的某个多播地址,则该帧会被丢弃

源地址:源 M A C MAC MAC地址,6字节

类型:允许以太网复用多种网络层协议。该字段用于指示应该传递给哪个网络层协议

C R C CRC CRC:循环冗余检测字段

前同步码:使发送方和接收方适配器的时钟同步

以太网技术向网络层提供无连接不可靠服务

拓展以太网帧格式 802.1 Q 802.1Q 802.1Q添加了4字节的 V L A N VLAN VLAN标签字段,以实现VLAN

PPP

点到点协议

OpenFlow

OpenFlow API

该协议是通用转发的典型样例

(以下皆为OpenFlow1.0的内容)

匹配加动作转发表在OpenFlow中被称为流表

流表的表项:

  • 首部字段值的集合

  • 计数器集合

    分组和流表匹配时更新计时器

  • 分组匹配流表项时所采取的动作集合

匹配

允许对来自三个层次(链路层、网络层、运输层)的协议首部所选择的字段进行匹配

分组匹配字段

image-20210101112913531

动作

转发

丢弃:没有动作的流表项表明对应匹配的分组应该被丢弃

修改字段:分组首部的10个字段可以被重写(除了IP协议字段的其他字段)

OpenFlow协议

基于TCP,使用 6653 6653 6653的默认端口号

重要报文

从控制器到受控交换机流动的重要报文有:

  • 配置
  • 修改状态
  • 读状态
  • 发送分组

从受控交换机到控制器流动的重要报文有:

  • 流删除
  • 端口状态
  • 分组入
时隙ALOHA

前提

只在时隙起点开始传输帧

节点是同步的,每个节点都知道时隙何时开始

如果遇到碰撞,能在时隙结束之前检测到该碰撞事件

是一种随机接入协议

操作

当节点有新的帧要发送时,等到下一个时隙开始并在该时隙传输整个帧

如果没有碰撞,无需重传

如果有碰撞,该节点在时隙结束前检测到这次碰撞,该节点以概率 p p p在后序每个时隙中重传该帧,直到被无碰撞的传输出去

成功时隙:刚好有一个节点传输的时隙

该协议的最大效率为 1 e = 0.37 \frac{1}{e}=0.37 e1=0.37

ALOHA协议

是一个非时隙、完全分散的协议

当帧首次到达时,节点立即把该帧完整的传输到广播信道,经历碰撞后立即以概率 p p p重传,否则等待一个帧传输时间

最大效率为 1 2 e \frac{1}{2e} 2e1

CSMA

载波侦听多路访问协议

载波侦听

节点在传输前先听信道,检测到一小段时间没有传输时再开始传输

CSMA/CD

具有碰撞检测的载波侦听多路访问协议

碰撞检测

一个传输节点在传输时一直侦听此信道,如果检测到另一个节点在传输干扰帧,就停止传输,在重复"侦听-当空闲时传输"循环前等待一段随机时间

二进制指数回退算法

传输一个给定帧时,经历第 n n n次碰撞后,节点随机从 { 0 , 1 , 2 , … , 2 n − 1 } \{0,1,2,\dots,2^n-1\} {0,1,2,,2n1}中选择一个等待值

传输效率的近似式为 1 1 + 5 d p r o p / d t r a n s \frac{1}{1+5d_{prop}/d_{trans}} 1+5dprop/dtrans1

ARP

地址解析协议,将IP地址解析成MAC地址

每台主机或路由器的内存中有一张 A R P ARP ARP表,包含了 I P IP IP地址到 M A C MAC MAC地址的映射

如果当前分组的目的主机不在当前表中,则发送方会构造一个 A R P ARP ARP分组(包括发送和接收 I P IP IP地址和 M A C MAC MAC地址),询问子网中所有其他主机和路由器,以确定要解析的 I P IP IP地址的 M A C MAC MAC地址(查询 A R P ARP ARP报文在广播帧中发送,而响应 A R P ARP ARP报文在标准帧中发送)

ARP即插即用

ARP协议既可以被看作网络层协议,也能被看作链路层协议,可能最好把它看成跨越两层的协议

在跨越子网的传输过程中,报文的源 M A C MAC MAC地址和目的 M A C MAC MAC地址是不断变化的,但源 I P IP IP地址和目的 I P IP IP地址是不变的

工具

  1. Tracerout

    利用ICMP协议定位自己的计算机和目标计算机之间的所有路由器

    源主机中的 T r a c e r o u t Tracerout Tracerout向目的地主机发送一系列普通的IP数据报,每个数据报携带了一个具有不可达UDP端口号的 U D P UDP UDP报文段,第一个数据报的 T T L TTL TTL为1,第二个为2,第三个为3,依此类推

    按照IP协议规则,路由器会丢弃该数据报,并返回一个类型11编码0的ICMP告警报文,而最后一台路由器会返回一个类型3编码3的 I C M P ICMP ICMP报文

  2. telnet

    互联网远程登录服务的标准协议和主要方式

  3. nslookup

    查询DNS相关信息

  4. nmap

    端口扫描

  5. ping

    ping程序发送一个类型0编码0的ICMP报文到指定主机,目的主机发挥一个类型0编码0的ICMP回显报文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值