当前位置:   article > 正文

Linux网络技术栈,看这篇就够了(图文并茂)

linux网络栈

5a8613882fd81d8a8e72f69aad75946a.gif

第一章 概述

fad11287bf47f72c0dff081e87bbfe1a.gif

1.基本概念

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

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

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

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

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

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

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

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

04ebbdba4fb5731b10f465f92cb3692b.png

- 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. 时延:指数据从网络的一端传送到另外一端所需的时间。

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

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

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

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

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

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

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

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

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

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

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

  2. 分组交换:

    报文:源应用发送的信息整体

    分组:由报文拆分成较小的数据块

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

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

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

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

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

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

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

TCP/IP体系结构58947b1532b3ea8ef6e132265bc476b7.png567929381885f8a4f8aae5cbab953a5e.png4b000836adb8a7e935432e0bf74b2869.png

数据的封装与解封装9dc8d3c3a60f91024020d5b290567ba7.png*要注意链路层不仅加了首部还加了尾部a51b8beb48f4a2743c20707e5438ec37.png


第二章 物理层

564ceade4abe41f5dad0e99b43701870.gif

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

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

437d21160b265491055d13d9d01f14bb.png


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

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

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

双绞线

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

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

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

同轴电缆:

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

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

光纤(单模和多模)

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

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

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

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

几种复用技术的特点:

  1. 频分复用

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

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

时分复用

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

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

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

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

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

码分复用

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

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

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

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

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

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

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

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

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

  • ADSL

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

      2dbcd0251713e9c5b4ec16d84d51be45.png

  • HFC

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

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

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

      e5d869eaaea3c592c67892218dbb8fcf.png

  • FTTx

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

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

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


第三章 数据链路层

7826c86845570e3a75ca7a9a7e94c480.gif

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

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

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

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

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

  5. 三个基本问题:

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

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

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

f294f9157315d90bed24b12bcd6addc4.png

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

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

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

  • PPP帧格式

    5b8f5f98f6f48abe6cbe68de12cd7610.png

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

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

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

    e23879f64d6ad82e293d1ef697c19de1.png

  • 差错检测(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次,仍不能成功时即丢弃该帧,并向高层报告。

      1f5efec3a7a398c344c1dbbcb1c91898.pngaeae641b2a8e09bd346c391552d860ab.png

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

    5fac25b537ab81f80b8782c4e1ee45e9.png

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

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

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

d7dfee8fea4df212761a1abdab4b8039.png

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。

2bee4b86d0b5ed869d48ec3c0bc856a4.png

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


第四章 网络层

a68511f6b3cf76264ea9b4e7544cfd6a.gif

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,但总长度必须不超过MTUIP分片与重组(标识,标志,片偏移)

  • 网络链路存在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地址所在网络的网络地址,广播地址,子网数和子网中的主机数

子网划分

5ad79b8247d6cf0b903ab2da396da2df.png

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

25979cf3a5b75fdabd7c588672978735.png

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

6747c53842bf098ad0d7b313cea21226.png

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

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地址,计算聚合后的地址) :将多个子网聚合为一个较大的子网。前提:地址块是连续的。最长前缀匹配优先。

f06fb419213ac16f867b98145c200618.png

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值较小,则用该项目替换原项目。

56dd057e3eda49f1238ac141d7b22daa.png

工作过程

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

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

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

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

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

特点

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

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

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

  4. 网络规模较小;

  5. 以跳表示链路开销;

  6. 占用宽带较多;

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

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

链路状态

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

  • 相邻路由器接口IP地址

  • 链路的开销

OSPF的工作过程

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

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

    • 哪些路由器是相连的

    • 链路代价是多少

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

    b37b607462fe500b22179ceaee40a260.png

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

    27e00913a63b4f80e52f56651ad34664.png

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

    ed07dd52124c5b79cd735e47b2a41a0d.png

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

d2ed7ea04da3f61d74370546f95f46d8.png

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

a20fc495a42d0f6bd226deaed9e6120a.png

8434ce4a458e407a3ea598cda1faf2c1.png

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

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

64b490152ef055b45fc57843aadd55d5.png

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

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

fca8153b26b23affbcf40596901b1b80.png

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

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

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

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

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

    6bee057244b8e7f92152c0ea2fb82570.png

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:外地出差的工作人员与公司网络之间建立的VPNNAT路由器封装IP。

    数据报的过程

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

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

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

    0eacb5205e863bebbac3bbd9db7feb41.png

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

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

91501e98c924652cfc03b032a484d451.png

与传输路由技术的比较

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

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

负载均衡与FEC

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

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

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

    1c4fbf4e1f8d642854fadbae1f3b72b1.png


第五章 运输层

d0bdccf17a7d1c21528c074fedb58685.gif

1.运输层的作用

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

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

UDP和TCP的特点:

  • UDP

    • 支持单播、多播、广播

    • 无连接,不可靠

    • 可以任何速率发送数据

  • TCP

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

    • 面向连接,可靠按序

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

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

及使用它们的应用程序:

0323389fce0007d4ee3944b4b2eb1795.png

熟知端口号

7b7afc8a94fe6f68a582a9dfc0b6ff93.png1c33a0ab58bb9ed9992c780d6359f404.png

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

首部格式

5de45c7e0270de81c193e16bb7739792.png

检验和

4480d200827aee8fd879152d40d00dec.png

发送端:

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

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

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

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

接收端

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

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

    2052268b46cf69e79844d5a7964a8b0e.png

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

8fa18de732a7ef70440f835e06938d72.png

端口号:各占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/4TCP流量控制(序号,确认号,确认标志位,窗口,死锁问题与持续计时器)

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

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

  • 确认标志位;

  • 窗口:窗口指的是发送本报文段的一方的接收窗口;发送窗口表示:在没有收到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,执行慢开始。

    8a3a9d359122df3e3dbfeaaedeb8155b.png

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连接已经建立。

    ac2c085e87496b4cab1ee8943d9fd67e.png

四次握手释放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连接关闭。

    a49cbe12ca5932ec58ef0557073d0ea5.png

第六章 应用层

64e14c702f445539f95d9cbec6c52af4.gif

1.域名系统DNS

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

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

e6410180a53bb9ea26ee714825e54c9b.png

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

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

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

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

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

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

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

9ef290b35b46cccaa0efe4fc2ebe77df.pngfa635b66abd6f8333babe98f002d78b0.png

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给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,只要能够对资源定位,系统就能对资源进行各种操作,如存取、更新、替换和查找其属性等。

79106b83ec506451c8b3d20c7f8a7254.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/258540
推荐阅读
相关标签