今天看啥  ›  专栏  ›  刘诗能💨💨

TCP/IP各层讲解 - 网络层(下)

刘诗能💨💨  · 掘金  ·  · 2019-10-31 15:30
阅读 8

TCP/IP各层讲解 - 网络层(下)

DNS

DNS(域名系统协议)主要是负责域名与IP地址之间的转换,当访问域名时,DNS会自动检索注册当前域名的主机的IP地址进行返回。

域名的构成

了解DNS是怎么检索之前,需要了解域名是怎么构成的。举个例子:

www.yahoo.com.cn 分别对应的是:

  • 顶级域名:cn/com
  • 组织机构名:yahoo
  • 主机名:www

域名的结构就是一个树状结构,顶点就是根(Root),底下就是第一级域名(顶级域名)如:.com 顶级域名/一级域名,二级域名就是:baidu.com,如此类推,三级域名就是tieba.baidu.com。每一级域名下面都有一个域名服务器,每一层域名服务器注册着下一层的IP地址,对于DNS的检索数据有着至关重要的作用。

DNS查询

举个例子,当ku-sa.co.cn域中的计算机想要访问www.ietf.org的时候

  1. 解析器(主机)就向本域下的域名服务器进行查询
  2. 接收到查询的域名服务器会在数据库进行查询,找到即可返回,如果没有找到,则像上一层根服务器进行查询。
  3. 根服务器知道ietf.org域名服务器的地址,把域名服务器地址返回。
  4. ku-sa.co.cn的域名服务器会像ietf.org域名服务器请求www.ietf.org的IP地址,然后返回。
  5. 这样ku-sa.co.cn域中的计算机就可以和www.ietf.org建立通信。

ARP

ARP是一个以IP地址为线索,可以找到对应的MAC地址的协议。如果查找的IP地址不在同一数据链路,则会返回下一跳的路由器MAC地址。

ARP的工作机制

ARP的工作机制其实就是利用广播发送一个ARP请求包,这个包包含了想要了解其MAC地址的IP地址,当适配的主机接收到此包后ARP响应包进行返回。

如果每一次获取MAC地址都需要发送包会造成不必要的网络流量。因此,MAC地址通常都会被缓存一段时间,当到过期时间后,重新请求MAC地址后,被缓存的MAC地址即被删除。

IP地址和MAC地址缺一不可?

blog.csdn.net/guorong520/…

  1. 首先,我们如果第一次将信息从A端发往B端,那么信息需要从应用层到物理层一层一层进行封装,到达对端后再从物理层到应用层依次解包,拿到信息。
  2. A端发送的信息到了网络层的时候只能知道对方的IP地址,却不了解对方的MAC地址,到不了数据链路层,无法发送帧,所以这时我们就需要使用ARP协议,来获取到对端的MAC地址。
  3. 这时就有人说,为啥不直接使用IP地址,知道了对端的IP地址就可以直接发送了,是的,它确实可以识别一台主机,但是在局域网中,IP地址都是动态分配的,当你下一次发送消息时,说不定就不是这个IP地址了(分配到了新的IP地址),但是MAC地址就不存在这个问题,其序列号存在于网卡中,全球唯一,一出厂网卡上就烧录了MAC地址(48位的序列号)。那么此时有人就说光使用MAC地址不就够了,还需要IP地址干嘛?
  4. 其实,MAC地址种类繁杂,到处分布在世界上海量的主机上,要是光靠MAC地址来找对端,不知道路由器转发的消息得到猴年马月才能到对端手上,那么,此时IP地址的优势就体现了出来。IP地址的分配有一定的区域性,通过IP地址可以将地址进行集约。就好比你找某个地方,通过IP地址你可以找到大致的方位,如中国陕西,再通过MAC地址,找到具体地方的街道门牌号。

ICMP

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

举个例子:主机A给主机B发送数据包,但由于主机B关机了无法发送,那么主机B所连接的路由器B就会给主机A发送一个ICMP包告诉主机A究竟是什么原因导致。

下面是ICMP消息类型

  • 0:回送应答
  • 3:目标不可达
  • 4:原点抑制
  • 5: 重定向或改变路由
  • 8: 回送请求
  • 9: 路由器公告
  • 10: 路由器请求
  • 11: 超时
  • 17: 地址子网请求
  • 18:地址子网应答

ICMPv6

ICMPv6对于IPv6来说是必不可少的。在IPv6中,从IP地址寻找MAC地址的ARP变成了ICMPv6中的邻居探索。邻居搜索消息融合了ARP、ICMP重定向以及ICMP路由器选择消息等功能,设置融合了DHCP自动分配IP地址的功能。

DHCP

DHCP主要是为了实现自动设置IP地址、统一管理IP地址分配,也就是即插即用。

DHCP工作机制

  1. DHCP客户端发送DHCP发现包,由于IP地址尚未确定,所以DHCP发现包的地址为广播地址。
  2. 管理员在DHCP服务器上设置可分配的IP地址、默认地址以及子网掩码。然后DHCP服务端(路由器)通知可以使用的网络设置。
  3. DHCP客户端广播其他DHCP客户端通知想要使用的IP地址。
  4. DHCP服务端通知DHCP客户端允许配置。

DHCP中继器

一般家庭可使用路由器充当DHCP服务端,但在大型的网络中,如果需要给每个路由器都配置可分配的IP地址范围,会变得难以维护。这时可以使用DHCP中继器进行统一管理,DHCP客户端会向DHCP中继器发送DHCP请求包,当DHCP接受到这个包后会以单播的形式发给DHCP服务器。服务器会向DHCP中继器作出应答,并由中继器将包返回DHCP客户端。

NAT

NAT是用在本地网络中使用私有地址,而在连接互联网的时候就使用全局IP地址的技术。

NAT工作机制

如果10.0.0.10的主机要和163.221.120.9通信,在通过NAT路由器的时候会被转化为全局IP地址202.224.137.34进行通信,而当包返回时,会把地址转化为10.0.0.10再进行转发。

但这样子全局地址明显是浪费的,所以这时候就使用NAPT解决。即是在请求的时候带上端口号,10.0.0.10:8082和10.0.0.10:8083都需要与外界通信,在通过NAPT转化的时候,全局地址既变成202.224.137.34:8082和202.224.137.34:8082进行通信。

写在最后

IP层说完啦啦啦啦

图解TCP/IP

这会作为最近的一个长期目标不定期更新。




原文地址:访问原文地址
快照地址: 访问文章快照