1IP基础知识全家桶

1.1认识IP

IP位于TCP/IP参考模型中的第三层,网络层
网络层主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信

网络层和数据链路层有什么关系
IP的负责在没有直连的两个网络之间进行通信传输,换句话说作用是在复杂的网络环境中,将数据包发送给最终目的主机
MAC的作用是实现直连的两个设备之间的通信
在没有使用NAT网络的情况下,源IP和目标IP地址在传输过程中不会变化,只有源MAC地址和目标MAC一直变化。

1.2IP地址的基础知识

IPv4地址长4个字节,按点分十进制的标记方式,一个字节一组,每组以.隔开,再将二进制转换成十进制。

理论上来说,最多有2的32次方约43个IP,远远不够给每台电子设备配备IP,为什么能够支持这么多IP呢?
依靠NAT技术转换IP地址

1.2.1 IP地址的分类

共五类

为什么最大主机数需要减去2?

在IP地址中主机号全1指定当前网络下的所有主机,用于广播,这个地址叫做广播地址
主机号全0用于指定当前网络

广播地址有什么作用,广播地址用于做什么?

1.广播地址用于在同一个链路中相互连接的主机之间发送数据包
2.本地广播:在本网络内广播,
3.直接广播:在不同网络之间广播

D、E类地址是什么,有什么用处

D类和E类地址没有主机号,无法用于主机IP
D类常用于多播,即将包(package)发送给特定组内的所有主机
E类暂时未使用

IP分类的优点

简洁明了,选路简单
只需要依序判断前4位是否为0,很快就能找出网络地址和主机地址

IP分类的缺点

不够灵活:同一网络下,没有地址层次,比如生产环境、测试环境、开发环境需要不同的地址层次
A、B、C类地址不能很好的与现实网络匹配:C类太少,B类太多

1.2.2 无分类地址CIDR

怎么划分网络号和主机号呢?

way1:a.b.c.d/x,其中/x表示前x位属于网络号,x的范围是0~32
例如:10.100.122.2/24,这种地址表示形式就是CIDR,
way2:子网掩码(掩盖主机号,剩下网络号),将子网掩码与IP地址按位计算AND,就可得到网络号
例如:IP地址10.100.122.2、子网掩码255.255.255.0,网络号10.100.122.0

为什么需要分离网络号和主机号?

计算机要通讯,先判断网络地址是否相同(是否位于同一个广播域),相同就可以把数据包直接发送到目标主机
不同则需要进行转发

怎么进行子网划分?

way1:子网掩码将主机地址分为两个部分:子网网络地址和子网主机地址
对C类地址192.168.1.0,使用子网掩码255.255.255.192进行子网划分,前24位是网络号,后6位是子网主机号,中间2位是子网网络号

1.2.3 公有IP地址和私有IP地址

谁管理公有IP地址?

1.2.4 IP地址与路由控制

1.2.5 IP分片与重组

1.2.6 认识IPv6

1.2.7 IPv4首部和IPv6首部

1.3IP协议相关技术

1.3.1 DNS

1.3.2 ARP

1.3.3 DHCP

1.3.4 NAT

NAT怎么缓解IPv4地址耗尽

网络地址转换NAT,将私有IP地址转换成公有IP地址
这样简单的转换没什么意义,N个私有IP地址就要N个公有IP地址,无法环境IPv4地址耗尽的问题。
网络地址与端口转换NAPT,由于绝大多数的网络应用都是使用传输层协议TCP或UDP来传输数据,所以可以把IP地址+端口号一起转换,只需要一个全球IP地址即可。
比如:有两个客户端192.168.1.10和192.168.1.11同时与服务器183.232.231.172进行通信,且这两个客服端的本地端口都是1025。我们就可以把两个私有IP地址都转换成公有地址120.229.175.121,但以不同端口号作为区分。
再生成一个NAPT路由器的转换表,就可以正确的转换地址和端口的组合,使得客户端A、B能同时与服务器进行通信。

缺点:由于NAT/NAPT都依赖于自身的转换表,存在以下问题

外部无法主动于NAT内部服务器建立连接,因为NAPT转换表没有转换记录
转换表的生成和转换操作都会产生性能开销
通信过程中,如果NAT路由器重启了,所有的TCP连接都会被重置

如何解决NAT潜在的问题呢?

way1:改用IPv6,IP量大管饱
way2:NAT穿透技术,让网络应用程序主动发现自己位于NAT设备之后,并且会主动获得NAT设备的公有IP,并为自己建立端口映射条目,注意这些都是NAT设备后的应用程序自动完成的
简而言之就是客户端主动从NAT设备获取公有IP地址,然后自己建立端口映射条目,使用这个条目对外通信,就不需要NAT设备来进行转换了

1.3.5 ICMP

1.3.6 IGMP

2.ping的工作原理

2.1 IP协议的助手——ICMP协议

2.2 查询报文类型

2.3 差错报文类型

2.4 ping——查询报文类型的使用

2.5 traceroute——差错报文类型的使用

3.ping通127.0.0.1的背后原理

3.1 什么是127.0.0.1

3.2 什么是ping

3.3 TCP发数据和ping的区别

3.4 为什么断网了还能ping通127.0.0.1

3.5 ping回环地址和ping本机地址有什么区别

3.6 127.0.0.1和localhost以及0.0.0.0有区别吗

3.7 总结