modify some mistakes & make a brief conclusion on IP.

This commit is contained in:
Shine wOng
2019-11-13 16:02:33 +08:00
parent 00d5ef9c41
commit 258c820b6a
2 changed files with 25 additions and 1 deletions

View File

@@ -1,5 +1,25 @@
网际协议IP知识总结
===============
================
## 知识脉络
网际层的主要工作是实现数据在异构网络之间的传输,即处于两个不同的网络中的主机的通信。对于要发送数据的主机而言,最重要的任务是如何定位它想要与之通信的主机,即`路由选择`的问题。网际层的所有内容几乎都是围绕`路由选择`而展开,具体说来又分为两部分,即网际结构(我自己定义的词语)和路由选择协议。
因特网是一个庞大的网络,其中含有亿万计的节点,并且整个网络还处于动态变化当中——随时都有主机接入接出,也随时都有路由器发生故障。在这样的网络中找到数据传输的最短路径,显然是不能通过常规的图算法来做的,这里的基本思想在于`层次化`,把大网络拆分成小网络,然后再对小网络小网络进行拆分,形成一个树形结构。
层次化第一条进行网络的划分。将IP地址拆分成了`网络号: 主机号`即传统的A, B, C类网络。在同一个网络中的主机往往在地理位置上也接近它们拥有相同的网络号这样在数据传输时所有数据都是首先传输到该网络再由该网络的路由器进行分发在进行路由选择时所有在一个网络内的主机使用同一个网络号作为它们的标识以B类网络为例一个B类网络中最多的65534台主机使用了同一个路由表项大大减小了路由表的大小。
层次化第二条构造子网。以A类网络为例一个A类网络内最多拥有`2^24 - 2`台主机,数据分发到该网络后,定位合适的主机也是一个复杂的问题。因此可以对网络进行进一步的划分,形成网络的树形结构,数据首先传输到层次更高的路由器,再一级一级地向叶节点方向转发。
层次化第三条,路由聚合,即构造超网。对于不同的网络,尽管它们的网络号不同,却具有相同的网络号前缀,在进行路由转发时,这些网络都是从同一个端口转发。这样就可以把这些不同的网络,在逻辑上组成一个更大的网络(网络号即是它们的前缀),路由表只需要存储这个更大的网络的转发表项,可以减小路由表的大小。
层次化第四条,自治系统与自治区域。将一个区域的许许多多不同的网络,构成一个自治系统,往往是一个国家或者行政区,自治系统具有一些`边界路由器`,负责与其他自治系统的通信——所有传输到该自治系统的数据,都首先传输到`边界路由器`,再由`边界路由器`进行转发。同理,自治系统内部还可以划分自治区域,进一步实现层次化。
层次化第五条本地地址与全球地址。由于IP地址的消耗无法做到每台主机都拥有一个全球IP地址实际上一般的主机上网都是使用本地地址本地地址必须要转换成全球地址才能进行通信这个转化过程是通过网络地址转换(NAT, Network Address Translation)来实现的。这样连接到一个路由器的主机都获得一个本地地址然后统一使用路由器的全球地址接入到互联网在这种情况下就相当于32位IP地址都成为了网络地址将IP地址进一步层次化了。还有一个好处就是缓解了IP地址的消耗。
上面的内容都是在讨论因特网的网际结构的问题,搭建好了结构,还需要在这样的结构上实现一定的路由选择算法。这样涉及到的算法有`路由信息协议`(RIP, Routing Information Protocal)`开放最短路径优先`(OSPF, Open Shortest Path First),还有外部网关协议`边界网关协议`(BGP, Border Gate Protocal),内容都比较简单,就不再赘述了。
此外IP层还涉及到一些概念一些细节在这里没有涉及。包括IP数据报的头部结构ICMP以及它的两个典型应用场合(ping, traceroute)还有IP组播以及虚拟专用网络(VPN)等概念。
## 网际层提供的功能

View File

@@ -1,6 +1,10 @@
传输层协议知识总结
================
## 知识脉络
感觉TCP内容很多都非常细节我的知识不是很成体系就不写了。王道上面对重要的知识点都有简练的总结而我下面的总结则从设计思想的角度探讨某个协议的历史与逻辑根源。
## 传输层提供的功能
### 进程之间的通信