[关闭]
@gzm1997 2018-03-12T16:16:47.000000Z 字数 3976 阅读 2220

计网笔记第四章

计网笔记


协议栈和segment,datagram结构

image_1bu59jueqt8qvd83j7v6k17oe9.png-22.3kB


选路和转发

image_1bu5adn8t11ih1r7buiq1di894pm.png-77kB


virtual circuit and datagram networks

虚拟电路和数据报网络

数据报网络提供网络层无连接服务
虚拟电路提供网络层连接服务

VC

  1. 从始点到终点的一条path路径
  2. path上的每个link都有个VC number
  3. path上的路由上转发表的entries

属于VC的packet有一个VC number
VC number在每个link中可以改变

VC转发表
image_1bu5dsog98jfl1h1onk16jf1t1133.png-74.9kB

需要建立,维持,拆除VC连接
使用在ATM技术中,现在的互联网不用了

datagram network数据报网络

image_1bu5e8kjt15ip29m1okgmm1ui83g.png-106.3kB

由于有4亿个ipv4地址,所以不可能路由的转发表填着确切的ip地址,而是填着ip地址范围

最长前缀匹配

当在转发表中寻找目标地址的条目,使用最长前缀匹配查找下一个link
image_1bu5eob0en70ll91kkoqslcfm3t.png-39.2kB


路由器

image_1bu5f6r4f1bubovtl8j1mtb10qe4a.png-42.5kB

  1. 路由,管理控制层(软件)
  2. 转发数据层(硬件)

输入端口

image_1bu5fjnvq155t1abj1c62t3819ah5n.png-25.5kB
线路端接 -> 数据链路处理(协议,拆封) -> 查找,转发,排队

使用destip地址,根据转发表查找输出端口
如果到达的速率大于转发的速率就需要排队

交换结构

三种交换方式:

内存
image_1bu5fu2uvc6esok1u043ueolv64.png-25.4kB

总线bus
image_1bu5g0kqv16e17e92gu1e2cget6h.png-7.2kB

纵横式
image_1bu5g2pun1gfr1vsg1atb1iu81dcn6u.png-10.6kB

输出端口

image_1bu5g48joqd6ajg1u9g115pa3q7b.png-17kB

排队(缓存管理) -> 数据链路处理(协议,封装) -> 线路端接


输出端口排队


输入端口排队

输入缓存区溢出会导致排队时延或者丢包

线路前部阻塞HOL
一个输入队列的排队分组必须等待交换结构发送(即使输出端口是空闲的),因为它被位于线路前部的另一个分组所阻塞。


ipv4数据报格式

image_1bu5t0ijh1ve2189o8iefeu16a19.png-288kB


ip数据报分片

MTU最大传输单元
并不是所有链路层协议都能承受相同长度的网络层协议分组,一个链路层帧能承载的最大数据量叫做最大传送单元

ip数据报分片
image_1bu5ugmco1buv1sdl1k4l1pnj1pubm.png-66.2kB
一个大的的ip数据报进入一个路由器,输出为多个小的ip数据报

例子:

image_1bu5vpl0kaoq1h343a11bfl1qp13.png-71.4kB

MTU为4000字节,首部占20字节,即有效荷载为1480字节 flag = 1表示后面还有,flag = 0表示这是最后一个片
offset是表示插入数据开始与offset * 8字节

分片的ip数据报要等到终点主机之后才会被重新组装


ipv4编址

接口interface:主机或者路由和物理链路之间的连接,路由器一般都有多个接口,主机有一个或者多个接口(优先以太网和无线)

ip地址:subnet part + host part

subnet part高位 host part低位

子网

image_1bu626pqalatn279vu1f461to12g.png-57kB

设备的接口的ip地址带有相同的subnet部分,物理上可以到达其他设备,而不需要中间路由器

子网掩码network mask

223.1.3.0/24表示从高位开始24位为network part,即223.1.3

数有多少个子网,例子:
子网.png-67.7kB
所以一共是6个子网

划分网段,例子:
问题:将一个地址快200.23.16.0/20划分为长度相等的8个段

划分为的8个段因为长度相等,所以必须具有长度相等的host part,所以20位network part之后又2^3位作为不一样,进入network part,后面留着相同的位数作为host part


获取ip地址

DHCP动态主机设置协议

从服务器中动态地获取ip地址

image_1bu648663nojbsa12f261g1akfl.png-84.5kB
DHCP server位于子网中,如果位于其他子网也需要它服务的话,需要交换机可以转发广播

DHCP工作原理
image_1bu64ar8tq3s84fd1h1n02qd512.png-53.6kB

image_1buadjj1d15pq1oc91jn5270i9b9.png-196.6kB

  1. 到达的客户发送广播DHCP发现报文(DHCP discover)
  2. 服务器收到报文之后发送DHCP提供报文(DHCP offer)
  3. 到达的客户从一个或者多个服务器中选择一个,发送DHCP请求报文
  4. 服务器用DHCP ACK报文对DHCP请求报文进行相应。

DHCP不仅仅提供ip地址,还提供:


NAT网络地址转换

image_1bu8dd30kopa9vv16q1f5coda9.png-161.8kB

上图过程:

  1. 主机10.0.0.1使用3345端口向外网ip地址为128.119.40.186的web服务器发送一个datagram
  2. NAT路由器接收到这个datagram,为该数据包生成一个新的端口号5001,将datagram源ip改为其广域网一侧广域网ip地址138.76.29.7,将源端口改为5001。并在NAT转换表中增加这一表项,将修改之后的datagram转发出去
  3. 当NAT路由器接收到web服务器的response datagram之后,跟目的ip地址和端口号找到NAT转换表中的子网ip地址和的端口号,并转发

ICMP: internet control message protocol网络控制信息协议

被主机或者路由器用来交流网络层的信息
* 错误提示:到达不了得主机,网络,端口,协议
* 两种信息类型:echo request/reply(使用ping)
建立在ip层上:ip数据报包裹着ICMP信息


Traceroute and ICMP

  1. 源主机发送一系列的UDP segment到dest
    • 第一个设置TTL = 1
    • 第二个设置TTL = 2,一次类推
  2. 当第n个datagram到达第n个路由器
    • 路由器抛弃datagram
    • 路由器发送ICMP message(type 11, code 0就是11 0 TTL expired类型的ICMP信息)
    • ICMP message包括了路由器的名字和ip地址
  3. 当ICMP message到达,源主机记录RTTs

停止的标准(ping停止)


ipv6

  • 固定长度的40位header
  • 不可以分片

ipv6 datagram形式:

image_1btdijevc1rnf11tl3s2mpi1ntv9.png-22.8kB
中文版:
image_1bu8hrsro1ojq41o11iu1eq7jf6m.png-110.7kB

ipv6和ipv4相比


互联网怎么同时处理同时有ipv4和ipv6的路由器:

隧道技术:ipv6的datagram在ipv4形式的datagram中以payload(payload有效负载)的形式来存储
外面是ipv4的header,ipv4的source dest addr,隧道两边(就是外面)的路由器是根据这个外面的ipv4 source dest addr来router,ipv6是包裹在里面。

image_1btdis570ll810q212hju06n4pm.png-51.1kB

隧道技术效果:
image_1btdjfdf079j13nb1co217hctkk23.png-76.8kB


期中考试分界线


路由算法


路由器的选路和转发

image_1btdk0rcd1n2m1453eom13pu1lqi2g.png-43.8kB


路由器知道的信息

global

所有路由器都有全局的拓扑和link cost,成为link state

decentralized

路由器是只知道连着哪个邻居,通向邻居的link cost以及邻居告诉它的,成为distance vector

路由器的稳定与否
静态:

动态:


Dijsktra’s Algorithm

例子
image_1btdnlnnm15vk1omea11a2f1uth3a.png-93.4kB


distance vector距离向量算法

表示:
dx(y)x到y整条路径的最小cost
image_1c3n2opou1sl4tfmv731mvt7bu9.png-6.2kB
x到y的路径的cost等于它先到邻居的cost加上邻居到y的最小cost
image_1c3n2qnvi1r4f4brpffas14rpm.png-15.7kB

Bellman-Ford例子:
image_1c3n3hfes6vs1tv8gufhsjj1v9.png-38.5kB

要点:
Dx(y)是x到y的最小cost估计,N中每个节点都需要估计自己到y节点的最小cost。

每个节点中有一个距离向量
Dx = [Dx(y): y є N ]
这个距离向量包含着这个节点到N中所有节点最小cost的估计

而对于每个节点的邻居节点,也是这样:
Dv = [Dv(y): y є N ]

在距离向量算法下,每个节点需要维护的信息有:

算法:

  1. 每段时间按之后,每个节点把自己的距离向量副本发送给自己的邻居
  2. 当每个节点接收到邻居发送过来的距离向量,拿这个距离向量更新自己的DV,使用BF公式

DV算法例子:
image_1c3n4hcl41v761u62uqs1d3612e4m.png-67.1kB


LS和DV比较


自治系统内部路由选择协议intra-AS routing protocols

三种:

RIP

从路由器A到各个子网的跳数:
image_1c3n6mm27rhs1nbq1qpd1623hfb13.png-15.9kB

RIP例子:
路由器D的路由表
image_1c3n6nvip1v5c5cc1jtbielc581g.png-24.7kB

OSPF

BGP

image_1c3n7g1rl1rhd7ps5af1ik91i972d.png-25kB


Broadcast routing广播转发

从packet从源路由器转发到所有节点

source duplication源复制

image_1bv3knac4f1714ea1san1qva1oqv9.png-19.7kB

in-network duplication网络中复制

image_1bv3ko5bhs50glb11jl78b18dnm.png-17.7kB

构建生成树spanning tree:
任何节点都不会受到冗余的packet
image_1bv3lkigf4hltm71fnhm5910p513.png-70.8kB

  1. 先选择一个center node中心点
  2. 每个其他点发送单播加入树报文给中心点,这个报文被转发知道它到达一个属于生成树的节点或者中心点
  3. 加入树报文经过的路径定义了这个节点到中心点之间的生成树分支
  4. 生成生成树之后,节点只沿着生成树转发副本

Multicast routing: problem statement

不是所有的路由器对广播感兴趣,所以构建特定的树


RPF例子

image_1bv3mekvb1in6q08odgdhu18vh1g.png-67.2kB

第四章很重要,最好自己学习一下,老师说的,对以后工作会有帮助

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注