【网络原理】网络层 IP 协议

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

【网络原理】网络层 IP 协议

✨个人主页:bit me👇
✨当前专栏:Java EE初阶👇

网络层协议的工作:

  1. 地址管理
  2. 路由选择(规划路径)

网络层中,最核心的协议就是 IP 协议

🍀一. IP协议报头格式

协议头格式如下:
【网络原理】网络层 IP 协议

  • 4 位版本号当前 IP 协议的版本号,有 4 和 6 ,此文我们以 IPv4 为主!
  • 4 位首部长度IP 报头的长度。带有选项字段(可以有,也可以没有,可以有一个,也可以有多个)(0 - 15 的单位是 4 个字节!最长是 60 个字节,最短是 20 个字节)
  • 8位服务类型(TOS)(Type Of Service)其实有效位为 4 位,另外 4 位是保留位。

有效的 4 位是:4 个服务类型的 bit 位是互斥的,一个报文里面 4 个位只有一个可以是 1 ,剩下的都是 0,用来表示当前的 服务类型。(4位 TOS 分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。)可以根据需求来切换到不同的形态,虽然提供了这个,但是影响是有限的,实际开发的时候,很少真的手动调整 TOS。
 
4 个保留位:现在不用,但是先占个位置,后面可能要用,给后续的拓展留下余地。

  • 16 位总长度(字节数)一个 IP 数据报有多长(报头 + 载荷)。载荷部分就是一个完整的传输层数据报!(比如完整的 TCP 数据报)

16 位意味着,一个 IP 数据报最大就是 64 KB?
 
例如我们前面学的 UDP,UDP 是被 64 KB限制死了的,UDP 想要传输更大的应用层数据报,需要在代码中手动拆包组包。而当前的 IP 协议,自己内置了拆包组包的功能!如果搭载太长了的 TCP 数据报,此时 IP 就会分包!每个包来携带 TCP 的一部分数据!拆包组包在这里是不需要我们自己动手的,它自己携带有(下面三个就都是的)

  • 16 位标识:同一个包拆出来的若干个小的包,标识是一样的
  • 3 位标识:说是 3 位,其中 1 位是最关键的,标识结束标记~,1 后面还有,0 后面没了(类似于 链表的 null),还有一个标记描述是否分包了!
  • 13 位片偏移:描述了拆出来的每个包的先后顺序

【网络原理】网络层 IP 协议
例如网络层构造出上述数据报之后,发现载荷部分太长了,超出最大长度限制了,于是就进行拆包!
【网络原理】网络层 IP 协议

片偏移大小不是随便给的,内部有规则进行计算,此处我们不多了解,我们只需要知道小的在前,大的在后即可,即使接收方 “后发先至” 了,也可以通过片偏移把若干个包进行重新排序组合。

如果需要在 UDP 这里,实现拆包组包,可以参考此处 IP 的机制上述三个字段

  • 8位生存时间(TTL):描述了这个 IP 数据报,还能在网络上存活多久!

网络环境非常复杂,例如 A 给 B 发送一个 IP 数据报,数据报就会沿着网络尝试去找 B 的位置,如果 B 存在,能找到,就直接发过去了,如果 B 不存在,找了半天没找到,就要放弃了。
 
此处的整数并不是 “秒” 这样的时间单位,而是表示次数!能够被转发的次数~,例如给定一个初始 TTL 为 64(32,64,128),每次数据报经过一个路由器的转发,TTL -= 1,一旦 TTL = 0,则认为这个 IP 就找不到,包就要丢弃

  • 8 位协议:表示了传输层使用了哪个协议
  • 16 位首部校验和:校验和和前面的校验和都是一样的,这个校验和只针对 “首部” ,而不对数据部分校验,数据部分的校验自然是传输层的协议来负责。
  • 32位源 IP 地址和32位目标 IP 地址:表示发送端和接收端。
    【网络原理】网络层 IP 协议
    类似于一个包裹的传输,上述四个元素必不可少

IP 地址本质上是一个 32 位的整数,因为 32 位的整数不方便看,也不方便记,因此就发明出了另外一种表示方式:点分十进制~。使用三个点把 32 位的整数,分成四个部分(每个部分 8 位,1 个字节)每个部分取值 0 - 255。


🌻二. IP 地址

IP 地址能保证唯一性吗?
 
能否给每一个主机都分配一个唯一的 IP 地址呢?(最初设计 IP 协议初心是这样的),但是后来由于网络发展迅速,32 位数字表示的 42 亿 9 千万不够用了,那么该如何解决 IP 地址不够用的问题呢?

  1. 动态分配 IP 地址(DHCP)

一个设备上网就分配 IP 地址,不上网就不分配 IP 地址

  1. NAT, IP 地址转换

把 IP 分成两个大类
 

  1. 内网 IP (局域网使用的 IP)
  2. 外网 IP (广域网中使用的 IP)

 
允许局域网之间的内网 IP 重复,但是外网 IP 要保持唯一(同一个局域网中的 IP 地址不能一样,但是不同局域网中的 IP 地址允许重复)
 
NAT 机制,本质就是用一个外网 IP 代表了一大堆(可能是一个小区,也可能是多个小区,几万人的设备)内网的设备
 
内网 IP 有三类:

  • 10.*
  • 172.16.* - 172.31.*
  • 192.168.*

 
这三类 IP 都是内网,其他就是外网 IP 了

  1. IPv6 :解决 IP 不够用问题的终极方案

IPv6相当于是另一个网络层的协议,和IPv4可以视为是完全不同的两个协议,而不是IPv4的升级版~~

lPv6 使用 16 字节(128位)这样的值表示IP地址了(2 ^ 128 = 2 ^ 32 * 2 ^ 32* 2 ^ 32* 2 ^ 32)(相当于 42 亿 *42 亿 *42 亿 *42 亿 *,所以 IP 地址完全够了)

IPv4 是 4 个字节(2 ^ 32)

此处还有一个很大的问题就是 IPv4 和 IPv6 不兼容的问题,现存的支持 IPv4 的网络设备(路由器,网卡,交换机…) 不一定支持IPv6。

IP 地址 是一个四个字节的整数,为了更好的进行组网,对于这个 IP 地址又做出了一些更详细的划分,把一个 IP 分成两段,前一半叫做叫做网络号,后一半叫做主机号。

如何划分呢?以前是把 IP 地址分为五类,A,B,C,D,E类,但是目前这种分法很少见,现在主流的分法是 CIDR。引入了一个 “子网掩码”,通过这个来区分哪个是网络号,哪个部分是主机号,也是一个 32 位的整数,左侧都是 1 ,右侧都是 0。255.255.255.0:标记为 1 的部分,就表示了这部分 IP 是网络号

同一个局域网内部,设备之间的网络号,都是一样的,主机号是不同的;两个相邻的局域网(同一个路由器连接的两个局域网),网络号是不一样的

192.168.0.1 / 192.168.1.1 主机号为 .1 的 IP ,通常用来作为网关(关:入口,出口)(不是绝对的,常见的默认的情况,完全可以手动配置成其他的 IP)

192.168.0.0 / 192.168.1.0 主机号为 .0 的 IP 也就是网络号(表示当前局域网 / 网段)

192.168.0.255 / 192.168.1.255 主机号为 255 的 IP 是广播 IP(如果我们往 192.168.0.255 这个 IP 地址上发送数据,此时整个 192.168.0 这个局域网中所有的设备都会收到这个包)

UDP 实现广播,就可以搭配这个广播 IP

127.0.0.1 / 127.* 环回 IP(表示主机自己),每个主机上都有表示一个虚拟的表示环回 IP 的网卡


🌿三. 路由选择

和地图寻路一样,从 A 到 B 两点之间的路径规划就是路由选择,相比于高德地图或者百度地图,路由规划没有那么大的空间来收集每个地方的位置信息,每个路由器就只能知道位置信息的一部分,它只能只能相邻的一些设备怎么走或者可以知道相邻的设备。路由选择这里的数据转发,就相当于原始的寻路方式:问路!!文章来源地址https://www.toymoban.com/news/detail-468071.html

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

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

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

相关文章

  • 【网络原理】TCP/IP协议

    目录 1.应用层 2.传输层(核心问题) 2.1 UDP协议 2.1.2 UDP的特点 2.1.3 基于UDP的应用层协议 2.2 TCP协议(重点内容) 2.2.1 TCP/IP 协议含义 2.2.2 TCP协议端格式: 2.2.3 TCP的特点 2.3 TCP原理 2.4 确认应答机制(安全机制) 2.5 超时重传机制(安全机制) 2.5.1 数据直接丢了,接收方没

    2023年04月13日
    浏览(54)
  • 网络原理IP协议/以太网

     大 家 快 来 学 习 啦 ~ ~ ~ 目录 1.IP协议 1.1地址管理 1.1.1普通地址 1.1.2特殊地址 1.1.3NAT机制 1.2路由选择 1.以太网协议 2.DNS协议 一、网络层 ①IP协议的报头格式以及各部分说明: ②对以上其它重要部分再次进行说明: 1. 16位总长度: 16位,64k,也就是说单个IP数据报最大程度不

    2023年04月08日
    浏览(90)
  • 【网络原理】TCP/IP协议(续)

    目录 🔥网络层重点协议(IP 协议) 一、地址管理 1.如何解决上述地址不够用问题? 2.NAT 机制 2.1 NAPT 2.2 在 NAT 背景下如何通信? 3.IPv6 4.IP地址 4.1 ABCDE类 4.2 子网掩码 4.3 特殊的 IP 地址 二、路由选择 1.路由器 1.1 网关 1.2 路由 🌴数据链路层重点协议 1.以太网 1.1 认识以太网

    2023年04月19日
    浏览(70)
  • 【网络原理】TCP/IP协议五层模型

    🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。 🤼专栏收录于:计算机网络原理 本期讲解协议、OSI七层模型、TCP/IP五层模型、网络设备所在的分层、数据的封装和分佣。 目录 1. 什么要有协议? 2. 协议的分层 2.1 协议分层的好处 3. OSI七层

    2024年02月08日
    浏览(52)
  • 【网络原理】TCP/IP四层模型中的重点网络协议

    目录 🌟一、应用层协议 🌈1、XML协议  🌈 2、JSON 🌈 3、其他协议 🌟二、传输层协议(UDP与TCP重点) 🌈1、UDP协议格式 🌈 2、TCP协议格式 🎉TCP的10条机制(必会) 1、确认应答机制(可靠机制) 2、超时重传机制(可靠机制) 3、连接管理机制(三次握手,四次挥手)(

    2024年02月04日
    浏览(48)
  • 计算机网络—网络原理之<TCP/IP 五层协议 >图解+详述

    当应用程序间需要进行网络通讯,在 TCP/IP 五层协议的应用层需要做的工作是,程序员 自定义应用层协议 。 当前要开发一个关于“点外卖软件”的一个项目,其中有一个功能为:获取用户的订单历史(后端服务器从数据库中取出数据返回给前端页面),类似像这样的功能,

    2024年02月07日
    浏览(62)
  • 【JavaEE初阶】网络原理|认识协议|协议分层|TCP/IP模型|封装和分用

    目录 一、认识协议 1.概念 2.作用(为什么需要协议?) 二、协议分层 1.为什么需要⽹络协议的分层? 2. 协议分层是什么 3.分层带来的好处 三、TCP/IP五层(或四层)模型 (1)物理层 (2)数据链路层 (3)网络层 (4)传输层 (5)应用层 四、封装和分用(协议的层和层之间

    2024年04月23日
    浏览(42)
  • 网络协议从入门到底层原理学习(二)—— Mac地址/IP地址

    1、MAC地址 MAC地址(Media Access Control Address)也称为硬件地址或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,

    2024年02月09日
    浏览(41)
  • 网络层&&IP协议的基本原理 数据链路层&&ARP协议 域名解析以及一些重要技术

    网络层作用:在复杂的网络环境中确定一个合适的路径。 tcp/ip协议,tcp解决可靠性与效率,ip提供在网络中传输的能力。 传输层决定了单次向下交付数据包的大小。 IP(Internet Protocol)协议是一种网络层协议,用于在互联网上进行数据传输。它定义了数据如何在网络中进行分

    2024年02月15日
    浏览(47)
  • 【netty系列-01】深入理解网络通信基本原理和tcp/ip协议

    Netty系列整体栏目 内容 链接地址 【一】深入理解网络通信基本原理和tcp/ip协议 https://zhenghuisheng.blog.csdn.net/article/details/136359640 【二】深入理解Socket本质和BIO https://zhenghuisheng.blog.csdn.net/article/details/136549478 在最初的网络中,是借鉴于这个OSI七层网络模型,而在实际开发应用中

    2024年03月17日
    浏览(62)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包