当前位置: 首页 > news >正文

网络原理--IP协议简介

IP协议的主要功能:1.地址管理,使用一套地址体系,来描述互联网上每一个设备的位置。

2.路由选择,规划数据包如何从一个IP地址传到另一个IP地址。

IP协议的报头

1.版本:取值只有两种:IPV4(当前大规模使用)和IPV6。

2.首部长度:单位4个字节,Ip报头的长度也是可变的。

3.服务类型:8位,但是实际上只有4位有效,其中只有一位为1,剩余3为0,表示当前IP所处的模式:最小延时;最大吞吐量;最高可靠性;最小成本。

4.总长度:表示IP数据包的长度,并限制IP数据包的长度(64KB)但意义不大,因为MTU的限制往往小于IP数据包的自身限制。

5.生存时间:Ip数据包最大的跳转数。

6.协议:表示传输层在使用哪个协议。

7.首部校验和:只是针对IP的首部校验,载荷部分不管了。

8.源IP地址和目的IP地址:最重要的部分,表示了发件人和收件人的地址。

IP数据包的拆包和组包

当传输层的数据过大时,IP协议会将其拆分,拆包之后在未来进行组包。

如何组包:与IP报头中的这几位有关

1.16位标识:哪些IP数据包的载荷应该往一起组装。

2.3位标志:只有2位有效,一位表示这次的数据包是否拆包了,另一位表示结束标记。

3.13位片偏移:描述了这些包的先后顺序。

IP协议如何管理地址

IP地址本质上是一个32位的整数,但是为了方便,将其分为四段十进制的数字。但是IPV4只能表示42亿9千万左右,现在已经有点不够用了。为了解决问题,提出了下面的解决方法:

1.动态分配IP地址

全世界的设备不会同时上网,动态分配IP地址更充分的利用现有的IP地址。

2.NAT机制(网络地址映射)

先把IP地址分为两个大类:

1.私网/局域网IP

Ip地址是以10.*; 172.16~172.31.*; 192.168.*   这三类都是私网IP。

2.公网/广域网IP

除了以上三类,剩下的都是公网IP。

要求公网上的设备,对应的公网IP都是唯一的。

但是私网上/局域网上的设备,使用私网IP,只要保证局域网内部的IP不重合即可,不同局域网之间的IP允许重复。

由于上述设定,就有一个重要的限制:

1.公网设备可以直接访问公网设备。

2.局域网访问同一个局域网中的设备也可以。

3.不同局域网中的设备不允许访问。

4.局域网中的设备访问公网设备,需要对局域网设备的IP进行转换。

5.公网设备不允许主动访问局域网设备。

IP数据包的发送和返回

1.Ip数据包的发送

这里简化了一下模型,只考虑经过一个路由器。

路由器一般都有2个IP地址:LAN口IP:往往是一个局域网IP。WAN口IP:可能是公网IP,也可能是局域网IP。

传送的IP数据包的源IP地址由192.168.2.10改为5.6.7.8(WAN口地址),但是目的IP一直是1.2.3.4

一旦这个数据包的源IP地址改为了公网IP,就不会再改变了。

2.数据的返回

数据返回如何找到源IP:路由器会建立路由表,将替换前的IP地址和替换后的IP地址都记录下来,数据包返回时就查询路由表,此时就可以把目的IP还原为原来的局域网IP地址。而且这个表还会包含源端口和目的端口,当同一个局域网同时有多个设备访问同一个服务器时,它们虽然会被转换成同一个公网IP,但是通过端口号便可以区分它们,如果极端情况(它们生成的随机端口号有相同的):路由器会自动将它们映射为不同的端口号来区别。

IPV6简介

IPV6是从根源上解决了IP地址不够使用的难题,IPV6使用16个字节来表示IP地址,总数为2的128次方。但是由于IPV6的报头和IPV4是不兼容的,而且升级也不会提升网速,所以使用的人比较少。

网络号和主机号

同一个局域网中,网络号都是相同的,但是主机号都是不相同的。IP地址和子网掩码进行&运算便可以得到网络号。一般一个网络号中的主机号如果全为0,那么它表示这个网段,不能分配给主机使用。如果主机号全为1,表示广播地址,也不能分配给主机使用。

路由选择

由于网络的结构太复杂,每个路由器无法掌控全局消息,所以只能“摸着石头过河”,找出一个“较优解”。

每个路由器对于它所处的网络环境即相邻的设备有一定的了解,此时它便根据它所掌握的情况选出一条路来,把数据包交给下一个路由器,下一个路由器也找出一条路来再交给下一个路由器。。。。

相关文章:

  • Git简单操作
  • EasyRTC嵌入式WebRTC技术与AI大模型结合:从ICE框架优化到AI推理
  • java练习(45)
  • 惯导(机械编排)算法(INS Mechanization)_预备知识笔记
  • 大语言模型的评测
  • server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)
  • # C# 中堆(Heap)与栈(Stack)的区别
  • 一文掌握使用深度学习识别验证码详解(包括图形验证码和滑块验证码)
  • Delphi 12.3 函数指针(函数可以当参数)
  • 7.1 线性代数进行图像处理
  • 【博资考4】网安学院-硕转博考试内容
  • 判断奇数偶数
  • Composer如何通过GitHub Personal Access Token安装私有包:完整教程
  • next.js-学习3
  • 【Multipath网络层协议】MPTCP工作原理
  • 【项目管理】基于 C 语言的 QQ 聊天室实现(TCP + 多线程 + SQLite3)
  • Hadoop完全分布式安装配置
  • Rider 安装包 绿色版 Win/Mac/Linux 适合.NET和游戏开发者使用 2025全栈开发终极指南:从零配置到企业级实战
  • 面向对象基础
  • 本地搭建dify结合ollama+deepseek方法详解
  • 中铁城市发展投资集团原党委书记、董事长黄天德被查
  • 吴玉凤获任杭州市政协副秘书长,此前担任富阳区委书记
  • 福州市委副书记、福州新区党工委书记陈云水转任三明市政协党组书记
  • 盘中五味和人生五味,北京人艺《天下第一楼》将演第600场
  • 焦点访谈丨售假手段又翻新,警惕化肥“忽悠团”的坑农套路
  • 外交部:中方支持俄乌直接对话谈判,支持政治解决危机