计算机网络考前复习

计算机网络概述

  • 网络协议(Network protocol)简称协议。协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的行动
  • 协议的三要素:语法、语义、时序
  • 计算机网络结构:网络边缘、接入网络/物理介质、网络核心(核心网络)
  • 网络核心的关键功能:路由(确定分组从源到目的的传输路径)+转发(将分组从路由器的输入端口交换至正确的输出端口)
  • 端系统通过接入ISP连接到Internet
  • 多路复用:频分多路复用(FDM)、时分多路复用(TDM)、波分多路复用(WDM)、码分多路复用(CDM,相同频率载波、不同的码片序列)
  • 数据交换的类型:电路交换(独占资源)、报文交换、分组交换
  • 电路交换:建立连接(呼叫/电路建立)、通信、释放连接(拆除电路)
  • 报文交换:发送信息整体
  • 分组交换:报文拆出一系列相对较小的数据包,产生额外开销
  • 速率/数据率/数据传输速率/比特率 单位:b/s(或bps) 通常指额定速率或标称速率
  • 带宽:数字信道所能传达的最高数据率 单位:b/s(或bps)
  • 四种分组延迟:节点处理延迟(差错检测、确定输出链路)、排队延迟(等待输出链路可用)、传输延迟(分组大小/传输速率)、传播延迟(物理链路长度/信号传播速度)
  • 时延带宽积:传播时延*带宽($d_{prop}\times R (bits)$)
  • OSI参考模型(从上到下:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)
  • 物理层:接口特性(机械、电气、功能、规程)、比特编码、数据率、比特同步、传输模式(单工、半双工、全双工)
  • 数据链路层:组帧、物理寻址、流量控制、差错控制、访问控制
  • 网络层:逻辑寻址(IP地址)、路由、分组转发
  • 传输层:端到端进程间的完整报文传输
  • 会话层:对话控制(建立、维护)、同步
  • 表示层:数据表示转化、加密/解密、压缩/解压缩
  • 应用层:支持用户通过用户代理(浏览器)或网络接口使用网络(服务,FTP/SMTP/HTTP)
  • TCP/IP参考模型从上到下:应用层(HTTP、SMTP、DNS、RTP)、运输层(TCP、UDP)、网际层(IP)、网络接口层
  • 五层参考模型:综合OSI和TCP/IP的优点(从上到下:应用层、传输层、网络层、链路层、物理层)

网络应用

网络应用基本原理

  • 网络应用的体系结构:客户机/服务器结构(C/S)、点对点结构(P2P)、混合结构(Napster)
  • 进程间通信:套接字Socket
  • 寻址方式:IP地址+端口号
  • Internet提供的传输服务:TCP服务(面向连接、可靠传输、流量控制、拥塞控制)、UDP服务(无连接、不可靠的数据传输)

Web应用

  • HTTP连接的两种类型:非持久性连接(HTTP 1.0版本,每个TCP连接最多传输一个对象)、持久性连接(HTTP 1.1版本,每个TCP连接允许传输多个对象)
  • HTTP协议有两类消息:请求消息(request)、响应消息(response)
  • 上传输入的方法:POST、GET
  • HTTP/1.0:GET、POST、HEAD
  • HTTP/1.1:GET、POST、HEAD、DELETE
  • HTTP响应状态代码:200 OK、301 Moved Permanently、400 Bad request、404 Not Found、505 HTTP Version Not Surported
  • Cookie的组件:HTTP响应/请求消息的头部行、保存在客户端主机上的Cookie文件、Web服务器端的后台数据库
  • Web缓存/代理服务器技术

Email应用

  • 构成组件:邮件客户端、邮件服务器、SMTP协议
  • SMTP协议通过TCP进行email信息的可靠传输
  • 传输过程的三个阶段:握手、信息的传输、关闭
  • 多媒体扩展MIME:通过邮件头部增加额外的行以声明内容类型
  • 邮件访问协议:POP3、IMAP、HTTP

DNS应用

  • DNS服务:域名指向IP地址的翻译
  • 递归查询

P2P应用

  • 索引:IP地址+端口号
  • 集中式索引:节点加入时通知中央服务器地址和内容。问题:单点失效问题、性能瓶颈、版权问题
  • 泛洪查询:完全分布式的架构
  • 层次式覆盖网络:超级节点+子节点

Socket编程

  • 应用编程接口API:位于应用层和传输层中间。
  • WSAStartup:使用socket的应用程序在使用socket前必须首先调用WSAStartup。
  • WSACleanup:完成对socket的应用后调用,释放资源。
  • socket(protofamily,type,proto):创建套接字。参数一:协议族。参数二:套接字类型。参数三:协议号。
  • closesocket(SOCKET sd):关闭套接字。
  • bind(sd,localaddr,adrrlen):绑定套接字的本地端点地址(IP地址+端口号)。
  • listen(sd,queuesize):套接字置为监听状态(仅服务器调用)。
  • connect(sd,saddr,saddrlen):客户程序使客户套接字sd与服务器特定端口的套接字sadrr进行连接。
  • accept(sd,caddr,caddrlen):服务器从处于监听状态的套接字sd请求队列中取出一个客户请求。(仅服务器调用)
  • send/sendto:TCP或调用了connect函数的UDP/UDP与没调用connect的UDP。
  • recv/recvfrom:TCP或调用了connect函数的UDP/UDP与没调用connect的UDP。
  • getsockopt/setsockopt:设置/获取套接字参数。
  • TCP客户端软件流程:确定服务器IP地址与端口号、创建套接字、分配本地端点地址(IP地址+端口号)、连接服务器(套接字)、遵循应用层协议进行通信、关闭/释放连接。
  • UDP客户端软件流程:确定服务器IP地址与端口号、创建套接字、分配本地端点地址(IP地址+端口号)、指定服务器端点地址,构造UDP数据报、遵循应用层协议进行通信、关闭/释放连接。
  • 4种类型基本服务器:循环无连接服务器、循环面向连接服务器、并发无连接服务器、并发面向连接服务器。

传输层

传输层服务

  • 多路复用/分用、可靠数据传输机制、流量控制机制、拥塞控制机制
  • 提供进程之间的逻辑通信机制(TCP/UDP)

复用和分用

  • 接收端多路分用
  • 发送端多路复用
  • 无连接分用:利用端口号创建socket,收到UDP段后检查其目的端口号,将UDP段导向绑在该端口号的socket。
  • 面向连接的分用:接收端根据源IP+端口号和目的IP+端口号选择合适的Socket。

无连接传输协议

  • UDP Checksum校验和

可靠数据传输

  • Rdt 2.0:利用校验和检测位错误,正确则告诉发送方分组已正确接收(ACK),错误则告诉发送方有错误(NAK),发送方收到NAK后重传分组。
  • Rdt 2.1:对ACK和NAK添加checksum,为每个分组增加序列号避免重复分组。
  • Rdt 2.2:只使用ACK,接收方通过ACK告知最后一个被成功接收的分组。
  • Rdt 3.0:添加定时器,解决分组丢失的问题。

滑动窗口协议

  • 发送方在收到ack之前连续发送多个分组
  • Go-Back-N(GBN)协议,窗口尺寸为N,最多允许N个分组未确认。为空中的分组设置定时器。ACK(n):n及以前的分组被正确接收。超时则重传大于等于n的还未收到ACK的分组。
  • Select-Repeat(SR)协议,设置缓存机制,缓存乱序到达的分组。为每个分组设置定时器。

网络层

网络层服务

  • 从发送主机向接受主机传送数据段
  • 核心功能:转发+路由
  • 网络服务模型:无连接服务、连接服务

虚电路网络与数据报网络

  • 数据报网络提供网络层无连接服务
  • 虚电路网络提供网络层连接服务
  • 类似于传输层的TCP/UDP,但是网络层服务是主机到主机的服务,由网络核心实现。
  • 虚电路:一条从源主机到目的主机,类似于电路的逻辑连接。(分组交换,使用链路全部带宽)
  • 虚电路通信过程:呼叫建立、数据传输、拆除呼叫。
  • 数据报网络:网络层无连接、每个分组携带目标地址、路由器根据分组的目标地址转发分组。

IPv4协议

ip数据报格式

  • 网络链路存在最大传输单元(MTU)
  • 大IP分组向较小MTU链路转发时,可以被分片,IP分片到达目的主机后进行重组。
  • IP地址:32比特(IPv4)
  • 网络号(NetID):高位比特
  • 主机号(HostID):低位比特
  • IP子网:IP地址具有相同网络号的设备接口,不跨越路由器可以彼此物理连通的借口。
  • A类地址:0.0.0.0~127.255.255.255
  • B类地址:128.0.0.0~191.255.255.255
  • C类地址:192.0.0.0~223.255.255.255
  • D类地址:224.0.0.0~239.255.255.255
  • E类地址:240.0.0.0~255.255.255.255
  • 特殊IP地址:
NetID HostID 作为IP分组源地址 作为IP分组目的地址 用途
全0 全0 可以 不可以 在本网中表示本机,路由
表中表示默认路由
全0 特定值 不可以 可以 本网内某个特定主机
全1 全1 不可以 可以 本网广播地址
特定值 全0 不可以 不可以 网络地址,表示一个网络
特定值 全1 不可以 可以 对特定网络所有主机广播
127 非全0或
非全1的
任何数
可以 可以 环回地址
  • 私有IP地址:
Class NetIDs Blocks
A 10 1
B 172.16 to 172.31 16
C 192.168.0 to 192.168.255 256
  • 子网划分:将原网络的主机号的部分比特设为子网号。
  • 子网掩码:NetID、SubID全取1,HostID全取0。
  • A类子网掩码:255.0.0.0
  • B类子网掩码:255.255.0.0
  • C类子网掩码:255.255.255.0
  • 借用3比特划分子网的B网的子网掩码:255.255.224.0

无类域间路由聚合(CIDR)

  • 无类域间路由聚合:a.b.c.d/x,x为前缀长度。
  • 路由聚合:最长前缀匹配优先

DHCP协议

  • 主机广播-发现报文
  • DHCP服务器-提供报文
  • 主机请求IP地址-请求报文
  • DHCP服务器分配IP地址-确认报文

网络地址转换(NAT)

  • 所有离开本地网络去往Internet的数据报的源IP地址需替换为相同的NAT IP地址以及不同的端口号。
  • 违背端到端通信原则,开发者必须考虑NAT的存在,e.g. P2P。

ICMP协议

  • 互联网控制报文协议ICMP支持主机和路由器:差错报告、网络探寻
  • 两类ICMP报文:差错报告报文(目的不可达、源抑制、超时/超期、参数问题、重定向)、网络探寻报文(回声请求与应答报文、时间戳请求与应答报文)

IPv6

  • IPv6数据报格式:固定长度的40字节基本首部,不允许分片。
  • 移除checksum,加快每跳时间。

路由算法

  • 链路状态路由算法:Dijkstra算法,所有节点掌握网络拓扑和链路费用,计算从一个节点到其他所有节点的最短路径。
  • 距离向量路由算法:Bellman-Ford算法,计算到邻居的费用与邻居到目标费用的最小值。存在无穷技术问题。
  • 层次路由:聚合路由器为一个区域-自治系统AS。同一AS内的路由器运行相同的算法。
  • 网关路由器位于AS边缘,通过链路连接其他AS的网关路由器。
  • 热土豆路由:将分组转发给最近的网关路由器

Internet路由

  • Internet采用层次路由
  • 常见的AS内部路由协议:路由信息协议(RIP)、开放最短路径优先(OSRP)、内部网关路由协议(IGRP)
  • RIP:距离度量,存在最大跳步数(e.g. 15),每条链路1个跳步。
  • RIP:每隔30s,邻居交换一次DV(距离向量),成为通告。180s没有收到通告则该链路失效。
  • RIP:每次通告最多25个目的的子网。
  • OSPF:采用链路状态路由算法,利用Dijkstra计算路由。
  • OSPF:允许使用多条相同费用的路径。
  • BGP:eBGP(从邻居AS获取子网可达信息)、IBGP(向所有AS内部路由器传播子网可达信息)

数据链路层

数据链路层服务

  • 数据链路层负责通过一条链路,从一个节点向另一个物理链路直接相连的相邻节点传送数据报。
  • 组帧、链路接入、相邻节点间可靠交付、流量控制、差错检测、差错纠正、全双工和半双工通信控制。

差错编码

  • 检错码、纠错码
  • 对于检错码,如果编码集的汉明距离$d_s=r+1$,则该检错码可以检测$r$位的差错。
  • 对于纠错码,如果编码集的汉明距离$d_s=2r+1$,则该纠错码可以纠正$r$位的差错。
  • 奇偶校验码:1比特校验位(检测奇数位差错)、二维奇偶校验(检测奇数位差错、部分偶数位差错,纠正同一行/列的奇数位错)
  • checksum
  • 循环冗余校验码CRC

多路访问控制(MAC)协议

  • 采用分布式算法决定节点如何共享信道,即决策节点何时可以传输数据。
  • 信道划分MAC协议(多路复用技术,TDMA、FDMA、CDMA、WDMA)、随机访问MAC协议(冲突恢复机制)、轮转MAC机制(节点轮流使用信道)

随机访问MAC协议

  • 两个或多个结点同时传输,检测冲突并从冲突中恢复。
  • 典型的随机访问MAC协议:时隙ALOHA、ALOHA、CSMA、CSMA/CD、CSMA/CA
  • 时隙ALOHA:假定所有帧大小相同,时间被划分为等长的时隙,结点只能在时隙开始时刻发送帧,结点间时钟同步,如果两个或两个以上结点发送帧则结点检测到冲突。
  • 时隙ALOHA:无冲突——在下一时隙继续发送新的帧,冲突——下一时隙以概率p重传该帧,直至成功。
  • ALOHA:有新的帧生成时立即发送,冲突可能性增大,效率比时隙ALOHA更差!
  • 载波监听多路访问协议CSMA:发送帧之前监听信道,信道空闲发送完整帧,信道忙则推迟发送。问题:继续发送冲突帧,浪费信道资源。
  • CSMA/CD:检测到冲突后传输终止,减少信道浪费。“边发边听,不发不听。”

轮转访问MAC协议

  • 主节点轮流邀请从属节点发送数据

局域网

ARP协议

  • 48位MAC地址:固化在网卡的ROM中,有时也可以软件设置。作用于局域网内标识一个帧从哪个接口发出,到达哪个物理相连的其他接口。
  • ARP表:LAN中的每个IP结点(主机、路由器)维护一个表,存储某些LAN节点的IP/MAC地址映射关系。

以太网

  • 物理拓扑:总线、星型
  • 以太网的MAC协议:采用二进制指数退避算法的CSMA/CD
  • 以太网交换机:储存-转发以太网帧,检验到达帧的目的MAC地址,选择性向一个或多个输出链路转发帧。主机感知不到交换机的存在。即插即用。自学习。
  • 虚拟局域网VLAN:支持VLAN划分的交换机,可以在一个物理LAN架构上配置、定义多个VLAN。

PPP协议

  • 常见的点对点数据链路控制协议:HDLC、PPP
  • PPP设计需求:组帧、比特透明传输、差错检测、连接活性检测、网络层地址协商。

802.11无线局域网

  • 无线信道很难实现边发送边检测冲突。
  • 发送端首先利用CSMA向BS发送一个很短的RTS帧,BS广播一个CTS帧。通过很小的预约帧避免数据帧冲突。
Author

Peizheng Wang

Posted on

2021-10-15

Updated on

2024-06-25

Licensed under

Kommentare

You forgot to set the shortname for Disqus. Please set it in _config.yml.