沧小海读《图解TCP/IP》笔记——第五章 IP相关技术


总目录在这里~

https://blog.****.net/z123canghai/article/details/107855399


第五章  IP相关技术


子目录

5.2 ARP

5.2 ICMP

5.3 DNS、DHCP、NAT和IP隧道


第四章主要产生了IP协议内容及在进行数据交换中所起到的作用。本章内容是对其内容的补充,仅是靠IP是无法完成数据包在互联网中的准确、高效、便捷传输的。本章就讲述了DNS、ARP、ICMP、DHCP、NAT等相关技术。当然,互联网技术是相当复杂的,即便有了这些补充,也仅是在原理上晓得多了些。


5.1 ARP

         对于从事FPGA的人来说,ARP是需要掌握的知识内容,我将从ARP是什么,为啥需要ARP,如何应用ARP这三个方面来进行阐述。

首先,ARP是什么?

ARP(Address Resolution Protocol)是地址解析协议,是根据IP地址获取物理地址的一个网络层协议。以目标IP地址为线索,用来定位下一个应该接收数据包的网络设备对应的MAC地址。

其次,为什么需要ARP

         完成数据的收发不仅需要网络层的IP地址,还需要数据链路层的MAC地址,一个实现网络中的数据传输,一个实现具体链路上的数据迁移,二者必不可少。为什么?如果只有MAC地址,数据包只能在本网段内溜达,由于路由器的限制,其他网段是别想去了。如果没有改限制,那就需要以广播的形式寻址目的主机,那将是非常耗费流量的。如果只有IP地址,那么可以理解为没有数据链路层,

最后,实现机制是什么?

         ARP是借助ARP请求与ARP响应两种类型的包确定MAC地址的,如下图。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术

         总的来说,就是从一个IP地址发出ARP请求包以了解其MAC地址,目标地址将自己的MAC地址填入其中的ARP响应包返回到IP地址,如下图是ARP格式包。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术

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


5.2 ICMP

         ICMP(Internet Control Message Protocol)Internet控制报文协议,也属于网络层。ICMP的主要功能有确认IP包是否成功送达目标地址,通知在发送过程中IP包被废弃的具体原因,改善网络设置等,我们最熟知的就是“Ping 操作”,但该操作不是ICMP的唯一。例如还能实现MTU的探索,改变路由线路等。

         ICMP的消息大致可以分为两大类:一类是通知出错原因的错误消息,一类是用于诊断的查询消息,如下图所示。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术

         上图是10大类功能,每个大类都有具体的功能,例如类型3目标不可达,又细致的区分了不可达原因,如下图。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术

         ICMP的数据格式如下所示,IP部首不多说了,ICMP数据中的类型、代码、选项数据这三个包含在ICMP数据部分的字段。类型和代码这两个字段表示所有ICMP 用来交流错误通知和信息询问的报文。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术


5.3 DNS、DHCP、NAT和IP隧道

         DNS域名系统(英文:Domain Name System)是互联网的一项服务。可见这是用在应用层的一项技术,对于搞FPGA的来说,知道就好。

         域名的作用就是与IP绑定,例如在搜索软件搜索“14.215.177.39”和http://www.baidu.com的效果是一样的。这是有个域名服务区实现之间的映射。我们浏览网页本质上就是从对方服务器获取文件。

         DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议。咱们电脑有时候设置为自动获取IP,就是用的这个协议,可以说实现了即插即用。

         NAT(Network Address Translation),即网络地址转换协议。实现了在本地网络中使用私有地址,连接互联网时转而使用全局IP地址的计数。除此之外,还转换TCP、UDP的端口号,即NAPT技术,如下图。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术

IP隧道:

如下图网络AB使用IPV6,如果网络C处于中间位置但使用IPV4,那么AB之间将无法直接通讯,这时可以把网络A发过来的IPV6的包统合为一个数据,在追加个Ipv4部首以后转发给网络C,这种在网络层部首后面继续追加网络层部首的通信方式叫做“IP隧道”。

沧小海读《图解TCP/IP》笔记——第五章 IP相关技术