Linux 网络技术栈,看这篇就够了

第一章 概述

1.基本概念

- 链路,结点,协议和服务,实体和对等实体,各层PDU

  1. 链路:连接结点的称为链路,可以是铜缆,光纤,卫星等

  2. 结点:可以是计算机,集线器,交换机或路由器等

  3. 协议: 两个对等实体之间的通信规则。协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的动作。协议有三要素:语法(数据与控制信息的结构或格式、信号电平)、语义(需要发出何种控制信息、完成何种动作以及做出何种响应、差错控制)、时序(事件顺序、速度匹配)

  4. 服务:在协议的控制下,本层向上一层提供服务,本层使用下一层所提供的服务

  5. 实体:任何可发送或接收信息的硬件或软件进程

  6. 对等实体:位于同等层中相互通信的两个实体。对等实体之间处理相同的PDU。

  7. 各层PDU:PDU:对等层之间传送的数据单位

Linux 网络技术栈,看这篇就够了_第1张图片

- C/S模式,B/S模式,P2P模式

  1. C/S模式:也即客户-服务器方式。客户是服务请求方,服务器是服务提供方。客户必须知道服务器的地址,反之不必

  2. B/S模式:也即浏览器-服务器方式。在服务器安装SQLserver,MYSQL等数据库,浏览器通过web server同数据库进行数据交换

  3. P2P模式:对等方式,通信在对等实体之间直接进行。每一个主机既是客户又是服务器,本质上仍是C/S

- LAN,WAN,MAN,PAN的划分

LAN,WAN,MAN,PAN的划分:按照网络的作用范围进行分类,分别为:广域网WAN(几十到几千公里)、城域网MAN(5~50KM)、局域网LAN(1km左右)、个人局域网PAN(10米左右)

- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率

  1. 速率:数据的传送速率,单位是Bit/s

  2. 带宽:在计算机网络中,网络带宽表示单位时间内网络中某信道所能通过的“最高数据率”,单位为bit/s

  3. 吞吐量:表示在发送端与接收端之间实际的传送数据速率(bit/s)

  4. 时延:指数据从网络的一端传送到另外一端所需的时间。

  5. 发送时延:是主机或路由器发送数据帧所需要的时间。公式为:数据帧长度(bit)/发送速率(bit/s)

  6. 传播时延:是电磁波在信道中传播一定的距离需要花费的时间。公式为:信道长度(m)/电磁波在信道上的传播速率(m/s)

  7. 处理时延:主机或路由器在收到分组时要花费一定的时间进行处理

  8. 排队时延:在分组进入路由器后要先在输入队列中排队等待处理

  9. 往返时间:从发送方发送数据开始,到发送方收到来自接受方的确认,总共经历的时间

  10. 信道利用率:指某信道有百分之几的时间是有数据通过的

  11. 信道利用率并非越高越好,因为当利用率增大时,该信道引起的时延也就迅速增加

2.互联网的组成(边缘部分与核心部分的作用)

边缘部分:各种端系统如主机,手机,大型或超级计算机组成。位于网络边缘;运行网络应用程序 核心部分:互联的路由器网络。关键功能:路由和转发,其中交换机是在同一个子网内部转发数据,路由器是在不同子网之间转发数据。以数据交换的方式实现数据从源主机通过网络核心到达目的主机。

3.电路交换与分组交换,数据报交换和虚电路交换的特点

  1. 电路交换:最经典的电路交换网络是电话网络。主要特点就是独占资源。电路交换的三个阶段:建立连接(呼叫)、通信、释放连接(挂机)。用多路复用技术解决一条链路被多路通信共享的问题

  2. 分组交换: 报文:源应用发送的信息整体 分组:由报文拆分成较小的数据块

  3. 在发送端,先把较长的报文划分成较短的,固定长度的数据段

  4. 每一个数据段前面添加上首部构成分组。每一个分组的首部都含有地址等控制信息

  5. 依次把各分组发送到接收端。每个分组在互联网中独立地选择传输路径

  6. 接收端收到分组后剥去首部还原成报文

  7. 数据报交换:将整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点

  8. 虚电路交换: 即先建一条逻辑通路,其通信过程类似电路交换。每个分组除了包含数据之外还包含一个虚电路标识号,而不是目的地址的信息;在预先建好的路径上的每个节点都知道把这些分组引导到哪里去,数据分组按已建立的路径顺序通过网络,不再需要路由选择判定。

4.TCP/IP体系结构,数据的封装与解封装

TCP/IP体系结构

Linux 网络技术栈,看这篇就够了_第2张图片

Linux 网络技术栈,看这篇就够了_第3张图片

Linux 网络技术栈,看这篇就够了_第4张图片

​数据的封装与解封装

Linux 网络技术栈,看这篇就够了_第5张图片

​*要注意链路层不仅加了首部还加了尾部

Linux 网络技术栈,看这篇就够了_第6张图片

​相关视频推荐

Linux内核网络协议栈基础精讲

剖析Linux内核网络协议栈详解

突破Linux内核网络协议栈瓶颈的技术方案-dpdk+vpp

免费学习地址:c/c++ linux服务器开发/后台架构师

需要C/C++ Linux服务器架构师学习资料加qun812855908获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

Linux 网络技术栈,看这篇就够了_第7张图片

第二章 物理层

1.信号编码:不归零编码,曼切斯特编码

不归零编码:1为高电平,0为低电平 曼切斯特编码:1开始为高电平中间转为低电平,0开始为低电平中间转为高电平

Linux 网络技术栈,看这篇就够了_第8张图片

2.影响信号失真程度的因素

影响信号失真程度的因素:传输速率、传输距离、传输介质、噪声干扰 在任何信道中,码元传输的速率是有上限的,否则会出现码间串扰

3.传输介质:双绞线,同轴电缆,光纤(单模和多模),无线介质

双绞线:

  • 又4组绞合起来的线(共8根)组成

  • 分为非屏蔽双绞线和屏蔽双绞线,区别在于每组线上是否包有屏蔽材料。

  • 如果两头都是T568A或T568B类型,则为直通双绞线,适用于不同设备;如果两端类型不同则为交叉双绞线,适用于连接相同设备

同轴电缆:

  • 50Ω同轴电缆常用于LAN/数字传输

  • 75Ω同轴电缆常用语有线电视/模拟传输

光纤(单模和多模):

  • 由低折射率的包层和高折射率的纤芯组成,光线在纤芯中通过全反射传输

  • 多模光纤适用于近距离,可以存在多条不同角度入射的光线,允许更大的散射,会导致信号丢失,消耗较大,使用LED作为光源

  • 单模光纤适用于远距离,光纤直径小,使光线一直向前传播,不产生反射,制作成本高,使用半导体激光器作为光源 无线介质:

Linux 网络技术栈,看这篇就够了_第9张图片

4.几种复用技术的特点:频分复用,时分复用,统计时分复用,波分复用,码分复用

几种复用技术的特点:

  1. 频分复用

  • 将整个宽带分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带

  • 所有用户在同样的时间占用不同的宽带资源

  • 时分复用

  • 将时间划分为等长时间复用帧

  • 所有用户在不同的时间占用同样的频带宽度

  • 当某用户暂时无数据发送时,在时分复用帧中分配给该用户的时隙只能处于空闲状态

  • 统计时分复用 STDM帧不是固定分配时隙,而是按需动态分配时隙

  • 波分复用 使用一根光纤来同时传输多个光载波信号,就是光的频分复用

  • 码分复用

  • 常用名称:码分多址CDMA,广泛应用于2G,3G网络

  • 各用户使用经过特殊挑选的不同码型(必须各不相同,必须相互正交),彼此不会干扰

  • CDMA信号有很强的抗干扰能力,保密性强

  • 不同用户在相同的时间占用同样的频带宽度

  • 每一个比特时间划分为m个短的间隔,称为码片

  • 每个站被指派一个唯一的mbit码片序列,如果发送1则发送自己的mbit码片序列,如果发送0则发送该码片序列的二进制反码

  • 两个不同站的码片序列正交,就是向量S和T的规格化内积等于0

  • 任何一个码片向量和该码片向量自己的规格化内积都是1,和giant码片反码的向量的规格化内积值是-1

5.宽带接入技术:ADSL,HFC,FTTX

  • ADSL

  • 使用现有的模拟电话用户线,采用频分复用技术

Linux 网络技术栈,看这篇就够了_第10张图片

  • HFC

  • 使用有线电视网CATV,采用频分复用技术

  • 使用同轴电缆连接到机顶盒,机顶盒再连接到电视机

  • 使用电缆调制解调器连接到计算机

Linux 网络技术栈,看这篇就够了_第11张图片

  • FTTx

  • 光纤到户FTTH:光纤一直铺设到用户家庭

  • 光纤到大楼FTTB:光纤进入大楼,用电缆或双绞线分配到各用户

  • 光纤到路边FTTC:光纤铺到路边,从路边到各用户可使用星型结构双绞线作为传输媒体

第三章 数据链路层

1.理解数据链路层的地位与作用,三个基本问题

  1. 链路:从一个结点到相邻结点的一段物理线路(有线或无线),中间没有任何其他交换结点

  2. 数据链路:物理链路+通信协议

  3. 数据链路层的地位:局域网中的主机、交换机必须实现数据链路层;网络中的主机、路由器必须实现数据链路层。

  4. 数据链路层的作用:网络中两个主机发送数据所经过的网络可以是多种不同类型的,不同类型网络的链路层可能采用不同的协议

  5. 三个基本问题:

  • 封装成帧:在一段数据的前后分别添加首部和尾部,构成一个帧。帧定界符:SOH(帧开始符),EOT(帧结束符)

  • 透明传输:若帧出现定界符,在其前面用字符填充法

  • 差错检测:循环冗余检验的原理:在发送端,计算CRC冗余码(在待发送数据(k位)后面再添加供差错检测用的CRC冗余码(n位),实际发送k+n位);在接收端:利用n位CRC冗余码对收到的数据进行检验

Linux 网络技术栈,看这篇就够了_第12张图片

  • 用除数P再除去收到的数,若余数R=0,则证明这个帧无差错,接受

2.使用点对点信道的链路层:信道特点,PPP帧格式,零比特填充法和字节填充法,差错检测(CRC)

  • 信道特点:点对点信道使用一对一的点对点通信方式。通常使用PPP协议,用户通过PPP协议接入ISP,再接入互联网

  • PPP帧格式:

Linux 网络技术栈,看这篇就够了_第13张图片

图中F为标志字段表示开始和结束,是PPP帧的定界符;A和C实际上并没有携带PPP帧的信息;协议字段中的不同数据表示该帧的数据部分的作用不同(背)

  • 零比特填充法:同步传输(一连串比特连续传送) 在原始数据中出现连续5个1时在其后面加一个0,在接收端收到数据时将这个0删去

  • 字节填充法:异步传输(逐个字符传送) 在原始数据中若出现开始符7E修改为7D5E;出现7D修改为7D5D;出现03修改为7D23;

  • 差错检测(CRC) :同上面的差错检验,用冗杂码进行加密检验

3.使用广播信道的链路层:信道特点,CSMA/CD协议,MAC帧格式,最小帧长和最大帧长

  • 信道特点:

  • 局域网使用广播信道;

  • 多台主机共享局域网内软硬件资源;

  • 若多个设备在共享的广播信道上同时发送数据,则会彼此干扰,导致发送失败

  • _CSMA/CD协议_:载波监听多点接入/碰撞检测

  • “多点接入”:使用广播信道的总线型网络

  • “载波监听”:不停地检测信道(发送前、发送中)

  • “碰撞检测”:检测到碰撞→立即停止发送→等待随机事件后再发送

  • 争用期=以太网的端到端往返时间2τ

  • 10Mbit/s以太网的争用期2τ=51.2μs。

  • 最先发送数据的站,在争用期内没有检测到碰撞,则这次发送肯定不会发生碰撞

  • 如果在争用期内发生发生碰撞,需要用截断二进制支书退避算法来计算等待时间。即退避时间=r倍的争用期=r*2τ,r为离散集合【0,1,…,2^k-1】中的一个随机数。k=Min[重传次数,10]。当重传次数=16次,仍不能成功时即丢弃该帧,并向高层报告

Linux 网络技术栈,看这篇就够了_第14张图片

  • MAC帧格式:类型:0x0800(IP数据报)、0x0806(ARP报文)

Linux 网络技术栈,看这篇就够了_第15张图片

  • 最小帧长和最大帧长:最小:64,最大1518主要取决于数据部分的长度

4.网卡的功能和MAC地址,帧的类型(单播帧,广播帧,多播帧)

_网卡的功能_:计算机通过网络适配器(网卡)和局域网进行通信

Linux 网络技术栈,看这篇就够了_第16张图片

​_MAC地址_:MAC地址固化在网卡的ROM中,全球唯一。由6个字节组成,前3个字节由IEEE注册管理机构RA分配,后3个字节由厂家自行指派。 注意:当主机或路由器安装有多个适配器,就有多个“MAC地址” 帧的类型(单播帧,广播帧,多播帧):

  • 一台主机发送单播帧,仅当帧的目的地址与本网卡地址相同时才接收

  • 一台主机发送广播帧,其他主机都接收该帧

  • 一台主机发送多播帧,即发送给本局域网上一部分站点

5.比较集线器与交换机,交换机的自学习功能及转发帧的过程

比较集线器与交换机:

  • 集线器:物理上星型,逻辑上总线型;每个主机到集线器的距离不超过100m;可以使用光纤扩展主机和集线器之间的距离,使用集线器扩展以太网(前提是连接的多个以太网段的速率要相同);采用CSMA/CD,不具有交换机的自学习能力,发送数据采用广播的方式,整个集线器是个碰撞域,不可以缓存帧

  • 交换机:以太网交换机工作在数据链路层,处理对象是帧;全双工,不使用CSMA/CD;向某个接口转发帧;每一个接口是个碰撞域;可缓存帧,可自学习。

  • 半双工数据传输允许数据在两个方向上传输,但是同一时刻只允许一个方向;全双工也允许在两个方向传输,但同时刻可以同时接受和发送信息

_交换机的自学习功能及转发帧的过程_:

  1. 开始时,交换表是空的

  2. 收到第一个帧后,广播发到其他接口,非目标主机会把收到的帧丢弃,并记录这个接口对应的MAC地址

  3. 当一个接口发送帧时,先从原接口进入,查找交换表是否有目的地址的记录,如果有就直接发送;如果没有就广播发帧。

  4. 交换表上的记录会存在有效时间,过了有效时间会清除记录,以免接口更换主机或者主机更换网卡

  5. 如果两个交换机有两个接口相互连接,会利用生成树协议,在逻辑上删除一个接口

6.广播域和碰撞域,VLAN,生成树协议STP

广播域:指网络中一个站点发出广播帧所影响的范围 碰撞域:指网络中一个站点发出的单播帧会与其他站点发出的单播帧产生碰撞的范围;任一个时刻在一个碰撞域中只能有一个主机发送数据 VLAN:即虚拟局域网,不改变网络的物理局域网,在逻辑上划分虚拟局域网。可以基于交换机端口,基于主机MAC地址,基于主机IP地址(交换机只在802.1Q标记相同的接口之间转发帧)划分VLAN

Linux 网络技术栈,看这篇就够了_第17张图片

生成树协议STP:不改变网络的物理拓扑,但在逻辑上切断某些链路,消除回路

第四章 网络层

1.网络连接设备:中继器,集线器,交换机,路由器的工作层次

中继器:物理层使用设备 集线器:物理层使用设备 交换机:数据链路层使用设备 路由器:网络层使用设备

2.IP地址:分类IP地址;互联网中的IP地址,特殊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地址_:有两个字段组成,第一个字段是网络号,标志着主机(或路由器)要连接到的网络;第二个字段是主机号,标志着一台主机号在他前面的网络号所指明的网络范围内必须是唯一的 特殊IP地址(网络地址,广播地址等) :

  • 网络号特定值;主机号全是0:网络地址,表示一个网络,如:10.0.0.0

  • 网络号特定值,主机号全是1:直接广播地址,指特定网络中的所有主机,如:10.255.255.255

  • 网络号主机号都为1,有限广播地址,指本网络中的所有主机:255.255.255.255

  • 网络号主机号都为0,未获取UO地址的主机或路由表中的默认路由

  • 网络号127,主机号全0或全1除外的任何数,环回地址,用于本主机软件环回测试

  • 网络号169.254,主机号全0或全1除外的任何数,当不能通过DHCP正常得到IP地址时,由Windows系统自动为主机分配的IP地址

3.IP地址与硬件地址的关系,ARP协议(ARP原理,ARP缓存,同一局域网使用ARP,跨网使用ARP)

IP地址与硬件地址的关系:在网络中传输数据时,目的IP地址不变,但目的MAC地址会随着传输到不同设备改变 ARP协议(ARP原理,ARP缓存,同一局域网使用ARP,跨网使用ARP)

  • ARP的作用:已知主机或路由器接口的IP地址,找出其MAC地址

  • ARP缓存:每个主机都有一个ARP高速缓存,保存本局域网中IP地址到MAC地址的映射表

  • 同一局域网使用ARP:当主机A向本局域网中主机B发送数据时,先查ARP高速缓存,若没有,则运行ARP,查找B的MAC地址

  • ARP原理:主机A广播发送ARP请求分组,目标主机B收到请求后,向A发送ARP相应分组

  • 跨网使用ARP:判断目标IP和源IP不是同一网段后,主机就要通过网关来传递信息了。信息先发送到网关机上,再由网关机转发。在查找目标不在同一网段后,目标IP改为网关机的IP,MAC地址为广播地址,发送信息时加上目标IP和MAC地址发送到网关中。

4.IP数据报格式:首部长度和总长度,IP分片与重组(标识,标志,片偏移),生存时间TTL,协议,首部检验和

_首部长度_:4位,首部长度=固定部分(20字节)+可选字段(0~40字节),取值范围5到15,单位为4字节 _总长度_:16位,单位为1字节,最大值为65535,但总长度必须不超过MTU IP分片与重组(标识,标志,片偏移) :

  • 网络链路存在MTU:链路层帧可封装数据的上限;不同链路的MTU不同

  • 大IP分组向较小MTU链路转发时,可以被“分片”

  • IP分片到达目的主机后进行“重组”

  • 标识(16位):标识一个IP数据报,IP数据报分片时,所有分片具有相同的标识

  • 标志(3位):MF=1,还有分片;MF=0,最后一个分片;DF=1,禁止分片;DF=0,允许分片

  • 片偏移(13位):某分片在原IP数据报中的相对位置。单位为8个字节

_生存时间TTL_:8位,指数据报在网络中可通过的路由器数的最大值。IP数据报每经过一个路由器,TTL减1。当减到0时,这个数据报就会被丢失 _协议_:8位,指数据部分是何种协议

  • =6,TCP

  • =17,UDP

  • =1,ICMP

  • =41,IPv6 _首部检验和_:只检验首部,不检验数据部分。,设首部检验和为0,将首部每2个字节当做一个数,将所有数相加求和,进位累加,对求和结果求反得到

5.划分子网:子网划分,子网掩码,根据IP地址和子网掩码计算该IP地址所在网络的网络地址,广播地址,子网数和子网中的主机数

_子网划分_:

Linux 网络技术栈,看这篇就够了_第18张图片

_子网掩码_:形如IP地址,网络号和子网号全取1,主机号全取0

Linux 网络技术栈,看这篇就够了_第19张图片

_根据IP地址和子网掩码计算该IP地址所在网络的网络地址、广播地址、子网数和子网中的主机数_:

Linux 网络技术栈,看这篇就够了_第20张图片

路由优先级:直连路由》特定主机路由》静态路由》动态路由》默认路由

6.CIDR(给定一个CIDR地址快,计算最小IP地址,最大IP地址,掩码和地址总数)和路由聚合(给定几个IP地址,计算聚合后的地址)

CIDR(给定一个CIDR地址快,计算最小IP地址,最大IP地址,掩码和地址总数) : - 无类域间路由CIDR:a.b.c.d/x - 例如:200.23.16.0/23==200.23.16.0,255.255.254.0 路由聚合(给定几个IP地址,计算聚合后的地址) :将多个子网聚合为一个较大的子网。前提:地址块是连续的。最长前缀匹配优先

Linux 网络技术栈,看这篇就够了_第21张图片

7.ICMP协议:ICMP协议的作用,ICMP差错报文何时产生,由谁产生.PING命令和Tracert命令的工作原理

ICMP协议的作用:支持主机或路由器进行差错报告和网络探询。向源主机报告IP数据报的差错信息;只是报告差错,不能纠正差错。ICMP报文有两种,即ICMP差错报告报文(单向,向源主机报告差错)和ICMP询问报文(双向,向源主机请求,向目的主机应答) ICMP差错报文何时产生,由谁产生:

  1. 终点不可达:当路由器或主机不能交付数据报时向源点发送终点不可达报文

  2. 时间超过: 当路由器收到生存时间为零的数据报,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。

  3. 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确就丢弃该数据报,并向源点发送参数问题报文

  4. 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发给另外的路由器 PING命令和Tracert命令的工作原理: 分组网间探测PING用来测试两台主机之间的连通性,使用了ICMP回送请求与回送回答报文;tracert命令用来跟踪一个分组从源点到终点的路径

8.路由器:给定拓扑写出路由器(直连路由,静态路由和动态路由,默认路由),路由器根据路由器转发IP数据报的过程

给定拓扑写出路由器(直连路由,静态路由和动态路由,默认路由) :

  • 静态路由:管理员手工配置的路由;需要人工维护,适合拓扑简单、稳定的网络,路由器开销小

  • 动态路由:管理员在路由器上配置动态路由协议,使路由器与其他路由器进行通信来维护路由表;无需人工维护,适合拓扑复杂、变化的网络;路由器开销大

  • 默认路由:是对IP数据报中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包;如果知道应该怎么路由这个数据抱,则数据包被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离。

  • 直连路由:路由器接口所连接的子网的路由方式称为直连路由。直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,该路径不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态,路由器就会把通向该网段的路由学习天写到路由表中去,直连路由无法使路由器获取与其不直接相连的路由信息。

_路由器根据路由器转发IP数据报的过程_:

  • 路由选择:根据IP数据报的目的地址查询路由表,确定下一跳地址。经过网络中的所有节点共同协调工作后,选择一条最佳路由

9.RIP:距离,距离向量算法,工作过程,特点

  • 自治系统AS:属于一个组织机构的内部网络

  • 内部网关协议:运行与AS内部路由器上的动态路由协议,如:RIP、OSPF

  • 外部网关协议:用于在AS与AS之间建立动态路由的协议,如:BGP-4

_距离_:

  • 从一个路由器到直接连接的网络的距离定义为1

  • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1

  • RIP协议中的“距离”也称为“跳数”,实际上指的是“最短距离”

  • RIP认为一个好的路由就是他通过的路由器的数目少,即“距离短”

  • RIP允许一条路径最多只能包含15个路由器

  • “距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互联网

  • RIP不能再两个网路之间同时适用多条路由

_距离向量算法_:路由器R收到邻居路由器X的路由表后:

  1. 将收到的路由表(即邻居的路由表)中所有的项目的“下一跳”改为X,所有“距离”值加1

  2. 对修改的每个项目(N,d,X):

  • 若N不在R的路由表中,则添加该项目

  • 若N在R的路由表中,且“下一跳”也是X,则更新该项目

  • 若N在R的路由表中,但“下一跳”不是X,如果距离d值较小,则用该项目替换原项目

Linux 网络技术栈,看这篇就够了_第22张图片

​_工作过程_:

  • 路由器在刚刚开始工作时,只知道到连接的网络的距离(此距离定义为1)。他的路由表是空的

  • 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息

  • 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址

  • RIP协议的收敛过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程

  • RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换

_特点_:

  1. 仅和相邻路由器交换信息

  2. 交换的信息是当前本路由器所知道的全部信息,即自己的路由表

  3. 按固定的时间间隔交换路由信息,例如每隔30秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息

  4. 网络规模较小

  5. 以跳表示链路开销

  6. 占用宽带较多

  7. 收敛慢:当网络出现故障时,RIP需较长时间才能让所有路由器知晓

10.OSPF:链路状态,OSPF的工作过程,OSPF区域

_链路状态_:

  • 本路由器的各接口IP地址和接口状态

  • 相邻路由器接口IP地址

  • 链路的开销

_OSPF的工作过程_:

  • 每个路由器维护链路状态数据库(全网的拓扑结构图)

  • 可知全网共有多少台路由器

  • 哪些路由器是相连的

  • 链路代价是多少

  • 每个路由器根据链路状态数据库,利用Dijkstra算法,求出到达每个网络的最短路径,一次构造路由表

Linux 网络技术栈,看这篇就够了_第23张图片

​R8根据链路状态数据库调用Dijkstra算法获得以R8为根的最短路径树

Linux 网络技术栈,看这篇就够了_第24张图片

​根据最短路径树生成路由表

Linux 网络技术栈,看这篇就够了_第25张图片

​_OSPF区域_:为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。 划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量

Linux 网络技术栈,看这篇就够了_第26张图片

粉色区域为主干区域,里面的路由器叫主干路由器(包括边缘的) 主干边缘和其他区域交接的路由器又叫区域边界路由器 R6这种位置的叫自治系统边界路由器

Linux 网络技术栈,看这篇就够了_第27张图片

Linux 网络技术栈,看这篇就够了_第28张图片

11.外部网关协议BGP:寻找可达性的路由,策略路由

寻找可达性的路由:用于在不同自治系统的边界路由器之间交换路由信息,寻找一条可以到达目的网络的较好路径 策略路由:

Linux 网络技术栈,看这篇就够了_第29张图片

12.IPv6:ipv6数据报格式,IPv6相比IPv4的变化,IPv6地址的表示,从IPv4相比IPv6的过渡技术

ipv6数据报格式:IPv6数据报=基本首部+有效载荷;有效载荷=扩展首部+数据部分

Linux 网络技术栈,看这篇就够了_第30张图片

  • 优先级(8位):为了区分不同的IPv6数据报的类别或优先级

  • 流标签(20位):属于同一个流的数据报具有同样的流标签

  • 有效载荷长度(16位):指IPv6数据报除基本首部以外字节数,最大值是65535

  • 下一个首部(8位):相当于IPv4的协议字段

  • 跳数限制(8位):相当于IPv4的TTL字段 IPv6相比IPv4的变化:

Linux 网络技术栈,看这篇就够了_第31张图片

​IPv6地址的表示:

  1. 冒号十六进制记法:各段之间用冒号分隔:68E6:8C64:FFFF:FFFF:0000:1180:960A:FFFF

  2. 零压缩表示法:连续的零可用双冒号代替(只能使用一次):0:0:0:2AA:23:0:0:0→::2AA:23:0:0:0

  3. CIDR表示法:21DA::D3:0:0/48

  4. URLs:http://[3FFE::1:800:200C:417A]:8000

从IPv4相比IPv6的过渡技术:

  1. 使用双协议栈 路由器B和E同时具有两种IP地址:一个IPv6地址和一个IPv4地址

  2. 使用隧道技术 路由器B把IPv6数据报封装在IPv4数据报中发送给路由器E

13.IP多播:比较(单播,广播,多播,任播),IP多播数据报的封装,多播IP地址与多播MAC地址,IGMP协议的作用

比较(单播,广播,多播,任播):

  • 单播:单个源节点向单个目的结点发送分组

  • 广播:单个源节点向同网络中的所有结点发送分组

  • 多播:单个源节点向多个目的结点发送分组

  • 任播:单个源节点向多个目的结点中距离最近的单个结点发送分组

_IP多播数据报的封装_:IP首部加上IGMP报文,其中首部的协议字段等于2,目的地址为D类IP地址(224.0.0.0~239.255.255.255)

_多播IP地址与多播MAC地址_:

  • 多播IP地址即D类IP地址:224.0.0.0~239.255.255.255

  • 多播MAC地址的最低23位来自D类IP地址,即01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF

IGMP协议的作用:是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组

14.VPN:私有IP,VPN路由器封装IP数据报的过程,三种VPN类型的判断,NAT路由器封装IP数据报的过程

私有IP:仅在机构内部使用,不需要向因特网管理机构申请

  1. A类:10.0.0.0到10.255.255.255

  2. B类:172.16.0.0到172.31.255.255

  3. C类:192.168.0.0到192.168.255.255

VPN路由器封装IP数据报的过程:用隧道技术实现VPN。将原本的IP数据报作为数据部分加密到新的IP数据报中,并为她添加新的数据报首部,源地址是发送的路由器地址,目的地址是收到的路由器地址

三种VPN类型的判断:

  • 内联网VPN:同属于一个机构的内部部门A和B之间建立的VPN

  • 外联网VPN:一个机构和某些外部机构共同建立的VPN

  • 远程接入VPN:外地出差的工作人员与公司网络之间建立的VPN NAT路由器封装IP数据报的过程:

  • 替换:替换每个外出IP数据报的源地址

  • 记录:替换信息存储到NAT转换表

  • 替换:替换每个进入内网的IP数据报的目的地址

Linux 网络技术栈,看这篇就够了_第32张图片

15.MPLS:与传输路由技术的比较,负载均衡与FEC

MPLS:多协议标记交换,在MPLS域的入口处给每个IP数据报打标机,使用硬件转发

Linux 网络技术栈,看这篇就够了_第33张图片

​_与传输路由技术的比较_:

  • 传统路由器技术数据转发机制:传统路由器IP寻址方式是逐跳转发的。转发需要由路由器对IP数据包进行解包处理,再通过路由协议决定转发方向。由于IP包的不定长特性,也就意味着时延大、转发速度慢

  • 基于ATM的MPLS数据转发机制:多协议,因为MPLS基于IP路由和控制协议,一个介于第三层和第二层之间的“垫层”,MPLS不受链路层协议的限制(可使用多种链路层协议)

_负载均衡与FEC_:

  • 转发等价类FEC:指路由器按照同样方式对待的IP数据报的集合

  • “按照同样方式对待”表示:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等

  • FEC和标记是一一对应的关系:MPLS的入口结点将属于同样FEC的IP数据报指派同样的标记

Linux 网络技术栈,看这篇就够了_第34张图片

第五章 运输层

1.运输层的作用

运输层向它上面的应用层提供通信服务(提供端到端,进程到进程的可靠通信),为运行在不同host上的进程提供逻辑通信,向高层用户屏蔽通信子网的细节

2.UDP和TCP的特点,及使用它们的应用程序,熟知端口号

UDP和TCP的特点:

  • UDP

  • 支持单播、多播、广播

  • 无连接,不可靠

  • 可以任何速率发送数据

  • TCP

  • 仅单播,不支持多播、广播

  • 面向连接,可靠按序

  • 流量控制(发送速率不超过接收方的接收能力)

  • 拥塞控制(网络过载时限制发送方的发送速率)

及使用它们的应用程序:

Linux 网络技术栈,看这篇就够了_第35张图片

​熟知端口号:

Linux 网络技术栈,看这篇就够了_第36张图片

Linux 网络技术栈,看这篇就够了_第37张图片

3.UDP:首部格式,检验和

首部格式:

Linux 网络技术栈,看这篇就够了_第38张图片

​检验和:

Linux 网络技术栈,看这篇就够了_第39张图片

​发送端:

  1. 先设置检验和字段为0

  2. 每两个字节为一组,进位累加求和,多出的加到最后一位

  3. 把求和结果求反,求反即转换成2进制后,0变1,1变0

  4. 把计算结果放入检验和字段

接收端

  1. 把每2个字节为一组,进位累加求和

  2. 把求和结果求反:为0即未检验出差错(不排除没检测出来的错误)

Linux 网络技术栈,看这篇就够了_第40张图片

4.TCP的首部格式(端口号,序号,确认号,窗口,首部长度,检验和,6个标志位)

Linux 网络技术栈,看这篇就够了_第41张图片

TCP首部格式

_端口号_:各占2个字节 当访问百度时,源端口使用客户端系统随机分配的端口号,目的端口是使用熟知端口号80 _序号_:占4个字节。序号范围是【0~2^32-1】,循环使用 _确认号_:占4个字节,是期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则代表:序号N-1为止的所有数据都已正确收到 _窗口_:占2个字节。窗口值是【0~2^16-1】之间的整数。窗口指的是发送本报文段的一方的接收窗口。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量。窗口值作为接收方让发送方设置其发送窗口的依据。 窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着 _首部长度_:占4位,也叫数据偏移,最小20,最大60 _检验和_:占2位,检验和字段检验的范围包括首部和数据两部分 _6个标志位_:

  • 紧急URG:当URG=1时,表明紧急指针字段有效。紧急指针:指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)

  • 确认ACK:只有当ACK=1时确认号字段才有效

  • 推送PSH:接收方TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付

  • 复位RST:当RST=1时,表明TCP连接中出现严重差错,重新建立运输连接

  • 同步SYN:同步SYN=1表示这是一个连接请求或连接接受报文

  • 终止FIN:FIN=1表明发送端的数据已发送完毕,并要求释放运输连接

5.TCP的可靠传输:超时重传机制,TCP流量控制(序号,确认号,确认标志位,窗口,死锁问题与持续计时器),发送缓存和接受缓存的作用,捎带确认与累积确认

超时重传机制: 超时计时器时间RTO:RTO=RTTs+4*RTTD 测量多个sampleRTT求平均值,形成RTT的估计值RTTs: RTTs=(1-α) * RTTS+α * SampleRTT 典型值α=1/8 测量RTT的变化值:RTTs与SampleRTT的差值: RTTd=(1-β) * RTTD+β * |RTTs-SampleRTT| 典型值:β=1/4 TCP流量控制(序号,确认号,确认标志位,窗口,死锁问题与持续计时器) :

  • 序号:发送窗口里面的序号表示允许发送的序号

  • 确认号:表明主机期望收到的下一个序号,而上一个序号位置的数据已经收到了

  • 确认标志位:

  • 窗口:窗口指的是发送本报文段的一方的接收窗口;发送窗口表示:在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去。

  • 死锁问题:发送方等待接收方通知窗口大小,接收方等待发送方发送数据

  • 持续计时器:当发送方收到接收方的零窗口通知,启动持续计时器。若持续计时器到期,就发送一个零窗口探测报文段

  • 接收方发送的确认报文段中: 若窗口仍是零,则重置持续计时器 若窗口不是零,则死锁打开 _发送缓存和接受缓存的作用_:

  • 发送方应用进程把数据发送到TCP的发送缓存;发送缓存暂时存放:1准备发送的数据;2已发送未确定的数据

  • 接收方应用进程从TCP的接收缓存中读取字节流;接收缓存暂时存放:1已收到但尚未提交的数据;2失序的数据 _捎带确认与累积确认_:

  • 累积确认:即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组位置的所有分组都已正确收到了

  • 捎带确认:当一个数据帧到达的时候后,接收方并不是立即发送一个单独的控制帧,而是抑制一下自己并且开始等待,知道网络层传递给他下一个分组,然后,确认信息被附在往外发送的数据帧中(使用帧头中的ack域)。实际上,确认报文搭了下一个外发数据帧的便车。

6.TCP的拥塞控制:网络拥塞的判断,传输轮次与拥塞窗口大小的关系(慢开始与拥塞避免,门限ssthresh,重传计时器超时与三个重复ACK)

网络拥塞的判断:重传定时器超时 ***传输轮次与拥塞窗口大小的关系(慢开始与拥塞避免,门限ssthresh,重传计时器超时与三个重复ACK)***:

  • 慢开始:每经过一个RTT,cwnd翻倍

  • 拥塞避免:每经过一个RTT,cwnd加一

  • 慢开始门限ssthresh:当cwnd = ssthresh时由指数增长切换为线性增长;ssthresh=24时,重传计时器超时,发送方判断为网络拥塞。调整ssthresh=cwnd/2,拥塞窗口cwnd=1,执行慢开始

Linux 网络技术栈,看这篇就够了_第42张图片

7.TCP连接:TCP的套接字,三次握手建立TCP连接,四次握手释放TCP连接

TCP的套接字:就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制 三次握手建立TCP连接:

  • 刚开始客户端A和服务端B都是关闭的

  • B的TCP服务器进程被动打开,准备接受客户进程的连接请求

  • A主动打开,A向B发出SYN报文段,选择初始序号,不携带数据。SYN=1,SEQ=X

  • B收到SYN报文段,发回ACK报文段,选择初始序号,分配缓存,不携带数据。SYN=1.ACK=1.SEQ=Y,ack=x+1

  • A向B发送SYN+ACK报文段,可携带数据。通知上层应用进程:TCP连接已建立。

  • B通知其上层应用进程TCP连接已经建立。

Linux 网络技术栈,看这篇就够了_第43张图片

四次握手释放TCP连接:

  • 客户端A主动关闭。A向B发出FIN报文段,并停止发送是数据。FIN=1,seq=u

  • B通知应用进程。B收到FIN报文段,回复ACK报文段。TCP连接处于半关闭状态:B仍可发送数据。ACK=1,seq=v,ack=u+1

  • B被动关闭。若B已经没有要向A发送的数据,向A发送FIN报文段。FIN=1,ACK=1,seq=w,ack=u+1

  • A收到FIN报文段后,必须发出ACK报文段。ACK=1,seq=u+1,ack=w+1

  • B收到ACK报文段后,TCP连接关闭。

Linux 网络技术栈,看这篇就够了_第44张图片

第六章 应用层

1.域名系统DNS

1)IP与域名的关系,DNS的作用,域名的结构

IP与域名的关系:一个域名只有一个IP地址,但是一共IP地址却是可以对应多个域名的。所以,IP地址与域名是一对多的关系。 DNS的作用:查询域名与IP地址的映射;主机别名;负载均衡(web服务器);Internet核心功能;多层命名服务器构成的分布式数据库 域名的结构:域名的结构由标号序列组成,各标号之间用点隔开

2)四类域名服务器(根域名服务器,顶级域名服务器,权限域名服务器和本地域名服务器)

四类域名服务器(根域名服务器,顶级域名服务器,权限域名服务器和本地域名服务器) 根域名服务器:知道所有顶级域名的映射 顶级域名服务器:负责com,org,ney,cn,uk等顶级域名 权威域名服务器:属于组织的,负责组织内部服务器的解析 本地域名服务器:

  • 主机应至少配置一个本地域名服务器

  • 主机向本地域名服务器发送DNS查询请求报文

  • 本地域名服务器若无法解析一个域名时,首先求助于根服务器

3)迭代与递归解析域名的方式,DNS缓存

_迭代与递归解析域名的方式_:

Linux 网络技术栈,看这篇就够了_第45张图片

Linux 网络技术栈,看这篇就够了_第46张图片

​DNS缓存:每个域名服务器和主机都维护一个DNS高速缓存。 查看主机DNS缓存命令:ipconfig /displaydns 清空主机DNS缓存命令:ipconfig /flushdns

2.文件传输协议FTP:FTP协议的作用,控制连接与21号端口,数据连接与20号端口,匿名FTP的三种使用方式

FTP协议的作用:是互联网上使用最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型和格式,并允许文件具有存取的权限。基于TCP,使用C/S方式 控制连接与21号端口:FTP客户使用临时端口号,用来传输控制信息,使用21号端口,发送你用户名、密码、读取文件等命令 数据连接与20号端口:FTP服务器从控制连接上收到一个读取文件命令后,使用20号端口与客户端临时端口号建立一个数据连接;通过数据连接传输文件;文件传输完毕后关闭数据连接 匿名FTP的三种使用方法:

  • 利用windows系统中的ftp程序,在命令行中输入:ftp ftp服务器域名

  • 使用web浏览器,在地址栏中输入:ftp://ftp服务器域名

  • 使用FTP专用软件,如CuteFTP等

3.WWW服务:HTTP协议的作用,URL,在浏览器的地址栏中输入一个URL后发生的报文交互情况,流水线持久连接,HTTP报文,Cookie的作用,三类web文档,搜索引擎

HTTP协议的作用:使万维网客户程序与万维网服务器程序之间的交互遵循严格的协议,实现万维网上的各种链接,取得所需的web文档

URL:是用来表示从互联网上得到的资源位置和访问这些资源的方法。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,只要能够对资源定位,系统就能对资源进行各种操作,如存取、更新、替换和查找其属性等。

Linux 网络技术栈,看这篇就够了_第47张图片

​/规定的格式 <主机>是存放资源的主机在互联网中的域名 <端口>/<路径>有时可省略

_在浏览器的地址栏中输入一个URL后发生的报文交互情况_:

Linux 网络技术栈,看这篇就够了_第48张图片

​流水线持久连接:

  • HTTP 1.1的默认选项

  • 客户端只要遇到一个引用对象就尽快发出请求

  • 理想情况下,收到所有对象耗时约1RTT

  • 所需时间=文档发送时间+2RTT

Linux 网络技术栈,看这篇就够了_第49张图片

​HTTP报文:

  • HTTP请求报文=请求行+首部行+空行+实体主体

  • HTTP响应报文=状态行+首部行+空行+实体主体

Cookie的作用:网站为识别用户身份、跟踪用户访问行为而存储在用户端的数据。主要用在身份认证,购物车,个性化推荐,隐私问题等方面上

类web文档:

  • 静态web文档 文档创建后保存在服务器中,内容不变

  • 动态web文档 文档的内容是在浏览器访问服务器时,由服务器端的CGI程序动态创建的

  • 活动web文档 服务器返回活动文档程序,浏览器运行该程序,活动文档的内容可连续改变

搜索引擎:

  • 全文检索搜索引擎:谷歌,必应,百度

  • 分类目录搜索引擎:雅虎,新浪,搜狐,网易

4.电子邮件系统:电子邮件系统的组成,E-mail格式,SMTP,MIME,POP3和IMAP的区别,基于万维网的电子邮件

电子邮件系统的组成:邮件客户端+邮件服务器+邮件传输协议(Outlook,Foxmail,web浏览器+Winmail Server U-mail+STMP,POP/IMAP) E-mail格式:

Linux 网络技术栈,看这篇就够了_第50张图片

​SMTP,MIME,POP3和IMAP的区别:

  • SMTP协议

  • 使用TCP,端口25

  • 传输过程的三个阶段:建立连接、报文传输、关闭

  • 命令响应交互模式:ASCII文本(命令)、状态代码和语句(响应)

  • MIME协议(多媒体扩展) 通过在邮件首部增加额外的行以声明MIME的内容类型

  • 邮件读取协议POP3、IMAP

Linux 网络技术栈,看这篇就够了_第51张图片

​基于万维网的电子邮件:

Linux 网络技术栈,看这篇就够了_第52张图片

5.动态主机配置协议DHCP:DHCP的作用(IP地址,子网掩码,默认网关IP地址,默认DNS服务器IP地址),DHCP的工作过程,IP租约期,DHCP服务器的位置及DHCP中继

DHCP的作用(IP地址,子网掩码,默认网关IP地址,默认DNS服务器IP地址):主机从DHCP服务器动态获取IP地址、子网掩码、默认网关地址、DNS服务器地址

DHCP的工作方式:

  1. 需要IP地址的主机广播发送DHCP DISCOVER报文,寻找DHCP服务器

  2. DHCP服务器从IP地址池中选取一个IP地址,广播DHCP OFFER报文,提供IP地址等信息给主机

IP租约期:DHCP服务器分配给DHCP客户的IP地址的临时使用期。IP租用期的长短不固定,通常在DHCP服务器端设定

DHCP的工作过程:

  1. DHCP服务器在UDP 67端口监听,等待客户端的请求

  2. DHCP从UDP68端口发送DHCPDISCOVER报文

  3. DHCP服务器发出DHCPOFFER报文,DHCP客户端可能收到多个DHCPOFFER报文

  4. DHCP客户从几个DHCPOFFER报文中选择其中一个,并向所选择的DHCP服务器发送DHCPREQUEST报文

  5. 被选择的DHCP服务器发送DHCPACK报文,进入已绑定状态,开始使用得到的临时IP地址

  6. 租用期到达50%时,DHCP客户发送DHCPREQUEST报文,要求更新租用期

  7. DHCP服务器若同意,则发回DHCPACK报文

  8. DHCP服务器若不同意,则发回DHCPACK报文,客户须重新申请IP地址

  9. 若DHCP服务器不响应,则在租用期到达87.5%时,DHCP客户必须重新发送DHCPREQUEST报文

  10. DHCP客户可随时发送DHCPRELEASE报文提前释放IP地址

Linux 网络技术栈,看这篇就够了_第53张图片

DHCP服务器的位置及DHCP中继: DHCP服务器可以不和主机在同一个网络,可以通过DHCP中继代理单播穿过其他网络传到DHCP服务器上

Linux 网络技术栈,看这篇就够了_第54张图片

6. P2P应用:文件分发

Linux 网络技术栈,看这篇就够了_第55张图片

发送Trunk原则:Tit-for-Tat

  • 节点(Alice)向4个邻居发送Chunk:

  • 正在向Alice发送Chunk且速率最快的4个

  • 每10秒重新评估Top4

  • 每30秒随机选择一个其他节点,向其发送Chunk

  • 新节点可能成为ALICE的top4

第七章 网络安全

网络攻击的常见方式,对称密码体制和公钥密码体制,数字签名与保密通信,秘钥分配(KDC,CA)

网络攻击的常见方式:

  1. 从原站截获数据

  2. 篡改从原站截获的数据

  3. 用恶意程序攻击目的站

  4. 多主机访问目的站导致拒绝服务 对称密码体制和公钥密码体制:

Linux 网络技术栈,看这篇就够了_第56张图片

  • 对称密钥密码体制:E和D公开,K1和K2保密(K1=K2),加密密钥和解谜密钥相同

  • 公钥密码体制:E和D公开,K1公开,K2(保密),每人都有一堆密钥(公钥与私钥),且二者不同 特点:

  • 密钥对产生器产生出接收者B的一对密钥:加密密钥PKb和解谜密钥SKb。发送者A所用的加密密钥PKb就是接收者B的公钥,它向公众公开。而B所用的解密密钥SKb就是接收者B的私钥,对其他人保密

  • 发送者A用B的公钥PKb通过E运算对明文X加密,得出密文Y,发送给B。B用自己的私钥SKb通过D运算进行解密,恢复出明文

  • 虽然公钥可以用来加密,但却不能用来解密

数字签名与保密通信:

  • 数字签名的特点:

  • 接收者能够核实发送者对报文的签名。报文鉴别

  • 接收者确信所收到的数据和发送者发送的完全一样没有被篡改过。报文的完整性

  • 发送者事后不能抵赖对报文的签名。不可否认

Linux 网络技术栈,看这篇就够了_第57张图片

​数字签名

秘钥分配(KDC,CA):

Linux 网络技术栈,看这篇就够了_第58张图片

Linux 网络技术栈,看这篇就够了_第59张图片

第九章 无线局域网

两类WLAN,AdHoc,无线传感器网络,CSMA/CA,802.11帧(四个地址)

两类WLAN:

  1. 有固定基础设施的WLAN 主机之间的通信必须通过AP的转发

  2. 无固定基础设施的WLAN(移动自组织网络Adhoc) 无AP,临时网络,不和其他网络连接;结点需运行路由选择协议,结点需转发分组

无线传感器网络WSN: 低功耗、低宽带、低存储容量、物联网

Linux 网络技术栈,看这篇就够了_第60张图片

​CSMA/CA: 情景:A要发送数据给B,C也想发送数据给D

  • A监听到信道空闲,等待一个分布帧间隔DIFS(128μs)后发送该帧

  • B收到数据帧后,等待一个短帧间隔SIFS(28μs)后发回一个确认帧

  • C监听到信道忙,选取一个随机回退值继续侦听。如果信道空闲递减该值,如果信道忙保值该值;当回退值=0时,发送帧并等待确认

Linux 网络技术栈,看这篇就够了_第61张图片

CSMA/CA

  • CSMA/CA可能发生碰撞的两种情况:

  • 随机回退值相近 情景A要发送数据给B,C也想发送数据给D - A和C监听到信道忙,各选取一个随机回退值继续侦听 - 当两个回退值同时为0时,A和C同时发送数据

Linux 网络技术栈,看这篇就够了_第62张图片

  • 隐蔽站问题 情景:A要发送数据给B,C也想发送数据给B - C在A的传输范围之外,A和C都认为信道空闲,都向B发送数据–将发生碰撞

Linux 网络技术栈,看这篇就够了_第63张图片

​802.11帧:

Linux 网络技术栈,看这篇就够了_第64张图片

Linux 网络技术栈,看这篇就够了_第65张图片

Linux 网络技术栈,看这篇就够了_第66张图片

Linux 网络技术栈,看这篇就够了_第67张图片

Linux 网络技术栈,看这篇就够了_第68张图片

其他

1.归纳比较:

地址长度(MAC地址,IPv4地址,IPv6地址,端口号)

  • MAC地址:6个字节。前三个字节是组织唯一标识符(24位)由IEEE注册管理机构RA分配,后三个字节是扩展唯一标识符(24字节)由厂家自行指派

  • IPv4地址:32比特,4个字节。用来标识主机、路由器的接口

  • IPv6地址:128位,16字节。可以用冒号十六进制记法、零压缩表示法、CIDR表示法等表示。有组播地址;单播地址;任播地址三种分类

  • 端口号:16bit,运输层通过端口号来区别相同计算机所提供的这些不同的服务

首部长度(帧首部,IPv4首部,IPv6首部)

  • 帧首部:以太网帧首部加尾部长度共为18字节

  • IPv4首部:首部固定长度为20字节加上选项长度(0~40)

  • IPv6首部:基本首部长度为40字节

差错检验(帧校验CRC,IPv4,TCP和UDP的校验检验和)

  • 帧校验CRC

  1. 在发送端先把数组按照一定划分大小划分为组,假设每组K个比特,要传输的数据记位M,发送方要做的就是在数据M后面添加用于差错检验的n位冗杂码,然后构成一个帧发送出去,也就是说此时发送的数据在原理基础上增加了n为冗杂码

  2. 首先在原数据M后面添加n个0相当于左移n位,此时数据长度变为原理的每组K个比特加n即(k+n)位。然后用该序列除以在计算之前规定的一个长度为(n+1)位的除数p,根据二进制的模2运算,计算出余数R。这个余数R就会作为冗杂码拼接在原数据后面发送出去

  3. 模2算法:一样为0,不同为1

  4. 接收方把收到的每一个帧都除以同样的除数,然后检查得到的余数R。R=0即这个帧没问题,接受;R!=0,则判断这个帧有错。

  • IPv4校验检验和

  1. 先设置“首部检验和”字段为0

  2. 将首部每2个字节当做一个数

  3. 将所有数相加求和,进位累加“3029F=02A2”

  4. 对求和结果求反得:FD5D

  5. 则发送方发送的IP分组首部的检验和为:FD5D

  6. 接受方收到的IP数据报要进行检验

  7. 将首部每2个字节当做一个数

  8. 将所有数相加求和,进位累加:3FFFC=FFFF

  9. 对求和结果求反,得:0000

  10. 结论:收到的IP分组首部没有检测出差错

  • UDP校验检验和

  1. UDP校验检验和在计算检验和时,要在UDP用户数据报之前增加伪首部。把首部,伪首部,数据部分一起都检验。

  2. 在发送方,首先是先把全零放入检验和字段,在把伪首部以及UDP用户数据报看成是由许多16位字串接起来。若UDP用户数据报的数据部分不是偶数字节,则要填入一个全零字节(但不发送)。按二进制算法将他们相加,再求反码即为检验和

  3. 在接收方,把收到的UDP用户数据报连同伪首部一起,按照二进制反码求这些16位字的和。当无差错时其结果应为全1;否则就表明有差错

  4. UDP的伪首部由源IP地址,目的IP地址,0,协议号17,UDP数据报长度组成

  • TCP校验检验和

  • 与UDP校验检验和十分相像,仅在伪首部的协议号由17改为6,UDP长度改为TCP长度上有区别

路由技术(RIP,OSPF,BGP,MPLS)

  • RIP 内部网关协议,分布式基于距离向量的路由选择协议。RIP要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录,使用跳数表示目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳以内

  • OSPF 开放式最短路径优先,用著名的迪克斯特算法计算最短路径树,使用分布式链路状态协议。会讲一个自治系统划分为若干个小区域,利用洪泛法交换状态信息

  • BGP 边界网关协议BGP,只能力求寻找一条能够到达目的网络且比较好的路由,并非要寻找一条最佳路由。采用了路径向量路由选择协议。在配置BGP时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人。一般来说,两个BGP发言人都是通过一个共享网络连接到一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。一个BGP发言人与其他AS的BGP发言人要交换路由信息,就要先建立TCP连接(端口号179),然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。

  • MPLS 多协议标记交换MPLS,利用面向连接技术,使每个分组携带一个叫做“标记”的小整数,当分组到达交换机时,交换机读取分组的标记,并用标记值来检索分组交换表,再进行将标记由入标记兑换成出标记后,将报文发出到下一个LSR(标记交换路由器)。当到达出口时,MPLS域的出口结点就把MPLS的标记去除,发给正常的主机和路由器

数据交换(电路交换,报文交换,分组交换)

  • 电路交换 由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路铸逐段连接而成),电话交换的经典应用就是电话通讯网络。电话通信有三个阶段:建立、通话、拆除

  • 报文交换 报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式

  • 分组交换 分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去。是现在计算机较常使用的交换方式

TCP与UDP

  • TCP 传输控制协议,是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须需要经过三次“对话”才能建立起来,而结束需要四次“对话”

  • UDP UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输宽带的限制;在接收端,UDP把每个消息端放在队列中,应用程序每次从队列中读一个消息端 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

IPv4与IPv6

IPv6的优点:

  • 更大的地址空间

  • 扩展的地址层次结构

  • 灵活的首部格式

  • 改进的选项

  • 允许协议的继续扩充

  • 支持即插即用

  • 支持资源的预分配

  • 8字节对齐

IPv4和IPv6的区别:

  1. 取消了首部长度字段,因为它的首部长度是固定的

  2. 取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能

  3. 取消了总长度字段,改用有效载荷长度字段

  4. 取消了标识】标志、和片偏移字段,因为这些功能已包含在分片扩展首部中

  5. 把TTL字段改称为跳数限制字段,但作用是一样的

  6. 取消了协议字段,改用下一个首部字段

  7. 取消了检验和字段,这样加快了路由器处理数据报的速度

  8. 取消了选项字段,而是扩展首部来实现选项功能

P2P与C/S

  • P2P p2p对等连接是指两台主机在通信时并不区分哪一个是服务请求方哪个是服务提供方,只要两台主机都运行了对等连接软件。他们就可以进行平等的、对等连接通信

  • C/S 指客户端服务器方式,都是指通信中所涉及的两个应用进程,客户是服务请求方,服务器是服务提供方。

搜索引擎(全文检索与分类目录)

  • 全文检索 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再连接到另一个网站,像蜘蛛爬行一样。然后按照一定的规则建立一个很大的在线索引数据库供用户查询。用户在查询时只要输入关键词,就从已经建立的索引数据库里查询。

  • 分类目录检索 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站的登录条件,则输入到分类目录的数据库中,供网上用户查询

CSMA/CD与CSMA/CA

  • CSMA/CD 载波监听多点接入/碰撞检测技术 多点接入,就是说明这是总线型网络许多计算机以多点接入的方式连接在一根总线上。协议的本质是载波监听和碰撞检测 载波监听,就是用电子技术检测总线上有没有其他计算机也在发送,就是检测信道,不管在发送前,还是在发送中,每个站都必须不停地检测信道 碰撞检测,也就是边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。当电压变化幅度超过限制值,就认为总线上至少有两个站同时在发送数据。

  • CSMA/CA 就是带有冲突避免的CSMA/CD,属于升级版,主要应用在无线网络上

网络攻击方式(蠕虫,木马,逻辑炸弹,后门入侵,流氓软件,窃听,拒绝服务攻击)

  • 蠕虫、木马、逻辑炸弹、后门入侵、流氓软件 都是属于恶意程序

  • 窃听 从源站截获后再发给目的站

  • 拒绝服务攻击 指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常的服务,甚至完全瘫痪

2.主要命令

Ipconfig命令(/all,/displaydns,/flushdns,/release,/renew)

  • ipconfig /all 显示它已配置且所要使用的附加信息,并且显示内置于本地网卡中的物理地址

  • ipconfig /displaydns 显示本地DNS内容

  • ipconfig /flushdns 清除本地DNS缓存内容

  • ipconfig /release 所有接口的租用IP地址便重新交付给DHCP服务器

  • ipconfig /renew 本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址

ping命令(-n,-l,-t等参数)

  • ping -n count count参数指定发送的echo数据包数,默认为4

  • ping -l size 定义echo数据包大小。默认为32字节

  • ping -t 想目标主机连续不断发送数据包,直到被用户已ctrl+C中断

Traceroute命令

  • traceroute 查看发送到目标网站的路径

arp命令(-a,-d,-s参数)

  • arp -a 显示ARP表中所有项目

  • arp -d 清除ARP高速缓存中所有项目

  • arp -s 向ARP高速缓存中添加静态表项

3.术语:ISP,IXP,Hub,LAN,MAN,WAN,WLAN,VLAN,P2P,C/S,CSMA/CD,CSMA/CA,LiFi,Wifi,ADSL,HFC,FTTH,URL,VPN,IPSec,NAT,ICMP,IGMP,MSS,BGP,自治系统AS,HTTPS,MPLS,AP,SSID,AdHoc,区块链

  1. ISP 互联网服务提供者ISP,在许多情况下ISP就是一个进行商业活动的公司

  2. IXP 互联网交换点IXP的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络转发

  3. Hub 多端口转发器Hub,在以Hub为中心设备时,即使网络中某跳线路产生了故障,并不影响其他线路的工作。所以HUB在局域网中得到了广泛的应用

  4. LAN 局域网,一般用微型计算机或工作站通过高速通信线路相连,但地理上则局限在较小的范围

  5. MAN 城域网,作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离是5~50Km

  6. WAN 广域网,作用范围通常是几十到几千公里,因而有时也称为远程网。是互联网的核心部分,其任务是通过长距离运送主机所发送的数据

  7. WLAN 无线局域网,是指应用无线通信技术将计算机互联起来,构成可以互相通信和实现资源共享的网络体系。无线局域网本质的特点是不再使用通信电缆将计算机与网络连接起来,而是通过无线的方式连接,从而使网络的构建和终端的移动更加灵活

  8. VLAN 虚拟局域网,是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样

  9. P2P 对等连接,是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件,他们就可以平等的、对等连接通信

  10. C/S 客户-服务器方式,客户和服务器都是指通信中所涉及的两个应用进程,客户是服务请求方,服务器是服务提供方

  11. CSMA/CD 载波监听多点接入/碰撞检测技术 多点接入,就是说明这是总线型网络许多计算机以多点接入的方式连接在一根总线上。协议的本质是载波监听和碰撞检测 载波监听,就是用电子技术检测总线上有没有其他计算机也在发送,就是检测信道,不管在发送前,还是在发送中,每个站都必须不停地检测信道 碰撞检测,也就是边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。当电压变化幅度超过限制值,就认为总线上至少有两个站同时在发送数据。

  12. CSMA/CA 带有冲突避免的载波监听多路访问技术 是一种数据传输时避免各站点之间数据传输冲突的算法,其特点是发送包的同时不能检测到信道上有无冲突,只能尽量避免

  13. LiFi 可见光通讯LiFi,点一盏LED灯就能上网

  14. WiFi 使用802.11系列协议的局域网又称为WiFi

  15. ADSL 非对称数字用户线技术ADSL,用数字技术对现有的模拟电话用户线进行改造,使其能够承受宽带数字业务。 ADSL由三个部分组成:数字用户线接入复用器DSLAM、用户线和用户家中的一些设施。其中DSLAM包括许多ADSL调制解调器,也称接入端接单元ATU。需要成对使用,用户端的是ATU-R和电话分离器连接;电话端局的是ATU-C

  16. HFC 光纤同轴混合网HFC网 是在有限电视网的基础上开发的一种居民宽带接入网。机顶盒连接在同轴电缆和用户的电视机之间,使模拟电视机能够接受数字电视信号。还需要增加一个为HFC网使用的调制解调器,它又称为电缆调制解调器。不需要成对使用,而只需安装在用户端。

  17. FTTH FTTX技术即光线到x技术,最常见的是FTTH光线到户技术,也有FTTC到路边、FTTZ到小区、FTTO到办公室、FTTB到大楼、FTTF到楼层、FTTD到桌面等。

  18. URL 统一资源定位符URL,是用来表示从互联网上得到的资源位置和访问这些资源的方法 URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位 <协议>://<主机>:<端口>/<路径>

  19. VPN 虚拟专用网VPN,在公用网络上建立专用网络,进行加密通讯。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问

  20. IPSec 是一个协议报,通过对IP协议的分组进行加密和认证来保护协议的网络传输协议族

  21. NAT 网络地址转换NAT,需要在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。

  22. ICMP 网际组控制协议ICMP

  23. IGMP 网际组管理协议IGMP,使用IP数据报传递其报文,但他也向IP提供服务。 第一步,当某台主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP报文。

  24. MSS 最大报文段长度MSS,是每一个TCP报文中的数据字段的最大长度

  25. BGP 外部网关协议BGP,只能力求寻找一条能够到达目的网络且比较好的路由,并非寻找一条最佳路由,BGP采用了路径向量路由选择协议。

  26. 自治系统AS 是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。

  27. HTTPS 超文本传送协议HTTP,HTTPS是以安全为目的的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。在HTTP的基础上加入了SSL,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

  28. MPLS 多协议标记交换MPLS,多协议表示在MPLS的上层可以采用多种协议。MPLS利用面向连接技术,使每个分组携带一个叫做标记的小整数。当分组到达交换机时,交换机读取分组的标记,并用标记值来检索分组转换表

  29. AP 接入点,基本服务集内的基站叫做AP,其作用和网桥类似

  30. SSID 服务集标识符SSID,即WLAN的名称,当网络管理员安装AP时,必须为该AP分配一个不超过32字节的服务集标识符SSID合一个信道

  31. AdHoc AdHoc(点对点模式):AdHoc模式就和以前的直连双绞线概念一样,是P2P的连接,所以就无法与其它网络沟通了,可以用来组件家庭无线局域网

  32. 区块链 本质上来讲,它是共享数据库,存储于其中的数据或信息,具有“不可伪造”,“全程留痕”,“可以追溯”,“公开透明”,“集体维护”等特征。

你可能感兴趣的:(linux,服务器,网络协议栈,linux内核)