RFC 791 (1)-导论

news/2024/9/24 20:42:51/

目录

浅论

IP是啥

IP可以管啥

操作

范例查看


提示:本系列将会开始RFC文档阅读,这里会给出我的一些笔记

浅论

我们这篇RFC文档描述的是IP和ICMP协议,我们都知道,在传统的OSI七层或者是现在被简化的五层:应用层,传输层,网络层,数据链路层以及物理层中,它属于网络层的传输。接触过计算机网络导论的同志们都知道,他是为上层的TCP,UDP提供服务的(为传输层的服务本身提供服务),而又处理下层的数据链路层前来的数据包(卸下Local本地的数据链路层的相关协议信息后,剩下的他认为这是传输数据的那部分)。

IP是啥

一个协议!我相信大家都知道这个浅显的事实,他指挥了

接收上:在网络层工作的机器如何解读下层带来的数据包,然后进一步根据里头的控制信息解读在内层的数据,好向上提交给传输层解析

发送上:接受上面的传输层已经封装好的数据构成一个数据包(Datagram),添加自己的控制信息,目标IP等,向下传递给工作数据链路层的设备

IP正是在本网络层中描绘了设备之间如何根据他给出的IP地址,也就是从源地址到目的地址中,在网络中传递数据(Transmitting Blocks of Data from sources to destination

IP可以管啥

有趣的是:正如RFC文档所描述的是,这个我相信也有不少博主强调过的:

IP不在乎,也不保证比较强的数据可靠性,数据顺序正确性和流控制,人话就是他只管送,不管对不对

那这些谁来做呢?上层做!TCP不正是提供了这些功能吗?(流控制,顺序性等),我们正好省时省力,将每个工作安排的井井有条而不重复做无用工作

操作

IP实现了两个最基本的功能:addressing(寻址)和fragmentation(拆包)。我们在网络层视图中,嗯,实际上就是这样的:

(实际细节如何?不是我们在乎的!我们只在乎到数据刷的从一台设备跑到了另一台设备),我们就这样实现了一种addressing!在浩大的网络层中找到我们的目标设备投递自己的数据包

这里的源地址和目标地址就是我们的IP包内的地址字段!具体的分析在之后的博客中详细阐述。这几台设备制定发送的数据包和解析收到的数据包就是这样由IP指挥规定的

可以在这里就阐述的是:IP它有四个独特的控制信息:

  1. Type Of service:服务种类

    代码说明
    1000 – minimize delay最小延迟 对应于对延迟敏感的应用,如telnet和人login等。
    0100 – maximize throughput最大吞吐量 对应于对吞吐量要求比较高的应用,如FTP文件应用,对文件传输吞吐量有比较高的要求。
    0000 – normal service一般服务
    0001 – minimize monetary cost最小费用
    0010 – maximize reliability最高可靠性 对网络传输可靠性要求高的应用,如使用SNMP的应用、路由协议等等。

    具体的含义等之后详解的时候我会细细说明!

  2. TTL(Time To Live)这是描述这个包还可以存在多久的!一般的,IP可能需要过路由器一次一次扔数据包,扔一次TTL字段咱就减一个1:

    // 显然不是源码,但是这是一个伪代码!
    void getAndSend(IP_Package& package){handlePackage(package);package->ttl--;sendTo(package->dest_addr, package);
    }
  3. Option:这里则是选项,装着时间戳,安全相关和一些特别的调度安排

  4. 头部校验和:咱们是说IP不管数据,他还是得管他自己的控制信息的,但是检查很弱,使用的是校验和检查

范例查看

随便抓点包就OK:我们这里使用的是IPv4!具体一些信息我们将会在后续详细分析!


http://www.ppmy.cn/news/1454701.html

相关文章

Docker 入门与实践:从零开始构建容器化应用环境

Docker 一、docker常用命令docker ps 格式化输出Linux设置命令别名 二、数据卷相关命令挂载到默认目录(/var/lib/docker)挂载到本地目录 三、自定义镜像Dockerfile构建镜像的命令 四、网络自定义网络 五、DockerCompose相关命令 一、docker常用命令 dock…

知识图谱实用网站推荐

​ 知识图谱是一种用于描述和组织的图形化表示方法,它是一种基于语义的知识表示方式,可以将各种实体、概念、属性以及关系等知识元素以图谱的形式进行展示和组织。 本文给大家分享了如何实现知识图谱中图关系的构建,以下是相关网站&#xff…

从新手到聊天专家:ChatGPT对话技巧全解析

关于为什么AI未能为你所用,许多人在拿到GPT后的首个问题便是:使用不佳。 这意味着,你可能会觉得ChatGPT的回答过于空洞,缺乏足够的参考价值。 其次,一个常见的问题是:不知如何利用。 即便拥有了GPT&#…

OpenHarmony实战开发-动画曲线、如何实现动画衔接

UI界面除了运行动画之外,还承载着与用户进行实时交互的功能。当用户行为根据意图变化发生改变时,UI界面应做到即时响应。例如用户在应用启动过程中,上滑退出,那么启动动画应该立即过渡到退出动画,而不应该等启动动画完…

Redis Cluster集群方案什么情况下会导致整个集群不可用?

Redis 没有使用哈希一致性算法,而是使用哈希槽。 Redis 中的哈希槽一共有16384个,计算给定 密钥的哈希槽,我们只需要对密钥的 CRC16 去取 16384。假设集群中有A、B、C三个集群节点, 不存在复制模式下,每个集群的节点包…

Edge扩展应用程序的上架流程

前言 在软件开发的生命周期中,发布流程是将产品推向市场并交付给用户的关键阶段。它不仅标志着一个项目从开发阶段到用户手中的转变,也是确保软件质量和用户体验的重要环节。那么一个清晰、高效且可重复的发布流程对于任何软件项目的成功至关重要&#…

pandas学习笔记13

map,apply,applymap ** apply:应用在DataFrame的行或列中; applymap:应用在DataFrame的每个元素中; map:应用在单独一列(Series)的每个元素中。** apply()方法 前面也说了apply方法是一般性的…

基于Linux C++多线程服务器 + Qt上位机开发 + STM32 + 8266WIFI的智慧无人超市

前言 针对传统超市购物车结账排队时间长、付款效率低的问题,提出了一种更符合现代社会人们购物方式-基于RFID的自助收银系统。习惯了快节奏生活的人们都会选择自助收银机结账,理由显而易见:自助收银机结账很方便,几乎不用排队&am…