计网部分知识点总结

壹、计算机网络体系结构

1. 可靠服务与不可靠服务

  • 可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。

  • 不可靠服务是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。

  • 对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。例如,用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。

2. 各层的传输单元

  • 物理层:比特

  • 数据链路层:帧

  • 网络层:数据报

  • 传输层:报文段

贰、物理层

一、通信基础

1. 单工、半双工、全双工

  • 单工:单向信道

  • 半双工:双方都可以进行收发,但不能同时收发

  • 全双工:双方可以同时收发(两条信道)

2. 比特率和波特率

  • 比特率:信息传输速率,单位是b/s或bps

  • 波特率:码元传输速率,单位是波特Baud

  • 若一个码元含n个比特,则波特率 * n = 比特率

3. 信道容量

  • 奈奎斯特定理:理想无噪声信道容量,

其中C为信道容量,B为信道带宽(物理层的带宽单位是HZ),M为进制数(信号状态数)
  • 香农定理:有噪声信道容量,,注意

其中S/N为信噪比,注意需要将以dB为单位的信噪比进行处理,转化为能量比,两者在数值上等价。
为什么需要有dB这个单位进行表示呢?——通常S/N是一个很大的数,取log比较方便。

例如:带宽为2MHz,信噪比为30dB
错误答案:C=2M * log31
正确答案:S/N = 10^(30 / 10) = 1000, C=2M * log(1 + 1000) ≈20MHz

4. 编码

  • 将数据变换为数字信号的过程叫作编码

  • 常见编码有:单双级归零码(前一半有效,中间归零)、单双级不归零码、双相码(曼彻斯特编码)、差分双相码。

  • 曼彻斯特编码:每个时刻中间都会跳变,高到低为1,低到高为0。【有时可能相反,得看题目】以太网采用该编码。

  • 差分曼彻斯特编码:只有两种波形,相邻波形变化为1,不变为0。

图片来自 https://blog.csdn.net/qq_34745941/article/details/128237381

5. 调制

  • 将数据变换为模拟信号的过程称为调制

  • 常见调制方法:2ASK,2FSK,2PSK,QAM

  • 2ASK:二进制幅移键控,改变振幅来表示0和1。抗干扰弱。

  • 2FSK:二进制频移键控,0和1采用不同载波。容易实现,抗干扰强,但频带利用率低。

  • 2PSK:二进制相移键控,0和1差一个π的相位

  • QAM:正交振幅调制,也称幅值相位联合键控,在相同频率下,将ASK与PSK结合起来。

对于QAM,设波特率为B,采用m个相位,每个相位n种振幅,QAM数据传输速率R。

6. 基带传输与频带传输

  • 基带传输:在计算机内部或相邻设备之间近距离传输,可以不经过调制直接在信道上传输,常用于局域网。可以采用不同编码。

  • 频带传输:远距离或无线传输,必须对数字信号进行调制

二、传输介质

1. 导引型传输介质

导引型传输介质中沿固体媒介(铜丝或光纤)传播。

  • 架空明线:易受干扰,对噪声敏感。

  • 双绞线:主要用于基带传输。可以隔绝相邻导线的干扰,分为屏蔽双绞线STP和无屏蔽双绞线UTP。

  • 同轴电缆:屏蔽性更好,主要用于频带传输。

  • 光纤:利用光的全反射,多模光纤用于近距离,单模用于远距离。

2. 非导引型传输介质(无线电信号的介质)

  • 地波传播:低频电磁波沿地球表面传播,有一定绕射能力,几百千米。

  • 天波传播:高频电磁波可被电离层反射,可传播上万公里,但不稳定。

  • 视线传播:点对点直线传播,通过地面中继站或卫星中继站接力。

三、物理层设备

1. 中继器

  • 将信号整形再生,再转发出去,以消除传输中的衰减。

  • 没有存储转发功能,不能连接两个不同速率的网段。

2. 集线器

  • 多端口的中继器

  • 不能分割冲突域和广播域

叁、数据链路层

一、组帧

  • 以帧为单位进行传输,可以在出错时只重传出错的帧,避免重传整个数据。

  • 组帧时不仅要加上头部,还要加上尾部,明确区分帧在比特流中的起止位置。

为什么网络层的IP数据报不用加上尾部呢?
——因为IP数据报是链路层数据帧的数据部分,没必要加尾部。

二、差错控制

1. Internet校验和

将数据划分为16bit的序列,求和,最高位进位加到最低位。最后逐位取反得到checksum字段的值。

2. 循环冗余检验码CRC

用数据D除以r+1位的G(二进制除法),余下的r位就是待求的R。

3. 检错码与纠错码

三、多路访问协议

MAC协议针对广播链路

1. 信道划分MAC协议

  • 多路复用技术

  • 负载重时效率高

  • 码分多址CDMA

2. 随机访问MAC协议

  • 允许冲突,采用冲突恢复机制

  • 负载轻时效率高

  • 典型协议:ALOHA,时隙ALOHA,CSMA,CSMA/CD

  • CSMA/CD的冲突检测不适用于无线局域网,接收信号会淹没在本地发射信号中

3. 轮转访问MAC协议

  • 轮询;令牌传递

  • 存在额外开销和单点故障问题,效率介于前两种之间

四、ARP协议

1. MAC地址

  • 全世界每块网卡在出厂时都有一个唯一的MAC(介质访问控制)地址,在局域网内标识一个帧从哪一个接口发出,到达那个物理相连的接口。

  • MAC地址含6个字节,采用16进制表示,每个字节之间用-隔开。如:12-34-56-78-9A-BC

  • 每经过一个节点源MAC地址和目的MAC地址都会改变!

IP地址除了在穿透内网的时候会改变,其他时候不变。

2. ARP地址解析协议

网络层只有IP地址,在同一局域网内,已知目标的IP地址,如何确定其MAC地址呢?
  • 局域网内每个结点(主机和路由器)维护一个ARP表,存储IP与MAC的映射关系。

若A不知道B的MAC地址,则A广播ARP查询分组(含有B的IP),B收到后应答,A将B的MAC存于ARP表中,直至TTL超时。
  • ARP是即插即用协议,可自行创建ARP表。

五、以太网

1. 局域网

在以太网之前首先了解一下局域网
  • 局域网(Local Area Network, LAN)是指在一个较小的地理范围(如一所学校)内,将各种计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和信息共享的计算机互联网络。

  • 局域网的特性三个元素决定——拓扑结构、传输介质、介质访问控制方式。不同的局域网技术如以太网、令牌环网等。

2. 以太网

  • 以太网是目前占据统治地位的有线局域网技术,逻辑结构是总线型,物理结构是星型

早期的以太网物理结构是总线型(同轴电缆),目前基本采用星型物理拓扑结构,通过交换机分割冲突域。
  • 以太网提供的是无连接不可靠服务。

无连接:发送方和接收方网卡之间 没有握手过程。
不可靠:接收方 不向发送方进行确认,差错帧直接丢弃,数据恢复依靠高层协议。
  • 以太网的MAC协议采用二进制指数退避算法的CSMA/CD,由网卡NIC实现。

  • 以太网的帧结构,其中最开始的8字节前导码用于时钟同步,默认不算在内(除非有特殊说明)。以太网帧中包含目的MAC、源MAC、类型、数据和CRC校验码。

MAC地址:若目的MAC与当前MAC相同,或目的MAC为全F(广播地址)则接收,否则丢弃。
类型:指出封装的上层协议的类型,如IP数据报等。
数据:MTU为1500B,故至多1500B;为了满足L/R≥RTT,要求L≥64B,即数据部分≥46B。
图片来自 http://c.biancheng.net/view/6391.html

3. 交换机

  • 交换机能够存储-转发以太网帧,检验帧的目的MAC并向一个或多个输出链路转发。

  • 使用CSMA/CD协议

  • 透明、即插即用(无需配置)、隔绝冲突域、不隔绝广播域

  • 交换机的多个端口之间可以同时传输(交换机能够缓存帧)

  • 通过交换表确定转发的接口,交换表可以由自学习过程进行构建

可能存在的疑问——交换机既然隔绝冲突域,为什么还要使用CSMA/CD协议呢?
事实上, 全双工的交换机是不需要CSMA/CD的,有些交换机为了支持半双工或考虑兼容性,才会需要用到CSMA/CD协议。

4. 虚拟局域网

  • 将原先的一个局域网划分成多个组,一组形成一个虚拟局域网VLAN,每一个VLAN是一个小的广播域

  • 基于端口的VLAN:按端口分组,VLAN之间的转发需要通过路由器(实际中厂家会将交换机与路由器集成到一起)。

  • 跨越多个交换机的VLAN:有时一个VLAN的端口分布在不同交换机上,可以通过在每个交换机上设置中继端口,实现不同交换机上的分组通信

六、PPP协议

1. 特点

  • 之前的MAC协议针对的是广播链路,而PPP协议针对的是点对点链路,因此无需介质访问控制MAC,也无需明确的MAC寻址。除了PPP,HDLC也是一种点对点链路控制协议。

2. 设计需求

  • 组帧:封装任何类型的网络协议分组(不只是IP数据报)

  • 比特透明传输:必须支持任何比特模式

  • 差错检测:只检测,不纠正

  • 无需支持差错纠正、流量控制,也不存在乱序交付

3. PPP数据帧

  • 其中地址和控制字段可协商决定是否删去,协议、信息、校验字段可协商确定长度,最多可省5B

4. 字节填充

  • 注意到PPP数据帧的定界符是一个特定的0-1串,若数据中出现相同的0-1串,可能被误认为定界符,违背了“比特透明传输”的原则。

  • 发送端:在数据中的<01111110>字节和<01111101>字节之前插入额外的<01111101>字节

  • 接收端:单个<01111101>为填充字节;连续两个<01111101>,只保留第2个;单个<01111110>为定界符。

肆、网络层

一、虚电路网络与数据报网络

网络服务模型包括 连接服务和 无连接服务,前者的代表是ATM的虚电路网络,后者的代表是Internet的数据报网络。

1. 虚电路VC

  • 虚电路:一条从源主机到目的主机,类似于电路的路径(逻辑连接),由沿路的网络设备共同完成虚电路功能。

  • 虚电路综合了电路交换与分组交换的共同优点,有连接,每个分组选路相同,实时性好。

虚电路“虚”在哪里?——采用分组交换而非电路交换,无需多路复用,每个分组能够利用全部带宽。
  • 每条虚电路包括一条路径、每段链路的虚电路号VCID,路由器利用转发表记录信息。

  • 分组携带的是下一条的VCID而不是目的地址,路由器转发时根据转发表改写VCID。

2. 数据报网络

  • 无连接,每个分组携带目的地址,每个分组独立选路,路由器根据目的地址转发。

  • 路由聚合:IP太多,最长前缀匹配优先

  • 简化网络,复杂边缘

二、IPv4

1. IPv4数据报分组格式

  • 版本号为4

  • 首部长度单位为4B,通常取5(无选项字段)

  • 总长度单位为1B

  • 片偏移单位为8B

2. 分片

  • 注意计算

3. IP编址

  • 接口:主机/路由器与物理链路的连接。路由器通常有多个接口,而主机一般1或2个。

  • IP地址:标识主机、路由器的接口。通常用点分十进制表示。高位为网络号,地位主机号。

  • IP子网:网络号相同的设备接口构成IP 子网,不跨越路由器就可以物理联通。

4. 有类IP地址

  • ABC类可用于标识接口,D类用于多播地址,E类供研究使用。

  • 部分特殊IP

  • 私有IP,在公共互联网上无效

5. 子网划分

三、CIDR与路由聚合

1. CIDR无类域间路由

  • CIDR消除了ABC类地址界限,把网络号和子网号统称为网络前缀,并融合了子网地址与掩码,形如1.2.3.4/22

  • CIDR的优势——提高地址分配效率;通过路由聚合提高路由效率

四、DHCP协议

主机在互联网中如何获取一个IP地址呢?
  • 静态配置:手动设置IP、掩码、默认网关、DNS服务器等

  • 动态主机配置协议DHCP:即插即用,允许地址重用(不使用的时候可以给别人用)

  • DHCP是应用层协议,封装到UDP数据报

五、网络地址转换NAT

  • 通过替换解决

外网客户如何连接内网服务器?——NAT穿透问题
  • 静态配置NAT(手动配置转换表)

  • 互联网网关设备协议IGD

  • 中继服务器

六、互联网控制报文协议ICMP

  • ICMP主要功能——差错报告和网络探询

  • 差错报告:目的不可达;源抑制(缓存已满);超时;参数问题;重定向……

  • 网络探询:回声请求;应答报文

  • ICMP报文会封装到IP数据报中进行传输(给出错的IP数据报加上ICMP的头部,再加上一个新的IP头)

七、IPv6

1. 介绍

  • 32位IPv4地址已经分配殆尽,提出了128位的IPv6地址

  • IPv6数据报有固定40B的基本首部,并且不允许分片

相比于IPv4,IPv6的基本首部移除了校验和(减少处理时间)与选项字段

2. 地址表示

  • 地址表示:128位分成8组,以十六进制进行表示,用冒号分割,连续的0可用::代替(但只能使用一次)。

eg:
FF01 : 0 : 0 : 0 : 0 : 0 : 0 : 43 = FF01 :: 43
  • IPv4嵌入形式:IPv4地址为a.b.c.d,则相应的IPv6地址为 :: FFFF : a.b.c.d

  • 采用地址前缀,不使用掩码

eg:
FF01 : 4321 :: / 32

3. 其他

  • IPv6有三种基本地址类型——单播,多播,任意播

  • 单播:一对一通信

  • 多播(组播):一对多通信,只能作为目的地址,向一个多播组发送数据报

  • 任意播:与一组中的一个通信(通常是最近的一个)

IPv6没有广播地址,取而代之的是多播
  • 隧道技术:把IPv6作为数据部分封装到IPv4数据报中

八、 路由算法

1. 链路状态路由算法

  • Dijkstra算法

  • 基于全局信息

  • 存在“震荡”的可能(选择链路通信量作为代价)

2. 距离向量路由算法

  • Bellman-Ford算法

  • 异步迭代(只在变化时通知邻居)

  • 分布式

  • “好消息”传播快,“坏消息”传播慢(无穷计数问题,采用毒性逆转、定义最大度量等方法)

3. 层次化路由

将任意规模的网络抽象成图来计算路由——过于理想化。
一个拥有6亿节点的网络,路由表几乎无法存储,并且单纯的路由信息就会淹没网络!
此外还存在管理自治问题。
  • 自治系统AS:聚合路由器为一个区域,AS内路由器运行相同的路由算法。

  • 网关路由器:位于AS边缘,连接其他AS的网关路由器。

  • AS间路由:需要获取可达性信息。当存在多个网关可以到达目的时,选择最近的网关路由器(热土豆路由)

九、Internet路由

Internet采用层次路由,AS内部路由也称IGP。常见的有RIP、OSPF等。

1. RIP协议

  • 距离向量路由算法

  • 跳步数作为距离,采用毒性逆转技术,最大有效距离为15,邻居之间每30s交换一次距离向量。若180s未收到通告则认定邻居/链路失效,需重新计算路由

  • RIP的路由表通过一个应用层进程进行管理,通过UDP数据报发送。

2. OSPF协议

  • 链路状态路由算法

  • OSPF通告在整个AS范围内泛洪,报文直接封装到IP数据报,不经过传输层协议

  • 优点:所有的OSPF报文可以被认证,安全;允许同时使用多条相同费用的路径(RIP只能选一条);对每条链路可以针对不同TOS设置不同费用度量(分流);集成单播路由与多播路由;支持对大规模AS再次分层

3. BGP协议

  • Internet的AS间路由协议——边界网关协议BGP,将Internet粘合为一个整体

  • BGP会话通告去往不同目的前缀子网的路径(不是长度),报文交换基于半永久的TCP连接。

  • 通告包括前缀和属性,两个重要的属性——AS路径,下一跳边界路由接口

  • AS内路由侧重性能,AS间路由策略主导

伍、传输层

一、传输层服务

  • 传输层协议为不同主机的进程之间提供了端到端的逻辑通信机制,而网络层则是主机之间

  • Internet的传输层协议包括TCP和UDP,均不保障时延与带宽

二、多路分用与复用

  • 如果某层的协议对应直接上层的多个实体/协议,则需要分用和复用

  • 接收端:多路分用,根据头部信息给到不同进程

  • 发送端:多路复用,多个socket一起发过去

  • UDP的socket用二元组(目的IP,目的端口)标识

  • TCP还引入了源IP与源端口,用四元组标识

三、用户数据报协议UDP

1. 功能

  • 复用/分用

  • 简单的错误校验【注意没有纠正

  • 可能丢失或乱序到达【需要在应用层增加可靠性机制并采用特定的错误恢复机制】

2. 优点

  • 无需连接,低延时

  • 实现简单,无需维护连接

  • 头部开销小

  • 无拥塞控制,应用可更好地控制发送时间与速率

3. 校验和

四、可靠数据传输

何为可靠数据传输?
不错,不乱,不丢。

1. Rdt1.0——可靠信道上的可靠数据传输

  • 底层信道完全可靠,只要发出就能被正确接收,收发方的FSM独立

2. Rdt2.0——产生位错误的信道

不乱,不丢,只有位错误
  • 停等协议

  • 利用校验和检测位错误

  • 用ACK和NAK显示确认

  • 引入重传机制

3. Rdt2.1——序列号

如果ACK和NAK在传输中出错怎么办呢?——让发送方重传
重传会产生重复分组,因此要引入序列号。
  • 停等协议,只需要两个序列号

  • 序列号不匹配代表已经正确接收文件,只是ACK/NAK出错

4. Rdt2.2——无NAK

  • 取消了NAK,用ACK告知发送方最后一个被接收的分组序号

5. Rdt3.0——超时重传

分组可能丢失,引入计时器

五、滑动窗口协议

1. 流水线机制

  • 一次发送多个分组,提高3.0性能

  • 需要更大的序列号范围和存储空间

  • 采用滑动窗口协议管理已发送而未确认的消息

2. GBN协议

  • 累计确认

  • 只有一个计时器

  • 无缓存,只记住期望收到的序列号,丢弃乱序分组

  • 窗口大小N,序列号k位,满足

3. SR协议

GBN的累计确认会导致大量重传
  • 设置缓存,每个分组单独确认

  • 每个分组设置定时器

  • 接收方也有窗口,与发送方不同步

六、TCP协议

1. 概述

  • TCP提供可靠的按序字节流机制

  • 发送方和接收方都有缓存

  • 连接状态只在两端维护

  • 全双工

  • 段结构如下,TCP中的ACK号是指希望收到的下一个字节序号

特别注意这里的序号和ACK号都指的是 字节序号而非段本身的编号
图片来自 https://www.cnblogs.com/ts65214/p/12968246.html
  • TCP没有规定如何处理乱序到达的段,由实现者自行决定

2. TCP可靠数据传输

  • 采用流水线机制和累计确认

  • TCP使用单一计时器,触发重传的事件包括超时和重复ACK

  • 如何设置超时时间?——应大于RTT——如何估计RTT?

超时时间 = EstimatedRTT + 4 * DevRTT
其中E = (1 - α) * E + α * SampleRTT
D = (1 - β) * D + β * |SampleRTT - E|
  • 若正常收到按序到达的段,接收方会等待500ms,若期间收到另一个按序到达的段,则立刻发送两个ACK。

  • 快速重传机制——3个重复ACK

3. 流量控制

  • 流量控制针对发送方和接收方,接收方会在段的头部字段把自己的RcvWindows告知发送方,让发送方限制自己已发送但未收到ACK的数据大小

  • 若RcvWindows=0,发送方也可以发送很小的段,用于从接收方获取RcvWindows信息

4. TCP连接管理

  • 三次握手建立连接,前两次SYN标志为1

  • 四次挥手关闭连接,可以由客户端发起,也可服务器端发起

七、拥塞控制原理

  • 拥塞控制针对网络,不同于流量控制

  • 拥塞控制方法——端到端拥塞控制(端系统通过隐式观察延迟、丢包率判断拥塞),网络辅助的拥塞控制(路由器显式反馈拥塞信息)

八、TCP拥塞控制

1. 基本原理

  • 根据拥塞窗口大小CongWin限制发送速率

  • 策略——加性增-乘性减AIMD,慢启动SS

AIMD:每个RTT将CongWin增大一个MSS(最大段长度)
SS:每收到一个ACK令CongWin增大一个MSS,每个RTT实现翻倍
  • 何时由SS变为AIMD——Threshold变量。当loss事件发生时,设为loss前CongWin的一半,达到Threshold之前慢启动。

  • loss事件的处理——3个重复ACK,将CongWin减半,然后AIMD;超时,减为1.

2. 性能分析

  • 平均吞吐率

  • TCP具有公平性,但UDP和并发TCP会产生不公平

陆、应用层

一、网络应用基本原理

1. 网络应用体系结构

  • 客户机/服务器结构(c/s结构)

  • 点对点结构(P2P结构)

没有永久在线的服务器,任意节点之间可直接通讯
  • 混合结构

2. 网络应用进程通信

  • 进程间的通信是网络应用的基础,不同主机进程的通信依靠套接字socket

  • 进程寻址的标识符——IP地址+端口号

  • 协议内容——消息类型【请求/响应】,消息格式,字段的语义,规则【进程何时以及如何发送/接收信息】

二、Web应用

1. Web应用概述

  • 网页:包含多个对象,如HTML文件、JPEG图片等

  • 对象的寻址:URL统一资源管理器

  • 超文本传输协议HTTP:C/S结构,使用TCP ,无状态协议

无状态指服务器不维护任何在客户端过去请求的消息

2. HTTP连接类型

  • 建立连接需要1个RTT

  • 持久性与非持久性连接

  • 带流水的持久性连接,理想状态下所有对象只需1个RTT

3. HTTP消息格式

  • 两类消息——请求信息与响应消息

  • 请求消息的格式:请求行+头部行+换行+消息体

  • 方法类型

GET和POST都是上传输入方法
GET在 请求行的URL字段上传输入
POST在 消息体中上传输入

4. Cookie技术

  • Cookie技术,数据是保存在用户本地

5. Web缓存技术

  • 设置代理服务器

  • 条件性GET:如果缓存最新,则响应不包含对象

三、Email应用

1. Email应用概述

  • 构成组件:邮件客户端,邮件服务器,SMTP协议【服务器之间传递】

为什么需要服务器,而不是用户之间直接传递?
——不能保证用户24小时在线,未进入Internet时将无法成功发送
  • SMTP协议:TCP,端口号为25,使用持久性连接和命令/响应交互模式,消息只能包含7位ASCII码

HTTP与SMTP都采用命令/响应交互模式,命令和状态代码都是ASCII码。

HTTP:拉式(PULL),浏览器把网页拉到本地;每个对象封装在独立的响应消息中
SMTP:推式(PUSH),发送方把消息推到接收方;多个对象在有多个部分组成的信息中

2. Email消息格式

  • 通过多媒体扩展,可以发送ASCII码之外的其他格式

3. 邮件访问协议

  • 从服务器获取邮件:POP协议,IMAP,HTTP

  • 3
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值