《图解TCP/IP》读书笔记(二)

2021-01-26  本文已影响0人  peareaden

本文内容为《图解TCP/IP》一书学习笔记。本文主要概述四到五章内容。

第四章 IP即网络协议

4.1 IP相当于OSI参考模型中的第3层

IP相当于OSI参考模型中的第3层——网络层。网络层主要实现“点对点”(end-to-end)通信。数据链路层的作用是在互连同一种数据链路之间的节点进行包传递。而一旦跨越多种数据链路,就需要借助网络层。

IP的主要作用就是在复杂的网络环境中将数据包发送给最终地址。
主机:配置有IP地址,但不进行路由控制的设备。
路由器:既配有IP地址又具有路由控制能力的设备。

网络层与数据链路层的关系如下图:


类比现实生活中的旅行,到达目的地可能需要先后乘坐飞机、火车、公交车。

4.2 IP基础知识

IP三大作用模块:IP寻址、路由(最终节点为止的转发)以及IP分包与组包。以下对这三点逐一介绍。

4.2.1 IP寻址

在计算机通信中,为了识别通信段,必须要有一个类似于地址的识别码进行标识。而在数据链路层,使用MAC地址来标识同一个链路中不同计算机的一种识别码。在网络层,则叫做IP地址。
在网桥或交换集线器等物理层或数据链路层数据包转发设备中,不需要设置IP地址。因为这些设备只负责将IP转化为0、1比特流转发或对数据链路帧的数据部分进行转发,不需要应对IP协议。

4.2.2 路由控制

路由控制(Routing)是指将分组数据发送到最终目标地址的功能。即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。因此,一个数据包之所以能够成功地到达最终的目标地址,全靠路由控制。
Hop中文叫“跳”,它是指网络中的一个区间,IP包正是在网络中一个跳间被转发。

数据链路实现某一个区间(一跳)内的通信,而IP实现直至最终目标地址的通信(点对点)。
一跳的范围:利用数据链路层以下分层的功能传输数据帧的一个区间;即从源MAC地址到目标MAC地址之间传输帧的区间;也即主机或路由器网卡不经其他路由器而能直接到达的相邻主机或路由器网卡之间的一个区间。
多跳路由:路由器或主机在转发IP数据包时只指定下一个路由器或主机,而不是将到最终目标为止的所有通路指定出来。每个区间(跳)在转发IP数据包时会分别指定下一跳的操作,直至包到达目标地址。

为了将数据包发送给目标主机,所有主机都维护者一张路由控制表(Routing Table),该表记录IP数据在下一步应该发给哪一个路由器。IP包将根据这个路由表在各个数据链路上传输。

IP面向无连接,即在发包之前,不需要建立与对端目标地址之间的连接。上层如果遇到需要发送给IP的数据,该数据会被立即压缩成IP包发送出去。

4.2.3 IP分包与组包

IP是实现多个数据链路之间通信的协议。不同的数据链路各自的最大传输单位(MTU:Maximum Transmission Unit)不同。为了解决这个问题,IP进行分片处理(IP Fragmentation),即将较大的IP包分成多个较小的IP包。分片的包到了对端目标地址以后再被组合起来传给上一层。有关分片处理详见4.5

4.2.4 IP为什么面向无连接

两个原因:

IP与TCP关系:
IP提供尽力服务,即“为了把数据包发送到目标地址,尽最大努力”,然而并不做最终收到与否的验证。上一层的TCP就用来提高通信的可靠性。IP负责将数据发给目标主机,TCP则负责保证对端主机确实接收到数据。

为什么不让IP具有可靠传输的功能,合并这两种协议?

4.3 IP地址

4.4 路由控制

路由控制表用于在数据发送过程中指明路由器或主机,在实现IP通信的主机和路由器中都有,路由控制表中记录着网络地址与下一步应该发送至路由器的地址。
IP协议认为路由表是正确的,但IP本身没有定义制作路由控制表的协议。该表是由路由协议制作而成的,见第七章。

4.4.1 IP地址与路由控制

下图是发送IP包的实例:



如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址。例如172.20.100.52与172.20.16和172.20.100/24都匹配,应选择匹配度最长的172.20.100/24

4.4.2 路由控制的聚合

利用网络地址的比特分布可以有效的进行分层配置。对内即使有多个子网掩码,对外呈现出的也是同一个网络地址。
路由聚合一能够缩小路由表的大小,二能将已知的路由信息传送给周围的其他路由器,以达到控制路由信息的目的。

4.5 IP分割处理与再构成处理

4.5.1 数据链路不同,MTU则相异

每种数据链路的最大传输单元(MTU)都不尽相同。

4.5.2 IP报文的分片与重组

分片处理只要认为路由器有必要,会周而复始地进行。

经过分片之后的IP数据报在被重组的时候,只能由目标主机进行,路由器虽然做分片但不会进行重组。

4.5.3 路径MTU发现

路径路径MTU发现技术出现原因:

路径路径MTU发现技术是什么:
路径MTU(Path MTU)是指从发送端主机到接收端主机之间不需要分片时最大MTU的大小,即路径中存在的所有数据链路中最小的MTU。这样可以避免在中途的路由器上进行分片处理,也可以在TCP中发送更大的包。

路径路径MTU实现原理:

路径MTU发现机制(UDP)

前面是UDP的例子。TCP情况下,根据路径MTU的大小计算出最大段长度 (MSS),然后根据这些信息进行数据报的发送。因此如果在TCP中采用MTU路径发现,IP层不会再进行分片处理。

路径MTU发现机制(TCP)

4.6 IPV6

4.7 IPV4首部

4.8 IPV6首部格式

第五章 IP协议相关技术

5.1 仅凭IP无法完成通信

5.2 DNS

DNS产生原因:通信直接使用IP地址不方便,IP地址不好记 -> 使用主机识别码来唯一标识计算机,这样通信时可以使用主机名称而无需输入IP地址 -> 系统需要实现将主机名转换为具体的IP地址,即使用hosts数据库文件 -> 最初是由互联网信息中心整体管理一份hosts文件,这样每次新加入机器时信息中心的hosts文件就需要变更,其他计算机需要定期下载最新的hosts文件;这种集中管理的方式可行性很低 -> DNS产生

DNS是什么:一种有效管理主机名和IP地址之间的对应关系的系统,即DNS系统。在应用中,用户输入主机名(域名)时,DNS会自动检索那个注册了主机名和IP地址的数据库,并迅速定位对应的IP地址。

域名是什么:识别主机名称和组织机构名称的一种具有分层的名称。例如仓敷艺术科学大学的域名:kusa.ac.jp 。kuaa表示仓敷艺术科学大学,ac表示大学,jp代表日本。
使用域名时可以在主机名后追加上组织机构的域名。例如主机pepper可以表示为pepper.kusa.ac.jp。

域名服务器:管理域名的主机和对应的软件,用于管理所在分层的域的相关信息。


域名服务器

解析器:进行DNS查询的主机和软件,例如用户的PC。一个解析器至少包括组织内部的域名服务器的IP地址。

DNS查询:

DNS查询

解析器和域名服务器会将最新了解到的信息暂时保存在缓存里,这样可以减少每次查询时的性能消耗。

5.3 ARP

ARP是什么:一种解决地址问题的协议。以目标IP地址为线索,定位下一个应该接收数据分包的网络设备对应的MAC地址。ARP只适用于IPv4,IPv6中使用ICMPv6替代ARP。

ARP工作机制:借助ARP请求与ARP响应两种类型的包确定MAC地址。

总之,从一个IP地址发送ARP请求包以了解这个IP地址的MAC地址,目标地址将自己的MAC地址填入其中的ARP响应包返回给发出请求的IP地址。由此通过ARP从IP地址获得MAC地址,实现链路内的IP通信。

如果每发送一次IP数据报就进行一次ARP请求来确定MAC地址,会造成不必要的网络流量。通常的做法是将获取到的IP对MAC的映射关系缓存到发送端ARP缓存表中。接收主机端同样可以缓存MAC地址,以提高效率。

为什么IP地址和MAC地址缺一不可?

5.3.4 RARP

RARP(Reverse Address Resolution Protocol) 则是将ARP反过来,从MAC地址定位IP地址的一种协议。

5.4 ICMP

ICMP(Internet Control Message Protocol)主要功能包括:确认IP包是否成功送达目标地址,通知在发送过程中IP包被废弃的具体原因,改善网络设置等等。综合来讲,即验证网络的设置是否正确,网络出现问题时能立刻制止问题的蔓延。ping命令就是ICMP的具体应用之一。
ICMP的通知信息会使用IP进行发送。
ICMP的消息大致分为两类,一类是通知出错原因的错误信息;另一类是用于诊断的查询信息。

5.4.2 主要的ICMP消息

5.5 DHCP

如果逐一地为每一台主机设置IP地址会非常繁琐,于是为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP(Dynamic Host Configuration Protocol)协议。有了DHCP,计算机只要连接到网络,就可以进行TCP/IP通信。

5.5.2 DHCP的工作机制

使用DHCP之前,要先架设一台DHCP服务器。然后将DHCP所要分配的IP地址设置到服务器上。此外,还需要相应的子网掩码、路由控制信息以及DNS服务器的地址等设置到服务器上。

5.6 NAT

NAT(Network Address Translator)用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。NAT实际上是为正在面临地址枯竭的IPv4而开发的技术。

5.6.2 NAT的工作机制

NAT

当私有网络内的多台机器同时都要与外部通信时,仅仅转换IP地址,可能会出现全局IP地址不够用。可以采用下图所示的包含端口号一起转换的方式(NAPT)来解决这个问题。


NAPT

现在很多互联网服务都基于IPv4,为了保证这些服务也能在IPv6中正常使用,产生了NAT-PT规范,NAT-PT将IPv6首部转换为IPv4首部,从而保证只有IPv6地址的主机也能够与IPv4地址的其他主机通信。


NAT-PT

5.7 IP隧道

IP隧道产生原因:在一个如下图所示的网络环境中,假如网络A、B使用IPv6,中间位置的网络C支持使用IPv4的话,网络A与网络B之间无法直接进行通信。为了让他们之间正常通信,这时需要采用IP隧道的功能。



IP隧道中可以将那些从网络A发过来的IPv6的包统和为一个数据,再为之追加一个IPv4的首部以后转发给网络C。
一般情况下,紧接着IP首部的是TCP首部或者UDP的首部,现在“IP首部后面还是IP首部”或“IP首部的后面是IPv6的首部”等情况越来越多。这种在网络层的首部后面继续追加网络层首部的通信方法就叫做“IP隧道”。


IP隧道
上一篇 下一篇

猜你喜欢

热点阅读