文档章节

2.网络层介绍

alon龙武
 alon龙武
发布于 2014/11/13 16:16
字数 2729
阅读 137
收藏 12
点赞 0
评论 0

1.交换处理过程

上述模型当中,像路由器这样的连接设备担当着交换机的作用。当一个分组从某个端口到达路由器后,通过另一个端口转发给下一部交换机,称为交换的处理过程发生在连接设备上


2.交换

2.1 电路交换

报文传递之前,报文的源点和终点之间先要建立一条物理电路或信道。在电路已经建立的前提下,报文完整地从源点传送到终点,然后源点可以通知网络传输已经完成。在电话交换中,完整的、没有被分割成分组的报文从源点发送到终点。电路交换从未在网络层上应用过,主要用于物理层

2.2 分组交换

在分组交换网中,源点在传送之前先要将报文分割成便于管理的分组,这些分组到达终点后被重新组装。目前因特网的网络层就是一个分组交换网,连接设备需要判断如何为分组选择路由使之到达终点。目前,分组交换网为分组选择路由的方式有两种:数据报方式和虚电路方式


3.网络层的分组交换

网络层被设计为一个分组交换网:报文要在源点被分割成便于管理的分组,通常称为数据报,然后逐个地将每个数据报从源点传送到终点。终点接收到的数据报经过组装后重新生成原始的报文

3.1 无连接服务

网络层的协议独立地对待每一个分组,分组之间没有任何关联。一个报文的所有分组可能会沿着不同的路径抵达终点

每个分组选择路由时都要依据首部的信息:源地址和目的地址。路由器根据目的地址选择路由。源地址可用于报文丢弃的时候向源点发送差错消息。在无连接分组交换网中,转发判决的依据是该分组的目的地址。

无连接网络中的时延

3.2 面向连接服务

面向连接的服务中,属于同一个报文的所有分组之间是有关联的。在一个报文的数据报被发送之前,首先建立一条虚连接指定数据报的传送路径。分组不仅包含源地址和目的地址,同时包含一个虚电路标识符,用来指定分组应当采用的虚路径

在面向连接的分组交换网络中,转发判决的依据是该分组的虚电路标识符

要建立面向连接的服务必须经过三个阶段的处理过程:建立链路、数据传送和拆掉链路。建立链路阶段,发送方的源地址和接收方的目的地址用来生成面向连接服务路由表的一个表项。拆掉链路阶段,源点和终点通知路由器删除相应的表项。

3.2.1 建立链路阶段

在建链阶段,路由器需要为一条虚拟电路创建一个表项,在发送方和接收方之间需要交换两个辅助分组:请求分组和确认分组

请求分组

路由器在路由表中为虚电路创建一个表项,表项填写三列:入端口、入标号、出端口,出标号需要等到确认阶段才知道

确认分组

3.2.2 数据传送阶段

当所有路由器都为特定的虚电路创建了各自的路由表项之后,属于同一个报文的所有网络层分组可以一个接一个地发送出去。报文的所有分组都遵循相同的标号序列抵达终点,终点处,分组是按序到达的

3.2.3 拆掉链路阶段

在拆链阶段,源点在向终点发送了所有的分组后会发送一个称为拆链分组的特殊分组,终点用一个确认分组响应。所有的路由器从各自的路由表中将对应的表项删除

3.2.4 无连接网络中的时延


4.网络层的服务

4.1 源计算机提供的服务

源计算机上的网络层提供四种服务:分组化处理、查找下一跳的逻辑地址、查找下一跳的物理地址、对数据报进行必要的分片处理

网络层接收来自上层的几个信息:数据、数据长度、逻辑地址、目的地址、协议标志号、服务类型。网络层对这些信息进行处理后生产一组数据报片以及下一跳的MAC地址,将它们一起交付给数据链路层

  • 分组化处理:网络层将来自上层的数据封装到一个数据报:为数据添加一个首部,包括分组的逻辑源地址和逻辑目的地址、分片相关信息、请求此服务的协议标号、数据长度,再加上其它一些可能选项

  • 查找下一跳的逻辑地址:数据报的源地址和目的地址没有关于下一跳逻辑地址的任何线索,源计算机上的网络层需要咨询路由表找出下一跳的逻辑地址

  • 查找下一跳的物理地址:网络层并不是真的将数据报交付给下一跳,而是由数据链路层负责真正的交付。数据链路层需要下一跳的物理地址才能向其交付。网络层通过地址解析协议获得逻辑地址对应的物理地址

  •  分片:大多数局域网和广域网都会对一个帧所携带的数据最大长度加以限制。如果网络层准备传送的数据报长度超过限制,在被传递到数据链路层之前,数据报需要被分割为更小的单元。分片操作必须要保留数据报首部中的信息

4.2 各路由器提供的服务

一个数据报涉及到路由器上的两个接口:入接口和出接口。路由器上的网络层需要与两个数据链路层打交道:入接口的数据链路层和出接口的数据链路层。网络层负载接收来自入接口数据链路层的数据报,如有必要需进行分片处理,然后将数据报片交付给出接口的数据链路层

4.3 目的计算机提供的服务

目的计算机向终点交付数据之前需要重组数据报片。在检查过数据报片的有效性后,从中提取数据保存。当所有的数据报片都到齐后,数据重组并交付给上层,同时网络层设置一个重组定时器。如果定时器超时,所有的数据报片都会被销毁,并发送一个差错报文,所有的数据报片需要被重新传送


5. 网络层相关的问题

5.1 差错控制

差错控制包括对损坏、丢失以及重复的数据报进行检测的机制,还包括检测到错误之后的纠错机制。网络层不提供真正意义上的差错控制,因为数据链路层实现了逐跳的差错控制。然而,逐跳的差错控制保护数据报并不够彻底,比如路由器处理数据报时出现的差错,数据链路层无法检测出来

网络层之所以忽略差错检测的另一个理由与分片有关。由于数据很可能在路由器上被分片,使得部分网络层的数据可能会被改变。如果使用差错控制,必须在每个路由器上检测是否有分片,导致网络层上的差错检测变得非常低效。不过,网络层的设计者在数据报上增加了校验和字段,可以控制首部出现的任何损坏,而不是针对整个数据报。另外,虽然网络层没有直接提供差错控制,但是如果数据报被丢弃或者首部含有一些不可知的信息,ICMP协议会提供某种程度的差错控制

5.2 流量控制

流量控制用于调整源点发送的数据量以免接收方超载。如果源计算机上层应用产生数据的速度比目的计算机上层应用吸收数据的速度快,接收方会被数据淹没。为了控制数据的流量,接收方需要向发送方发送某些反馈,通知发送方自己被数据淹没。但是,因特网的网络层并不直接提供任何流量控制。首先,网络层没有差错控制,接收方网络层工作简单,以致很少出现超载现象。其次,使用网络层服务的上层协议可以部署缓存,某种程度上加强接收数据速度。再次,网络层服务的上层协议都会提供流量控制

5.3 拥塞控制

如果网络中源计算机发送数据报的数量超过网络或路由器的容量,有可能发送拥塞现象。这种情况下,某些路由器可能丢弃一些数据报,导致发送方可能重新发送被丢弃的分组副本,拥塞情况更严重。如果拥塞持续下去,某一时刻达到极点,导致系统崩溃,没有任何数据报能被交付

无连接网络的拥塞控制

  • 无连接网络可以通过信令控制拥塞的形成:反向信令是在运动方向与拥塞方向相反的数据报中设置一个比特,通知发送方拥塞正在形成,发送方应当放慢分组的速度。

  • 无连接网络可以通过扼流分组控制拥塞的形成:遇到拥塞时由路由器向发送方发送一个特殊的分组。向源点发送一个ICMP分组使其放慢速度

面向连接网络的拥塞控制

建立链路阶段进行提前协商:发送方和接收方可以在建立虚拟电路时对通信量的级别达成一致意见。这个通信量级别可以由允许建立虚电路的路由器指定




© 著作权归作者所有

共有 人打赏支持
alon龙武
粉丝 2
博文 14
码字总数 20481
作品 0
深圳
程序员
Socket服务器整体架构概述

Socket服务器主要用于提供高效、稳定的数据处理、消息转发等服务,它直接决定了前台应用程序的性能。我们先从整体上认识一下Socket服务器,Socket服务器从架构上一般分为:网络层、业务逻辑层...

付翔
2013/01/05
0
0
Linux系统及Netfilter介绍

不论是各类设备和还是应用服务器,都大量的使用了Linux系统,下面是我个人的一些理解,供参考。 Linux的网络性能强大,其中Netfilter框架支持各类网络通信协议,同时具有网络安全、网络管理、...

esmond
2013/06/28
0
0
跟着凡凡一起学IT-网络模型认知

想学好IT必须先了解网络模型架构,当前技术属于哪一层面的技术,才能更好的理解这门行业 我的博客带领大家从零走向巅峰,共同进步,勉励i你我! 模型类型给大家简单的介绍一下, TCP/IP模型-...

459199036
2017/11/14
0
0
怎么样选择负载均衡

一、负载均衡介绍 1、什么是负载均衡 百度百科介绍:http://baike.baidu.com/view/51184.htm?fr=aladdin 负载均衡 (Load Balancing) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效...

煮酒品茶
2014/05/22
0
0
《TCP/IP详解.卷1:协议》读书笔记

从大学的时候就听余老师介绍过stevens这三卷书,还听说最后一卷没写完作者就去世了,工作后也一直听人谈起, 但还是没去真正读它。最近因为工作上很多涉及到网络,捉包,各种tcpdump的使用,...

suit
2014/10/21
0
0
[Deep-Learning-with-Python]神经网络入手学习[上]

神经网络入手[上] [x] 神经网络的核心部分 [x] Keras介绍 [ ] 使用Keras解决简单问题:分类和回归 神经网络剖析 神经网络的训练与下列对象相关: 网络层Layers,网络层结合形成神经网络模型;...

七八音
07/13
0
0
WireShark数据包分析数据封装

WireShark数据包分析数据封装 数据封装(Data Encapsulation)是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。在OSI七层参考模型中,每层主要负责与其它机器上的对等层进行通信。该...

大学霸
2015/03/11
0
1
C++卷积神经网络实例:tiny_cnn代码详解(10)——layer_base和layer类结构分析

  在之前的博文中,我们已经队大部分层结构类都进行了分析,在这篇博文中我们准备针对最后两个,也是处于层结构类继承体系中最底层的两个基类layerbase和layer做一下简要分析。由于layer类...

u013088062
2016/03/23
0
0
11、linux网络管理介绍

1、通讯协议: TCP/IP:四层模型,分别是:物理层、网络层、传输层、应用层 ISO/OSI:七层模型:分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 上层调用下层接口,下...

嘀充值成功
2017/12/10
0
0
客户端软件的结构思考(一)

  关于这个标题的内容我思考了很多年,也求索了很多年,每次遇到一份新的质量看起来不错客户端软件的源码时,我总是忍不住地去学习和研究,以期能解决我的困惑,希望能达到我心中“完美”方...

analogous_love
2017/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
12
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部