网络层——IP协议详细解读

这篇具有很好参考价值的文章主要介绍了网络层——IP协议详细解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IP协议

之前介绍了传输层的重点协议,TCP和UDP协议,以下将介绍网络层的重点协议IP协议。

1. IP协议的报文格式

IP地址 本质上是一个32位整数,在机器中按4个字节存储。现实中通常将其用点分十进制表示,比如:192.168.1.1三个点将32位整数分为四部分,每部分一个字节,取值为0-255。
IP协议的报文格式如图所示:
网络层——IP协议详细解读

  1. 4位版本号:IP协议的版本号,目前有IPv4和IPv6两个版本。

  2. 4位首部长度:IP的报头和TCP类似,都是长度可变的,带有选项。4位的取值范围为0-15,它的单位为4字节。

  3. 8位TOS:其中4位有效,分别表示最小延时,最大吞吐量,最高可靠性,最小成本。表示某一时刻的状态,同一时刻只能取一种状态。

  4. 16位总长度:表示最大长度64k,单个IP数据报最大长度不能超过64k。如果超过长度可以采用 分包组包 的方法。

  5. 以下三个字段就是用来分包组包的,多个被拆分的IP数据报的16位标识相同,13位偏移确定拆分的数据报顺序,三位标志位有一位有效,为0时表示不是最后一个数据报,1时表示为最后一个数据报。
    网络层——IP协议详细解读
    注意: IP协议数据报的分包只针对接收到的数据拆分,举例如果是一个TCP数据那么我们只针对数据部分拆分不拆分TCP报头。

  6. 8位生存空间:表示一个IP数据报在网络上还能存在多久,单位为转发次数,也就是最多能转发多少次。 如果出现数据包中的IP地址是永远到达不了的,此时不断转发会占用过多的硬件资源,所以设置了一个最大的转发次数。

  7. 8位协议:用于标识传输层使用的协议。

  8. 16位首部校验和:用来校验传输的数据是否正确。

  9. 32位源IP地址:表示发件人地址。

  10. 32位目的IP地址:表示收件人地址。

2. IP协议的地址管理

上述了解到IP地址实际是32位整数,那么表示的地址就是有限的,如果出现地址不够用,如何解决呢?

在IP协议中有三种处理方式:动态分配IP地址NAT机制IPv6协议

  1. 动态分配地址:设备上网就分配ip地址,不上网就不分配,但是这种方式并没有增加ip的数量,只是暂时缓解,如果同时上网个数达到一定量也会不够用。

  2. NAT机制:将ip地址分为两类,内网IP外网IP,此时规定外网IP必须是唯一的,内网IP可以重复出现(在不同局域网中)。如果内网设备要访问外网,就会给他分配一个外网IP,但是这个外网IP并不是该设备独有,而是该内网中所有设备公用。
    内网IP主要为:(1)10.开头 (2)172.16. 到 172.31.* (3)192.168.开头。
    外网IP为: 剩下的IP地址。
    举例说明
    如果我的主机连接了宿舍的路由器,当我想要访问百度时,我的 IP协议数据包 传输到路由器时,路由器会将我们的IP地址(源ip地址)替换成自己的 IP地址(外网IP地址),此时再传输给百度服务器,百度认为该数据包来自于路由器。得出结论外网设备无法直接访问内网设备。
    如果此时有连接路由器的两个主机都访问百度, 返回两个数据报到路由器时。此时路由器会根据自己替换了谁的ip地址进行区分,就能将数据转发回对应的主机。
    这种方法也只是提高了ip地址的利用率,并没有增加ip地址

  3. IPv6协议:它是使用16个字节,128位来表示IP地址,此时增加了大量的IP地址解决IP不够用问题。但是目前并没有开始启用,只是某些路由器等设备支持了IPv6协议,一般默认关闭IPv6。

3. IP地址的组成

ip地址分为两部分:

  1. 网络号:表示网段(局域网),保证相互连接的两个网段具有不同标识。
  2. 主机号:表示主机,同一局域网这主机之间具有相同的网络号,不同的主机号。

对于路由器 :一个路由器有两个IP地址,WAN口IP和LAN口IP,分别在不同的局域网中,路由器的作用就是将两个局域网连接起来。我们上述讲到路由器替换IP地址,是将我们主机的IP地址(内网)替换成路由器的外网IP地址。

LAN口(Local Area Network):表示连接本地网络的端口,主要与家庭网络中的交换机、集线器或PC相连。
WAN口(Wide Area Network):表示连接广域网的端口,一般指互联网。

如图:我们的电脑连接路由器的LAN口,路由器WAN口连接另一个路由器的LAN口(连通另一个局域网),此时绿色部分为一个局域网,路由器与另一个路由器也处一个局域网,另一个路由器LAN口也可以连接其他设备同处一个局域网。
网络层——IP协议详细解读

DHCP协议

实际手动管理IP地址是一个非常麻烦的事情,当子网中新增主机时需要给其分配一个IP地址,当子网当中有主机断开网络时又需要将其IP地址进行回收,便于分配给后续新增的主机使用。

  1. 因此对于IP地址的分配和回收一般不会手动进行,而是采用DHCP动态主机配置协议。
  2. DHCP通常被应用在大型的局域网环境中,其主要作用就是集中地址管理、分配IP地址,使网络环境中的主机动态获得IP地址Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
  3. DHCP是一个基于UDP的应用层协议,一般的路由器都带有DHCP功能,因此路由器也可以看作一个DHCP服务器。

当我们连接WiFi时,如果验证通过,路由器就会给你动态分配了一个IP地址,然后你就可以基于这个IP地址进行上网。

注意: 在IP地址中网络号与主机号的划分界限是不一定的。主要有两种分类方式:

  1. IP地址划分类:这种方式比较繁琐目前已经不使用了。
    划分方式如图所示:
    网络层——IP协议详细解读
    各类IP地址的取值范围如下:
    A类:0.0.0.0到127.255.255.255。
    B类:128.0.0.0到191.255.255.255。
    C类:192.0.0.0到223.255.255.255。
    D类:224.0.0.0到239.255.255.255。
    E类:240.0.0.0到247.255.255.255。

  2. 子网掩码方式:子网掩码也是32位整数,我们可以通过ping查看电脑的子网掩码,表示形式与IP地址一样。

如图所示:站在二进制角度看左侧有几位1,对应的的IP地址的那些位就是网络号。
网络层——IP协议详细解读

以上则表示IP地址前24位都为网络号,剩下的为主机号,一般家用网络子网掩码一般为:255.255.255.0

** 一些特殊的IP地址:**

  1. 将IP地址中的主机地址全部设为0,如:192.168.0.0;成为了网络号,代表这个局域网。
  2. 将IP地址中的主机地址全部设为1,如:192.168.0.255;就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包。通常适用于不知道对方IP地址需要探测的情况下
  3. 127.* 的IP地址用于本机环回(loop back)测试,通常是127.0.0.1。环回IP对应特殊的虚拟网卡,传输数据时没有IO操作,纯内存操作,所以比一般普通IP传输数据要快。
  4. 主机号为1,如192.168.0.1,一般作为网关IP(并不绝对),是局域网的出入口。

4. IP协议的路由选择

路由器是不能将整个网络环境都记录下来的,只能记录周围的情况。
所以我们在进行传数据时,就是一跳一跳(Hop by Hop)“问路”的过程。所谓“一跳”就是数据链路层中的一个区间,具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间。

IP数据包的传输过程中会遇到很多路由器,这些路由器会帮助数据包进行路由转发,每当数据包遇到一个路由器后,对应路由器都会查看该数据的目的IP地址,并告知该数据下一跳应该往哪跳。

路由器的查找结果可能有以下三种文章来源地址https://www.toymoban.com/news/detail-438225.html

  1. 路由器经过路由表查询后,得知该数据下一跳应该跳到哪一个子网。
  2. 路由器经过路由表查询后,没有发现匹配的子网,此时路由器会将该数据转发给默认路由(更高一级的路由器记录着更多的数据可以查询)。
  3. 路由器经过路由表查询后,得知该数据的目标网络就是当前所在的网络,此时路由器就会将该数据转给当前网络中对应的主机。

到了这里,关于网络层——IP协议详细解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络层IP协议中的协议号&传输层端口号对应的服务

    ip协议是网络层协议,三层的, 协议号标识上层是什么协议 ,eg:17号表示是上层即传输层是udp协议,6号表示上层即传输层是tcp协议,89标识上层是ospf协议等等 按端口号可分为2大类: 1、公认端口(Well-KnownPorts):范围从0到1023。 2、动态端口(Dynamic Ports):范围从1024到65

    2023年04月26日
    浏览(27)
  • TCP/IP网络编程(二) 套接字协议及其数据传输特性

    关于协议 如果相隔比较远的两人进行通话,必须先决定通话方式,如果一方选择电话,另一方也必须选择电话,否则接受不到消息。 总之,协议就是为了完成数据交换而定好的约定。 创建套接字 协议族 通过socket函数的第一个参数传递套接字中使用的协议分类信息,此协议

    2024年02月10日
    浏览(43)
  • TP-link路由器的TCP/IP协议详细介绍

      一、TCP/IP协议集把整个网络分成四层,包括网络接口层、网际层、传输层和应用层。 1、网络接口层 ,网络接口和各种通信子网接口,屏蔽不同的物理网络细节。 (1)ARP协议:地址解析协议,实现IP地址向物理地址的映射。 (2)RARP协议:反向地址解析协议,实现物理地址

    2024年02月05日
    浏览(32)
  • 嵌入式 RS485 Modbus-RTU与TCP/IP协议详细介绍

    目录 TCP/IP协议 RS485 Modbus-RTU协议 TCP/IP是一种网络通信协议,它是互联网的基础。TCP/IP协议是由两个协议组成的,分别是TCP (传输控制协议)和IP (网络协议)。 TCP (Transmission Control Protocol) 传输控制协议 TCP是一种面向连接的协议,它提供可靠的、有序的数据传输服务。 TCP协议通过

    2024年02月13日
    浏览(33)
  • 【AXI】解读AXI协议中的burst突发传输机制

    芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区 联合力荐 !近500篇 数字IC精品文章收录 ! 【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍 AXI协议 相较于

    2024年02月02日
    浏览(32)
  • 网路原理-传输层UDP,TCP/IP(确认应答,超时重传,连接管理,三次握手,四次挥手,状态转换,流量控制,滑动窗口,拥塞控制,延时应答,捎带应答,异常情况,面向字节流)-网络层(IP协议,地址管理)

    本节重点 • 理解传输层的作⽤,深⼊理解TCP的各项特性和机制 • 对整个TCP/IP协议有系统的理解 • 对TCP/IP协议体系下的其他重要协议和技术有⼀定的了解 我们之前编写完了基本的 java socket ,要知道,我们之前所写的所有代码都在应⽤层,都是为了 完成某项业务,如翻译等。

    2024年04月15日
    浏览(42)
  • TCP/IP传输协议学习

    1.发送方源终端设备的应用创建数据。 2.当数据在源终端设备中沿协议栈向下传递,对其分段和封装。 3.在协议栈网络接入层的介质上生成数据。 4.通过由介质和任意中间设备组成的网际层网络传输数据。 5.在目的终端设备中沿协议栈向上传递时对其解封和重组。   1.TCP/IP协

    2024年02月09日
    浏览(26)
  • 【计算机网络之TCP/UDP篇】TCP与UDP协议详细介绍

    目录 一、TCP协议 1.1 TCP协议段 1.2  TCP的原理 1.2.1   确认应答机制(安全机制) 1.2.2 超时重传机制(安全机制) 1.2.3  TCP是如何实现可靠性传输? 1.2.4   连接管理机制(安全机制) 1.2.5  滑动窗口机制(效率机制) 1.2.6 流量控制机制 1.2.7 拥塞控制(安全机制) 1.2.8  延

    2024年02月07日
    浏览(43)
  • 详解【计算机类&面试真题】军队文职考试——第4期(真题+解析):网络时延的组成部分和产生,使用Python来计算传输时延和传播时延 | TIP/IP网络协议的核心是什么?| DNS域名系统的工作原理

      决定放弃了的事,就请放弃得干干净净,那些决定再也不见面的人,就真的不要再见面了。     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[3] 阿里云社区特邀专家博主🏅  

    2024年02月09日
    浏览(46)
  • UDP(用户数据报协议)和TCP(传输控制协议)是互联网协议(IP)中两种主要的传输层协议

    您的描述是正确的。UDP(用户数据报协议)和TCP(传输控制协议)是互联网协议(IP)中两种主要的传输层协议。他们之间有几个重要的区别,其中之一就是建立连接的方式。 连接方式: • TCP:在进行数据传输之前,需要通过三次握手(3-way handshake)建立连接。这可以确保

    2024年02月02日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包