网络层重点协议——IP协议


一、IP地址

什么是IP地址?
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
IP地址的作用?
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址的格式和组成

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”,例如:01100100.00000100.00000101.00000110。

通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数),如:192.168.1.0。

IP地址由两部分组成:网络号和主机号

  1. 网络号:标识网段,保证相互连接的两个网段具有不同的标识
  2. 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

IP地址的分类

IP地址分为A、B、C、D、E类:
在这里插入图片描述
各类地址的表示范围是:
在这里插入图片描述
注意:主机最大连接数减去2,是扣除主机号为全0和全1的特殊IP地址。

特殊IP地址

特殊IP地址:
在这里插入图片描述

公网IP地址 vs 内网IP地址

内网IP
一些小型企业或者学校,通常都是申请一个固定的IP地址,然后通过IP共享(IP Sharing),使用整个公司或学校的机器都能够访问互联网。而这些企业或学校的机器使用的IP地址就是内网IP,内网IP是在规划IPv4协议时,考虑到IP地址资源可能不足,就专门为内部网设计私有IP地址(或称之为保留地址)。需要注意的是,内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。

内网IP地址有:
A类 10.0.0.0–10.255.255.255
B类 172.16.0.0–172.31.255.255
C类 192.168.0.0–192.168.255.255

公网IP
公网IP就是除了保留IP地址以外的IP地址,可以与Internet上的其他计算机随意互相访问。我们通常所说的IP地址,其实就是指的公网IP。互联网上的每台计算机都有一个独立的IP地址,该IP地址唯一确定互联网上的一台计算机,这里的IP地址就是指的公网IP地址。

二、MAC地址

MAC地址:是用于标识网络设备的硬件物理地址。

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地址。
  • 网络通信,即网络数据传输,本质上是网络硬件设备将数据发送到网卡上,或从网卡接收数据。

① MAC地址用来识别数据链路层中相连的节点;
②长度为48位,即6个字节。一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19);
③MAC地址在网卡出厂时就确定了,不能修改;
④虚拟机中的MAC地址不是真实的MAC地址,可能会冲突,也有些网卡支持用户配置MAC地址。

特殊的MAC地址

广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报。
广播数据报的MAC地址为:FF:FF:FF:FF:FF:FF

IP地址与MAC地址

  • IP地址:IP地址描述的是路途总体的起点和终点;是给人使用的网络逻辑地址。
  • MAC地址:MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点;是给网络硬件设备使用的网络物理地址。

三、子网掩码

子网掩码的格式:
子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。

子网掩码的作用

  • 划分A、B、C三类IP地址子网
    如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。假设使用子网掩码 255.255.128.0(即17) 来划分子网,意味着划分子网后,高17位都是网络位/网络号,也就是将原来16位主机号,划分为1位子网号+15位主机号。此时,IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识(划分子网后的网络号/网段)。
  • 子网掩码可以分离出IP地址中的网络地址和主机地址
    因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。

计算方式

网络号:将 IP 地址和子网掩码进行“按位与&”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。

主机号:将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。

示例:
在这里插入图片描述

四、IP数据报

IP协议从网络层传输到数据链路层的数据叫做IP数据报,IP数据报分为首部和数据两个部分。
在这里插入图片描述
首部格式如下:
在这里插入图片描述

  • 4位版本号:指定IP协议的版本,对于IPv4来说,就是4;
  • 4位首部长度:标识该IP头部有多少个32bit(4字节)。因为4位最大能表示15,所以IP头部最长是60字节;
  • 8位服务类型(TOS):包括一个3位的优先权字段(已经弃用),4位的TOS字段和1位的保留字段(必须置0)。4位的TOS字段分别表示:最小延时,最大吞吐量,最高可靠性和最小费用。其中最多有一个能置位1,应用程序应该根据实际需要来设置它。比如像ssh和telnet这样的登陆程序需要的是最小延时服务,而文件传输程序ftp则需要最大吞吐量的服务;
  • 16位总长度:指整个IP数据报的长度,以字节为单位,因此IP数据报的最大长度为65535字节。但由于MTU的限制,长度超过MTU的数据报都将被分片传输,所以实际传输的IP数据报的长度都远远没有达到最大值;
  • 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的;
  • 3位标志:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第
    二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,其他分片置为1,最后一个分片置为0,表示后面没有分片了,类似于一个结束标记。
  • 13位片偏移:是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了);
  • 8位生存时间(TTL):数据报到达目的地的最大报文跳数。TTL值被发送端设置(常见值为64)。数据报在转发过程中每经过一个路由,该值就被路由器减1。当TTL值减为0时,路由器将丢弃数据报,并向源端发送一个ICMP差错报文。TTL值可以防止数据报陷入路由循环。
  • 8位协议:用来区分上层协议,其中ICMP是1,TCP是6,UDP是17;
  • 16位首部校验和:由发送端填充,接收端对其使用CRC算法以检验IP数据报头部在传输过程中是否损坏;
  • 32位源IP地址和32位目的IP地址:用来标识数据报的发送端和接收端。一般情况下,这两个地址在整个数据报的传递过程中保持不变(长期目标),而不论它中间经过多少个中转路由器(短期目标)。

五、IP服务的特点

IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。

  • 无状态:是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输、接收都是相互独立的,没有上下文关系的。这种服务最大的缺点是无法处理乱序和重复的IP数据报;优点也很明显:简单、高效。我们无须为保持通信的状态而分配一些内核资源,也无须每次传输数据时都携带状态信息。在网络协议中,无状态是很常见的,比如UDP协议和HTTP协议都是无状态协议。以HTTP协议为例,一个浏览器的连续两次网页请求之间没有任何关联,它们将被Web服务器独立地处理。
  • 无连接:指IP通信双方都不长久地维持对方的任何信息,这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。
  • 不可靠:指IP协议不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力(best effort)。 很多种情况都能导致IP数据报发送失败。比如,某个中转路由器发现IP数据报在网络上存活的时间太长(根据IP数据报头部字段TTL判断),那么它将会丢弃它,并返回一个ICMP错误消息(超时错误)给发送端。又比如,接收端发现收到的IP数据报不正确(通过校验机制),它也将它丢弃,并返回一个ICMP错误消息(IP 头部参数错误)给发送端。无论哪种情况,发送端的IP模块一旦检测到IP数据报发送失败,就通知上层协议发送失败,而不会试图重传。因此,使用IP服务的上层协议(比如TCP协议)需要自己实现数据确认、超时重传等机制以达到可靠传输的目的。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了IP地址的概念和IP协议的相关内容,如果你觉得有收获的话,就留下你的👍吧!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怎样让大排不硬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值