[Network]网络层

来源:互联网 发布:汉语网络域名注册 编辑:程序博客网 时间:2024/05/23 11:15

(一)介绍


一、Forwarding

一个router从输入端到输出端的过程


二、Router

在Router之间进行传递的过程


三、Connection Setup:

Q:网络层的连接和传输层的连接有什么关系:这两种连接是不同的,且在一定程度上是独立的。当传输层的连接建立以后,网络层的router并不会察觉这个连接的建立,


四、Network Service Mode

IP:best-effort

ATM:Several Model


(二)连接

一、有连接服务:Virtual-Circuit Networks


VC num:

不同的原因:减小VC num域;独立设置,加快速度,Link和Link之间无关联性

Q:为什么要设置VC num,已经有了Interface num

Q:上面的连接问题的延续:在传输层的连接,是建立在连接两个中断上的;而网络层的连接是建立在两个系统之间path的所有router上的,每一个router都会察觉到VC的通过。


二、无连接服务:Datagram Networks

每个包都有一个目的地(IP addr),按这个地址组织router的转发表。输入的连接按prefix match路由表entry。


(三)Router


一、Input processing

“Match plus Action”

这里还会进行了checksum的检查,IP包计数等操作,不仅仅是路由表的匹配。


二、Switching

Switching via Memory

这样不同的Input port好像是共享memory的进程,换入和换出。但是在一个时间只能处理一个,因为读写口只有一个。

Switching via Bus

在总线上传输,每个Output port都会收到包,但是只有label匹配的port才会处理这个包

但是同样,由于每条bus上只能有一个包在传输,所以在某一时刻,还是只能处理一个包

Switching via an Interconnection network

阵列的匹配方式


三、Output Processing

进入Buffer队列,转换进行Link Layer


四、Queuing

Buffer

主要是Output buffer

size:

B = RTT(round-trip time) * C(link capacity) ——TCP下

原因:在来回三次握手的情况下,一个包的处理时间为RTT,这样,在处理这个包的时间里,所有到达的包应该都被Buffer。

改进:

B = RTT * C * sqrt(N) (number of TCP flows)

Packet scheduler

都会遇到schedule的问题

QoS保证:需要使用不同的调度算法,选择Buffer中合适的packet进行处理。

Active Queue Management(AQM)

解决:没有足够的空间和时间来buffer incoming packets

在Buffer满之前就drop一些packets,这样避免了buffer满之后,相互发送message浪费时间。

Random Early Detection(RED)

有一个max和min作为threshold


五、The Routing Control Plane

一般和Data Plane实现在一起,通过分治,把控制分给不同的router,通过message传递信息。

现在有人想把Control Plane放在router外面,让控制变得更快。

 

Q:control plane和data plane的关系和区别


(四)Internet Protocol

一、Internet Layer 主要由三部分构成

Internet Protocol(IP)

Routing Protocol(RIP,OSPF,BGP)

Internet Control Message Protocol(ICMP)


二、Datagram Format

First 4 Bytes: Version Num - Header length - TOS - Datagram length(Header+Data)

Second 4 Bytes(used for segment):Identifier - Flags - Fragment offset

Third 4 Bytes:TTL - Transport Protocol - Header checksum

Last 8 Bytes:Source IP address  - Destination IP address

Option:if any


1. IP Datagram Fragmentation

Why Fragment?

MTU of link layer frame

Reassembly:

Put the job in end system not in the network routers

How:

identification:在大的datagram建立的时候就赋予了一个号码,分割的时候这个号码不变

flags:最后一个子fragment是0,别的都是1

offset:在原来大的datagram中的位置

2. IPv4 address

CIDR:减小路由表的大小

255.255.255.255 作为目的地IP address,会发起一次广播到整个子网中,路由器选择性地将信息传播到子网外。

Obtain a block of Address——ISP

最大的ISP是ICANN:它不仅用于分配IP address,还管理着DNS root severs(包括dissolve domain name的工作)

Obtain a Host Address——DHCP

获得了一块地址空间以后,怎么在自己的系统中分配IP address
DHCP:Plug and Play Protocol
1. 缩小一个ISP所占用的空间,动态分配,没被使用IP address被收回到pool中
2. client-server protocol: within a UDP packet
(1) DHCP server discovery: D-255.255.255.255:67, this-0.0.0.0:68   broadcast(2) DHCP server offer: D-255.255.255.255:68, your net address(3) DHCP Request: Client selects a address and echoes back(4) DHCP ACK: confirming message

Network Address Translation(NAT)

NAT需要利用port number,这样一个子网的IP地址会通过一张路由表,根据IP地址和Port号映射成另一个IP地址和Port号。
这样一个子网可以使用同一个IP地址,而由端口号的加入,使得子网中不同的设备和process得以区分。

UPnP
是NAT的扩展,子网中的一个Host可以请求一个map,并且这个Host可以知道(public IP addr, public port num)


3. Internet Control Message Protocol(ICMP)

ICMP是在IP之上的一层协议,和TCP、UDP一样在IP的Payload里面
由Type,Code,Description构成。
两类ICMP(1) error report:Destination(2) echo ping

4. IPv6

特点
(1) 地址空间的扩展
(2) 40 bytes 的头部
(3) Flow labeling and priority

头部
(1) First 4 bytes: Version - Traffic class(TOS in IPv4) - Flow label(需要提供一些特别的服务,比如一些packets必须按相同的path传输,这样他们就不会乱序)
(需要继续学习IPv6的头部)
(2) Second 4 bytes: Payload length - Next header(protocol field in IPv4, TCP or UDP for example) - Hop limit(TTL in IPv4)
(3) 128 bits: Source address
(4) 128 bits: Destination address
(5) data

IPv4在IPv6中没有了的内容
(1) Fragmentation / Reassembly: 在IPv6中,不允许中间的router来进行分片操作,如果它们发现fragment太大,那么就发送一个ICMP报文回去。这样做的原因是:分片操作是一个耗时的操作,这样做可以加快转发的速度。
(2) Header checksum:每次router都需要计算check sum(因为每次TTL都发生了变化),非常耗时。(怎么保证数据的正确性) 
(3) Option:在IPv6中再没有。因为可以让next header域指向data中的options。

IPv4转换IPv6
Tunneling:在IPv6的网路中,如果出现了IPv4的router,那么将IPv6作为payload放在IPv4的datagram里

(五)路由算法

一、分类

按单个router具备的信息,分为两种路由算法
(1) Global: 每个路由器知道整个网络——link state
(2) Local:每个路由器只知道和自己相连的router信息——distance vector

按更新频率
(1) Static
(2) Dynamic


二、Link-State Routing Algorithm

Dijsktra's Algorithm
oscillation:
由于link cost使用的是congestion或者延迟矩阵,使得无论什么算法,最短路径的计算都会出现震荡。避免的方法是:
(1) 不要直接让cost是那里的traffic carried
(2) 不要让所有router同时在使用LS计算路由表并更新
其实网络本身就不会同步进行计算,所以这么问题被网络本身自洽了。

三、Distance Vector Algorithm

Bellman-Ford Equation(Dynamic Programming)

dx(y)=minv{c(x,v)+ dv(y)}, 

这个等式有两个重要的贡献:
(1) 对于从x到y的传输,v*便是x传输的下一站
(2) 一个路由器需要保存的内容:上面等式的三部分

Distance Vector algorithm

(1) 初始化:构建自己的向量,然后发送给neighbor
(2) 等待计算:收到neighbor发来的向量以后,利用Bellman-Ford Equation来计算新的向量
(3) 广播:如果向量发生了变化,那么将自己的向量广播给所有的neighbors

Link Failure

如果某一条link的cost增加了,比如:



这样y察觉到4->60的变化,更新了向量,z收到了更新。但其实,我们可以看到,
(1) y当前计算的到x的最短路径,需要通过z(这时候z并不知道4->60的改变)
(2) z到达x的最短路径需要通过y
这样形成了一个black hole,需要不断地进行迭代,知道收敛

有一些办法可以避免这种hole的出现,比如发现回复往返的情况,就把这些路线的link设置为无穷大,但是要发现这样的环也比较困难。

link-cost change

这里特指cost减小,这样经过常数次的迭代就可以更新好所有的router

四、Hierarchical Routing

如果网络中存在的所有路由器都相互发送信息更新路由表的话,会造成很大的拥堵,而且会使更新工作无法完成。
这样形成一些自建系统AS,AS之间与AS各自内部使用不同的路由算法。

Q: AS 和 Subnet是什么关系——一个AS可能包含几个Subnet

AS内部使用:Intra-AS routing protocol
AS之间信息的传递:AS之间的信息到AS各个router的可达性,inter-AS routing protocol

(六)路由协议

一、Intra-AS Routing——RIP

Distant-Vector protocol
cost: hop count, each link costs 1.
Every 30 seconds, hop max is 15, send a response message with a list of up to 25 destination subnets——response message or RIP advertisements

Example:
Routing table包含两部分内容:DV(hops to destination) 和 forwarding table(Next Router)
Exchange RIP advertisements to update the routing table
Does not hear from its neighbor at least 180 seconds, the router will consider the router to be no longer reachable.
Modify the local routing table and propagates the information to the neighbors.
Routers can send RIP Request to others over UDP using port number 520 to get the information about its neighbors' cost to a given destination.
Implement: RIP is implemented as a application-layer protocol, especially in UNIX(begin at BSD)

二、Intra-AS Routing——OSPF

Link-State protocol
cost is set by a administrator not the router or OSPF
the routers using OSPF protocol broadcast its state information to every router in the AS with a fixed period or after a state information change.

三、Inter-AS Routing——BGP



0 0
原创粉丝点击