TCP / IP protocol diagram - IP network layer protocol

  • IP (IPv4, IPv6) corresponds to the layer 3 OSI reference model - the network layer. The main role of the network layer is "communication between the terminal nodes." Such communication between the terminal nodes is also called "point to point communication."
  • The next layer of the network - the main role of the data link layer packet is transferred between the same nodes are interconnected in a data link. Once across multiple data link, network layer needs to use. The network layer across different data links, can be achieved even if the data packet transmission between nodes on different ends of the data link.
  • IP effect is roughly divided into three main modules, which are IP addressing, routing (forwarding until the final node) and the IP sub-pack.

1. IP address

1.1 IP Addresses
  • In computer communications, to identify peer communication, there must be a similar identification code addresses identified. MAC addresses in the data link of the same link is used to identify the identification code of one of a different computer.
  • As the IP network layer, also have this address information, generally called an IP address. IP address for the "communication identifies the destination address of all hosts connected to the network in the" on. Therefore, the TCP / IP communications to all hosts or routers must set its own IP address.
  • No matter what kind of data with a host link connection in the form of IP addresses remain unchanged.
  • IP address (IPv4 address) is represented by 32-bit integer. IP addresses are processed inside the computer in binary mode. However, since we do not tend to use binary, we 32-bit IP address to each group of eight bits divided into 4 groups, each with "." Separated, then converted to decimal number each. as follows:
28 28 28 28
10101100 00010100 00000001 00000001 (Binary)
10101100. 00010100. 00000001. 00000001 (Binary)
172. 20. 1. 1 (10 hex)
1.2 IP address by a network and host identifier composed of two parts
  • Below, the network identifier configure different values ​​in each segment of the data link. Network identification address of each segment must ensure that interconnected non-duplicative. And the host is connected to the same segment must have the same network address. "Host Identity" IP address is allowed to be repeated in the same network segment. Accordingly, by setting a network address and a host address, throughout a network of interconnected IP address of each host to ensure that they will not overlap each other. That IP address has a unique.

img

IP地址的主机标识

  • 如下图,IP 包被转发到途中某个路由器时,正是利用目标 IP 地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机。

img

IP地址的网络标识

1.3 IP 地址的分类
  • IP 地址分为四个级别,分别为A类、B类、C类、D类。它根据 IP 地址中从第 1 位到第 4 位的比特列对其网络标识和主机标识进行区分。
  • A 类 IP 地址是首位以 “0” 开头的地址。从第 1 位到第 8 位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0 是 A 类的网络地址。A 类地址的后 24 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为16,777,214个。
  • B 类 IP 地址是前两位 “10” 的地址。从第 1 位到第 16 位是它的网络标识。用十进制表示的话,128.0.0.0~191.255.0.0 是 B 类的网络地址。B 类地址的后 16 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为65,534个。
  • C 类 IP 地址是前三位为 “110” 的地址。从第 1 位到第 24 位是它的网络标识。用十进制表示的话,192.0.0.0~223.255.255.0 是 C 类的网络地址。C 类地址的后 8 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为254个。
  • D 类 IP 地址是前四位为 “1110” 的地址。从第 1 位到第 32 位是它的网络标识。用十进制表示的话,224.0.0.0~239.255.255.255 是 D 类的网络地址。D 类地址没有主机标识,常用于多播。
  • 在分配 IP 地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可以全部为 0 或全部为 1。因为全部为 0 只有在表示对应的网络地址或 IP 地址不可以获知的情况下才使用。而全部为 1 的主机通常作为广播地址。因此,在分配过程中,应该去掉这两种情况。这也是为什么 C 类地址每个网段最多只能有 254( 28 - 2 = 254)个主机地址的原因。
1.4 广播地址
  • 广播地址用于在同一个链路中相互连接的主机之间发送数据包。将 IP 地址中的主机地址部分全部设置为 1,就成了广播地址。
  • 广播分为本地广播和直接广播两种。在本网络内的广播叫做本地广播;在不同网络之间的广播叫做直接广播。
1.5 IP 多播
  • 多播用于将包发送给特定组内的所有主机。由于其直接使用 IP 地址,因此也不存在可靠传输。

  • 相比于广播,多播既可以穿透路由器,又可以实现只给那些必要的组发送数据包。请看下图:

    img

    IP 多播

  • 多播使用 D 类地址。因此,如果从首位开始到第 4 位是 “1110”,就可以认为是多播地址。而剩下的 28 位可以成为多播的组编号。

  • 此外, 对于多播,所有的主机(路由器以外的主机和终端主机)必须属于 224.0.0.1 的组,所有的路由器必须属于 224.0.0.2 的组。

1.6 子网掩码
  • 现在一个 IP 地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比 A 类、B 类、C 类更小粒度的网络。这种方式实际上就是将原来 A 类、B 类、C 类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。
  • 子网掩码用二进制方式表示的话,也是一个 32 位的数字。它对应 IP 地址网络标识部分的位全部为 “1”,对应 IP 地址主机标识的部分则全部为 “0”。由此,一个 IP 地址可以不再受限于自己的类别,而是可以用这样的子网掩码自由地定位自己的网络标识长度。当然,子网掩码必须是 IP 地址的首位开始连续的 “1”。
  • 对于子网掩码,目前有两种表示方式。第一种是,将 IP 地址与子网掩码的地址分别用两行来表示。以 172.20.100.52 的前 26 位是网络地址的情况为例,如下:
IP 地址 172. 20. 100. 52
子网掩码 255. 255. 255. 192
网络地址 172. 20. 100. 0
子网掩码 255. 255. 255. 192
广播地址 172. 20. 100. 63
子网掩码 255. 255. 255. 192
  • 第二种表示方式是,在每个 IP 地址后面追加网络地址的位数用 “/ ” 隔开,如下:
IP 地址 172. 20. 100. 52 / 26
网络地址 172. 20. 100. 0 / 26
广播地址 172. 20. 100. 63 / 26
  • 另外,在第二种方式下记述网络地址时可以省略后面的 “0” 。例如:172.20.0.0/26 跟 172.20/26 其实是一个意思。

2. 路由

  • 发送数据包时所使用的地址是网络层的地址,即 IP 地址。然而仅仅有 IP 地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表。
  • 该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其他路由器相互交换信息时自动刷新。前者也叫做静态路由控制,而后者叫做动态路由控制。
  • IP 协议始终认为路由表是正确的。然后,IP 本身并没有定义制作路由控制表的协议。即 IP 没有制作路由控制表的机制。该表示由一个叫做“路由协议”的协议制作而成。
2.1 IP 地址与路由控制
  • IP 地址的网络地址部分用于进行路由控制。
  • 路由控制表中记录着网络地址与下一步应该发送至路由器的地址。
  • 在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。

img

路由控制表与 IP 包发送

3. IP 分包与组包

  • 每种数据链路的最大传输单元(MTU)都不尽相同,因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的 MTU 也就不同。
  • 任何一台主机都有必要对 IP 分片进行相应的处理。分片往往在网络上遇到比较大的报文无法一下子发送出去时才会进行处理。
  • 经过分片之后的 IP 数据报在被重组的时候,只能由目标主机进行。路由器虽然做分片但不会进行重组。
3.1 路径 MTU 发现
  • 分片机制也有它的不足。如路由器的处理负荷加重之类。因此,只要允许,是不希望由路由器进行 IP 数据包的分片处理的。
  • 为了应对分片机制的不足,“路径 MTU 发现” 技术应运而生。路径 MTU 指的是,从发送端主机到接收端主机之间不需要分片是最大 MTU 的大小。即路径中存在的所有数据链路中最小的 MTU 。
  • 进行路径 MTU 发现,就可以避免在中途的路由器上进行分片处理,也可以在 TCP 中发送更大的包。

4. IPv6

  • IPv6(IP version 6)是为了根本解决 IPv4 地址耗尽的问题而被标准化的网际协议。IPv4 的地址长度为 4 个 8 位字节,即 32 比特。而 IPv6 的地址长度则是原来的 4 倍,即 128 比特,一般写成 8 个 16 位字节。
4.1 IPv6 的特点
  • IP 得知的扩大与路由控制表的聚合。
  • 性能提升。包首部长度采用固定的值(40字节),不再采用首部检验码。简化首部结构,减轻路由器负担。路由器不再做分片处理。
  • 支持即插即用功能。即使没有DHCP服务器也可以实现自动分配 IP 地址。
  • 采用认证与加密功能。应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能。
  • 多播、Mobile IP 成为扩展功能。
4.2 IPv6 中 IP 地址的标记方法
  • 一般人们将 128 比特 IP 地址以每 16 比特为一组,每组用冒号(“:”)隔开进行标记。
  • 而且如果出现连续的 0 时还可以将这些 0 省略,并用两个冒号(“::”)隔开。但是,一个 IP 地址中只允许出现一次两个连续的冒号。
4.3 IPv6 地址的结构
  • IPv6 类似 IPv4,也是通过 IP 地址的前几位标识 IP 地址的种类。
  • 在互联网通信中,使用一种全局的单播地址。它是互联网中唯一的一个地址,不需要正式分配 IP 地址。
未定义 0000 ... 0000(128比特) ::/ 128
环回地址 0000 ... 0001(128比特) ::1 / 128
唯一本地地址 1111 110 FC00:/ 7
链路本地单播地址 1111 1110 10 FE80::/ 10
多播地址 1111 1111 FF00::/ 8
全局单播地址 (其他)
4.4 全局单播地址
  • 全局单播地址是指世界上唯一的一个地址。它是互联网通信以及各个域内部通信中最为常用的一个 IPv6 地址。
  • 格式如下图所示,现在 IPv6 的网络中所使用的格式为,n = 48,m = 16 以及 128 - n - m = 64。即前 64 比特为网络标识,后 64 比特为主机标识。

img

全局单播地址

4.5 链路本地单播地址
  • 链路本地单播地址是指在同一个数据链路内唯一的地址。它用于不经过路由器,在同一个链路中的通信。通常接口 ID 保存 64 比特版的 MAC 地址。

img

链路本地单播地址

4.6 唯一本地地址
  • 唯一本地地址是不进行互联网通信时所用的地址。
  • 唯一本地地址虽然不会与互联网连接,但是也会尽可能地随机生成一个唯一的全局 ID。
  • L 通常被置为 1
  • 全局 ID 的值随机决定
  • 子网 ID 是指该域子网地址
  • 接口 ID 即为接口的 ID

img

唯一本地地址

4.7 IPv6 分段处理
  • IPv6 的分片处理只在作为起点的发送端主机上进行,路由器不参与分片。
  • IPv6 中最小 MTU 为 1280 字节,因此,在嵌入式系统中对于那些有一定系统资源限制的设备来说,不需要进行“路径 MTU 发现”,而是在发送 IP 包时直接以 1280 字节为单位分片送出。
4.8 IP 首部(暂略)

5. IP 协议相关技术

  • IP 旨在让最终目标主机收到数据包,但是在这一过程中仅仅有 IP 是无法实现通信的。必须还有能够解析主机名称和 MAC 地址的功能,以及数据包在发送过程中异常情况处理的功能。
5.1 DNS
  • 我们平常在访问某个网站时不适用 IP 地址,而是用一串由罗马字和点号组成的字符串。而一般用户在使用 TCP/IP 进行通信时也不使用 IP 地址。能够这样做是因为有了 DNS (Domain Name System)功能的支持。DNS 可以将那串字符串自动转换为具体的 IP 地址。
  • 这种 DNS 不仅适用于 IPv4,还适用于 IPv6。
5.2 ARP
  • 只要确定了 IP 地址,就可以向这个目标地址发送 IP 数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个 IP 地址所对应的 MAC 地址。
  • ARP 是一种解决地址问题的协议。以目标 IP 地址为线索,用来定位下一个应该接收数据分包的网络设备对应的 MAC 地址。不过 ARP 只适用于 IPv4,不能用于 IPv6。IPv6 中可以用 ICMPv6 替代 ARP 发送邻居探索消息。
  • RARP 是将 ARP 反过来,从 MAC 地址定位 IP 地址的一种协议。
5.3 ICMP
  • ICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络设置等。
  • IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4。也就是说,在 IPv4 时期,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信。
5.4 DHCP
  • 如果逐一为每一台主机设置 IP 地址会是非常繁琐的事情。特别是在移动使用笔记本电脑、只能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新设置 IP 地址。
  • 于是,为了实现自动设置 IP 地址、统一管理 IP 地址分配,就产生了 DHCP(Dynamic Host Configuration Protocol)协议。有了 DHCP,计算机只要连接到网络,就可以进行 TCP/IP 通信。也就是说,DHCP 让即插即用变得可能。
  • DHCP 不仅在 IPv4 中,在 IPv6 中也可以使用。
5.5 NAT
  • NAT (Network Address Translator) is a private address on the local network, using technology instead of a global IP address when connecting to the Internet.
  • In addition to the IP address conversion, the conversion can also appeared TCP, UDP port number NAPT (Network Address Ports Translator) technology, whereby communication with a global IP address and the plurality of hosts may be achieved.
  • NAT (NAPT) is actually the technology is facing depletion of IPv4 addresses and development. However, in order to increase the IPv6 security network also using the NAT, NAT-PT is often used in the mutual communication between the IPv4 and IPv6 them.
5.6 IP tunnel

img

Sandwiched between two IPv4 network IPv6 network

  • Network environment as shown above, the network between the network A and B can not communicate directly, in order to allow proper communication between them, then we have to use IP tunneling function.
  • IP tunnel those packets can be sent from the system over the IPv6 network A's data into one, then whom additional IPv4 header of a later forwarded to the network C.
  • In general, followed by IP header is the first TCP or UDP. Now, however, the application of which "behind the IP header or the IP header" or "behind the IP header is the first part of IPv6," and so on increasing. This method of adding a communication network layer header behind network layer header is called "IP tunneling."

Guess you like

Origin www.cnblogs.com/tutougold/p/11722831.html