计算机网络②IP协议
作者:互联网
3、IP 协议
TCP/IP 的心脏是互联网层,对应 OSI 参考模型的网络层。
-
网络层:实现终端节点之间的通信,端到端通信(end-to-end)。
-
主机:配置有 IP 地址,但不进行路由控制。
-
路由器:既配置有 IP 地址,也具有路由控制能力。
3.1、网络层 & 数据链路层
-
数据链路层:提供直连的两个设备之间的通信功能。即在同一条数据链路中的节点进行包传递。
-
网络层:可以跨越不同的数据链路。
3.2、IP 基础知识
- IP 面向无连接:发包之前不需要与目标主机建立连接,有需要发送的数据会被立即压缩成 IP 包发送出去。
- 简化:连接的建立和管理比较繁琐。
- 提速:每次通信前建立连接,降低处理速度
- 可靠性问题
- IP:尽力服务(Best Effort),但可能丢包、乱序、重复。
- TCP:面向有连接,可靠传输 。
3.2.1、IP 地址
-
IP 地址:用于在连接到网络中的所有主机,识别出目标主机。
-
主机上的每一块网卡(NIC)都需要设置 IP 地址。
-
IPv4:32 位二进制数。每 8 位为一组,用
.
隔开,再转换为十进制数。 -
组成
- 网络地址:每个网段的网络地址不同,相同网段中的主机的网络地址相同。
- 主机地址:同一个网段内的主机地址唯一。
-
分类
-
广播地址:IP 地址中,主机地址都设置为 1。
-
IP 多播:使用 D 类地址
-
子网:IP 地址的部分主机地址,用作子网地址。
-
子网掩码:IP 地址中,网络地址全为 1,主机地址全为 0。
-
IP 地址数量:存在耗尽的危险
- 全局地址:在整个互联网范围内保持唯一。
- 私有地址:在同一个域里保持唯一。
3.2.2、路由控制
-
路由控制(Routing):将分组数据发送到最终目标地址。
- 跳(Hop):网络中的一个区间,IP 数据报在一个个跳间被转发。
- 多跳路由:路由器或主机在转发 IP 数据报时,只指定下一跳地址(下一个路由器或主机),而不是把到目标地址的所有通路全部指定。
-
路由控制表(Routing Table):记录网络地址和下一跳地址。
-
形成方式:管理员手动设置,或与其它路由器相互交换信息时自动刷新。
-
工作过程
- 发送 IP 包时,确定 IP 包首部中的目标地址;
- 查路由控制表,找到具有相同网络地址的记录(最长匹配:相同位数最多的记录);
- 转发给下一个路由器;
- 直到到达目标主机。
-
默认路由(Default Route):路由表任意一个地址都能与之匹配,标记为
0.0.0.0/0
或default
。0.0.0.0/0
:后面是/0
,说明不是标识一个 IP 地址;default
:很少使用
-
主机路由(Host Route):IP 地址的所有位都参加路由,标记为
IP地址/32
-
环回地址:同一台计算机上的程序之间通信时使用。地址为
127.0.0.1
,主机名为localhost
。
3.2.3、IP 分片
不同数据链路的最大传输单位(MTU)不同,IP 抽象化了数据链路。
-
IP 分片(IP Fragmentation):将 IP 分为多个较小的包。
- 在源主机或路由器进行分片,在目标主机进行重组。
- 缺点:路由器处理负荷加重,因此引入路径 MTU。
-
路径 MTU:收发主机之间,不需要分片时 MTU 的最大大小。即路径上所有数据链路中最小的 MTU。
-
路径 MTU 发现:在发送主机按照路径 MTU 的大小分片后进行发送,避免在路由器上进行分片。
- 发送主机发送 IP 数据报时,将首部的分片标志位设为 1(表示不分片)。
- 路由器接收时将该包丢弃,并通过 ICMP 将 MTU 值返回给发送主机。
- 发送主机设置当前 MTU,对数据报进行分片,再次发送。
- 反复以上,直到不再接收到 ICMP 的消息,说明已经是一个合适的 MTU 值。
3.3、IPv4 首部
3.4、相关技术
IP 将数据包发送到目标主机,但仅凭 IP 无法 完成通信。
3.4.1、DNS
域名系统(Domain Name System),适用于 IPv4 和 IPv6
-
DNS:负责主机名和 IP 地址的转换。
-
域名分层结构(树形)
- 根域
- 顶级域
- 二级域
- 三级域或主机名
-
域名服务器:管理域名的主机和软件,管理的分层为 ZONE(区)。
-
DNS 解析器(Resolver):进行 DNS 查询的主机和软件。
-
DNS 查询
- 解析器向 DNS 服务器查询 IP 地址;
- 服务器接收到请求:如果有该域名对应的 IP 地址会直接返回;如果没有,会向上一层服务器查询;
- 直到找到指定的域名服务器,并由该服务器返回查询的 IP 地址。
3.4.2、ARP
地址解析协议(Address Resolution Protocol) ,适用于 IPv4
-
ARP:从 IP 地址定位 MAC 地址。
- ARP 请求:源 MAC 地址,目标 IP 地址;
- ARP 响应:源 IP 地址,目标 MAC 地址。
-
工作过程
-
源主机通过广播发送一个 ARP 请求包(包含了源 MAC 地址,想要了解其 MAC 地址的目标 IP 地址)。
-
同一个链路上的所有主机和路由器接收并解析 ARP 请求包;
-
如果其中的目标 IP 地址与自身的 IP 地址一致,则通过其中的源 MAC 地址,发送一个 ARP 响应包给源主机(包含了自身 MAC 地址)
-
-
缓存:将获取到的 MAC 地址缓存一段时间,避免浪费网络流量。
-
RARP(Reverse ARP):与 ARP 相反,从 MAC 地址定位 IP 地址。
-
代理 ARP:将 ARP 请求转发给相邻的网段,而不会被路由器隔离。
3.4.3、ICMP
网际管理信息协议(Internet Control Message Protocol)
-
搭建 IP 网络的注意点:确认网络正常工作,异常时问题诊断。
-
ICMP:确认 IP 包是否送达、通知源主机 IP 包被丢弃的原因、改善网络设置等。
-
ICMP 消息:通知出错原因的错误消息,用于诊断问题的查询消息。
3.4.4、DHCP
动态主机配置协议(Dynamic Host Configuration Protocol),适用于 IPv4 和 IPv6
- DHCP:自动设置 IP 地址、统一管理 IP 地址分配。
- 有了 DHCP,计算机只要连接到网络,就可以进行 TCP/IP 通信(即插即用)。
3.4.5、NAT
网络地址转换(Network Address Translator)
- NAT:将本地网络的私有地址,在连接互联网时转换成全局地址。
- NAT-PT:将 IPv6 的首部转换为 IPv4 的首部。
3.4.6、IP 隧道
-
IP 隧道:在网络层的首部后面追加网络层首部。
-
作用:让 IPv6 和 IPv4 的网络之间正常通信。
标签:ARP,协议,IP,MTU,计算机网络,地址,主机,路由器 来源: https://www.cnblogs.com/secretmrj/p/15939236.html