计算机网络(第四章网络层)

第四章网络层

  • 4.1_网络层提供的两种服务
      • (1)虚电路服务
      • (2)数据报服务
  • 4.2_网络协议
    • 4.2.1_虚拟互连网络
    • 4.2.2_分类的IP地址
      • (1)分类IP地址
        • 三种分类方法
        • IP 地址的一些重要特点
    • 4.2.3_IP地址与硬件地址
    • 4.2.4_地址解析协议ARP与逆地址解析协议RARP
    • 4.2.5_IP数据报的格式
    • 4.2.6_IP层转发分组的流程
  • 三级目录

4.1_网络层提供的两种服务

背景:
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。
争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?

(1)虚电路服务

电信网的思路:
在这里插入图片描述
虚电路只是一条逻辑 上的连接,而并不是真正建立了一条物理连接

(2)数据报服务

因特网的思路:
网络层向上只提供简单灵活的无连接的尽最大努力交付数据报服务
无连接:网络在发送分组时不需要先建立连接。每一个分组( 即IP数据报)独立发送,与其前后的分组无关(不进行编号)。
尽最大努力交付:网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。可靠传输网络的主机中的运输层负责(包括差错处理、流量控制等)

4.2_网络协议

网际协议IP是TCP/IP体系中两个最主要的协议之一 。与IP协议配套使用的还有四个协议:
地址解析协议ARP(Address Resolution Protocol)
逆地址解析协议RARP (Reverse Address Resolution Protocol)
网际控制报文协议ICMP (Internet Control Message Protocol)
网际组管理协议IGMP (Internet Group Management Protocol)

网际层的IP协议及配套协议:
在这里插入图片描述

4.2.1_虚拟互连网络

虚拟互连网络的意义:
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络,使用IP 协议的虚拟互连网络简称为IP网。使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一一个网络上通信一样,而看不见互连的各具体的网络异构细节。
例如:
在这里插入图片描述

4.2.2_分类的IP地址

IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一32位的标识符。
IP地址的编址方法的发展
分类的IP地址:最基本的编址方法,1981 年就通过了相应的标准协议。
子网的划分:对分类IP地址的改进,其标准[RFC 950]在1985年通过。
构成超网比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
点分十进制记法:
在这里插入图片描述

(1)分类IP地址

每一类地址都由两个固定长度的字段组成,其中一个字段是网络号。net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id它标志该主机(或路由器)。

IP 地址 ::= { <网络号>, <主机号>} 分类的依据就是 网络号和主机号各占多少位
在这里插入图片描述

三种分类方法

①A类
网络号
可指派的网络号: 126=27-2(因为首位固定是1所以只剩下7位可用)
全零代表本网络,127代表环回测试
主机号
每个网络最大主机数: 224-2
全零代表该主机所在的网络全1表示该网络上的所有主机
A类地址占总IP空间的50%

②B类
网络号
可指派的网络号: 214-1
网络地址128.0.0.0不可指派
主机号
每个B类网络包含的主机数: 216-2
全零和全1的主机号不可用
B类地址占总IP空间的25%。
③C类
网络号
可指派的网络号: 221-1
192.0.0.0不可用
主机号
每个网络最多包含主机: 28-2
C类地址占总IP空间的12.5%

IP 地址的一些重要特点

① IP地址是一种分等级的地址结构。分两个等级的好处是:
第一:IP地址管理机构在分配IP地址时分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。
第二:路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
②当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP地址,其网络号net-id 必须是不同的。这种主机称为多归属主机(multihomed host)
由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址
③用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id 。
④所有分配到网络号net-id的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

4.2.3_IP地址与硬件地址

从协议栈的层次上看数据的流动、从虚拟的 IP 层上看 IP 数据报的流动、在链路上看 MAC 帧的流动

在 IP 层抽象的互联网上只能看到 IP 数据报图中的 IP1→IP2 表示从源地址 IP1 到目的地址 IP2,两个路由器的 IP 地址不出现在 IP 数据报的首部中(而如何实现两个相邻的点的传递呢?是根据数据链路层上的MAC帧的源和目的地址)
在这里插入图片描述

4.2.4_地址解析协议ARP与逆地址解析协议RARP

在这里插入图片描述
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址
每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有连接在的局域网上各主机和路由器IP 地址到硬件地址的映射表
主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
在这里插入图片描述

4.2.5_IP数据报的格式

4.2.6_IP层转发分组的流程

三级目录

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

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

相关文章

Java ObjectInputStream readShort()方法(带示例)

ObjectInputStream类readShort()方法 (ObjectInputStream Class readShort() method) readShort() method is available in java.io package. readShort()方法在java.io包中可用。 readShort() method is used to read 2 bytes of short value from this ObjectInputStream. re…

实战:Redis 主从同步

主从同步(主从复制)是 Redis 高可用服务的基石,也是多机运行中最基础的一个。我们把主要存储数据的节点叫做主节点 (master),把其他通过复制主节点数据的副本节点叫做从节点 (slave),如下图所示: 在 Redis 中一个主节点可以拥有多个从节点,一个从节点也可以是其他服务…

Oracle view 小结片段

以前下载了一个关于Oracle 视图的pdf&#xff0c;水平有限&#xff0c;没看懂多少。 版本信息&#xff1a; select * from v$version; 数据库信息&#xff1a; select name, created, log_mode from v$database; 基本的许可信息 select * from v$license; 数据库中已安装的…

idea连接sqlserver及数据库操作

idea连接sqlserver及操作一、在连接过程中遇到的问题&#xff1a;&#xff08;1&#xff09;数据库登录失败&#xff08;2&#xff09;登录成功之后数据库端口号怎么查看二、代码连接数据库①加载驱动和连接数据库三、数据库操作连接详解链接 总体流程链接 操作实例链接 一、…

Java ObjectInputStream readFloat()方法与示例

ObjectInputStream类readFloat()方法 (ObjectInputStream Class readFloat() method) readFloat() method is available in java.io package. readFloat()方法在java.io包中可用。 readFloat() method is used to read 4 bytes (i.e. 32 bit) of float value from this ObjectI…

实战:Redis 集群模式(上)

Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。 Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集…

java 调用 Oracle 存储过程

一个函数本质上一个返回一个结果的存储过程&#xff0c;这个例子示范了怎么调用有in、out和in/out参数的函数。 大同小异的方法。    CallableStatement cs; try { // 调用一个没有参数的函数; 函数返回 a VARCHAR // 预处理callable语句 cs connection.prepareCall("…

连接数据库实例

idea连接数据库步骤详解 package com.company; import java.sql.*; public class Main {public static void main(String[] args) {Student student new Student();try {SqlOperation.main();ResultSet resultSet ScoreSql.selectScoreSql();//输出所有行操作while(resultSe…

实战:Redis 哨兵模式(下)

上一篇我们介绍了 Redis Sentinel 的搭建和运行原理,本文我们重点来看下 Sentinel 的命令操作和代码实战。 Sentinel 命令操作 要使用 Sentinel 实现要连接到 Sentinel 服务器,和连接 Redis 服务相同,我们可以使用 redis-cli 来连接 Sentinel,如下命令所示: [@iZ2ze0nc…

java事务处理

有个同学给我的文档&#xff0c;直接发上来了&#xff0c; 在数据库操作中&#xff0c;一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了&#xff0c;整个事务才能被提交到数据库&#xff0c;如果有一项操作…

vsftp配置参数

vsftp配置参数 转载&#xff1a;http://blog.chinaunix.net/uid-134240-id-172158.html listen_addressip address 指定侦听IP listen_portport_value 指定侦听端口&#xff0c;默认21 anonymous_enableYES 是否允许使用匿名帐户 local_enableYES 是否允许本地用户登录 …

Java文件类boolean canWrite()方法(带示例)

文件类boolean canWrite() (File Class boolean canWrite()) This method is available in package java.io.File.canRead(). 软件包java.io.File.canRead()中提供了此方法。 This method is used to write the file and the file is represented by the abstract filepath or …

案例:Redis 问题汇总和相关解决方案

本文收集了一些 Redis 使用中经常遇到的一些问题,和与之相对应的解决方案,这些内容不但会出现在实际工作中,也是面试的高频问题,接下来一起来看。 缓存雪崩 缓存雪崩是指在短时间内,有大量缓存同时过期,导致大量的请求直接查询数据库,从而对数据库造成了巨大的压力,严…

实战:Redis 集群模式(下)

上篇文章我们讲了 Redis 集群的搭建与节点的动态添加和删除,我们这里再来简单的复习一下,其中 30001~30006 是我们最初搭建的集群,而 30007 和 30008 是后面动态添加的主从节点,我们使用 --cluster info 命令来看一下主节点和槽位的分配情况,执行代码如下: $ redis-cli …

计网百度脑图

第一章概述 第二章物理层 第三章数据链路层 第四章网络层 第五章运输层

Java Integer类highestOneBit()方法与示例

整数类highestOneBit()方法 (Integer class highestOneBit() method) highestOneBit() method is available in java.lang package. maximumOneBit()方法在java.lang包中可用。 highestOneBit() method is used to find almost only single 1s bit from the leftmost side one …

转载:JAVA获取时间戳,哪个更快

转载&#xff1a;http://hi.baidu.com/suofang/item/96629a060a44c119eafe38cc 目前获取毫秒值大概有下面三种方法 Java代码 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); //方法…

加餐:Redis 的可视化管理工具

因为 Redis 官方只提供了命令行版的 Redis 客户端 redis-cli,以至于我们在使用的时候会比较麻烦,通常要输入一堆命令,而且命令行版的客户端看起来也不够直观,基于以上两个原因我们需要找一个可视化的 Redis 客户端,下面是我这些年使用过的一些 Redis 可视化客户端,分享给…

第一次创建springboot框架项目

第一次创建springboot框架项目1.1_创建步骤2.1_启动时遇到的问题2.2_启动响应网页测试2.3_连接数据库尝试1.1_创建步骤 &#xff08;1&#xff09;创建spring项目 &#xff08;2&#xff09; &#xff08;3&#xff09; 加入引擎 下一步即可 2.1_启动时遇到的问题 &a…

JAVA学习--集合的遍历

1 Test2 public void testFor3(){3 String[] str new String[]{"AA","BB","DD"};4 for(String s : str){5 s "MM";//此处的s是新定义的局部变量&#xff0c;其值的修改不会对str本身造成影响。6 …