【计算机网络】网络层——详解IP协议

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

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【网络编程】
本专栏旨在分享学习计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌

🐱一、IP协议介绍

🐟IP协议报文结构

【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络

  • 四位版本号:用来表示IP协议的版本,现有的IP协议只有两个版本,一个是IPv4,另一个是IPv6。
  • 四位首部长度:告诉接收方在IP数据报中如何找到数据部分的起始点。通过首部长度字段,接收方可以确定数据部分在IP数据报中的位置,从而正确解析和处理IP数据报。IP报头是可变长的,同时也是IP报头是有选项的
  • 八位服务类型(TOS):八位服务类型其实只有4位是有效。支持模式切换(或称为状态切换的)。下面是使用的4种齐爱。
  • 最小延时:传输一个数据报的时间要尽可能短
  • 最大吞吐量:一定时间内传输的数据要多。
  • 最高可靠性:在传输过程中最不容易发生丢包。
  • 最低成本:在传输过程中消耗的硬件资源最低。
    四种形态种只能切换到一种前台
  • 16位总长度

注意这里的关系:这里的16位总长度 = IP报头 + 载荷的长度总长度 - IP报头长度 = 载荷长度(此载荷长度就是TCP报文总长度)TCP报文总长度 - TCP报头长度 = TCP载荷长度

IP协议支持拆包组包的机制,16位总长度(即64kb)针对的是一个数据报,如果是携带的是较长的数据的话,IP协议就会自动地把一个数据包拆分成多个数据报,接收方在进行分用的时候也会把多个数据报合并成一个数据报。

IP协议报文中的16位标识、3位标志位、13位片偏移共同描述了整个IP数据报的拆包组包的过程。
当需要传输的数据超过了网络的最大传输单元(Maximum Transmission Unit,MTU)时,就会触发拆包操作。MTU是指在网络中一次可传输的最大数据包大小。如果需要传输的数据超过了MTU,就需要将数据拆分成多个较小的IP数据报进行传输。
每个IP数据报都有自己的IP报头,包含了源IP地址、目标IP地址、协议类型等信息。而数据报的负载部分(即携带的实际数据)可能属于其他协议,例如TCP或UDP。
对于TCP协议,它会将需要传输的数据进行分段(Segmentation)的操作。TCP会将较长的数据分割成多个较小的TCP数据段(TCP segment),每个TCP数据段都包含TCP报头和对应的数据部分。
这样,当一个较长的TCP数据报需要在IP网络中传输时,它会被分成多个较小的IP数据报,每个IP数据报携带一个TCP数据段。这些小的IP数据报独立传输,通过IP协议的机制在网络中按顺序重新组合,最终将数据传输到目标设备的TCP协议中进行再次组装,以还原原始的较长TCP数据报。
需要注意的是,拆包和重组操作是由网络设备(如路由器)负责的,IP协议只负责将数据报进行传输,并不负责分段和重组的具体操作。

【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络

  • 16位标识:拆除的这多个包的16位标识是相同的。
  • 13位片偏移:拆除的这多个包的13位片偏移是不同的,前一个包的片偏移更小,后一个反之更大,通过片偏移就可以区分包的先后顺序。
  • 3位标志位:其中有一位标志位是不变的;有一位表示是否允许拆包,其实这里已经拆包了,所以此位标志位都是1;最后一个标志位表示结束标记,表示当前的包是否是最后一个,标志位是零表示是此包是最后一个包。
  • 8位生存时间(TTL):单位是,初始情况下TTL有一个初始数值(32/64/128),数据没经过一个路由器转发TTL就会-1,正常来说TTL足以支持数据报到达网路的任意一个位置,但是如果TTL真的变成0了,此时基本上就可以认为目标IP不可达了。
  • 8位协议:描述了上层,即传输层,使用了哪种协议
  • 16位首部校验和:检验数据是否正确的,这里只需要校验数据报首部即可,因为载荷部分要么是UDP要么是TCP,而TCP、UDP已经校验过自己本身了。
  • 32位源ip地址:32位源IP地址其实就是一个32位的整数(即4字节)。使用点分十进制的方式来进行表示(使用三个.把32位分为4个部分,每个部分都是8位(即1字节),每个字节的范围都是0-255,不带符号)。

这里有一个问题:既然32位源地址ip的数据量非常有限的,大体是42亿九千万,但是实际上全世界能够上网的设备不仅仅只有这些数字。那么IP地址不够用了该如何应对呢?
方式一:DHCP是动态主机配置协议的简称,是一种自动分配IP地址的网络协议。设备如果需要上网的话就需要分配ip,不需要上网就不需要分配ip。使用该方式只能够缓解,但是不能够根治。
方式二:NAT机制(网络地址转换)
另外,IP地址分为两大类:一类是内网ip(对于不同的局域网内的设备ip地址可以重复,对于相同的局域网ip地址不可以重复);另一类是外网ip(外网ip不可以重复)。内网ip一般有三种表示形式:10.*172.16。*-172.31.*192.168.*

🐟NAT机制

  • 情况一:如果是同一个局域网内部的设备之间进行通信,这种情况是没有问题的(因为同一个局域网内的内网ip是唯一的)。

  • 情况二:A局域网中的设备想和B局域网中的设备进行通信,由于这是两个不同的局域网中的不同设备,所以这两个设备的ip很有可能是相同的,这种情况是不允许的,会被直接禁止掉。两个局域网内部的设备是没法进行通信的

  • 虽然两个局域网内部的设备没法直接进行通信,但是可以间接进行通信,这个时候需要局域网内部的设备访问带有外网ip的设备。举个例子:我们平常使用的手机、平板都是在局域网内部去进行使用,它们都有一个自己的内网ip;还有一类设备就是服务器,服务器的话可以有外网ip,这样的话就涉及到NAT的工作过程了。

我们通过画图来进行举例:
【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络
【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络
上述的操作我们可以简单理解为借花献佛,意义何在呢?NAT机制下,一个外网ip代表的不一定是一个设备,也有可能是很多个设备。
接下QQ服务器要返回响应,返回的响应依旧是一个IP数据报:
【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络
接下来QQ服务器开始返回响应(返回的响应依旧是应给IP数据报):
【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络
此时,电信路由器和电脑之间就属于是局域网内部之间的通信了。

好了,上述的NAT过程是一个简化版本的,实际上,数据每经过一个路由器转发都可能会触发NAT机制(这和路由器的配置有关,有的模式下就会触发,有的模式就不会触发),比如说数据经过学校路由器就会触发NAT机制,经过光猫路由器就会触发NAT机制。

【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络

NAT机制的缺点:效率低、使用起来非常繁琐,还有一点就是不方便直接访问局域网内的设备。但是尽管这个NAT机制有如上的缺点,但是整个互联网世界其实就是利用NAT机制构建出来的。NAT机制可以提高IP地址的利用率,但是没有从根本上解决IP地址数量上的问题(即ip地址不够用)。NAT机制最大的优点就是NAT机制是一个纯软件实现的一个方案,

🐱二、IPv6

IPv6从根本上可以解决IP地址不够的问题。

IPv4是4个字节,即32位来表示ip地址。
IPv6是16个字节,即128位来表示ip地址。
所以,IPv6从根本上解决了ip地址不够使用的问题。

我们要知道,IPv6和IPv4是不兼容的,要想升级IPv6的话就需要更换路由器设备,然而升级IPv6之后其实并不会提高网速,也不会提高流畅性。
相比于IPv6,NAT机制只需要路由器开发商开发出新版本的软件(路由器固件),升级软件之后即可直接支持(同时成本也低)。所以ipv4目前发展的比ipv6要好(至少从目前来看的话,ipv4的普及程度要远远高于ipv6),而ipv6大规模普及的话还需要一定的时间。

🐱三、IP地址组成

ip地址分为两个部分:网络号和主机号。

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

【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络

作为开发者的话,在日常开发中我们不需要知道IP地址是怎么来的,这不是我们该操心的地方,ip地址可以是自动分配的(比如家里的网络环境比较简单),也可以是手动进行分配的(比如说企业的设备,网络环境比较复杂,这个时候就需要网管来进行配置)。

🐱四、特殊的ip地址

  • 网络地址:将ip地址中的主机地址全部设置为0,在通常的网络设置中,将主机地址全部设置为0被称为网络地址。而网络地址用于表示一个网络中的所有设备。例如,如果网络的IP地址范围是192.168.1.0/24,则192.168.1.0被用作网络地址,代表的是整个网络。通常情况下,网络地址不能作为设备的IP地址,因为该地址是用于标识整个网络的。我们不能给具体的设备分配这种ip(ip地址中的主机地址全部设置为0的ip)
  • 广播地址:将ip地址中的主机地址全部设置为1,用于给同一个链路中的所有主机发送数据包。

比如说:192.168.0.255,如果向这个ip上发送数据包,那么这个数据就会被转发给局域网中的所有设备。

在传输层协议中,TCP协议通常不支持广播或多播传输,因为TCP是一种面向连接的协议(TCP无法针对广播地址进行三次握手建立连接的操作),它在建立连接时需要明确的目的地址。而广播或多播是以一组地址为目的地址的通信方式,并不适用于TCP的连接模式。

相反,UDP协议可以用于广播或多播传输,因为UDP是一种无连接的协议,它不需要具体的目的地址。UDP协议的传输方式与广播或多播通信方式是相容的,可以一次性向一组目标地址发送数据。

  • 环回ip:被用于在本地主机中进行通信。环回IP地址被分配为127.0.0.1,也被称为本地回环地址

🐱五、子网掩码

一个ip地址,我们要想分清楚哪一部分是网络号、哪一部分是主机号,这是通过子网掩码(32位二进制位,通常用10进制来进行表示)来进行识别的。子网掩码和ip地址都是4字节,即32位比特位的整数。规定子网掩码左侧必须是连续的1,右侧必须是连续的0

举个例子:一个IP地址为192.168.1.100,子网掩码为255.255.255.0的情况。
子网掩码255.255.255.0对应的32位二进制:11111111.11111111.11111111.00000000,即代表着前24位是网络位,后8位是主机位。
ip地址192.168.1.100对应的32位二进制:11000000.10101000.00000001.01100100
可以确定192.168.1.100的网络位为11000000.10101000.00000001(192.168.1),而主机位为01100100(100)。

🐱六、路由转发

IP协议还有路由转发的功能。在互联网中,数据包通过IP协议进行数据的传输,同时根据目标的IP地址来进行路由的选择。

这里只简单介绍一下什么是路由转发:

每个路由器内部都有一个数据结构即路由表,数据到达路由器的时候就需要查询路由表(目的是询问该数据要到哪里去,从而选择一个方向进行数据的传输)。如果从这个路由表中查询到了,那么就按照这个方向继续传输数据;如果没有查到的话就会按照路由器默认的方向进行数据的转发。

至于说路由器中的路由表是如何生成的,以及路由表是如何来查询数据究竟要往哪个方向走,这里就不做过多的介绍了。

本文到这里就结束了,希望友友们可以支持一下一键三连哈。嗯,就到这里吧,再见啦!!!

【计算机网络】网络层——详解IP协议,网络编程,计算机网络,tcp/ip,网络文章来源地址https://www.toymoban.com/news/detail-808385.html

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

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

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

相关文章

  • 计算机网络(8) --- IP与IP协议

    计算机网络(7) --- UDP协议和TCP协议_哈里沃克的博客-CSDN博客 UDP协议和TCP协议 https://blog.csdn.net/m0_63488627/article/details/132125374?spm=1001.2014.3001.5501   目录 1.IP与IP协议 IP作用 协议​编辑 2.网段划分 DHCP划分 CIDR划分 特殊的IP地址 IP地址的数量限制 3.私有IP地址和公网IP地址 4.路由

    2024年02月13日
    浏览(39)
  • 【计算机网络】TCP|IP协议

    目录 前言 什么是TCP/IP协议? TCP/IP协议的层次结构 TCP/IP协议的工作原理 TCP/IP协议的重要性 结语   TCP/IP协议是当今互联网世界中最重要的网络协议之一,它是网络通信的基石,为数据在网络中的传输提供了可靠性和有效性。本文将深入探讨TCP/IP协议的重要性、基本原理以及其

    2024年02月03日
    浏览(55)
  • 计算机网络实验-->> IP 协议分析

    掌握IP数据包格式以及段的含义; 掌握路由器转发IP数据包的流程; 理解验证IP分片原理。         根据下述网络拓扑结构图,实现IP协议分析。   1.添加并连接网络设备         根据“实验内容”中的网络拓扑结构,在Packet Tracer软件的逻辑工作区添加4台2811型

    2023年04月26日
    浏览(40)
  • 【计算机网络】IP协议与ICMP协议分析

    1、分析IP协议与IP数据报; 2、分析ICMP协议。 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE或其他浏览器。 (1)在命令提示符中,利用ipconfig -all查看自己主机的ip及MAC地址,查看自己的网关ip地址并 记录 。(物理地址 : C8-D9-D2-19-FC-4E,IPv4 地址: 10.0.132.12,默

    2024年02月05日
    浏览(45)
  • 计算机网络-实验5:网络层-IP协议分析

    实验报告 IP协议分析与子网转发 实验目的:1、理解IP协议数据报格式,IP 数据包分片 ;                   2、了解路由器在不同子网之间转发数据报,配置静态路由。 在自己机器上的命令提示符窗口,执行Ping命令: Ping    网关IP地址。 截图显示ping命令执行结果。 在W

    2024年02月04日
    浏览(46)
  • 计算机网络 实验2 IP协议分析

    了解IP报文格式,熟悉IP报文各个字段含义、长度 掌握基于tcpdump和wireshark软件进行数据包抓取和分析技术 硬件要求:阿里云云主机ECS 一台。 软件要求:Linux/ Windows 操作系统 3.1 tcpdump 基本用法 tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的

    2023年04月17日
    浏览(45)
  • 【计算机网络】实验一 IP 协议分析实验

    本人一直想找时间系统整理一下之前做过的一些实验,便于后续用到的时候可以尽快的使用,po出来也便于大家交流学习,有问题欢迎交流指正,与诸君共勉! 了解网络层 IP 协议 学会独立分析协议的具体内容,通过实践巩固网络层协议的相关理论知识 熟悉计算机网络常用数

    2024年02月03日
    浏览(51)
  • 计算机网络 ARP协议 IP地址简述

     ARP只能在一个链路或一段网络上使用    

    2024年02月13日
    浏览(50)
  • 计算机网络【IP协议与以太网】

    ● 4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4 ●4位头部长度(header length):IP头部的长度是多少个32bit,也就是 length * 4 的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节 ●8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TO

    2024年02月02日
    浏览(53)
  • 计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

    计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地

    2024年02月07日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包