传输层和网络层的关系,ip协议+ip地址+ip报头字段介绍(4位TOP字段,8位生存时间(ttl)),ip地址和端口号的作用

目录

传输层和网络层的关系

引入

介绍 

ip协议

介绍

ip地址

引入

数据传递过程

举例(ip地址的作用)

ip报头

格式

4位版本号

ip地址不足的问题

8位服务类型

4位TOP(type of service)字段

最小延时

最大吞吐量

4位首部长度

16位总长度

8位协议号

首部校验和

8位生存时间

集线器

提供ip地址和端口号的作用

介绍

举例


传输层和网络层的关系

引入

就像班里有个小王数学成绩可好,每次都在140以上,10次有6次满分

  • 这样的人就可以说他具有考满分的能力(也就是大概率可以上满分),但不一定全是满分

虽然不能百分百考满分,但他有一个校长爸爸

  • 一旦考试没考满分,就让他重考,直到满分
  • 当然,这也是因为这个人有很大概率可以考满分,才会让他重考,否则要是压根考不到满分,再重考几次也白搭

介绍 

在这个场景下:

校长起到的是策略作用,小王没拿到满分就重考

  • 对应计算机里的超时重传机制,也就是传输层的tcp协议,提供可靠性策略

而小王是实际参加考试的人,起到的是执行作用

  • 对应计算机里网络层的ip协议,它提供一种将数据跨网络从a主机送到b主机的能力

虽然主机已经具有跨网络传输数据的能力,但对于用户来说,需要的不只是能力,能力不代表100%可以做到,而是要可靠的送到

  • 所以需要策略和能力相结合,来保证达到用户的需求

ip协议

介绍

ip协议提供的能力 -- 实现跨网络跨主机传输

要想实现,有前提条件:

  • 唯一标识每台主机(也就是ip地址的作用) -- 只有保证唯一性,才有可能在众多主机中定位某一台
  • 就像学号,身份证号一样

ip分为 -- 私有ip , 公有ip

  • 在不同网络的两台主机通信,默认是以公网ip通信
  • 如果两台主机在同一个网络内,它们会使用私有ip地址直接进行通信

ip地址

引入

去某个地点,一般不能直接到达

  • 假如你要去故宫玩,你必须坐高铁/飞机先到北京,再乘坐北京内部的交通工具前往故宫
  • 所以,要去某个地方,一定是目标城市+目标地点才能定位的

类比到ip地址

  • ip地址不仅仅是4字节数据
  • ip地址=目标网络+目标主机

数据传递过程

如果要实现传递,就必须要经过路由器转发,经过多个子网

  • 数据到达b主机前,一定是要先到达b所在子网

也就是,在宏观上,报文发送是要经过两阶段

  • 先到达目标网络,再交给目标主机

举例(ip地址的作用)

假如有以下场景:

  • 在大学里,有各种学院,学院有各自的编号
  • 学院内部有自己的群,各学院的学生会主席也都一起拉了群
  • 当某个计算机院的学生捡到了一个学生证,上面有学号,他只知道学院编号与自己的不同,但具体是哪个学院不清楚,所以他拍个照片发给了自己院的学生会主席
  • 主席是肯定要记住每个学院的编号的,所以他将照片转发给了对应的学院的学生会主席
  • 而主席是认识自己院的学生的,于是直接找到了那个学生

如果这个同学没有使用这种方法,而是选择蹲在某个地点,遇到学生就问

  • 他找到猴年马月都找不到
  • 询问的过程其实就是在查找,查找本质上是在排除,只不过一次只能排除一个人,属于线性遍历

但使用了上面的方式就可以很轻松的找到,为什么呢?

  • 因为同样是在排除,他直接找到本院的学生会主席就排除了自己学院内的其他人
  • 而主席找到对应院的主席,就是排除了其他院
  • 该院主席对照学号找到学生本人,也就排除了本院内的其他人
  • 排除的效率提高了,也就可以在报文路由时,提高路由的效率

ip地址就是用这种原理定义的

  • 学号就是ip地址
  • 学院就是局域网,院内学生就是局域网内的主机
  • 学生会主席就是出口路由器
  • 主席之间的群叫做公网
  • 公网内的每一台路由器,天然都认识里面的其他路由器,就可以精准转发
  • 这就可以提高定位主机的效率

ip报头

格式

和tcp协议报头类似,都是20字节定长,并且都有选项,只是一般不用

4位版本号

一般是固定的,ipv4的版本号就是4

ip地址不足的问题

使用ipv4协议的ip地址有2^32=42亿多个

  • 但是,在当前全世界中,入网设备肯定是超过了这个数字的
  • 所以ip地址已经不够分了

于是发展出了新技术来解决

  • NAT
  • ipv6

ipv6

  • 其实它和ipv4并不兼容,相当于是一个新的协议,所以即使在这里的字段填成6也没啥意义
  • 使用128bit(16字节)来表示ip地址,目前多使用于内网环境

8位服务类型

3位已经启用

  • 用于指定数据包的优先级

1位保留字段

  • 必须为0
4位TOP(type of service)字段
  • 从a主机到b主机有多条路径可以选择,需要结合自身的传输策略来决定路径选择
  • 也就是用来指导路由器转发的4个小策略
最小延时
  • 也就是用时最短
  • 如果设置了该位,表示需要低延迟,适用于需要快速传输的应用,如实时语音和视频通信
最大吞吐量
  • 表示单位时间内传输的数据量最大
  • 如果设置,表示需要高吞吐量,适用于需要高数据传输速率的应用,如大文件传输和数据备份

最高可靠性

  • 也就是可靠性最好,适用于需要确保数据完整性的应用,如电子邮件和文件传输
  • 但是网络层不是不保证可靠性吗,这里的可靠从何而来呢?
  • 丢包是可能的,且ip协议对丢包无能为力,只能等待上层进行超时重传,它只是会尽量选择丢包概率最小的路径

最小成本

  • 耗费资源最少,适用于对传输费用敏感的应用,如非紧急数据传输

这四者互相冲突,只能取其一

  • 根据具体的应用场景选择

4位首部长度

可以用来分离报头和有效载荷

  • 即使报头长度一定,选项长度是不定的,所以无法确定有效载荷的正确位置
  • 和tcp一样,报头+选项的长度=首部长度*4

16位总长度

表示整个报文的长度,可以知道有效载荷的长度

  • 16位报文总长度-首部长度=有效载荷长度

这里就和tcp不同了,而和udp类似

  • 因为报头保存了总报文长度
  • 说明网络层传输时,都是一个一个的,所以这一层的报文叫做数据报
  • 而面向字节流的概念,是tcp协议提供给应用层的,并不在ip层体现

8位协议号

用来标识该报文具体交给上层的哪个协议

  • 假如自己是发送端,由tcp交给ip,就会填入tcp协议号
  • 当传送到对面的网络层时,就会知道要交给传输层的tcp协议

首部校验和

和tcp里的用处一样

  • 用于检测传输过程中是否发生了错误

8位生存时间

一个ip报文在转发的过程中(查找路由表,跳转下一个路由器):

  • 如果本身主机不可达/网络问题,可能会被一直转发
  • 因为它找不到目标主机->形成游离报文->会大量积压(一直存在在网络里,不停被转发,且因集线器的处理而不会信号衰减)
  • 所以,需要设置一个报文存活时间(ttl -- time to live) ,记录最大经历路由器的跳数(相当于是一个基准值)

每经过一个路由器,ttl-1

  • ttl=0时,当前路由器会丢弃这个报文
集线器

路由器中的数据->二进制序列->光电信号->会衰减

  • 而集线器会在信号衰减时,自动帮我们进行信号放大,保证长距离传输

提供ip地址和端口号的作用

介绍

创建套接字时,需要提供ip和端口号

  • 其中,端口号给tcp协议填充报头
  • ip地址给ip协议填充报头 -- 这也就是为什么要把字符串格式的ip地址(点分十进制)->4字节,因为ip报头的ip地址字段是4字节

举例

以唐僧为例:

  • 他受唐王所托,从东土大唐而来,要去往西天,向佛祖求取真经

而里面的人物/地点对应到网络中就是:

  • 东土大唐 -- src_ip
  • 唐太宗 -- src_port(进程)
  • 西天 -- dst_ip
  • 如来佛祖 -- dst_port(进程)
  • 只有提供了以上数据,唐僧才能成功到达并返回

唐僧在其中充当什么角色呢?

  • 唐僧只是个跑腿的 -- 报文
  • 真经 -- 目标数据

西游记本质上是唐太宗和如来佛祖之间的通信过程

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

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

相关文章

vivado FFT IP Core

文章目录 前言FFT IP 接口介绍接口简介tdata 格式说明 其他细节关于计算精度及缩放系数计算溢出架构选择数据顺序实时/非实时模式数据输入输出时序关于配置信息的应用时间节点 FFT IP 例化介绍控制代码实现 & 测试参考文献 前言 由于计算资源受限,准备将上位机 …

【Linux应用编程】系统信息与资源 | 如获取、设置系统时间、日期、/proc 虚拟文件系统等

系统信息与系统资源 通过 Linux 系统调用或 C 库函数获取系统信息(如获取系统时间、日期以及设置系统时间、日期等); Linux 系统下的/proc 虚拟文件系统(读取系统、进程有关信息); 系统信息 主要介绍了用…

成都亚恒丰创教育科技有限公司 【插画猴子:笔尖下的灵动世界】

在浩瀚的艺术海洋中,每一种创作形式都是人类情感与想象力的独特表达。而插画,作为这一广阔领域中的璀璨明珠,以其独特的视觉语言和丰富的叙事能力,构建了一个又一个令人遐想连篇的梦幻空间。成都亚恒丰创教育科技有限公司 在众多插…

数据采集监控平台:挖掘数据价值 高效高速生产!

在当今数字化的时代,数据已成为企业非常宝贵的资产之一。然而,要充分发挥数据的潜力,离不开一个强大的数据采集监控平台,尤其是生产制造行业。它不仅是数据的收集者,更是洞察生产的智慧之眼,高效高速处理产…

昇思MindSpore学习开始

昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架同时支持云、边缘以…

stm32:CAN通讯

目录 介绍 协议层 CAN的 帧/报文 种类 数据帧 远程帧(遥控帧) 错误帧 过载帧 帧间隔 总线仲裁 stm32的CAN外设 工作模式 测试模式 功能框图 时序 标准时序 例子 环回静默模式测试 寄存器代码 HAL版本 介绍 一种功能丰富的车用总线标…

基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 小程序用户登录&#…

Guava LocalCache源码分析:LocalCache的get、put、expand、refresh、remove、clear、cleanUp(一)

Guava LocalCache源码分析:LocalCache的get、put、expand 前言一、get二、put三、expand相关链接 前言 上篇文章,详细描写了Guava LocalCache怎样如ConcurrentHashMap对缓存数据进行了分段存储。本章主要针对LocalCache重要的几个接口进行说明。 一、g…

GuLi商城-商品服务-API-属性分组-分组修改级联选择器回显

前端代码:略 后端回显接口: 递归方法: @Override publi

docker部署canal 并监听mysql

1.部署mysql 需要开启mysql的binlong,和创建好用户等 可以参考这个 Docker部署Mysql数据库详解-CSDN博客 2.部署canal 参考这一篇: docker安装Canal,开启MySQL binlog ,连接Java,监控MySQL变化_docker canal-CSD…

深入理解JS中的事件委托

JavaScript中的事件委托是一种非常有用的事件处理模式,它允许我们利用事件模型的事件冒泡阶段来减少事件处理器的数量,提高网页性能。本文将介绍事件委托的概念、工作原理、优点以及如何在实际项目中应用事件委托。 1、事件模型 事件模型指在Web开发中,处理和管理事件(如…

分布式对象存储minio

本教程minio 版本:RELEASE.2021-07-*及以上 1. 分布式文件系统应用场景 互联网海量非结构化数据的存储需求 电商网站:海量商品图片视频网站:海量视频文件网盘 : 海量文件社交网站:海量图片 1.1 Minio介绍 MinIO 是一个基于Ap…

通用图形处理器设计GPGPU基础与架构(二)

一、前言 本系列旨在介绍通用图形处理器设计GPGPU的基础与架构,因此在介绍GPGPU具体架构之前,需要了解GPGPU的编程模型,了解软件层面是怎么做到并行的,硬件层面又要怎么配合软件,乃至定出合适的架构来实现软硬件协同。…

最新版智能修图-中文luminar ai 1.55(13797) 和 neo1.20,支持m芯片和intel芯片(绝对可用)

一。Luminar AI for macOS 完整版本 这个程序是第一个完全由人工智能驱动的图像编辑器。有了它,创建引人注目的照片是有趣的,令人惊讶的容易。它是一个独立的照片编辑器和macOS插件。 1.1 Luminar AI for macOS 轻轻地塑造和完善一个肖像打造富有表现…

如何使用 GraalVM 减少与 Kafka 集成测试中的内存消耗

在本文中,我想分享我使用 GraalVM 为 EmbeddedKafka 创建本机映像的经验。在集成测试中使用此映像不仅可以加快测试场景的执行速度,还可以减少内存消耗。有趣的是,与在 Testcontainers 中使用 confluentinc/cp-kafka 相比,在速度和…

VRRP虚拟路由冗余技术

VRRP虚拟路由冗余技术:是一种路由容错协议,用于在网络中提供路由器的冗余备份。它通过将多个路由器虚拟成一个虚拟路由器并且多个路由器之间共享一个虚拟IP地址来实现冗余和高可用性。当承担转发业务的主路由器出现故障时,其他备份路由器可以…

uniapp 微信默认地图选点功能实现

效果图 配置项 微信公众平台-小程序配置 uniapp配置 上代码 <template><view class"content"><button click"toMap">请选择位置</button></view> </template><script setup lang"ts">function toMa…

C# 各版本语法新功能汇总

C# 8.0 以后 官网 C# 7.3 》》in C# 7.2 》》 命名参数、具名参数 》》》 条件 ref 表达式 C# 7.1 》》 default 运算符 default 在C#7.1中得到了改进&#xff0c;不再需要default&#xff08;T&#xff09;了 //变量赋值C#7.0 var s "字符串"; s default(s…

使用llama.cpp量化模型

文章目录 概要整体实验流程技术细节小结 概要 大模型量化是指在保持模型性能尽可能不变的情况下&#xff0c;通过减少模型参数的位数来降低模型的计算和存储成本。本次实验环境为魔搭社区提供的免费GPU环境&#xff08;24G&#xff09;&#xff0c;使用Llama.cpp进行4bit量化可…

前端书籍翻页效果

目录 前端书籍翻页效果前言代码示例创建模板页面css样式编写js代码 结论 前端书籍翻页效果 前端实现翻书效果&#xff0c;附带vue源码 源码下载地址 前言 实际业务开发中&#xff0c;有时候会遇到需要在前端页面内实现翻书效果的需求&#xff0c;本篇文章就为大家介绍如何使…