IP 协议是互联网的核心协议,工作在网络层。它给网络中的设备分配唯一的 IP 地址,把上层数据封装成数据包,然后根据目的 IP 地址通过路由器等设备进行转发,实现数据在不同网络间的传输。它还能在必要时对数据包进行分片和重组,以适应不同网络的 MTU 限制,为互联网上的设备通信提供了基础的寻址和数据传输功能。
IP 地址就像是网络中每个主机的 “身份证”,具有标识主机身份和位置的作用。
ip由网络号和主机号构成:
通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的 IP 地址都不相同。
那么问题来了,手动管理子网内的 IP,是一个相当麻烦的事情。
- 有一种技术叫做 DHCP,能够自动的给子网内新增主机节点分配 IP 地址,避免了手动管理 IP 的不便。
- 一般的路由器都带有 DHCP 功能。因此路由器也可以看做一个 DHCP 服务器。
ip报文:
有类地址分类 :
它是ip最基础的分类,把IP地址可以分为五类:A\B\C\D\E,不好的是它对每一个类区分以后会有不同的要求,而且数量上有限制。
针对这种效率不高的情况提出了新的划分方案,称为 CIDR (Classless Interdomain Routing):
- 引入一个额外的子网掩码 (subnet mask) 来区分网络号和主机号;
- 子网掩码也是一个 32 位的正整数。通常用一串 "0" 来结尾;
- 将 IP 地址与子网掩码进行 "按位与" 操作,得到的结果就是网络号;
- 网络号和主机号的划分与这个 IP 地址是 A 类、B 类还是 C 类无关;
通过将 IP 地址与子网掩码的反码进行按位与运算,得到的结果就是主机号;通过让 IP 地址和子网掩码进行按位与运算,就能得到网络号。
所以在这个子网范围里面不存在网络号主机和广播主机,所以可以用的主机只有256-2=254个
主机号就是.0广播号就是.255(也就是ip的首位和末位)
特殊的 IP 地址
- 将 IP 地址中的主机地址全部设为 0,就成为了网络号,代表这个局域网;
- 将 IP 地址中的主机地址全部设为 1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
- 127.* 的 IP 地址用于本机环回 (loop back) 测试,通常是 127.0.0.1
CIDR 在一定程度上缓解了 IP 地址不够用的问题 (提高了利用率,减少了浪费,但是 IP 地址的绝对上限并没有增加),仍然不是很够用。这时候有三种方式来解决:
- 动态分配 IP 地址:只给接入网络的设备分配 IP 地址。因此同一个 MAC 地址的设备,每次接入互联网中,得到的 IP 地址不一定是相同的;
- NAT 技术;
- IPv6:IPv6 并不是 IPv4 的简单升级版。这是互不相干的两个协议,彼此并不兼容;IPv6 用 16 字节 128 位来表示一个 IP 地址;但是目前 IPv6 还没有普及;
私有 IP 地址和公网 IP 地址
如果一个组织内部组建局域网,IP 地址只用于局域网内的通信,而不直接连到 Internet 上,理论上 使用任意的 IP 地址都可以,但是 RFC 1918 规定了用于组建局域网的私有 IP 地址
- 10.*,前 8 位是网络号,共 16,777,216 个地址
- 172.16. 到 172.31.,前 12 位是网络号,共 1,048,576 个地址
- 192.168.*,前 16 位是网络号,共 65,536 个地址
包含在这个范围中的,都成为私有 IP,其余的则称为全局 IP (或公网 IP);
也就是说,私有和共有都是有规定的:在某个范围内是私有其余就是公有了!
在日常生活中其实都使用的公有IP,私有IP比较少见,例如云服务器就是私有!
NAT技术:
在我看来就是一个转发技术:NAT 就像一个 “翻译员”。家里或公司里很多设备用的是不能直接连外网的私有 IP 地址,没法直接和外网通信。NAT 路由器就把这些设备的私有 IP 地址,转换成能连外网的公网 IP 地址 。比如你家电脑想上网,它的私有 IP 地址别人不认识,NAT 路由器就把这个地址换成自己的公网 IP,再把上网请求发出去。等外网有回应了,NAT 路由器又能把回应里的公网 IP 换回你家电脑的私有 IP,这样你家电脑就能正常上网了。而且,它还能让好多设备共用一个公网 IP,就像很多人用一个 “身份证” 出门一样,既省了公网 IP 的数量,又能把家里、公司里设备的真实 IP 藏起来,让外面的人不容易找到,更安全 。
公有+私有=互联网
网络层进行了分片,那等目标主机收到以后在网络层再进行组装!
交换机是存在于数据链路层的!它的作用:划分碰撞域,减少局域网碰撞!
Mac帧只在局域网内有效,一旦涉及转发的时候就和mac帧无关了
- IP 地址描述的是路途总体的 起点 和 终点;
- MAC 地址描述的是路途上的每一个区间的起点和终点
在传输的过程中,会有情况是需要你知道MAC地址或者一定要知道IP地址,此时就会有一种协议进行交换。
ARP是拿IP换MAC;RARP是拿mac换ip
ICMP 协议
ICMP 协议是一个 网络层协议
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是 IP 协议并不提供可靠传输。如果丢包了,IP 协议并不能通知传输层是否丢包以及丢包的原因。
ICMP 功能
ICMP 正是提供这种功能的协议;ICMP 主要功能包括:
确认 IP 包是否成功到达目标地址。
- 通知在发送过程中 IP 包被丢弃的原因。
- ICMP 也是基于 IP 协议工作的。但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议;
- ICMP 只能搭配 IPv4 使用。如果是 IPv6 的情况下,需要是用 ICMPv6;
结论就是:Icmp分为两大类报文:一类是通知出错原因 另一类是用于诊断原因