网络层典型协议--IP协议

网络层典型协议–IP协议


前言

在这里插入图片描述
网络层协议,提供地址管理与路由选择,描述了通信两台主机的IP地址。

在复杂的一个网络环境中规划一个合适的路径。
在这里插入图片描述


1 IP协议格式

在这里插入图片描述

  1. 4位版本号:指定IP协议的版本,ipv4就是4
  2. 4位首部长度:以4字节为单位,4bit表示最大的数是15,所以IP报头最大长度是60,最小20字节。
  3. 8位服务类型(TOS):3位优先权字段弃用,4位服务类型,1位保留(必须置0)
    4位TOS字段
    最小延时最大吞吐量最高可靠性最小成本,这四个字段是互相冲突的,只能选其一,不同情况选择不同的字段。
    如,ssh/telnet这样的应用程序,最小延时比较重要;ftp这样的程序,最大吞吐量就比较重要。
  1. 16位数据报长度:限制一个IP报文包含报头在内的最大不能超过 65535
    udp报文中最大数据大小必须小于 64k-8-20
  2. 16位分片标识:标识当前分片属于哪个原始报文。
    唯一的标识主机发送的报文,若报文在数据链路层被分片了,那么每一个片里面的id都是一样的。
  • 链路层中MTU,会限制传输报文的大小,以太网协议默认大小为 1500,若一个报文在网络层封装了IP报头之后大于了MTU大小,数据就会在链路层无法传输,这就需要在网络层进行数据分片,将一个报文分割成多个小的报文,分别封装IP报头进行发送,分割后小的报文称为分片;大的报文被分成多个小的分片进行传输,多个分片到达对端网络层就需要分片重组,重新组成一个完整的报文后交付给传输层。
  • 因为网络状态不定,分片可能会出现乱序,那如何区分哪个分片属于哪个原始报文?
    16位分片标识,标识当前分片属于哪个原始报文。
  • 如何获知当前分片在原始报文的哪个位置?
    13位分片偏移,标识当前分片在原始报文中的位置。
  1. 3位标志
    第一位保留
    第二位置为1表示禁止分片,此种情况下,若报文长度大于MTU,IP模块就会丢弃报文
    第三位表示更多分片,若分片,最后一个分片置1,其余置0
  1. 13位片偏移:标识当前分片在原始报文中的位置,分片偏移单位为 8 字节。
    故实际偏移的字节数为**(该值*8)**,所以除了最后一个报文之外,其它报文的长度都必须是8的整数倍。
    如,实际偏移为 56544 字节,实际的分片偏移就是 56544 / 8=7068 。
  2. 8位TTL:存放一个数据在网络中所能经过的路由器跳数,每经过一次路由器就会减1,为0时,就会将报文丢弃,主要是为了避免路由环路的情况。
  3. 8位协议类型:当前IP报文所封装的数据所使用的协议类型,即上层协议的类型。
  1. 16位首部检验和:使用CRC进行校验,检验数据一致性和鉴别头部是否损坏
  2. 32位源端IP地址 & 32位对端IP地址:描述数据从哪儿来到哪儿去
  3. 选项数据:0-40字节选项数据
  4. 传输层数据

2 网段划分

IP地址分为两部分:网络号+主机号。

  1. 网络号:一个网络的标识,一个网络所分配的IP地址中都会包含有该标识
    通过网络号,路由器能够判断出某个IP地址属于哪个网络
  2. 主机号:一台主机在一个网络中的标识
    通过主机号,路由器能够判断某个IP是当前网络中的哪个主机

在这里插入图片描述
不同的子网就是把网络号相同的主机给放在一起;若在子网中增加一台主机,则这台主机的网络号和子网的网络号一致,但是主机号不能和子网中的其它主机重复。

2.1 网络号的划分

在这里插入图片描述

类别网络号与主机号表示IP范围网络数主机数
A类第一个字节表示网络号0.0.0.0 ~ 27.255.255.25512816777216
B类前两个字节表示网络号128.0.0.0 ~ 191.255.255.2551638465536
C类前三个字节表示网络号192.0.0.0 ~ 223.255.255.2552097152256

A类网络适用于组建大型网络;B类网络适用于组建中型网络;C类网络适用于组建小型网络。

而此种划分情况,我们可以看到,划分出来的网络数和主机数要么很多要么很少,这势必会造成地址的额外浪费。

2.2 子网掩码

为解决简单分类导致的IP分配不合理和浪费问题,就出现了子网掩码。

🤔情景:
假设现在一个地区分配了一个C类的网络 192.168.1.x,但是该地区只有4台主机,只需要4个不同的IP地址,多了就会造成浪费,在不考虑特殊地址的情况下,我们知道,x的范围是0~255,所以就只需要 192.168.1.0192.168.1.1192.168.1.2192.168.1.3这四个地址,剩下的 4 ~ 255的地址都不要,这样,就得用一种方法来表示这四个IP地址同属于一个网络。

即子网掩码,实际上,子网掩码就是为了划分网络号和主机号的,要表示192.168.1.0 ~ 192.168.1.3 的网络号,先把这些十进制的IP地址转化位二进制,因为分配的网络是 192.168.1.x,即表示前三个字节是不变的,作为网络号的部分,所以用二进制的1来表示锁定前三个字节部分的二进制,那么就锁定了24位二进制数,而 192.168.1.0192.168.1.1192.168.1.2192.168.1.3 地址中最后一个字节的八位二进制数中前六位二进制数也是一样的,也用二进制的1来进行锁定,而剩下的两位二进制数就是用来表示主机号了,用二进制的0来表示不锁定;如此之后,最后将锁定部分的二进制数转化为十进制,就是 255.255.255.252 ,而此数就是所谓的子网掩码。

过程如下:
在这里插入图片描述

可以看到,这样的子网掩码写起来很长,CIDR的方式来进行简洁表示。

上述的情境中,我们将高30位锁定为1,即故该子网掩码可以表示成 192.168.1.0/30

3 特殊的网络及IP地址

3.1 特殊网络

组建私网--NAT技术
搭配NAT技术,即网络地址转换技术,将私网向外发送的数据,在流经网关的时候,进行网络地址的替换,替换成为网关设备向外的地址,并且在设备中,记录对应的映射关系。

网络划分的时候,专门为组建私网划分了专门的网络号:
10.*.*.* / 172.16.*.* ~ 172.32.*.* / 192.168.*.* ~ 192.168.255.*

其中,私网的网络号,只要注意相邻的网络不使用相同的网络号,就能保证私网地址不冲突。
因为私网主机对外通信都是使用对外的公网地址,经过NAT网络地址替换之后,对外的地址是不冲突的,所以不相邻的私网,是可以使用相同的网络号,即IP地址可以重复。
在这里插入图片描述

  1. 一个路由器可以配置两个IP地址,WAN口IP和LAN口IP(子网IP)
  2. 路由器LAN口连接的主机,都从属于当前该路由器的子网中
  3. 不同的路由器,子网IP地址实际上都是一样的(通常是 192.168.1.1 ),子网中主机不可重复,子网内主机IP地址不能重复,但不同子网内主机就可以重复
  4. 每一个家用路由器,实际上又作为运营商路由器的子网中的一个节点,如此的运营商路由器可能会有很多级,最外层的运营商路由器WAN口IP就是一个公网IP
  5. 子网内主机需要和外网进行通信的时,路由器将IP首部中的IP地址进行替换(替换成WAN口IP),这样逐级替换,最终数据包中的IP地址成为一个公网IP,此技术,即NAT地址转换技术。
  6. 若自己实现的服务器程序,希望能够在公网中被访问到,就需要将程序部署到一台具有外网IP的服务器上。

3.2 特殊的IP地址

  1. 0.0.0.0:代表本地主机上的任意网卡IP地址,通常用于服务端程序的绑定监听地址。
  2. 255.255.255.255:全网广播地址。
  3. 主机号全为0的地址:成为了网络号,是网络的标识,代表该局域网,不可分配给主机。
  4. 主机号全为1的地址:局域网广播地址,用于给同一个链路中互相连接是所有主机发送数据包,也不可分配给主机。
  5. 127.0.0.1:本地主机上的虚拟回环网卡地址,主要用于本地网络回环测试。

所以在前面阐述子网掩码的情景中,最后处理的结果是 192.168.1.0/30 网络,但实际上,192.168.1.0 是网络号不可分配,192.168.1.3 是局域网广播地址也不可分配,所以该网络中可分配的IP地址只有 192.168.1.1192.168.1.2 这两个地址。
在这里插入图片描述

4 IP地址的数量限制

ipv4,一个4字节32位的正整数,就有2的32次方的IP地址,tcp/ip协议规定,每个主机都需要一个IP地址,那是代表只能有改数量的主机可以接入网络吗?
实际上,由于一些特殊IP地址的出现,数量远没有这么多,而IP地址也并非是按照主机台数来进行配置的,而是每一个网卡都需要配置一个或多个IP地址。

CIDR在一定程度上缓解了IP地址的浪费问题,但是实际上IP地址的数量并没有得到增加。IP地址还是存在地址不够用的情况。

解决方法:

  1. 动态分配IP地址:
    只给接入网络的设备分配IP地址,故同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的。
  2. NAT技术(网络地址转换技术):
    一个私网向外发送数据,流经网关设备的时候,需要进行网络地址转换,替换成为网关设备对外的地址,并且在设备中,记录其映射关系。
  3. IPv6:
    用16字节128位来表示一个IP地址,但是并不向前兼容IPv4,目前并未普及。

5 路由器

在复杂的网络结构中,找出一条通往终点的路线。
路由选择:路由器为流经的数据选择合适的路径进行转发。在这里插入图片描述
所谓一跳,就是数据链路层中的一个区间,具体在以太网中指从源端MAC地址到目的MAC地址之间帧传输区间。

IP数据包的传输过程:

  1. IP数据包到达路由器时,路由器先查看目的IP
  2. 然后路由器决定该数据包是能直接发送给目标主机,还是需要发送给下一个路由器
  3. 依次重复进行,知道数据到达目标主机

那该过程是如何判定该数据包该发送给目的主机还是下一个路由器呢?
实际上,路由器中每个节点内部都维护了一个路由表。
在这里插入图片描述
★ 查看主机网络接口配置和路由表

route
[dev@localhost ~]$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.153.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0
[dev@localhost ~]$ 

可以看到,当前主机有两个网络接口,一个网络接口连到 192.168.122.0/24 网络,一个网络接口连接到 192.168.153.0/24 网络。

表相关信息:

  1. Destination:目标网络网络号
  2. Gateway:网关地址,表示下一跳地址
  3. Genmask:表示子网掩码
  4. Iface:连接该网络的网卡
  5. Flags
    U:表示此条目有效
    G:表示此条目的下一跳地址是某一个路由器的地址
    没有G的标志条目表示目的网络地址是与本机接口相连的网络,不必经路由器来转发

每个路由器连接了多少个网络就会有多少块网卡,每一块网卡都能获取一个对应所在网络的IP地址,它的路由器中就会有多少条路由信息。


总结

网络层,提供了地址管理和相关的路由选择,描述通信两台主机的IP地址,典型设备即路由器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP协议栈是互联网的基础协议栈,它包含了多个典型协议。以下是TCP/IP协议栈中的典型协议及其功能和特点: 1. 网络接口层协议网络接口层协议主要负责将数据帧发送到物理网络中,常用的网络接口层协议有Ethernet、PPP等。 2. 网络层协议网络层协议主要负责将数据包从源主机发送到目的主机,常用的网络层协议IP、ICMP、ARP等。 3. 传输层协议:传输层协议主要负责将数据从一个应用程序传输到另一个应用程序,常用的传输层协议TCP、UDP等。 4. 应用层协议:应用层协议主要负责实现应用程序之间的通信,常用的应用层协议有HTTP、SMTP、FTP等。 其中,TCP和UDP是最常用的传输层协议,它们的主要特点如下: 1. TCP协议TCP协议是一种可靠的面向连接的传输层协议,它提供了流量控制、拥塞控制、数据重传等功能,适用于对数据传输可靠性要求较高的应用场景,如文件传输、电子邮件等。 2. UDP协议:UDP协议是一种不可靠的无连接的传输层协议,它不提供流量控制、拥塞控制、数据重传等功能,适用于对数据传输可靠性要求不高的应用场景,如音视频传输、网络游戏等。 除了TCP和UDP协议外,还有一些其他的典型协议,例如: 1. IP协议IP协议是一种无连接的网络层协议,它负责将数据包从源主机发送到目的主机,是TCP/IP协议栈的核心协议。 2. ICMP协议:ICMP协议是一种网络层协议,它主要用于网络故障诊断和错误报告。 3. ARP协议:ARP协议是一种解析地址的协议,它将IP地址映射为物理地址,以便网络设备之间的通信。 以上是TCP/IP协议栈中的一些典型协议,它们各自负责不同的功能,共同构成了互联网的基础协议栈。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值