网络层_IP

news2025/1/11 16:53:07

传输层解决的是传输控制,而实际真正决定数据能否发送到对端的是网络层。网络层是有概率传输,而传输层是可靠性传输。所以传输层+网络层就可以做到将数据可靠发送到对端。网络层的常见协议有:IP、ICMP等,其中最重要的是IP协议,IP协议有IP4v和IPv6两种,目前用的最多的是IPv4.

一.IP协议

1.1 IP地址

一般每一个网卡都配有一个IP地址,而IP地址可以标识网络中的唯一一台主机,IP地址有网络号和主机号组成,按照网络号可以快速定位某一个主机在哪个网段,然后根据主机号进一步确认是哪个主机。

  • IPv4地址:32位,用点分十进制标识
  • IPv6地址:128位

环回地址:172.0.0.1 这个ip地址用于网络测试,从该ip发出的数据不会发送到网络中,而是贯穿自己的TCP/IP层,然后交给自己上层程序。

1.2 IP协议格式

image.png

  • 4位版本:4-IPv4
  • 4位首部长度:以4字节为单位,同TCP
  • 8位服务类型:表示IP提供哪种类型的传输方式
    • 最大吞吐量
    • 最小时延:路径选择最近
    • 最高可靠性:丢包概率最低路径路由
    • 最小成本:
  • 16位总长度:解决IP报文的粘包问题
  • 16位标识:用于区分不同IP报文
  • 3位标志:xxx 第一位x保留; 第二位x如果为1表示不能分片,0可以分片;第三位x表示更多分片:如果为1,则表示该分片后有分片。
  • 13位片偏移:该分片的数据在原始报文中的偏移量
  • 8位生存时间:最多可以经过几次路由器转发
  • 8位协议类型:交付给上层哪个协议,TCP or UDP
  • 16位首部校验和
1.3 网段划分

如果用MAC地址在网络中定位某一台主机,那么我们就必须得一台一台主机查,这样查找效率无疑是很低的。如果用IP地址在网络中定位某一台主机,根据网络号把所有主机划分为若干子网,每个子网都有其子网号,这样要查找一台主机,先查找目标主机的网络号,然后再确定具体是该子网中的哪个主机。这样的查找效率是很高的。举个例子,根据你的学号来找你,一定先是确定你的学院,然后确定你的专业,然后确定你的班级,最后找到你,这样查找效率一定是比一个一个找高的。

路由器:

  • 功能:构建子网,DHCP动态为当前子网内的主机分配IP地址

一般路由器就是你当前网段的入口主机,所以一般路由器的ip地址就是当前网段内的1号主机。例如:192.168.3.1 , 网络号:192.168.3,主机号:1。

Internet组织机构定义了五种IP地址,有A、B、C、D、E五类地址。但是由于这种划分子网的方式会导致大量的IP地址浪费,目前解决方案有CIDR,DHCP,NAT技术,IPv6。

  • CIDR方案:引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;

模拟子网划分方式:在下面的划分方案中,只是为了弄清一些网络机制。
image.png
在两个网络之间,要有一个路由器,这个路由器至少包含有两个IP地址,一个是对内的,一个是对外的。划分到一定程度上,运营商不会按照上述这样一直增大子网掩码,而是建立一个私网。
公网IP与私网IP:
标志规定私网IP有三种,且不能出现在公网中。私有IP可以相同

  1. 10.x.x.x 大型局域网用的私网IP
  2. 192.168.x.x 小型局域网用的私网IP,比如一个家庭
  3. 172.16.x.x - 127.31.x.x 中型局域网用的私网IP,比如一个学校

image.png
任何一台路由器都有两个IP,私有IP(LAN口IP)和公网IP(WAN口IP)。当用户要给公网的一个主机发送消息时,由于私网IP不能出现在公网上,所以报文在经过当前局域网的出口路由器时会将报文的私有IP换为路由器的WAN口IP,然后传输到公网上,经过路由后找到对应的主机。这种技术就是NAT技术(源ip不断被替换)。

1.4 路由

IP数据包的转发是不断进行查找路由表的过程,通常一个路由器会直连两个子网,如果查找路由表发现目的IP地址不是这两个子网,路由器就会将该IP数据包转发到默认路由,进行下一次查找;如果查找路由器发现目的IP在级联的两个子网中,就会将该IP数据包发送给目的子网
image.png
路由表:route命令查看路由表
image.png

路由表的Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址,Iface是发送接口,Flags中的U标志表示此条目有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;

1.5 分片与组装

由于MAC协议规定,一次传输的字节数(MTU)不超过1500字节。因此,如果IP数据包的大小超过1500字节,就要进行分片传送,然后到达对端主机的网络层再进行组装成一个完整的报文。在IP协议中有三个字段:16位标识,3位标志,13位片偏移。通过这三个字段可以实现对同一个包的分片进行组装。但IP数据包如果分片了,那么就会增加丢包概率,所以TCP向下交付的数据尽量不要过大,一般应该为1480。其中TCP报头20字节,有效载荷1460字节(MSS,最大段尺寸),最终加IP报头20字节,最后传输到数据链路层的总大小为1500字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML、XHTML和HTML5系列对比

目录 HTML HTML的优点: HTML的缺点: 应用场景: XHTML XHTML的优点: XHTML的缺点: 应用场景: HTML5 HTML5的优点: HTML5的缺点: 应用场景: 回首发现&#xff0…

Flutter Inspector 视图调试工具突然不能用了

The embedded browser failed to load. Error: JCEF is not supported in this env or failed to initialize 1、在 Android Studio 的 Help 菜单中,找到 Find Action 2、搜索 boot runtime,找到「Choose Boot Java Runtime for the IDE」选项 3、在「…

串行通信——IIC总结

一.什么是IIC? IIC(Inter-Integrated Circuit)也称I2C,中文叫集成电路总线。是一个多主从的串行总线,由飞利浦公司发明的通讯总线,属于半双工同步传输类总线,仅由两条线就能完成多机通讯&#…

电竞游戏行业有哪些媒体资源?活动发布会如何宣传?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 电竞游戏行业的媒体资源主要包括:游戏门户网站、综合资讯网站、社交媒体平台、电视和网络直播等。 在电竞游戏行业中,媒体资源是丰富多样的。游戏门户网站如游民…

sql中使用collection返回集合数据

今天在写一个接口时,有两级目录(父子关系),接口需要把两级数据以嵌套的形式返回给前端。我这个新手菜鸟一上来就查询两次sql,然后业务中处理嵌套关系,事实这种方法也能达到目的。但主管PR代码时&#xff0c…

【自动驾驶可视化工具】

自动驾驶可视化工具 自动驾驶可视化工具1.百度Apollo的Dreamview:2.Cruise的Worldview:3.Uber的AVS:4.Fglovex Studio: 自动驾驶可视化工具 介绍一下当前主流的自动驾驶可视化工具。 1.百度Apollo的Dreamview: Dreamview是百度Apollo平台开发的一种可视化工具,用…

华为配置中心AP内漫游实验

华为配置中心AP内漫游示例 组网图形 图1 配置中心AP内漫游组网图 配置流程组网需求配置思路数据规划配置注意事项操作步骤配置文件 配置流程 WLAN不同的特性和功能需要在不同类型的模板下进行配置和维护,这些模板统称为WLAN模板,如域管理模板、射频模…

K8S日志收集方案-EFK部署

EFK架构工作流程 部署说明 ECK (Elastic Cloud on Kubernetes):2.7 Kubernetes:1.23.0 文件准备 crds.yaml 下载地址:https://download.elastic.co/downloads/eck/2.7.0/crds.yaml operator.yaml 下载地址:https://download.e…

javaweb-maven+HTTP协议+Tomcat+SpringBoot入门+请求+响应+分层解耦

Maven IDEA集成Maven 依赖管理 依赖配置 maven是插件完成对应的工作的~ 哇哇哇maven看完啦~~~~~~ Spring.io Springboot是Spring家族的子项目,可以帮助我们非常快速地构建应用程序,简化开发,提高效率。 RestController请…

【XR806开发板试用】基于WEBSOCKET实现人机交互(控制开关灯)以及开发问题记录

一、开发板编译、功能介绍 根据官方文档编译烧录成功后,我们修改下官方例子,进行开发来实现websocket。 整体流程:开发板先自动寻找指定的wifi并且连接,连接成功后,通过websocket来与服务端连接,连接成功后…

升入理解计算机系统学习笔记

磁盘存储 磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千千兆字节,而基于RAM的存储器只能有几百或几千兆字节。不过,从磁盘上读信息的时间为毫秒级,比从DRAM读慢了10万倍,比从SRAM读慢了…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridItem)

网格容器中单项内容容器。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。仅支持作为Grid组件的子组件使用。 子组件 可以包含单个子组件。 接口 GridItem GridItem(value?: GridItemOptions)…

DVWA靶场-CSRF跨站请求伪造

CSRF(跨站请求伪造)简介概念 CSRF(Cross—site request forgery),跨站请求伪造,是指利用受害者未失效的身份认证信息(cookie,会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面…

UG NX二次开发(C#)-单选对话框UF_UI_select_with_single_dialog的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、UF_UI_select_with_single_dialog函数3、实现代码3.1 利用委托创建一个方法3.2 直接调用1、前言 对于单选对话框,采用C++/C写的时候比较容易,也在帮助文档中有示例,但是对于C#开发采…

修复ElementUI中el-select与el-option无法通过v-model实现数据双向绑定的问题

1. 问题描述 需求:在使用ElementUI时,通过el-select和el-option标签实现下拉列表功能,当el-option中的选项被选中时,被选中的选项可以正确回显到已选择的列表中。 对于上面的下拉列表,当我们选中“超级管理员”的选项…

小程序路由跳转---事件通信通道EventChannel(一)

EventChannel是什么? 借助wx.navigateTo方法,在两个页面之间构建起数据通道,互相可以通过“派发事件”及“注册事件监听器”来实现基于事件的页面通信。基础库版本v2.7.3以上支持。 EventChannel中主要的方法 EventChannel.emit( strign e…

【四 (3)数据可视化之 Seaborn 常用图表及代码实现 】

目录 文章导航一、介绍二、安装Seaborn三、导入Seaborn四、设置可以中文显示五、占比类图表1、饼图2、环形图 六、比较排序类1、条形图2、箱线图3、小提琴图 七、趋势类图表1、折线图 八、频率分布类1、直方图 九、关系类图表1、散点图2、成对关系图3、热力图 文章导航 【一 简…

手机备忘录怎么导出到电脑,如何将手机备忘录导出到电脑

备忘录是我们日常生活和工作中常用的工具之一,我们可以在手机上轻松地记录重要的事务、想法和灵感。然而,在某些情况下,我们可能需要将手机备忘录导出到电脑进行更详细的整理和管理。那么,手机备忘录怎么导出到电脑,如…

ASP.NET-Server.HtmlEncode

目录 背景: 1.转义特殊字符: 2.防止跨站脚本攻击(XSS): 3.确保输出安全性: 4.保留原始文本形式: 5.与用户输入交互安全: 实例说明: 不用Server.HtmlEncode 效果展示: 用Server.HtmlEnc…

【Numpy】练习题100道(26-50题)

#学习笔记# 在学习神经网络的过程中发现对numpy的操作不是非常熟悉,遂找到了Numpy 100题。 Git-hub链接 1.题目列表 26. 下面的脚本输出什么?(★☆☆) print(sum(range(5),-1)) from numpy import * print(sum(range(5),-1)) 27. 考虑一个整数向量…