文章目录
目录
前言
大家好,今天给大家介绍一下网络层中最重要的IP协议和一些辅助协议
TCP/IP的核心是网络层。 这一层主要是由IP和ICMP两个协议组成
1 . 网际协议IP
IP协议属于OSI参考模型中的第三层 - 网络层。 因此IP协议被称之为网际协议。
网络层的主要作用是 "实现终端节点之间的通信" 。 这种终端节点之间的通信也被叫做 “点对点通信”。
在数据链路中解决的主要问题是数据在一段链路上的传输问题, 而网络层解决的则是数据在不同链路上传输的问题, 即在网络中的传输问题。
1.1 网络层和数据链路层的关系
数据链路层负责将数据帧从一个节点传输到另一个相邻节点,而网络层则负责将数据包从源节点传输到目标节点。数据链路层通过物理连接将相邻节点连接起来,而网络层则通过路由选择将不同网络之间连接起来。因此,网络层和数据链路层是相互依赖、相互配合的关系,共同构建了整个网络通信的基础。
以“Expedia”旅行网站为例,数据链路层负责在不同服务器和用户设备之间传输数据帧,类似于旅行社内部的信息传递;网络层则负责将数据包从源到目的地,类似于旅行规划者将客户从一个地方安全送达另一个地方。数据链路层和网络层共同构建了网络通信的基础,确保数据的可靠传输。
总结:
数据链路层控制数据在一段链路上的传递
网络层保证数据从发送端到达接收端,中间具体是如何传输的,它并不会理会
2. IP基础知识
2.1 什么是IP地址?
在计算机通信中, 为了识别通信双方, 必须要有一个类似于地址的识别码进行标识。
在数据链路层中我们使用MAC地址来标识一段链路中不同的物理主机, 在网络层中我们则是使用IP地址作为识别码, 用来标识网络中的不同主机。
因此在TCP/IP通信中所有的主机和路由器都必须要设定自己的IP地址
2.2 路由控制
假设在网络中有两个主机A和B, A想要给B主机发送数据包, 那么A发出的数据包怎么到达B呢? 即使数据碰巧正确的到达了B,那么B返回的响应还能碰巧的到达A吗?
通过路由器实现路由控制
通过路由器最终可以实现数据正确的到达目的地
那么路由器是如何对数据包进行转发的呢?
路由其中存在一张路由控制表, 路由器是通过查表转发的方式来实现路由的
那么问题又来了,路由表是如何计算出来的? 或者说是如何配置的?
静态路由配置: 人工的方式
动态路由配置: 通过路由选择算法动态生成路由表(具体不展开)
3. IP地址基础知识
3.1 IP地址定义
IP地址由32位正整数来表示。 TCP/IP协议通信要求将IP地址分配给每个参与通信的主机,但是IP地址在计算机中是以二进制的方式进行处理, 与人类的记忆方式并不符合, 于是采用了一种表示方式对其进行优化, 规定每八位为一组, 分成四组, 每组之间以 . 隔开, 再将其转变为十进制数 - 点分十进制
可以通过简单的计算得到, 其最大可以分配的IP地址数量为 4294967296 最多可以供43亿主机接入到互联网, 这在早期或许是够用的, 但是在现在已经远远不够了, 那么是如何解决这个问题的呢?(后面说)
3.2 IP地址组成
IP地址由 "网络标识" 和 "主机标识" 两部分组成
互联网是由大大小小不同的网络组成,每个网络中都会有其不同的主机, 通过网络标识我们可以轻松的找到该网络, 通过主机标识我们可以锁定该网络中的那个特定的主机
通过网络标识可以直接锁定网络进行转发
3.3 IP地址分类
A类地址:以0开头,范围从1.0.0.0到126.255.255.255,用于大型网络,可以容纳约16百万台主机。
B类地址:以10开头,范围从128.0.0.0到191.255.255.255,用于中型网络,可以容纳约6万台主机。
C类地址:以110开头,范围从192.0.0.0到223.255.255.255,用于小型网络,可以容纳约250台主机。
D类地址:以1110开头,范围从224.0.0.0到239.255.255.255,用于多播(Multicast)通信。
3.4 子网掩码
IP地址分类导致浪费?
IP地址分类是根据固定的规则来划分地址范围的,比如A类地址范围是1.0.0.0到126.255.255.255,B类地址范围是128.0.0.0到191.255.255.255等。这种固定划分可能导致某些网络获得了更多的IP地址资源,而另一些网络可能获得了比实际需要更多的IP地址,从而造成了IP地址资源的浪费。
就拿B类来说, 理论上一段链路允许6万5千多台计算机连接, 然而在实际情况中根本不存在这样的情况,这不就造成浪费了吗? 本来IP地址都不够用, 还要浪费!!
子网与子网掩码
子网是一个逻辑上的概念,用于将一个大的IP地址范围划分为多个小的网络。子网掩码用于确定一个IP地址属于哪个子网。子网掩码是一个32位的二进制数字,通常用点分十进制表示,例如:255.255.255.0。在子网掩码中,所有网络位都设置为1,所有主机位都设置为0。当一个IP地址和子网掩码进行逻辑与运算时,可以得到该IP地址所在的子网。
通过引入子网掩码, 一个IP地址可以不再受限于自己的类别, 而是可以通过子网掩码自由的指定自己网络标识长度!
对于子网掩码目前有两种表示方式, 一种是将IP和子网掩码分别放一行
另一种就是在IP地址后面拼接上 /+网络地址位数
3.5 CIDR与VLSM
由于A类地址过大, C类地址过小, B类地址因此出现严重匮乏, 为了解决这个问题, 人们开始放弃IP地址的分类, 采用任意长度分割IP地址的网络标识和主机标识。 这种方式就是 CIDR, 意为 "无类型域间选路"
根据CIDR可以将连续多个C类地址划分到一个较大的网络中。
VLSM是在CIDR基础上发展而来的技术,它允许在一个网络中使用不同大小的子网掩码。这样可以更有效地利用IP地址空间,避免浪费。VLSM通常用于大型网络中,可以根据不同子网的需求来分配不同大小的子网。
3.6 全局地址和私有地址
最开始的时候由于IP地址使用量不大, TCP/IP规定互联网中的每个主机和路由器都必须有一个唯一的IP地址。
然而对着互联网的普及, IP地址不足的问题日趋显著。 如果一直按照这个办法采用唯一地址的话,会有IP地址耗尽的危险。
于是衍生了一种新的技术, 它不需要为每一台主机或路由器分配一个固定的IP地址, 而是在必要的时候为相应数量的设备分配唯一的IP地址 - NAT技术
私有IP
私有IP地址是指在局域网内部使用,不直接暴露在公共互联网中的IP地址范围。私有IP地址用于内部通信和连接局域网内的设备,而不用于在互联网上进行通信。
范围
NAT技术就可以实现私有IP与全局IP的转换
5. IPV4首部
- 版本(Version):4位,指示IPv4协议的版本号,通常为4。
- 首部长度(Header Length):4位,指示IPv4首部的长度,以32位字(4字节)为单位,因此最小值为5。
- 服务类型(Type of Service):8位,用于指定数据包的服务质量要求。
- 总长度(Total Length):16位,指示整个IPv4数据包的长度,包括首部和数据部分。
- 标识(Identification):16位,用于标识数据包的唯一性。
- 标志(Flags):3位,用于控制数据包的分片和重组。
- 分段偏移(Fragment Offset):13位,用于指示分段数据包相对于原始数据包的偏移量。
- 生存时间(Time to Live):8位,指示数据包在网络中的生存时间,每经过一个路由器减1,直到为0时被丢弃。
- 协议(Protocol):8位,指示数据部分使用的协议类型,如TCP、UDP等。
- 首部校验和(Header Checksum):16位,用于检测首部在传输过程中是否发生错误。
- 源IP地址(Source IP Address):32位,指示数据包的源IP地址。
- 目标IP地址(Destination IP Address):32位,指示数据包的目标IP地址。
6. NDS
我们平时在访问网站时不会使用IP地址, 而是使用一个字符串来进行访问, 比如: www.baidu.com
TCP/IP网络要求每一个互联的计算机都有其唯一的IP地址, 并基于这个IP地址进行通信, 但是这个IP地址并不便于记忆, 因此产生了一个可以有效管理主机名和IP地址对应关系的系统 - DNS
DNS内部维护了一个用来表示组织内部主机名和IP地址之间对应关系的数据库。
域名解析
在浏览器中我们输入一个主机名, DNS会自动检索那个注册了主机名和IP地址的数据库, 并迅速定位对应的IP地址
域名的构成
域名是用来标识互联网上计算机或其他资源的名称。域名的构成通常由多个部分组成,每个部分之间用点号(.)分隔。以下是域名的构成要素:
顶级域(Top-Level Domain, TLD):顶级域是域名中最高级别的部分,通常表示国家、地区或特定类型的组织。例如,.com、.org、.net、.edu、.gov、.cn、.jp等。
二级域(Second-Level Domain, SLD):二级域是位于顶级域之下的部分,通常用于标识特定的组织、公司或个人。例如,在
example.com
中,"example"就是二级域。子域(Subdomain):子域是位于二级域之下的部分,可以用来进一步细分网站的结构或组织。例如,在
blog.example.com
中,"blog"就是一个子域。主机名(Hostname):主机名是域名中最底层的部分,用于标识特定的计算机或服务器。例如,在
www.example.com
中,"www"就是主机名。
分层结构
域名服务器
在互联网中,域名服务器构成了一个层次化的系统,包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器等不同类型的服务器。当用户发起域名解析请求时,域名服务器会根据查询的域名层级逐级向上查询,直至找到对应的IP地址。域名服务器的作用是确保互联网上的域名能够正确映射到对应的IP地址,从而实现网络通信和资源访问。
7. ARP
ARP是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据包的网络设备对应的MAC地址。如果目标主机不在同一段链路上,可以通过ARP查找下一跳路由器的MAC,从而进行转发。
工作机制
主机A为了获得主机B的MAC地址, 就需要通过广播发送一个ARP请求包, 这个包中包含了主机B的IP地址, 由于广播可以被同一段链路上的主机和路由器接收, 因此ARP请求包会被同一段链路上的主机和路由器进行解析。如果ARP请求包中的目标IP地址和自己的IP地址一致,就会把自己的MAC地址响应给主机A,反之则丢弃。
如果每发送一个IP数据包都需要进行一次ARP请求, 势必会造成不必要的网络流量, 为了解决这个问题, 通常是吧获取到的MAC地址缓存一段时间,存入一个叫做ARP缓存表的地方。
8 . DHCP
逐一为每一台主机设置IP地址是一件非常繁琐的事情。 特别是在使用移动设备的时候, 每移动到一个地方, 都需要重新设置IP地址。
为了实现自动配置IP地址, 统一管理IP地址分配, 就产生了一种协议 - 动态主机配置协议(DHCP), 有了DHCP, 计算机只要连接到互联网, 就可以进行TCP/IP通信。
DHCP中继代理
DHCP协议通常使用广播消息来进行IP地址分配和配置,但广播消息无法跨越子网边界。这就是DHCP中继代理发挥作用的地方。当一个客户端设备在一个子网中发送DHCP请求时,DHCP中继代理会接收该广播消息,并将其转发到其他子网中的DHCP服务器。DHCP服务器会收到这个消息,分配一个IP地址并将响应消息发送回DHCP中继代理,最终再由DHCP中继代理转发给客户端设备。
拓展
IPV6
IPv6(Internet Protocol version 6)是互联网协议的第六版,是当前互联网使用的下一代网络层协议。IPv6的设计目标是解决IPv4存在的地址枯竭、安全性、自动化配置等问题,并提供更大的地址空间和更好的性能。
更大的地址空间:IPv6采用128位地址,相比IPv4的32位地址,IPv6提供了更多的IP地址,可支持更多的设备连接到互联网。
改进的安全性:IPv6内置IPSec(Internet Protocol Security)协议,提供端到端的数据加密和认证功能,增强了网络通信的安全性。
简化的头部结构:IPv6头部相对IPv4头部更简洁,减少了路由器处理数据包的开销,提高了网络性能。
自动化配置:IPv6支持自动化的地址配置(如SLAAC),设备可以通过Router Advertisement消息获取IPv6地址和其他网络配置信息,简化了网络管理。
移动性支持:IPv6为移动设备提供了更好的支持,包括移动IP和移动路由等功能,使移动设备在网络中更容易地进行漫游。
多播和任播:IPv6对多播和任播进行了改进,支持更有效的多播传输和任播服务。
逐渐取代IPv4:随着IPv4地址的枯竭和IPv6的推广,IPv6逐渐成为互联网的主要协议,为未来互联网的发展提供了更好的基础。
IP隧道
IP隧道(IP tunnel)是一种在网络中传输数据包的技术,它通过在原始IP数据包的基础上封装另一种IP数据包,使得数据包可以在一个网络协议的网络中传输到另一个网络协议的网络中。
IP隧道技术的基本原理是在原始IP数据包的头部添加一个额外的封装头部,将原始IP数据包作为负载传输。这样,数据包就可以在一个网络协议的网络中传输到另一个网络协议的网络中,而中间的网络设备只需根据封装头部信息进行路由转发。
总结
以上就是这篇博客的主要内容了,大家多多理解,下一篇博客见!