《图解TCP/IP》学习笔记(五) IP协议相关技术

仅凭IP无法完成通信

为了能让主机根据实际的IP包进行通信,就有必要实现一种功能,将应用中使用的地址映射为IP地址。

DL层也不使用IP,实际上将众多 IP数据包在网络上进行传送的就是DL本身,必须了解发送端的MAC地址。

DNS

Domain Name System IPv4 v6都适用

IP地址不便记忆-DNS的产生

主机利用一个叫做hosts的数据库文件。系统将主机名转换为具体的IP地址。

DNS 有效管理主机名和ip地址对应关系的系统。

域名的构成

域名:为了识别主机名称和组织机构名称的一种具有分层的名称。

出现带有层次结构的域名之后,每一个组织机构都可以*地为主机命名。

域名服务器

指管理域名的主机和相应的软件,可以管理所在分层的域的相关信息,管理的分层叫做ZONE

根部设置的DNS叫做根域名服务器,注册着根以下第一层域名服务器的IP地址。

解析器 Resolver

一个解析器至少要注册一个以上的域名服务器的IP地址。

DNS查询

《图解TCP/IP》学习笔记(五) IP协议相关技术

解析器从本层域名服务器,没有再向上一层根域名服务器查询

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

DNS如同互联网中的分布式数据库

ARP

Addresss Resolution Protocol

解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。目标主机不在同一个链路上,可以通过ARP查找吓一跳路由器的MAC地址,只适用于IPv4。IPv6中可以用ICMPv6替代ARP发送邻居探索消息。

ARP工作机制

ARP借助ARP请求和ARP响应两种类型的包确定MAC地址。

可以通过ARP从IP地址获得MAC地址。

eg. 主机A想获得B的MAC。1. 广播发送ARP请求包,包含B的IP。 2. 同一链路上所有主机or路由器接收、解析; 3. 目标地址与自己的IP一致,返回MAC地址作为ARP响应。

为了节省网络流量,有一个ARP缓存表。||同时接收主机端缓存MAC地址也是一种提高效率的方法

IP地址 和MAC地址缺一不可

《图解TCP/IP》学习笔记(五) IP协议相关技术

ARP协议就将这两个地址相关联。

RARP

Reverse ARP

个人电脑可以设置IP地址,也可以通过DHCP自动分配获取IP地址。对于使用嵌入式设备,会遇到没有任何输入接口或无法通过DHCP动态获取IP地址。

使用RARP的前提是认为MAC地址是设备固有的一个值。

代理ARP

Proxy ARP 可以将ARP请求转发给邻近的网段。通常ARP包会被路由器隔离。

ICMP

辅助IP的ICMP

架构IP网络时需要特别注意:确认网络是否正常工作;遇到异常时进行问题诊断。

ICMP的主要功能:确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。

ICMP是基于尽力而为的IP上进行工作的,而且在网络安全优先于便利性的环境中无法使用ICMP。

ICMP消息:一类是通知出错原因的错误消息,一类是用于诊断的查询消息

主要的ICMP消息

  1. 类型3:ICMP目标不可达
    会显示不可达的原因

  2. 类型5:ICMP重定向消息
    路由器发现发送端主机使用了次优的路径发送数据,会返回重定向消息给这个主机,包含了最合适的路由信息和源数据。

  3. 类型11:ICMP超时消息
    TTL生存周期,降到0时返回Time Exceeded消息
    traceroute/tracert可以显示出由执行程序的主机到达特定主机前经历多少路由器,原理就是利用ICMP。

  4. 类型0、8:ICMP回送消息
    ping命令就是利用这个消息实现。

    向对端主机发送回送请求的消息,type8
    接收对端主机的回送应答,type0

其他ICMP消息

  1. 类型4:ICMP原点抑制消息
    低俗广域线路的情况下,连接WAN的路由器可能会遇到网络拥堵问题。原点抑制消息的目的是为了缓和这种拥堵。收到这个消息的主机借此了解在整个线路的某一处发生了拥堵的情况,从而打开IP包的传输间隔。

    这种可能引起不公平的网络通信

  2. 类型9、10:ICMP路由器探索消息

    用于发现与自己相连网络中的路由器。一台主机发出ICMP路由器请求type10,路由器则返回ICMP路由器公告消息type9给主机

  3. 类型17、18:ICMP地址掩码消息
    用于主机或路由器想要了解子网掩码的情况。

ICMPv6

0-127:错误消息;128-255:信息消息

IPv6中,从IP地址定位MAC地址的协议从ARP转为ICMP的邻居探索消息。

邻居探索消息 类型133-137.用于查询IPv6的地址与MAC地址的对应关系,并由邻居宣告消息得知MAC地址。利用IPv6多播地址实现传输。 IPv4中的ARP使用的是广播。

此外,实现了即插即用。在没有DHCP服务器请先看也能实现IP自动获取。

《图解TCP/IP》学习笔记(五) IP协议相关技术

DHCP

DHCP实现即插即用

Dynamic Host Configuration Protocol 实现自动设置IP地址、统一管理IP地址分配。有了DHCP,计算机只要连接到网络就可以进行TCP/IP通信。

DHCP的工作机制

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

DHCP分配IP地址的两种方法:1. 服务器在特定的IP地址中选出一个进行分配;2. 针对MAC地址分配一个固定的IP地址。【两种方法可以并用】

DHCP中继代理

家庭网络中,一个以太网网段,连接的主机数也不会过多。一台DHCP服务器就可以,多数情况用宽带路由器充当DHCP。

较大规模的网络环境中,需要将多个DHCP统一管理,提出DHCP中继代理,对不同网段的IP地址分配也可以用一个DHCP服务器统一管理和运维。

《图解TCP/IP》学习笔记(五) IP协议相关技术

NAT

Network Address Translator 用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。

工作机制

《图解TCP/IP》学习笔记(五) IP协议相关技术

NAT路由器内部有一张自动生成的用来转换地址的表。

当私有网络内的多台机器同时都要与外部进行通信,采用包含端口号一起的转换方式NAPT

《图解TCP/IP》学习笔记(五) IP协议相关技术

NAT-PT

是一种将IPv6首部转换成IPv4首部的技术

只有IPv6地址的主机也能够与IPv4地址的其他主机进行通信。

NAT潜在问题

NAT依赖于自己的转换表

  1. 无法从NAT外部向内部服务器建立连接
  2. 转换表生成,操作都会产生一定的开销
  3. 通信过程中一旦NAT遇到异常要重启,所有的TCP连接都要重置
  4. 即使备置两台NAT做容灾备份,TCP连接还是会被断开

解决NAT潜在问题与NAT穿越

  1. 改用IPv6 如果地址枯竭的问题得到解决,就不用再使用NAT。
  2. NAT穿越。

[https://blog.csdn.net/qq_38265137/article/details/89423809]:

IP隧道

《图解TCP/IP》学习笔记(五) IP协议相关技术

其他IP相关技术

IP多播相关技术

在多播通信中确认接收端,通过MLD——多播监听发现。

IGMP Internet Group Management Protocol

  1. 向路由器表明想要接收多播消息
  2. 向交换hub通知想要接收多播的地址——IGMP探听

通常交换集线器只会习得单播地址,多播帧会不经过滤全部被拷贝到端口上,会导致网络负荷加重,使用IGMP探听可以过滤多播帧。交换集线器对所通过的IGMP包进行监控,从而不会向无关的端口发送多播帧

IP任播

主要用于报警电话、消防电话系统。

IP任播是指为那些提供同一种服务的服务器配置同一个IP地址,并与最近的服务器进行通信。IPv4 v6都适用。

IP任播应用当中最为有名的是DNS根域名服务器。

Mobile IP

在主机所连接的子网IP发生变化时,主机IP地址保持不变。

TCP是面向连接的协议,自始至终都需要发送端和接收端主机IP地址不变。UDP情况下也无法继续通信。

MOBILE IP就是在IP地址改变情况下,也能继续通信的技术。

《图解TCP/IP》学习笔记(五) IP协议相关技术