道隐于小成,言隐于荣华

计算机网络笔记

该部分为本科期间的计算机网络课程笔记备份整理。

概述

交换网络

  1. 电路交换:面向连接的服务
  2. 报文交换:前后端网络,存储转发
  3. 分组交换:即可面向连接又可无连接,存储转发,更高容错

image

OSI模型

image

TCP/IP模型

3

服务:垂直的

协议:水平的

网络协议

三个要素:语法(数据与控制信息结构与格式)、语义(信息种类与动作反应)、同步(事件先后说明)

物理层

基本概念

信息:载体为数字、文字、语音等

数据:二进制代码,运送信息的载体,分模拟数据和数字数据

信号:数据在传输中的电气或电磁表现,分模拟信号和数字信号

信道

定义:某方向传输信息的媒体

按照交互分类:单工(单路)、半双工(双路但不同时双向)、双工(双路且同时双向)

按照信号分类:数字信号(离散)、模拟信号(连续)

Note:基带信号(baseband)是电压表示的数字信号,宽带信号(Broadband)基带信号调制的频分复用的模拟信号

宽带

信号频带范围,单位Hz

时延

节点时延、队列时延、传输时延、中转时延

时延宽带积:\(\frac{L}{V}\cdot R\)

最大数据速率

波特率:信号变化次数/秒

比特率:传送比特数/秒

两者关系:\(b=B\log_{2}V,B是波特率,b是比特率,V是信号数量\)

乃奎斯特定理

条件:理想地通信道

信道容量:\(C=2W\log_{2}V,W为带宽(Hz)\)

香农定理

信道容量:\(C=W\log_{2}(1+\frac{S}{N}),S为信号平均功率,N为噪声平均功率,\frac{S}{N}为信噪比\)

调制

调制方式:调振幅、调频率、调相位

编码

NRZ:0高平1低平

曼彻斯特:高平起步,0处由高平转低平,1处由低平转高平

拆分曼彻斯特:高平起步,0在左边界跳一次,中间跳一次;1在中间跳一次

image

传输媒体

三种类型:双绞线、同轴电缆、光纤光缆

双绞线

分屏蔽(STP)与非屏蔽(UTP)两种

5

同轴电缆

接收端有特性阻抗,宽带用于数字传输,基带用于电视

6

光纤光缆

分类:多模与单模

2020-07-04_13-40

无线传输

短波:无法穿透电离层

微波:直线传输,例如GSM、GPRS、CDMA、蓝牙

红外线:电视之类的

激光:光发生器、光接收器

卫星通信

GEO:地球同步卫星

LEO:近地卫星

MEO:中间轨道卫星,GPS

EIA-232-E

物理层异步通信接口标准

机械特性:25脚针,上13下12。

电气特性:电压范围,负逻辑

EIA/TIA-568

绞线连接:568B、568A

568B:直通线,橙白、橙、绿白、蓝、蓝白、绿、棕白、棕

568A:交叉线,绿白、绿、橙白、蓝、蓝白、橙、棕白、棕

链路层

数据链路层

作用:提供可靠、高效通信,运输数据帧

功能:帧同步、差错控制、流量控制、透明传输、寻址

停等协议

正常情况:传输——ACK

数据帧出错:传输——NAK,可以通过CRC检测,通过NAK或重传解决

数据帧丢失:传输——超时,可以通过设置超时重传、添加时钟解决

应答帧丢失:传输——lost ACK,可以通过重复帧、帧编号等方法解决

ARQ协议:自动请求重传协议,停等协议

优点:简单

缺点:效率低、速度慢

CRC校验

数据序列为n bit,首先补齐k bit个0以满足对制定多项式m bit的除法,得到的余数假定为a bit,则CRC总长度为n+a bit,CRC值为两者拼接。

持续ARQ协议

在原来的ARQ协议基础上进行了数据帧编号和CRC校验,并加入了无响应,允许退回n步。

优点:效率提高

缺点:重传开销大、序列号占空间

滑动窗口协议

窗口两类:发送窗口、接收窗口

窗口最大:\(2^n-1\)

接收窗口最大:\(2^{n-1}\)

链路协议示例

7

HDLC

高级数据链路控制,面向bit,分非平衡和平衡两种配置,支持半双工和全双工。

其中,标志位采用0比特填充法,连续五个1填充0。

地址字段:合法地址254个

FCS字段:CRC-CCITT

PPP

点对点协议,RFC1661。面向字节,使用字节填充。

遇见0x7E填充0x7D5E;遇见0x7D填充0x7D5D

没使用序号和确认机制,出于以下考虑:

  1. PPP信息字段放入的是IP数据报文
  2. 在出错概率不大时PPP协议简单高效
  3. 数据链路层的可靠传输并不能保证上层传输可靠
  4. FCS可保证链路层数据无差错接收

协议字段:IP(0x0021)、LCP(0xC021)、NCP(0x8021)

链路共享媒体

信道分配问题

问题:

  1. 在通道发送信息时,存在信号冲突与碰撞
  2. 要求某一时刻只有唯一信息有效茶u年底
  3. 要求平等对待用户
  4. 实时反应

解决策略:

  • 动态分配,分受控接入、随机接入
  • 静态分配

受控接入

分集中式接入和分散式接入

集中式接入:轮叫轮询、传递轮询

分散式接入:令牌环、令牌总线

随机接入

ALOHA

纯ALOHA:想发就发,碰撞发生时随机等待时间再发送

时隙ALOHA:想发就发,在时间信号开始发送,出现碰撞则等待随机时间再在时间信号开始处发送

CSMA

思想:先听后发

分类:非坚持CSMA,坚持CSMA(分1-坚持和p-坚持)

CSMA/CD

思想:先听后发,边发边听

检测方法:比较信号电压、检测过零点、比较收到信号和发送信号

冲突解决:检测到冲突,则发送干扰信号阻止

信号时间:\(T=\frac{2S}{0.7C}+2t_{phy}\)

时延宽带积:\(L_{min}=(\frac{2S}{0.7C}+2t_{phy})\cdot R\)

静态分配

时分复用、频分复用、波分复用、码分复用

码分复用
  1. 一个频道发送一串数据序列,1为正常序列,0为反码
  2. 接收所有信号,将数据序列进行点积
  3. 点积为1则发送的是1;点积为-1则发送的是-1;点积为0则没发送。

局域网

局域网结构

image

IEEE 802 LAN模型

数据链路层包括:LLC(逻辑链路)、MAC(媒体接入)、物理链路

物理链路:信号编码/解码、添加前缀、数据传输与接收

MAC:封装与拆分、错误检测、寻址、媒介管理

LLC:管理数据链路通信、定义服务接入点、提供流量控制

IEEE协议族如下:

  1. 802.1 研究局域网体系结构、寻址、网络互联和网络管理。
  2. 802.2 研究逻辑链路控制子层 CLLC) 的定义。
  3. 802.3 研究以太网介质访问控制协议 CSMNCD 及物理层技术规范。
  4. 802.4 研究令牌总线网 CToken-Bus) 的介质访问控制协议及物理层技术规范。
  5. 802.5 研究令牌环网 (Token-氏ng) 的介质访问控制协议及物理层技术规范。
  6. 802.6 研究城域网介质访问控制协议 DQDB 及物理层技术规范。
  7. 802.7 宽带技术咨询组,提供有关宽带联网的技术咨询。
  8. 802.8 光纤技术咨询组,提供有关光纤联网的技术咨询。
  9. 802.9 研究综合声音数据的局域网 (ND LAN) 介质访问控制协议及物理层技术规范。
  10. 802.10 网络安全技术咨询组,定义了网络互操作的认证和加密方法。
  11. 802.11 研究无线局域网 CWLAN) 的介质访问控制协议及物理层技术规范。
  12. 802.12 研究需求优先的介质访问控制协议 (lOOVG-AnyLAN)。
  13. 802.14 研究采用线缆调制解调器 (Cable Modem) 的交互式电视介质访问控制协议及 物理层技术规范。
  14. 802.15 研究采用蓝牙技术的无线个人网 (Wireless Personal Area Network, WPAN) 技术规范。
  15. 802.16 宽带无线接入工作组,开发 2~66GHz 的无线接入系统空中接口。
  16. 802.17 弹性分组环 (RPR) 工作组,制定了弹性分组环网访问控制协议及有关标准。
  17. 802.18 宽带无线局域网技术咨询组 (Radio Regulatory)。
  18. 802.19 多重虚拟局域网共存 (Coexistence) 技术咨询组。
  19. 802.20 移动宽带无线接入 (MBWA) 工作组,正在制定宽带无线接入网的解决方案。
  20. 802.21 研究各种无线网络之间的切换问题,正在制定与介质无关的切换业务 (MIH) 标准。
  21. 802.22 无线区域网 (Wireless Regional Area Network, WRAN) 工作组,正在制定利 用感知无线电技术,在广播电视频段的空白频道进行无干扰无线广播的技术标准。

IEEE-802.3

适用于CSMA/CD的标准

MAC地址

MAC地址是硬件的地址或物理地址

地址规则:前3字节为Vendor Code(制作商ID),后3字节为序列号

传播方式:单播(1对1)、广播(1对所有,FF.FF.FF.FF.FF.FF)、多播(1对多)

MAC帧格式

长度:64到1518字节范围内

征用期:51.2\(\mu s\)

最初的格式:

9

TCP/IP族协议使用的格式:没有了LLC层

10

以太网光缆

缆线规格

粗缆:10 BASE 5,遵循5-4-3原则(五个部分,4个中继器,3个可用部分)

细缆:10 BASE 2,实际185m距离

双绞线缆:10 BASE T

光纤:10 BASE F

光缆命名规则:LAN BASE/Broad Type/Length

快速网络的双绞线缆:100 BASE TX,最多100m,使用CSMA/CD,遵循5-4-3原则,最多2个集线器

快速网络的光纤:100 BASE FX,不使用hub,长度为412m,使用CSMA/CD

自动协商:在不同缆线间切换优先级,根据最高性能以及FLP信号,10 BASE T不支持FLP

高速网络的铜线缆:1000 BASE CX,只支持25m

高速网络的激光缆:1000 BASE SX,770到860m,多模,SC连接器

高速网络的短波缆:1000 BASE LX,1270到1355m,多模,SC连接器

高速网络的双绞线缆:1000 BASE T,100m范围,RJ-45连接器

注意:高速网络有帧扩展和帧突发

相关硬件

NIC:网卡,即插即用,有ROM存储MAC地址

中继器:运行于物理层,是一种信号放大器,信号在传输的过程中是要衰减的,中继器的作用就是将信号放大,使信号能传的更远

集线器:运行于物理层,对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上,可以看作内置以太网总线;集线器线路上一般不超过5个主机网络

中继器与集线器区别:

  1. 在于连接设备的线缆的数量。一个中继器通常只有两个端口,而一个集线器通常有更多的端口
  2. 集线器还有把所有节点进行集成的功能

网桥:运行于链路层,连接两个局域网的存储转发设备,用它可以使完全具有相同或相似体系结构网络系统的连接,根据MAC地址表进行转发

交换机:运行于链路层,网络系统的集线设备,原理等同于多端口网桥,连接数个相同网段的不同主机,减少网内冲突,隔离冲突域,利用存储转发和过滤技术来从物理上分割网段,分级联和堆叠两种拓扑结构,堆叠整体可以看作大的交换机

交换机与网桥区别:

  1. 交换机允许多组端口间通道同时工作,而网桥只支持一组端口工作
  2. 交换机能分多个网段,而网桥只能分两个
  3. 交换机传输快于网桥

交换机和集线器区别:集线器表示单一的冲突域和单一广播域,而交换机每组端口醋表示一个冲突域,整个交换机表现一个广播域

网络层

进行源头网络到目的网络的数据包传输以及网络拓扑划分。

IP地址

点分十进制表示法:xxx.xxx.xxx.xxx,每段字范围0-255

地址分类

分A、B、C、D、E类地址。D类用于测试,E类用于保留

image

image

类型 最大网络地址數 最大主机地址數
A \(2^7-2\) \(2^{24}-2\)
B \(2^{14}\) \(2^{16}-2\)
C \(2^{21}\) \(2^8-2\)

特殊地址

网络地址主机号部分全0;广播地址部分主机号全1。本地广播地址:255.255.255.255;本地回环地址:127.xxx.xxx.xxx;本地主机地址:0.0.0.0。

子网分配

子网掩码:指明网络子网的掩码

网络地址=主机地址&子网掩码

子网掩码分为可变掩码和固定掩码

固定掩码计算公式,m为子网类型的网络前缀比特数(A为8,B为16,C为24):

\[2^{m-n}-2\geq 要求网络子网数\\ 2^{n}-2\geq 要求子网的分配主机数 \]

可变掩码:分配子网按照掩码匹配最长进行选择与区分

网络协议

ARP

ARP包和RARP包都是这样的结构。

操作码1、2为ARP请求和应答,3、4为RARP请求与应答

当为ARP请求时,目的IP为请求的IP,MAC为广播地址。

ICMP

头部封装:

image

报文结构:

类型代码与解释:

TYPE CODE Description Query Error
0 0 Echo Reply——回显应答(Ping应答) x
3 0 Network Unreachable——网络不可达 x
3 1 Host Unreachable——主机不可达 x
3 2 Protocol Unreachable——协议不可达 x
3 3 Port Unreachable——端口不可达 x
3 4 Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 x
3 5 Source routing failed——源站选路失败 x
3 6 Destination network unknown——目的网络未知 x
3 7 Destination host unknown——目的主机未知 x
3 8 Source host isolated (obsolete)——源主机被隔离(作废不用) x
3 9 Destination network administratively prohibited——目的网络被强制禁止 x
3 10 Destination host administratively prohibited——目的主机被强制禁止 x
3 11 Network unreachable for TOS——由于服务类型TOS,网络不可达 x
3 12 Host unreachable for TOS——由于服务类型TOS,主机不可达 x
3 13 Communication administratively prohibited by filtering——由于过滤,通信被强制禁止 x
3 14 Host precedence violation——主机越权 x
3 15 Precedence cutoff in effect——优先中止生效 x
4 0 Source quench——源端被关闭(基本流控制)
5 0 Redirect for network——对网络重定向
5 1 Redirect for host——对主机重定向
5 2 Redirect for TOS and network——对服务类型和网络重定向
5 3 Redirect for TOS and host——对服务类型和主机重定向
8 0 Echo request——回显请求(Ping请求) x
9 0 Router advertisement——路由器通告
10 0 Route solicitation——路由器请求
11 0 TTL equals 0 during transit——传输期间生存时间为0 x
11 1 TTL equals 0 during reassembly——在数据报组装期间生存时间为0 x
12 0 IP header bad (catchall error)——坏的IP首部(包括各种差错) x
12 1 Required options missing——缺少必需的选项 x
13 0 Timestamp request (obsolete)——时间戳请求(作废不用) x
14 Timestamp reply (obsolete)——时间戳应答(作废不用) x
15 0 Information request (obsolete)——信息请求(作废不用) x
16 0 Information reply (obsolete)——信息应答(作废不用) x
17 0 Address mask request——地址掩码请求 x
18 0 Address mask reply——地址掩码应答 x

IP

目前主要介绍IPv4协议数据报文,IPv4协议头部数据报文结构如下:

image

IP校验和的算法代码:

u_short AttackWindow::ip_checksum(u_short initcksum,u_char *data,int len){
    u_int cksum;
    int idx,odd;
    cksum=(u_int)initcksum;
    odd=len&1;
    len-=odd;
    for(idx=0;idx<len;idx+=2)
        cksum+=( ((u_long) data[idx] << 8) + ((u_long) data[idx+1]));
    if(odd)
       cksum += ((u_long) data[idx]<< 8);
    while(cksum>>16)
        cksum = (cksum & 0xFFFF) + (cksum >> 16);
    return ~cksum;
}

IP数据切片:看Flag部分,Flag分DF和MF,DF表示整个数据包就是完整的,MF代表是数据包是切片,拼接到上一数据包之中。而偏移则在Offset部分,偏移计算需要剃掉头部进行。

路由与其应用层协议

路由器

路由器是连接两个或多个网络的硬件设备,运用于网络层,路由器一般会维护一个路由表进行地址跳转。

网关:数据包进入时判断目的IP是不是在本网络区域的掩码。

RIP

路由跳转协议,是基于距离测量的路由协议。路由之间传递路由表记录跳数,跳数最多为16。RIP如果不限制跳数,可能就会导致路由无穷计算。

针对无穷计算可以采用水平分割(禁止一个方向跳)、路由毒化(告知此路不通)、毒化逆转(告知所有路由此路不通)、时钟计时、延迟到达等方法。

OSPF

基于距离测量的路由协议,需要路由器已知所有周边路由及其周边路由距离。

工作过程:邻居发现、路由交换、路由计算、路由维护

最短路查找:迪杰斯特拉算法(全局最优路径的局部也是最优的)

BGP

运行于 TCP 上的一种自治系统的路由协议,内部自治,用于外部网关。

路由规则:

  1. 对于那些经过了某些特定AS的流量,不提供传输服务
  2. 在AS之间使用的路由协议
  3. 距离矢量路由协议
  4. 不仅仅维护它到每个目标的开销值
  5. 记录下所使用的路径

传输层

进行主机间不同进程传输。

端口

传输层通过端口确定不同进程,端口范围为0到65535,前1024个端口为著名端口。

TCP协议

面向连接的传输层协议

报文格式

TCP头部结构如下:

image

需要注意的是在TCP校验的时候需要添加伪首部:

image

IP校验和TCP校验区别:

  1. TCP校验需要加入伪首部
  2. TCP检查整个TCP数据包的完整性,而IP只检查IP头部完整性

TCP连接

TCP连接需要三次握手:

image

为什么不是一次握手:如果只是一次握手,接收请求后客户端无法确认服务器是否接收连接请求。

为什么不是两次握手:

  1. 如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认。
  2. 谢希仁的计网说法:防止已失效的连接请求又传送到服务器端,因而产生错误

TCP释放

TCP释放需要四次握手:

image

为什么四次需要四次握手释放?

TCP是全双工通信的

  1. 第一次挥手:当主动方发送断开连接的请求(即FIN报文)给被动方时,仅仅代表主动方不会再发送数据报文了,但主动方仍可以接收数据报文。
  2. 第二次挥手:被动方此时有可能还有相应的数据报文需要发送,因此需要先发送ACK报文,告知主动方“我知道你想断开连接的请求了”。这样主动方便不会因为没有收到应答而继续发送断开连接的请求(即FIN报文)。
  3. 第三次挥手:被动方在处理完数据报文后,便发送给主动方FIN报文;这样可以保证数据通信正常可靠地完成。发送完FIN报文后,被动方进入LAST_ACK阶段(超时等待)。
  4. 第四次挥手:如果主动方及时发送ACK报文进行连接中断的确认,这时被动方就直接释放连接,进入可用状态。

TCP流量控制

Silly window syndrome:发送方发的慢,接收方接的慢,数据报文切片小,而且量大影响效率。

解决:

  1. 针对发送方:Nagle算法,发送的TCP报文不立即发送,等待足够数据后发送大数据包。
  2. 针对接收方:
    • Clark方案:发送ACK,但只有当数据切片最大值为缓冲区一半时窗口才不为0。
    • 延迟ACK:当接收TCP数据切片时,不立即发送ACK,等接收者有足够空间了才发ACK,之间间隔最多500ms。

TCP差错控制

差错:重传数据包

丢失:重传数据包

重复:丢弃重复数据包

乱序:缓冲等待

应答丢失:重新发送应答包

TCP拥塞控制

网络面对的负载超过了他的处理能力时,拥塞就会发生。

拥塞真正的解决方案就是减慢数据率:只有当一个老的分组离开之后才允许向网络注入一个新的分组;动态的维护窗口大小

管理拥塞:拥塞检测、拥塞控制

拥塞控制:两个窗口,一个接收方准许窗口,一个拥塞窗口(慢启动、累计增加、加速递减)。

拥塞窗口中:

  1. 慢启动:窗口初始为1,之后倍数增长
  2. 累计增加:在慢启动达到阈值时窗口增加为加1增长
  3. 加速递减:在出现超时时,阈值设置为原来的1/2,同时窗口置1开始慢启动

UDP协议

UDP协议是无连接的传输层协议

报文格式

image

校验是整个UDP包校验。

应用

一般用于视频传输等数据量大、不需要特别安全的应用上。

posted @ 2022-05-05 18:12  FrancisQiu  阅读(22)  评论(0)    收藏  举报