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

网络层

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
虚拟电路的路由器包含连接状态信息
本科课程:计算机网络(四)_第1张图片

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

本科课程:计算机网络(四)_第2张图片

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

在这里插入图片描述
比如这个地址走的是端口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
    转发数据报

本科课程:计算机网络(四)_第3张图片

1、input ports

本科课程:计算机网络(四)_第4张图片

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

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协议数据报格式

本科课程:计算机网络(四)_第5张图片
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 // 中继转发
    本科课程:计算机网络(四)_第6张图片

4、ICMP协议

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

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

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

ICMP协议的功能主要有:

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

我们需要注意几点:

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

ICMP的消息包括类型和代码,部分类型和代码表:
本科课程:计算机网络(四)_第7张图片
其中经常使用的类型和代码消息:

  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 // 不允许分片处理

数据报格式:

本科课程:计算机网络(四)_第8张图片
pri:(priority)优先级
payload len : 载荷长度
next hdr : 指向第一个扩展头部的option字段(放在data里)
hop limit : 和TTL一样的作用
source address : 128-bits, 16字节的长度
destination address : 128-bits, 16字节的长度

a、IPv4和IPv6的转换

本科课程:计算机网络(四)_第9张图片

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

本科课程:计算机网络(四)_第10张图片
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)

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

本科课程:计算机网络(四)_第11张图片
链路费用:
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                                                                            

本科课程:计算机网络(四)_第12张图片
N’ : 目前已知的最小费用路径的集合
D(v),p(v):从源点到该点的路径费用,前驱节点
通过找每一个D(v)、D(w)、D(x)、D(y)、D(z)的最小值,确定一个u到z的最短路径,然后就可以配置路由表
去掉非最短费用的线,只保留最短费用路径可得最短路径树
本科课程:计算机网络(四)_第13张图片
根据上图可知:u到z的最小路径是uwvyz

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

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

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

如果每个结点x以D_x(y)开始,对网络N中所有结点,估计从它自己到结点y的最低路径费用。
本科课程:计算机网络(四)_第14张图片

  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

你可能感兴趣的:(计算机网络)