本科课程:计算机网络(四)

网络层

transport segment from sending to receiving host
encapsulates segments into datagrams 把报文封装为数据报
network layer protocols in every host, router

网络层的两个功能:

  • 转发功能(考虑的是局部网络)
    move packets from router’s input to appropriate router output

  • 路由功能(考虑的是全局网络)
    determine route taken by packets from source to dest

网络层是主机之间的连接(host-to-host)
传输层是进程之间的连接(不考虑中间网络设备)

网络层的三个主要的组件:

  • IP protocol
  • ICMP protocol
  • routing protocol

一、virtual circuit and datagram networks 虚拟电路网络和数据报

  • datagram network provides network-layer connectionless service
  • virtual-circuit network provides network-layer connection service

网络层和传输层的区别:

  • 1.service : host-to-host

  • 2.no choice : network provides one or the other

  • 3.implementation : in network core

1、虚拟电路

类似于电话线,使用时建立,结束后拆除

每条虚拟电路包括:

  • path from source to destination
  • VC numbers, one number for each link along path 每一条链路都有一个ID
  • entries in forwarding tables in routers along path

VC number can be changed on each link
VC 标识号是可变的,每换了一条链路就会换一个标识号

2、forwarding table 转发表

VC routers maintain connection state information
虚拟电路的路由器包含连接状态信息
在这里插入图片描述

Longest prefix matching 最长前缀匹配原则(二进制匹配)

在这里插入图片描述

从头开始匹配的字节数最多的,来选择对应的端口

在这里插入图片描述
比如这个地址走的是端口1而不是端口2

3、虚拟电路网络和数据报网络的区别

datagram :

  1. “elastic” service, no strict timing req.
    弹性服务,对时延不严格要求
  2. 有很多类型的连接介质
  3. “smart” end systems
    智能终端(简化网络的复杂性)

virtual circuit :

  1. strict timing, reliability requirements
    need for guaranteed service
    需要严格的时延要求和高可靠性
  2. “dumb” end systems
    简单终端

二、router 路由器

两个主要功能:

  • run routing algorithms/protocol 实现路由算法
  • forwarding datagrams from incoming to outgoing link
    转发数据报

在这里插入图片描述

1、input ports

在这里插入图片描述

  • 在进入路由器进行转发之前,会在每一个本地输入端口(红色框)查询转发表,分散路由器的内存使用,如果目标地址是本机,则交给该路由器解析数据;如果目标地址在转发表中,则按照转发表转发,如果不在转发表中,则跳转到默认的下一跳地址
  • 假如数据报到的太快,就会在输入端口处排队

2、switching fabrics

transfer packet from input buffer to appropriate output buffer
将包转发
一共有三种转发方式:

switching iva memory

switching iva a bus

不需要选择处理器来处理
共享总线,带宽需要争夺

switching iva interconnectiong network

3、outer ports

三、Internet Protocol IP协议

1、IP协议数据报格式

在这里插入图片描述
ver:IP协议版本
head len:IP数据报头部的长度
type of service:服务类型,一般不使用
length:数据报总长度字段(占16位)
16-bit identifier:
flgs:标识位(占3位)
fragment offset:偏移量,指当前分片在原始位置中占的位置
time to live :IP分组的生存期,指该分组最多能经过多少跳
upper layer:
header checksum:校验和
source IP address:

2、IP数据报分片

3、IPv4地址

a、子网

b、 CIDR

c、Hierarchical addressing

d、DHCP

e、NAT (network address translation)

同一个ip地址上映射有多个端口对应内部网络(16-bit的端口号一共有60000多个端口)

NAT translation table: every (source IP address, port #) to (NAT IP address, new port #) translation pair // NAT转发表
在这里插入图片描述
replace outgoing datagrams, and then remeber it in NAT translation table , at last replace incoming datagrams // 一记录两替换

争议点:

  • routers should only process up to layer 3 //路由器应该只工作在第三层
  • violates end-to-end argument //端对端的系统所不允许
  • address shortage should instead be solved by IPv6 //地址短缺应该使用IPv6解决

外部不能直接访问内部地址内的主机,即对外隐藏内部主机(安全性)
如果需要访问内部主机 :

  • statically configure NAT // 静态配置NAT(对外对内的ip地址和端口)
  • IGD protocol & UPnP protocol // 通用即插即用 (UPnP) 互联网网关设备 (IGD) 协议
  • relay bridges // 中继转发
    在这里插入图片描述

4、ICMP协议

" InternetControlMessageProtocol " 因特网控制报文协议

用于主机和路由器之间的通信:

  • error reporting // 差错报告
  • echo request/reply // 回声请求/应答

ICMP协议的功能主要有:

  • 确认IP包是否成功到达目标地址
  • 通知在发送过程中IP包被丢弃的原因

我们需要注意几点:

  • ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
  • ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6

ICMP的消息包括类型和代码,部分类型和代码表:
在这里插入图片描述
其中经常使用的类型和代码消息:

  1. ping request :8,0
  2. ping reply :0,0
  3. dest host unreachable:3,3 //目标不可达
  4. TTl expired:11,0 //传输超时报文
    & TTl expired:11,1//分段重组超时

trace route

利用ICMP定位源主机和目标主机之间所有经过的路由器

traceroute发送的ICMP报文使用UDP协议

ICMP报文的TTL字段:代表路由器个数

  • 当TTL=0,生命周期结束, 路由器会丢弃这个报文,并返回超时报文
  • 每经过一个路由器,TTL的值-1
  • 发送多组报文,其中第一组TTL=1、第二组TTL=2…

当ICMP报文到达时,源主机会记录下RTT时间。

当目标主机返回 “ port unreachable ”的ICMP报文时,停止发送

参考文章:ICMP协议详解

5、IPv6版本协议

32-bit address space
fixed-length 40 byte header // 头部长度固定40字节
no fragmentation allowed // 不允许分片处理

数据报格式:

在这里插入图片描述
pri:(priority)优先级
payload len : 载荷长度
next hdr : 指向第一个扩展头部的option字段(放在data里)
hop limit : 和TTL一样的作用
source address : 128-bits, 16字节的长度
destination address : 128-bits, 16字节的长度

a、IPv4和IPv6的转换

在这里插入图片描述

  • 把 IPv6 的数据报作为 IPv4 的一部分

在这里插入图片描述
tunneling: // 隧道
IPv6 datagram carried as payload in IPv4 datagram among IPv4 routers

四、routing algorithms 路由算法

所谓的路由算法: 寻找最小费用路径的算法

算法分类:

1、静态路由&动态路由:

static

  • routes change slowly over time 路由更新快
  • manually configurate 手工配置
  • high priority 优先级高

dynamic

  • routes change more quickly 路由更新快
  • update automatic 自动配置
  • prompt respond change of link cost 及时响应链路费用的变化

2、全局信息&分散信息:

global

  • all routers have complete topology, link cost info 路由器掌握完整的网络拓扑和链路费用信息
  • 代表算法:Link-State路由算法

decentralized

  • router knows physically-connected neighbors, link costs to neighbors 路由器只掌握物理相连的邻居以及链路费用
  • iterative process of computation, exchange of info with neighbors 通过邻居间信息交换、运算的迭代过程来更新路由信息。
  • 代表算法:distance vector 路由算法(矩阵向量)

1、Link-State Routing Algorithm //链路状态路由算法(LS)

首先将网络抽象
网络结构图:

在这里插入图片描述
链路费用:
c(x,x’) = cost of link (x,x’) 路径费用:(链路费用之和) cost of path (x1, x2,
x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) eg. cost of path
(u,v,w,z)=2+3+5 =10

使用最短路径(Dijkstra)算法
计算从一个结点(“源” )到达所有其他结点的最短路径

伪代码:

1、初始化:
   N' = {u} // N'为目前已知的路径                                                                                      
   for all nodes for n                                                                   
        if n is a neighbor of u                                                      
            then D(n) = c(u,n)                                                        
        else D(n) =2、循环阶段
    find w not in N' such that D(w) is a minimum                    
    add w to N'                                                                            
    update D(n) for each neighbor n of w and not in N' //对最小费用的链路进行更新         
        D(n) = min(  D(n)D(w)+c(w,n)  )                              
    until N' = N                                                                            

在这里插入图片描述
N’ : 目前已知的最小费用路径的集合
D(v),p(v):从源点到该点的路径费用,前驱节点
通过找每一个D(v)、D(w)、D(x)、D(y)、D(z)的最小值,确定一个u到z的最短路径,然后就可以配置路由表
去掉非最短费用的线,只保留最短费用路径可得最短路径树
在这里插入图片描述
根据上图可知:u到z的最小路径是uwvyz

可能产生的链路震荡
链路状态更新的太快并且不断变化,数据报就一直在路由间切换

参考文章:路由选择算法——链路状态算法(包括了算法实现代码)

2、Distance vector algorithm //距离向量算法

如果每个结点x以D_x(y)开始,对网络N中所有结点,估计从它自己到结点y的最低路径费用。
在这里插入图片描述

  1. 对每个邻居结点v,从x到相邻邻居v的费用为c(x,v)。
  2. 结点x的距离向量Dx,包含了x到N中所有目的地y的费用估计值。
  3. 每个邻居的距离向量Dv。

3、Hierarchical routing

五、routing in the Internet 大型网络中内部网关路由协议(IGP)的选择

IGP(内部网关协议)是在一个自治网络内网关(主机和路由器)间交换路由信息的协议。路由信息能用于网间协议(IP)或者其它网络协议来说明路由传送是如何进行的。

IGP协议包括RIP、OSPF、IS-IS、IGRP、EIGRP。

域:自治系统
Internet网被分成多个域或多个自治系统。一个域(domain)是一组主机和使用相同路由选择协议的路由器集合,并由单一机构管理。换言之,一个域可能是由一所大学或其它机构管理的互联网。

1、RIP协议(Routing Information Protocol)

网关间选径协议,是一种内部网关协议,采用距离向量算法。以自治系统(Autonomous System)的方式提供路由选择路由协议

2、OSPF协议(Open Shortest Path First)

3、BGP协议(Border Gateway Protocol)

参考文章:
内部网关协议
OSPF基础介绍
RIP路由协议的理解
大型网络中内部网关路由协议(IGP)的选择
TCP/IP之路由算法
路由算法之距离矢量算法和链路状态算法

六、broadcast and multicast routing

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章