网络层

网络层

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

一、概述

1、交换:电路交换、分组交换

电路交换:

分组交换:来自上层的报文被分割成便于管理的一个个分组,再通过网络发送这些分组。报文的源点逐个发送分组,而其终点也逐个接收这些分组,等到属于该报文的所有分组都到齐之后,终点才将报文交付给上层。

2、无连接服务、面向连接的服务

网络层的分组交换:网络层被设计为一个分组交换网,报文要在源点被分割成便于管理的分组,通常称为数据报,然后逐个地将这些数据报从源点传送到终点,终点接收到数据报经过组装后重新生成原始的报文,因特网的分组交换在最初设计时只提供无连接服务,不过最近的趋势是面向连接的服务

无连接服务:每个分组都是一个独立的个体,属于一个报文的两个分组之间没有任何联系,此类网络中的交换机被称为路由器,一个分组后面跟着的可能是来自相同源点的分组,也可能是来自另外一个不同源点的分组。每个分组在选择路由时都要依据包含在其首部的信息:源地址和目的地址,目的地址指明了它要去哪里,源地址指明了他来自哪里。

面向连接

面向连接服务:属于同一个报文的所有分组之间是有关联的,一个报文的数据被发送之前,首先建立一条虚链接以指定这些报文通过的路径。分为三个阶段:建链、传送数据、拆链。

二、IP分组的交付和转发

1、交付:网络层监视底层物理网络对分组的处理过程,分为直接交付间接交付

直接交付:分组的终点是一台与交付者连接在同一个网络上的主机。直接交付发生在这两种情况下:分组的源点和终点都在同一个物理网络上,或者是最后一个路由器与目的主机之间的交付。发送方很容易判断交付是否为直接交付:提取终点的网络地址(用掩码),然后与自己的网络地址相比较,若匹配,交付是直接的。直接交付的时候,发送方通知目的IP地址找出目的的物理地址,然后IP软件把目的的IP地址和物理地址一起交付给数据链路层用于实际的交付,这个过程称为把IP地址映射到到物理地址。

间接交付:分组经过一个又一个路由器,最终到达与终点连接在用一个网络上的路由器。间接交付的时候,发送方通过分组的目的IP地址和路由表来查找该分组应当被交付的下一个路由器的地址,然后发送发再用ARP协议找出下一个路由器的物理地址。

 

2、转发

转发:转发意味着让分组踏上通往终点的路途,也就是意味着将分组交给下一跳。具体分为:基于目的地址的转发、基于标记的转发

基于目的地址的转发:这是一种传统方式,并且仍然是主流的方式。这种情况要求主机和路由器具有一张路由表才能进行转发,当主机或者路由器收到分组要进行转发时,就要搜索路由表,以便找到最后终点的路由。因为路由表项数量过多,将导致路由表的查找效率非常低。转发技术如下:

(1)       下一跳方法:可以减少路由表中的内容,只保留下一跳的地址,而不是保留完整的路由信息。

(2)       特定网络方法:只用一个表项来定义目的网络本身的地址,把连接在同一个网络上的所有主机看成是一个表项。

(3)       特定主机方法:目的主机的地址在路由表中要给出。

(4)       使用分类编址时的转发:

A、无子网划分转发:提取出分组的网络地址;查找地址的类别;查找下一跳地址;找出下一跳的物理地址,请求数据链路层把数组交付到下一跳。

B、有子网划分的转发:

(5)使用无分类编址的转发:整个地址空间是完整的,没有划分类别,需要在路由表中包含类别。

基于标记的转发:

 

三、路由器的结构

一般路由器有四个构建:输入端口、输出端口、路由选择处理器、交换结构。

 

四、网际协议版本4(IPv4)

讨论IP编址机制和IP分组的交换与转发之后,下面讨论的是IP分组的格式,IP分组如何由一个基本首部和一些选项构成。

1、 概述:IP是一种不可靠的无连接数据报协议,一种尽最大努力交付的服务。

2、 数据报:网络层的分组称为数据报。数据报是一个可变长度的分组,它由两个部分组成,分别是:首部和数据。首部的长度可以是20-60字节,包含路由选择和交付重要信息,习惯上,在TCP/IP中都是以4个字节为一段表示首部。

HLEN:首部长度,单位是段(4个字节为一段);

服务类型(TOS,type of service):后两位未使用;最右边全为0时,定义优先级,发生问题(如堵塞)时的处理机制;最右三位并非全为0时,定义54种服务。

总长度:以字节为单位的数据报的长度

标识、标志、分片偏移:用于分片。

生存时间:现在这个字段用来控制数据报所经过的最大跳数。每经过一个路由器,值减掉1,当为0时,丢掉这个数据报。

协议:这个8位字段定义了使用此IP层服务的高层协议,这个字段指明IP数据报必须交付给哪个最终目的协议。

检验和:

源地址:这个字段始终不变。

目的地址:始终不变。

四、分片

1、概述:数据报可以穿越不同的网络,每个路由器都会从收到的数据帧中拆解出IP数据报,并对他进行处理,然后再封装成另外一个帧。每个数据链路层协议都有自己的帧格式,这个格式中有一个字段是“数据字段最大长度”,当数据报被封装成帧时,数据报的总长度必须小于这个最大长度。

对于不同的物理网络协议,MTU的值是不同的,例如以太网的这个值是1500直接,FDDI局域网的是4352字节,而PPP的这个值是296字节。

为了使IP协议与物理网络无关,IP数据报的最大长度为65535字节,如果我们使用的协议的MTU刚好等于这个数值,那么传输效率很高;但是对于其他一些物理网络,我们不得不对数据报进行分片

五、选项

IP数据报的首部由两个部分组成:固定部分和可变部分,固定部分是20个字节;选项最多可以达到40字节。

六、检验和

检验和能够分组在传输过程中出现的损坏,是附加在分组上的冗余信息。

六、地址解析协议(ARP

一个分组交付到主机或者路由器,需要用到两级地址:逻辑地址和物理地址。我们要把逻辑地址映射为相应的物理地址,这样的映射可以通过静态映射或者动态映射。

1、  静态映射:静态映射就是说创建一张表,把逻辑地址与物理地址连续起来,则个表存储在网络中的每一台机器上。局限性是:物理地址可能会变化,所以静态映射表需要定期更新。

2、 动态映射:在任何时候,只要知道另外一台机器的逻辑地址,就可以使用协议找到相应的物理地址。已经设计出来的动态映射的协议有两个:地址解析协议(ARP)逆地址解析协议(RARP)     .

3、  ARP协议:ARP接收来自IP协议的物理地址,将其映射为相应的物理地址,然后再把这个物理地址递交给数据链路层。任何时候,当主机或者路由器需要找出咋个网络上的另外一个主机或者路由器的物理地址的时候,他就可以发送一个ARP查询分组,这个分组包括发送方的物理地址和IP地址,接收方的IP地址,这个分组利用收到的查询分组中的物理地址以单播方式直接发送给查询者。

ARP分组格式:

ARP分组直接封装在数据链路帧中,

ARP工作过程:

I、发送方知道目标的IP地址;

II、IP请求ARP创建一个ARP请求报文,填入发送方的物理地址、发送方的逻辑地址,目标方的逻辑地址,目标的物理地址填入0;

iii、这个报文被递交给数据链路层,在这一层它被封装成帧,并且以发送方的物理地址作为源地址;物理广播地址作为目的地址。

IV、每一个主机或者路由器都会收到这个帧,因为这个帧包含的是广播目的地址,多有站点都会取走这个报文并把它交给ARP,除了目标机器之外,其他所有机器都会丢弃这个分组,目标机器认识这个IP地址。

v、目标机器用ARP回答报文进行回答。回答报文中包含了他的物理地址,这个报文使用的是单播方式。

vi、发送方收到这个回答报文,现在发送方就知道目标机器的物理地址了。

vii、携带由于给目标机器数据的IP数据报封装成帧,并用单播方式传送到目的地址。

七、网际控制报文协议

1、概述:Ipv4提供了不可靠的和无连接的数据报交付,这样设计是为了有效地利用网络资源。IP协议是尽最大努力的服务,它吧数据报从最初的源点交付到最后的终点。但是,它有两个缺点:缺少差错控制和缺少辅助机制。ICMP就是为了补偿这两个机制设计的,是IP协议的伴侣。

ICMP在网络层的位置如下:

ICMP本身是一个网络层协议,三十,他的报文并不是如期那样直接传递给数据链路层,实际上,ICMP报文首先要封装成IP数据报,然后才被传递到下一层。

在一个IP数据报中,如果协议字段值是1,就表示IP数据是ICMP报文。

2、 ICMP报文分类:差错报告报文和查询报文。

3、 差错报告报文:差错报告报文报告了路由器或主机在处理IP数据报时可能遇到的问题。ICMP报告并不能纠正差错,只能简单地报告差错,纠正差错留给高层协议去做。ICMP总是把差错报文报告给最初的源数据。

(1)       对于写到ICMP差错报文的数据报,不再产生ICMP数据报;

(2)       对于分片的数据报,如果不是第一个分片,则不产生ICMP数据报;

(3)       对于具有多播地址的数据报,不再产生ICMP数据报;

(4)       对于特殊地址的数据报,不再产生ICMP数据报;

ICMP生成一个差错分组,然后再封装成IP数据报。

4、 查询报文

除了差错报告外,ICMP还能对某些网络问题进行诊断,是通过查询报文来完成的。是成对出现的。

八、单播路由选择协议(RIP、OSPF、BGP

路由信息协议(RIP)是对距离向量协议的实现;开放最短路径优先(OSPF)协议是对链路状态协议的实现;边界网关协议(BGP)是对路径向量协议的实现。RIP和OSPF是内部路路由选择协议;而BGP是外部路由选择协议。

1、 距离向量协议的实现(RIP,routing information protocol):

2、  开放最短路径优先(OSPF, open shortest path first),基于链路状态路由选择的域内路由选择协议

3、  边界网关协议(BGP,border getway protocol)是一个使用路径向量路由选择的域间路由协议。

九、多播和多播路由选择协议

IGMP(internet group management protocol):网际组管理协议,负责收集和解释一个网络组成员信息。

时间: 08-10

网络层的相关文章

【Caffe代码解析】Layer网络层

Layer 功能: 是全部的网络层的基类,当中.定义了一些通用的接口,比方前馈.反馈.reshape,setup等. #ifndef CAFFE_LAYER_H_ #define CAFFE_LAYER_H_ #include <algorithm> #include <string> #include <vector> #include "caffe/blob.hpp" #include "caffe/common.hpp" #

网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结

引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信. 使用TCP还是UDP,那要看你的程序注重哪一个方面,可靠(tcp)还是快速(udp). TCP/IP 建立连接的过程 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.   

网络层详解----1

网络层提供的两种服务 虚电路服务:当两个计算机进行通信时,先建立连接,以保证双方通信所需的一切网络资源. 数据报服务:网络层只向上提供简单灵活的.无连接的.尽最大努力交付的数据报服务.网络在发送分组时不建立连接,每一个分组独立发送,与其前后分组无关,也不提供服务质量承诺. IP协议 IP协议配套使用的还包括ARP(地址解析协议).RARP(逆地址解析协议).ICMP(网际控制报文协议).IGMP(网际组管理协议). 虚拟互连网络 将网络互连需要通过一些中间设备:转发器物理层().网桥或桥接器(数

Caffe 中添加自己的网络层

写在前面: Caffe 中有众多的网络层,最新版本的代码已经涵盖了很多种类型的网络层,然而,有时候由于各种原因,其给定的网络层不能满足我们的要求,这时候就要对其更改,以使其满足自己的需求,感谢作者开源代码以及众多的代码维护者. 由于Caffe 中的网络层都是直接或者间接地给予Layer 基类,所以,在我们需要添加新的类型时,就需要选择好自己的基类,以使我们能够更好的利用基类已有的一些方法.我们新建的类可以基于 1. 直接继承于Layer 2. 继承于DataLayer 3. 继承于NeuronL

ddos 防御 - TCP 网络层防御

cron_ddos_tcp.sh 1#!/bin/sh  2   3   4 for kip in `netstat -an |grep -i ':80' |grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 > 50 && $2 !~ /192\.168\.1\.19.|0\.0\.0\.0/) {print $2}}'`; do  5   6 echo $kip >>

TCP/IP和OSI网络层

一.网络层主要功能 负责数据包的最佳寻址 二.网络层最重要的协议 Internet Protocol 简称IP 三.数据传输中的不便 从发送方看: 1.接收方是否存在 2.数据是否真正送到了接收方 3.接收方是否能理解接收到的数据 从接收方看: 关心数据什么时候能送达 因为这些不确定因素的存在,使得IP协议是一种无连接的网络服务,正因如此,所以IP是一种不可靠协议,它所执行的数据转发是一种 "尽力而为". 四.传输介质 网络层不关心传输介质,只关心最佳路径,所以可以在不同的物理介质上进

网络层(一)

网络层向上只提供简单灵活的,无连接,尽最大努力交付的数据报服务.网络在发送分组时不需要先建立连接,每一个分组独立发送,与其前后分组无关.网络层不提供服务质量的承诺. 网际协议IP与IP协议配套使用的协议还有ARP(地址解析协议),RARP(逆地址解析协议),ICMP(网际控制报文协议),IGMP(网际组管理协议) ARP和RARP是最下面的,IP经常使用这两个协议.ICMP,IGMP在IP的上面,他们经常使用IP协议. 网络互连需要一些中间设备,根据中间设备所在的层次.分为:1物理层使用转发器2

Internet 网络层协议设计原则(RFC 1958)

这 10 条原则本是设计网络层协议用的,但我想它们可能对 web 应用的设计同样具有指导意义,因此记录于下(顺序为从最重要到最不重要): 保证工作.直到确认原型系统可以正常运行,才可以完成设计或确定标准. 保持简单.有疑问时应该使用最简单的解决方案.即如果一项特性并非绝对必要,就应该被砍掉,尤其当可以通过其他简单特性的组合也可以达到相同效果的时候.(注:也许这里的难点在于确认一套最小功能集) 明确选择.解决一个问题应当有且只有一种解决方案,这与 Python 的理念相同. 模块开发.使用栈结构组

iOS网络层框架之AFNetworking与 ASIHTTPRequest对比

在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等. 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?几乎每一个iOS互联网应用开发者都会面对这样的选择题,要从这两个最常用的组件里选出一个好的还真不是那么容易

OSI七层详解之三 网络层(Network layer)

一.简介 在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网.网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送.网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地 址信息- -源站点和目的站点地址的网络地址. 如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是"数据包"问题,而不是第2层的"帧".IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP).有关路由的一