网络层_IP

传输层解决的是传输控制,而实际真正决定数据能否发送到对端的是网络层。网络层是有概率传输,而传输层是可靠性传输。所以传输层+网络层就可以做到将数据可靠发送到对端。网络层的常见协议有: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.mzph.cn/news/747744.shtml

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

相关文章

Flutter 的 switch 语句补遗

我的 App 里&#xff0c;一个消息气泡变成空白了&#xff0c;非常奇怪&#xff0c;此前一直是没问题的&#xff0c;经过调试定位我发现&#xff1a; static TextSpan _buildRootSpan(BuildContext ctx, List<LinkifyElement> parts, TextStyle? style) {List<InlineS…

STM32F103 CubeMX 使用USB生成鼠标设备

STM32F103 CubeMX 使用USB生成鼠标设备 1 配置cubeMX1.1配置外部晶振&#xff0c;配置debug口1.2 配置USB1.3 配置芯片的时钟1.4 生成工程 2. 编写代码2.1 添加申明2.2 main函数代码 1 配置cubeMX 1.1配置外部晶振&#xff0c;配置debug口 1.2 配置USB 1.3 配置芯片的时钟 需…

云与云计算:从传统到云端的IT资源变革

云&#xff1a;从分散到集约&#xff0c;资源服务化的新模式 让我们先通过一个生活化的场景来理解“云”这一概念。几十年前&#xff0c;诸如农村地区的居民需要自给自足&#xff0c;比如在自家院子里打井取水&#xff0c;冬季烧煤取暖&#xff0c;一切满足自己生活需要的都要…

vscode中C++调试launch.json配置

.vscode目录下&#xff0c; launch.json内容&#xff0c; {"version": "0.2.0","configurations": [{"name": "cc","type": "cppdbg","request": "launch","preLaunchTask&…

html和winform webBrowser控件交互并播放视频(包含转码)

1、 为了使网页能够与winform交互 将com的可访问性设置为真 [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name "FullTrust")][System.Runtime.InteropServices.ComVisibleAttribute(true)] 2、在webBrow…

idea+vim+pycharm的块选择快捷键

平时开发的时候&#xff0c;有的时候我们想用矩形框住代码&#xff0c;或者想在某列上插入相同字符 例如下图所示&#xff0c;我想在22-24行的前面插入0000 1. Idea的快捷键&#xff1a;option 鼠标 2. Pycharm的快捷键&#xff1a;shift option 鼠标 2. Vim 块选择 v/V/c…

spy分析文件另存为弹框【selenium】

有时需要下载多个文件&#xff0c;但是不想保存在同一个目录下&#xff0c;需要做两步 selenium设置浏览器默认下载路径&#xff0c;这个路径需要是个不存在的路径操作文件另存为弹框 文章目录 selenium设置浏览器默认下载路径操作文件另存为弹框 selenium设置浏览器默认下载路…

云计算与低代码:重塑软件开发的新范式

随着信息技术的迅猛发展&#xff0c;云计算与低代码已成为引领软件开发领域变革的重要力量。本文将对这两个主题进行深入探讨&#xff0c;分析它们如何重塑软件开发的模式&#xff0c;提高开发效率&#xff0c;以及对企业和开发者带来的深远影响。 云计算 无限可能的新天地 云…

Java 内存异常

内存溢出 内存溢出指的是在程序执行过程中&#xff0c;申请的内存超过了系统实际可用的内存资源。 内存溢出的常见情况&#xff1a; 创建大量对象并持有引用&#xff1a;在程序中创建大量对象并持有对这些对象的引用&#xff0c;而没有及时释放这些引用&#xff0c;导致堆内存…

Github和TeamCity的持续集成构建

一、简介 TeamCity是JetBrains旗下的一款持续集成[Continuous Integration&#xff0c;简称CI]工具&#xff0c;开箱即用。TeamCity提供一系列特性可以让团队快速实现持续集成&#xff1a;IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等。 二、安装使用(…

Excel xlsx file:not supported

报错信息&#xff1a; 原因&#xff1a; Excel和xlrd版本不匹配 解决措施&#xff1a; 降低xlrd版本或Excel版本 方法一&#xff1a; 1) 先卸载了原来的版本&#xff1a;uninstal xlrd 2) 安装新的低版本xlrd模块pip install xlrd1.2.0 方法二&#xff1a; 1&#xff09…

怎么修改游戏ip地址

玩游戏时IP被封是一件非常苦恼的事情&#xff0c;为了避免玩游戏时IP被封&#xff0c;就得遵守游戏规则&#xff0c;但想要多开账号玩&#xff0c;就会被限制&#xff0c;想要不被封IP&#xff0c;就得更换IP地址玩游戏&#xff0c;不同的账号使用不同的IP&#xff0c;就能避免…

AI日报:欧盟人工智能法案通过后行业面临合规障碍

文章目录 人工智能新规对web爬网的影响对英国的影响。 人工智能新规 立法者已经通过了欧盟人工智能法案。企业现在必须确保其人工智能应用程序符合规则。 全面的新规定对可能影响公民权利的人工智能系统实施制裁&#xff0c;并有可能彻底禁止某些系统。 违反规定的公司可能面…

【类和对象】类的作用域 | 类的实例化 | 类对象模型 | this指针

目录 5.类的作用域 6.类的实例化 6.1成员的声明和定义 6.2实例化出的对象大小 7.类对象模型❗❗ 7.1如何计算类对象的大小 7.2类对象的存储方式猜测 7.3结构体内存对齐规则 7.3.1内存对齐 7.3.2大小端 8.this指针 8.1this指针的引出 8.2this指针的特性 C和C实…

http的body格式

body数据都通常放在 HTTP 请求的 body 部分。 在 HTTP 请求中&#xff0c;Content-Type 头用于指示 body 中的数据格式。例如&#xff0c;对于 x-www-form-urlencoded 格式的数据&#xff0c;通常会设置 Content-Type: application/x-www-form-urlencoded&#xff0c;而对于 fo…

MySQL—redo log、undo log以及MVCC

MySQL—redo log、undo log以及MVCC 首先回忆一下MySQL事务的四大特性&#xff1a;ACID&#xff0c;即原子性、一致性、隔离性和持久性。其中原子性、一致性、持久性实际上是由InnoDB中的两份日志保证的&#xff0c;一份是redo log日志&#xff0c;一份是undo log日志&#xff…

了解常用测试模型 -- V模型、W模型

目录 V模型 测试流程 特点 优、缺点 w模型/双v模型 测试流程 特点 优、缺点 V模型 测试流程 用户需求&#xff1a;产品经理将用户需求转变为软件需求 需求分析与系统设计&#xff1a;验证需求是否正确&#xff0c;确定编程语言和框架 概要设计&#xff1a;项目结构设…

Java数据结构-优先级队列

文章目录 前言一、优先级队列1.1 概念 二、优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度 2.4 堆的插入与删除2.4.1 堆的插入2.4.2 堆的删除 2.5 用堆模拟实现优先级队列 三、常用接口介绍3.1 PriorityQ…

第二十二章 构建和配置 Nginx (UNIX® Linux macOS) - 示例:为特定路径上的所有流量启用 CSP 路由

文章目录 第二十二章 构建和配置 Nginx (UNIX Linux macOS) - 示例&#xff1a;为特定路径上的所有流量启用 CSP 路由示例&#xff1a;为特定路径上的所有流量启用 CSP 路由示例&#xff1a;将 IRIS 文件类型的请求路由到 Web 网关启动和停止 Nginx 和 NSD已弃用&#xff1a;构…

鼓楼夜市管理wpf+sqlserver

鼓楼夜市管理系统wpfsqlserver 下载地址:鼓楼夜市管理系统wpfsqlserver 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于C#wpf架构和sql server数据库 功能模块&#xff1a; 登录注册 鼓楼夜市管理系统主界面所有店铺信…