学习笔记:高级信息网络Ch3.The Internet

(来源:notes of course Advanced IT Network. Ch3.The Internet)


058_001.jpg

这一章会深度讲解有关Internet Layer的内容。

Router(路由器):

  • devices that can transfer data packets between different networks
  • use IP protocol for communicating with each other

回到上一章:

IT Network Ch2.Communication Systems Modeling

在分层的理论里有提到过三层的结构如下图所示:

058_002.jpg

中间的Internet&Transport Layer其实还可以分层

也就是:

  • Internet Layer
  • Transport Layer

先看位于下层的**Internet Layer。*我们会发现,在其他层,或多或少有很多协议的选择,例如Transport Layer可以有UDP、TCP。而Internet这一层有且只有一种协议,也就是IP协议可以选择,于是在MIT的课程中,把这一层称为The Slim Part of the Model。*Router也是属于这一层的范畴。

058_003.jpg

再看一下位于上层的Transport Layer。实际上,Transport Layer和上层的应用层之间的连接靠的是不同的port,每一个port对应一种应用层(可以理解成接口?)。

To select the applications involved in communications, the transport layer adds its own set of addresses,called Port Number

两种关于Internet Layer的规定:

OSI:(死板,也严格,需要大量改造已有的网络)

058_004.jpg

IP:(灵活,最差的网都能满足)

058_005.jpg

于是,显而易见,IP赢了,所以接下来就开始讲解IP协议。

IP protocol:

  • Connectionless
  • Fragmentation when required
  • Routing through the entire Internet
  • Elimination of lost datagram

IP addresses:

  • one part to define a network
  • one part to define a computer connected to the network

概念看完了,课上给出了一个例子:

058_006.jpg

#路由器已经编写了程序,知道去哪里应该走哪条路最好

从1.5到5.5:

  • 一开始,1.5处于网络1,网络1把信息通过1.1传送给了路由器
  • 此时路由器说,你想去1、2、3,可以直接去,想去4,得走3.1,想去5,得走2.2
  • 于是走了2.2,到了新的路由器,路由器说,你想去2、5,可以直接走
  • 直接走到了5,传送到了5.5

好,我们现在来研究一下,怎么编写这个走那条路最好的程序:)

Routing:

先定义一种图,叫Routing Table,如下图所示:

058_007.jpg

之后可以介绍有关算法了

先来介绍分散型的算法(Distributed Routing Algorithm)

  • Distance Vector Routing
  • Link State Routing

Distance Vector Routing:

  • 路由器问周围的路由器,去XX从你那走得多远?自己再算一下到各路由器的距离,和刚才问的加一下,选一个最短的走。

做个小练习:

058_008.jpg

很容易做出来E的最短距离是8,但是出现了问题,D和A发现自己之前报的距离太远了,于是也进行修改,变成从E走的距离。

058_009.jpg

看起来非常科学的样子,但是如果出现断路,麻烦可就大了!

058_010.jpg

看上面的图,A想到B只能走那一条路,如果A和B之间突然因为物理原因变长了,B就会回头看C,然后改成到C的距离。

B改了,C也会随着改,两个家伙就一直改,直到改成到A的距离。而后面的一堆只会跟着C改,也会最终到达正确的距离。

这种效应叫做Count to Infinity。

第二种方法叫做Link State Routing。

  • 每个路由器广播自己到周围路由器的距离
  • 当距离发生改变时,也要立即广播声明

058_011.jpg

  • 得到距离之后,就有了一张如上图的地图,可以用Dijkstra算法得到最短距离

帮忙通俗解释一下Dijkstra算法 ?

之后开始介绍IPv4和IPv6协议。

IPv4:

在介绍前,先介绍一下IP地址,在刚才讲过。

IP addresses:
one part to define a network
one part to define a computer connected to the network

使用bits来描述IP地址,也就是010101的序列,可以把他转化为十进制

058_012.png

问题就来了,在同一个局域网下的两个设备,并不需要通过Internet进行交流,有什么方法可以让他们便捷的认清对方,并建立本地连接呢?

IPv4提供了一个特性:MASK(子网掩码),也是由32bits构成的序列,1处代表该部分处于同一局域网,0处代表不处于。

IP地址:192.168.1.1

子网掩码:11111111.11111111.11111111.00000000 代表最后一个四分位无论怎么变化,都处于同一局域网中

当然子网掩码也可以写作十进制,上方即为255.255.255.0,也就表示IP地址有254个subnet

又因为子网掩码全是1和0,可以直接写作多少个1,也能表示。

上面的例子就变成了192.168.1.1/24

如何理解子网掩码?

IP datagram(IP数据包):

  • IP通过传送数据包进行交流

下面是数据包的格式:

058_013.jpg

Header:32bits long

下面直接截图ppt说明各个部分的用途:

058_014.jpg058_015.jpg058_016.jpg058_017.jpg058_018.jpg

Network Address Translation:

因为根据定义,IP地址是有限的,所以早晚会有用完的那一天。那么可以把内网(Intranet)的地址重新定义,在外部只表现为1个IP地址,这样就能大大减少IP地址的数量。

NAT(Network Address Translation):

  • 对内表现为router
  • 对外表现为host
  • 负责对内对外的翻译工作(互联网产品经理既视感)

IPv6:

  • increase the IP addresses to 128 bit!

  • 8 group of 4 hex digits

结构如下图所示:

058_019.jpg

Unicast VS Anycast:

  • Unicast 是点对点传播
  • Anycast是有用一个地址源可以指向一组地址:大大提高了效率

Header:

058_020.jpg

058_021.jpg058_022.jpg

IPv4和IPv6都是好协议,目前是共存的,但是大家正在努力转变到6代协议,这里痛斥了一下美国,美国就是不转变,就像大家都用了公制单位米,而美国还在用英尺一样。

喜闻乐见系列(VPN)

在osi协议中的应用层,可以把IP数据包加密,然后再进行传播,就可以 认为他不在公网传播,而是自己在tunnal里传播,到了目的地址,再由当地的VPN进行解密就可以。

Edge Server:

大家都用公网进行数据访问,网络压力很大,于是,当地的服务运营商可以把最常见的访问数据存储在当地的服务器(Edge Server)。这就能大大提高访问的速度和效率。

TCP/UDP:

都是在前面加Header。

TCP:

058_023.jpg

058_024.jpg

UDP:

  • Service offered to application layer:

  • Application port identification

  • Connectionless

  • Error detection, no correction

  • Service required from network layer:

  • Connectionless network service

058_025.jpg


学习笔记:高级信息网络Ch3.The Internet
https://yiyuwang.be/2020/12/28/2020-12-28-340169304/
作者
StevenWong
发布于
2020年12月28日
许可协议