OSI模型之网络层
一、简介
网络层是OSI参考模型中的第三层,同时也是TCP/IP模型的第二层。它介于传输层和数据链路层之间,主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
协议结构图如下所示:
二、功能
路由选择与分组转发(最佳路径)
路由算法:静态路由算法(非自适应路由算法)、动态路由算法(自适应路由算法)
动态路由算法:全局性(OSPF)、分散性(RIP)
分层次的路由选择协议:内部网关协议IGP、外部网关协议EGP异构网络互联
拥塞控制
- 注意:若所有节点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
解决方法:开环控制(静)、闭环控制(动)
三、IP协议
IP 协议是基于 IP 地址将数据包发送给目的主机,能够让互联网上任何两台主机进行通信。
IP地址的组成
IP地址由网络号(网段地址)和主机号(主机地址)两部分组成。
IP地址的分类
IP 地址分为四类,分别是 A类、 B类、 C类、 D类(还有一个保留的E类)。IP数据报格式
版本: 4 位版本号(version):指定 IP 协议的版本,对于 IPv4 来说,就是 4
首部长度: 4 位头部长度(header length):IP 头部的长度,单位是 4 比特,最小为 5(因为固定部分为 20 字节,所以最小就是 5),也就是说首部长度是 4×5=20 到 4×15=60 之间
区分服务: 8 位服务类型(Type Of Service):3 位优先权字段(已经弃用),4 位 TOS 字段,和 1 位保留字段(必须置为 0)。4 位TOS 分别表示:最小延时、 最大吞吐量、 最高可靠性、最小成本。 这四者相互冲突,只能选择一个。对于ssh/telnet 这样的应用程序,最小延时比较重要;对于 ftp 这样的程序,最大吞吐量比较重要。
总长度: 16 位总长度(total length):整个ip数据报的总长度为2^16-1=65535字节。不过由于链路层的MTU限制,超过1480字节后就会被分片(以太网帧MTU为1500字节,除去20 字节的IP报头)。
标识: 16 位标识(id):唯一的标识主机发送的报文。如果 IP 报文在数据链路层被分片了,那么每一个片里面的这个id 都是相同的。
标志:** 3 位标志字段:第一位保留。第二位置为 1 表示禁止分片,这时候如果报文长度超过 MTU,IP 模块就会丢弃报文。第三位表示“更多分片”,如果分片了的话,最后一个分片置为 1,其他是 0。类似于一个结束标记。
片偏移: 13 位分片偏移(framegament offset):是分片相对于原始 IP 报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置,实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是 8 的整数倍(否则报文就不连续了)。
生存时间(TTL): 8 位生存时间(Time To Live, TTL):数据报到达目的地的最大报文跳数,一般是 64。每次经过一个路由,TTL就减1,一直减到 0 还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环
协议: 8 位协议:表示上层协议的类型
首部校验和: 16 位头部校验和:使用 CRC 进行校验,来鉴别头部是否损坏。也就是二进制的和!
源地址和目的地址: 32 位源地址和 32 位目标地址: 表示发送端和接收端
可选字段和填充: 用来支持排错、测量以及安全等措施
IP数据报分片
以太网帧中的数据长度规定最小 46 字节,最大 1500 字节,ARP 数据包的长度不够 46 字节,要在后面补填充位;最大值 1500 称为以太网的最大传输单元(MTU),不同的网络类型有不同的 MTU。
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的 MTU 了,则需要对数据包进行分片(fragmentation);不同的数据链路层标准的 MTU 是不同的。NAT(网络地址转换)
NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
宽带分享: 这是 NAT 主机的最大功能。
安全防护: NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。CIDR 与 VLSM
解决 IP 地址浪费问题,除了使用子网掩码,还使用了 CIDR 和 VLSM 技术。
CIDR: 是主机号向网络号借位,目的是把几个网络汇总成一个大的网络,增加子网主机数量。
VLSM: 是网络号向主机号借位,目的是把一个标准的网络划分成几个子网,减少子网主机数量。路由选择协议(RIP/OSPF/BGP)
路由选择协议主要用于路由器之间实现路由表收敛的协议,当路由表稳定时,使用其对数据包进行转发。
RIP: 距离矢量路由协议,跳数(最大跳数为15跳,16跳不可达)
OSPF: 开放式最短路径优先,比RIP协议智能。
BGP: 边界网关协议ARP(地址解析协议)
ARP协议主要完成主机或路由器IP地址到MAC地址的映射(解决下一跳走哪的问题)
ARP协议的作用是什么: 二层寻址
ARP协议作用范围是什么: 同一个广播域
查看指令
arp -a
ARP应用
ARP协议4种典型情况
- 主机A发送给本网络上的主机B:用ARP找到主机B的硬件地址;
- 主机A发送另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
- 路由器发送给本网络的主机A:用ARP找到主机A的硬件地址;
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
RARP
反向地址转换协议,网络层协议,RARP与ARP工作方式相反。 RARP使只知道自己硬件地址的主机能够知道其IP地址。RARP发出要反向解释的物理地址并希望返回其IP地址,应答包括能够提供所需信息的RARP服务器发出的IP地址。网际控制报文协议ICMP
ICMP报文
ICMP的应用
- PING:测试两个主机之间的连通性,使用了ICMP会送请求和回答报文。
- Traceroute:跟踪一个分组从原点到终点的路径,使用了ICMP时间超时差错报告报文
网际组管理协议IGMP
IGMP协议是配置在路由器接口上的。用来周期性扫描本网段还有哪些计算机在绑定多播数据包,如果一个也没有的话,向上游路由器请求多播数据包就拒绝。一份也别过来了。IP组播地址
组播路由选择协议常使用的三种算法:
基于链路状态的路由选择
基于距离-向量的路由选择
协议无关的组播(稀疏/秘籍)ping
ping工具就是通过 ICMP 消息测试网络层连通性的。源主机发出 Echo request 消息,目的主机回应 Echo reply 消息,则两台主机间的网络层通信正常。也可以通过 ping命令来判断目标主机是否启用。
参考文献
OSI体系结构——网络层详解:https://blog.csdn.net/zhang175gl/article/details/105264596
OSI参考模型之网络层:https://blog.csdn.net/qq_46093534/article/details/116762359
IP地址基础知识:https://jinyi.blog.csdn.net/article/details/114484150
IP协议基本知识:https://www.jianshu.com/p/6135aa848e3d
IP 数据报格式及分片:https://ld246.com/article/1572322244697
OSI模型之网络层的更多相关文章
- CANopen学习——OSI模型复习
CanOpen协议实现了物理层和数据链路层,OSI模型是完整的7层. OSI模型网络七层包括物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 物理层:提供信息传输的物理连接通道,包括使用的 ...
- OSI模型七层模型结构
OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model ...
- 网络基础---OSI 模型与TCP/IP
一.网络的演进: 1.简单的联接:1960's ------------ 1970's Host Network 六十至七十年代,网络的概念主要是主机架构的低速串行联接,提供应用程序执行.远程打 ...
- 网络七层OSI模型简介
0. 网络七层OSI模型(Open System Interconnection)总览: 1. 应用层 2. 表示层 :表示层的作用是使通信的应用程序能够解释交换数据的含义.这些服务包括数据压缩 ...
- 计算机协议、标准以及OSI模型的简单介绍
由概念启发学习,引导学习.本篇文章中包含了一些最基本的概念和底层知识.虽然零碎,但是这是基础. 一.协议和标准 协议指的是一组控制数据通信的规则.协议有三要素:语法(syntax),语义(semant ...
- 计算机网络原理和OSI模型与TCP模型
计算机网络原理和OSI模型与TCP模型 一.计算机网络的概述 1.计算机网络的定义 计算机网络是一组自治计算机的互连的集合 2.计算机网络的基本功能 a.资源共享 b.分布式处理与负载均衡 c.综合信 ...
- python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...
- python(十二):网络编程之ISO/OSI模型
互联网(Internet)是依据操作系统,在计算机硬件的基础上建立起的通讯机制.它依赖于TCP/IP协议栈. 一.ISO/OSI模型 1.ISO七层模型与OSI五层模型 它们将计算机抽象成了具有层级关 ...
- 【转】挟天子以令诸侯博客关于TCP/IP模型与OSI模型的区别
挟天子以令诸侯 博客园 首页 新随笔 联系 订阅 管理 随笔 - 21 文章 - 0 评论 - 9 TCP/IP四层模型与OSI参考模型 TCP/IP四层模型: 1.链路层(数据链路层/网络接 ...
- 二、 OSI模型的实现TCP 、IP
主要名词定义: IPIP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层:相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层.I ...
随机推荐
- Eagle+微力同步实现素材资源协同共享
在设计团队中,会有一些通用,标准的素材资料或者项目参考方案.这些资料当多人,多台电脑,多地电脑都需要时,就会有素材共享,素材统一管理的需求. Eagle共享数据能够使用的几种方法 1.将需要共享的素材 ...
- linux 检查是否安装过某软件包
1.rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字" 2.以deb包安装的,可以用 dpkg -l ...
- Modbus报文详解
Modbus是一种串行通信协议,最初由Modicon公司(现为施耐德电气的一部分)在1979年为使用其PLC(可编程逻辑控制器)而开发.Modbus已成为工业领域内广泛使用的一种通信协议,特别是对于监 ...
- #Tarjan#洛谷 4819 [中山市选]杀人游戏
题目 分析 缩点后显然只考虑入度为0的点的个数, 但是问题是如果有一个入度为0的点缩点前只有1个点 且它的出边上的所有点都可以被其它入度为0的点遍历, 那么可以将其它点全部排除后剩下的这个点就是凶手, ...
- HR必备|可视化大屏助HR实现人才资源价值最大化
人力资源管理质量的优劣关系到企业可持续发展目标的实现,在信息化时代背景下,应用信息技术加强人力资源管理过程的优化,利用技术提升人力资源管理质量和效率已是大势所趋. 利用信息技术构建信息化人力资源管理平 ...
- 【直播预告】今晚7点,来HarmonyOS极客松直播间与技术专家聊聊新技术!
- 4天带你上手HarmonyOS ArkUI开发——《HarmonyOS ArkUI入门训练营之健康生活实战》
<HarmonyOS ArkUI入门训练营之健康饮食应用>是面向入门开发者打造的实战课程系列.特邀华为终端BG高级开发工程师作为本次训练营讲师,以健康饮食为例,开展技术教学及实战案例分享 ...
- centos7.2 利用yum安装配置apache2.4多虚拟主机
centos7.2 利用yum安装配置apache2.4多虚拟主机 标签: centosapacheyum 2017-01-10 21:01 3175人阅读 评论(0) 收藏 举报 分类: ...
- EZHTTP(一键安装Nginx Apache PHP MySQL Memcached Pureftpd)安装【测试ing】
EZHTTP(一键安装Nginx Apache PHP MySQL Memcached Pureftpd)安装 [复制链接] 本帖最后由 梁国平 于 2014-2-11 22:47 编辑 简介 ...
- nginx重新整理——————开篇[一]
前言 因为整理http协议,顺便把nginx 整理了. 正文 主要作用: 正向代理 反向代理(负载均衡.缓存等) 静态资源 nginx 的优点: 适合高并发,一个进程可以处理很多的请求. 扩展性强,有 ...