网络理论知识1(四层、七层网络模型)

一、TCP/IP四层网络模型

TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。图2表示了TCP/IP分层模型的四层。
  ┌────────────┐┌─┬─-┬─-┬─┬─-┬─┬─-┬─┬─-┬─┬─-┐
  │          ││D│F│W│F│H│G│T│I│S│U│ │
  │          ││N│I│H│T│T│O│E│R│M│S│其│
  │第四层,应用层      ││S│N│O│P│T│P│L│C│T│E│ │
  │          ││ │G│I│ │P│H│N│ │P│N│ │
  │          ││ │E│S│ │ │E│E│ │ │E│它│
  │          ││ │R│ │ │ │R│T│ │ │T│ │
  └────────────┘└─┴─-┴─-┴─┴─-┴─┴─-┴─┴─-┴─┴─-┘
  ┌────────────┐┌─────────┬───────────┐
  │第三层,传输层 ││      TCP    │  UDP     │
  └────────────┘└─────────┴───────────┘
  ┌────────────┐┌─────┬─────┬─────────┐
  │        ││     │ICMP│       │
  │第二层,网间层 ││     └─────┘        │
  │        ││       IP         │
  └────────────┘└─────────────────────┘
  ┌────────────┐┌──────────┬───────────┐
  │第一层,网络接口   ││ARP/RARP│  其它     │
  └────────────┘└──────────┴───────────┘
      图2 TCP/IP四层参考模型 
  TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
  TCP/IP分层模型的四个协议层分别完成以下的功能:

第一层 网络接口层

网络接口层包括用于协作IP数据在已有网络介质上传输的协议。

协议:ARP,RARP

第二层 网间层

网间层对应于OSI七层参考模型的网络层。负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。

协议:本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),ICMP协议。

第三层 传输层

传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。

其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。

第四层 应用层

应用层对应于OSI七层参考模型的应用层和表达层。

因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。

二、协议详解

ARP:

ARP:将32位的IP地址转换为48位的物理地址。

IP地址是网络层的地址,连上互联网的每一台主机的每一个接口都会有一个IP地址,每台主机的每个网卡均有唯一的物理地址,物理地址在生产时就已经定死,无法改变,而每个网卡的IP地址是可以改变的(例如连上不同的wifi,IP地址也会不同)。

为什么有了IP地址还要有MAC地址,有MAC地址还要有IP地址?

首先要明白,物理网络是有许多结构的,不同的物理网络具有不同的mac地址格式,为了让不同的网络进行通信,那么就使用统一的IP地址好了,

mac地址是数据链路层的地址,并且mac地址出现时间比IP地址要早,保留mac地址很可能是为了向后兼容已有的网卡芯片,同时,并不是所有的网络都使用IP协议

ARP报文格式如下:

硬件类型(16位):指定物理地址的类型,1表示以太网。

上层协议类型(16位):指定要将MAC地址映射成什么协议的地址。0x0800表示IP地址。

MAC地址长度(8位):指定MAC地址的长度,单位是字节。

协议地址长度(8位):指定协议地址的长度,单位为字节。

操作类型:1表示ARP请求、2表示ARP回应、3表示RARP请求,4表示RARP回应。

接下来为发送源的物理地址和协议地址(由于回应时要知道发送个谁,以此来封装以太帧),目的物理地址和协议地址。

封装ARP请求时,发送源除了目的物理地址外都会填写。

当路由器或主机选择了某条路由时,首先会查找ARP缓存,若缓存中有对应IP地址的物理地址,则以此封装以太帧,否则会广播(为二层广播)ARP报文,每个主机接收到ARP请求报文后,会缓存发送源的IP——MAC对到ARP缓存中,目的主机会发送ARP回应(此时为单播),当发送源接收到回应时,会将目的方的IP——MAC对存放在ARP缓存中。在点到点的物理连接中,是不会用到ARP报文的,在启动时双方都会通告对方自己的IP地址,此时物理层的封装不需要MAC地址。windows上可以使用arp -a查看本机的ARP缓存。ARP缓存中的每个条目的最大存活时间为20分钟(从条目创建时开始计时)。

ARP代理:

之前说ARP请求是广播的,我们知道路由器是分割广播域的(这部分在CCNA总结中会讲),如果我们要查询的IP地址在外网怎么办?此时就需要ARP代理,当发送源广播ARP请求时,本地网络上不会有主机回应(因为IP地址是外网的),此时路由器会将回应该请求,则发送源误认为路由器就是目的主机,会将报文全部转发给它,在由路由器转发报文,则该路由器就被称为ARP代理。

免费ARP:

在主机开机配置时,会发送一个目的IP地址为自己IP地址的ARP请求报文,该报文称为免费ARP,其作用如下:

1、让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则ICMP错误报文被返回。

2、若接收主机ARP缓存中本身就有发送源主机的IP——MAC对,则会更新,否则,会缓存发送源的IP——MAC对。

ICMP:

ICMP协议及报文格式

ICMP(Internet Control Message Protocol)因特网控制报文协议。它是IPv4协议族中的一个子协议,用于IP主机、路由器之间传递控制消息。控制消息是在网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP协议与ARP协议不同,ICMP靠IP协议来完成任务,所以ICMP报文中要封装IP头部。它与传输层协议(如TCP和UDP)的目的不同,一般不用来在端系统之间传送数据,不被用户网络程序直接使用,除了想Ping和Tracert这样的诊断程序。

ICMP消息类型

ICMP报告无法传送的数据报的错误,并帮助对这些错误进行疑难解答。例如,如果IPv4不能讲数据报传送到目标主机,则路由器上的或目标主机上的ICMP会向主机发送一条“无法到达目标”消息。下表为最常见的ICMP消息。

ICMP消息类型用途说明
回显请求Ping工具通过发送ICMP回显消息检查特定节点的IPv4连接以排查网络问题。类型值为0
回显应答节点发送回显答复消息响应ICMP回显消息。类型值为8
重定向路由器发送“重定向”消息,告诉发送主机到目标IPv4地址更好的路由。类型值为5
源抑制路由器发送“源结束”消息,告诉发送主机它们的IPv4数据报将被丢弃——因为路由器上发生了拥塞。于是,发送主机将以较低的频度发送数据报。类型值为4
超时这个消息有两种用途。第一,当超过IP生存期时向发送系统发出错误信息。第二,如果分段的IP数据报没有在某种期限内重新组合,这个消息将通知发送系统。类型值为11
无法到达目标路由器和目标主机发送“无法到达目标”消息,通知发送主机它们的数据无法传送。类型值为3

其中无法到达目标消息中可以细分为一下几项

无法到达目标消息说明
不能访问主机路由器找不到目标的IPv4地址的路由时发送“不能访问主机”消息
无法访问协议目标IPv4节点无法将IPv4报头中的“协议”字段与当前使用的IPv4客户端协议相匹配时会发送“无法访问协议”消息
无法访问端口IPv4节点在UDP报头中的“目标端口”字段与使用该UDP端口的应用程序相匹配时发送“无法访问端口”消息
需要分段但设置了DF当必须分段但发送节点在IPv4报头中设置了“不分段(DF)”标志时,IPv4路由器会发送“需要分段但设置了DF”消息

ICMP协议只是试图报告错误,并对特定的情况提供反馈,但最终并没有使IPv4成为一个可靠的协议。ICMP消息是以未确认的IPv4数据报传送的,它们自己也不可靠。

ICMP报头格式

ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。ICMP报头如下图所示。

ICMP报头格式

各字段说明

  • 类型:占一字节,标识ICMP报文的类型,目前已定义了14种,从类型值来看ICMP报文可以分为两大类。第一类是取值为1~127的差错报文,第2类是取值128以上的信息报文。
  • 代码:占一字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型。
  • 校验和:这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与在我们介绍IP报头中的校验和计算方法是一样的。
  • 标识:占两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0。

常见的ICMP报文

相应请求

我们日常进行的Ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0)ICMP报文。一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。

目标不可达,源抑制和超时报文

这三种报文的格式是一样的。目标不可到达报文(类型值为3)在路由器或者主机不能传递数据时使用。例如我们要连接对方一个不存在的系统端口(端口号小于1024)时,将返回类型字段值3、代码字段值为3的ICMP报文。常见的不可到达类型还有网络不可到达(代码字段值为0)、主机不可达到(代码字段值为1)、协议不可到达(代码字段值为2)等等。
源抑制报文(类型字段值为4,代码字段值为0)则充当一个控制流量的角色,通知主机减少数据报流量。由于ICMP没有回复传输的报文,所以只要停止该报文,主机就会逐渐恢复传输速率。最后,无连接方式网络的问题就是数据报回丢失,或者长时间在网络游荡而找不到目标,或者拥塞导致主机在规定的时间内无法重组数据报分段,这时就要触发ICMP超时报文的产生。
超时报文(类型字段值为11)的代码域有两种取值:代码字段值为0表示传输超时,代码字段值为1表示分段重组超时。

时间戳请求

时间戳请求报文(类型值字段13)和时间戳应答报文(类型值字段14)用于测试两台主机之间数据报来回一次的传输时间。传输时,主机填充原始时间戳,接受方收到请求后填充接受时间戳后以类型值字段14的报文格式返回,发送方计算这个时间差。有些系统不响应这种报文。

三、OSI七层网络模型

在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI参考模型把功能分成七个分立的层次。图1表示了OSI分层模型。

  ┌───────┐
  │ 应用层 │←第七层
  ├───────┤
  │ 表示层 │
  ├───────┤
  │ 会话层 │
  ├───────┤
  │ 传输层 │
  ├───────┤
  │ 网络层 │
  ├───────┤
  │数据链路层│
  ├───────┤
  │ 物理层 │←第一层
  └───────┘ 
  图1 OSI七层参考模型

第一层 物理层

作用:负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。所有比物理层高的层都通过事先定义好的接口而与它通话。

协议:如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。

第二层 数据链路层

作用:数据链路层通过物理网络链路提供可靠的数据传输。

协议:ATM,FDDI等。 

第三层 网络层

作用:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。

协议:IP,IPX等

第四层 传输层

作用:传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的数据传输,确保传输设备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包括为检测传输错误而建立的各种不同结构;而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。

协议:TCP,UDP,SPX。

第五层 会话层

作用:会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。

协议:RPC,SQL等

第六层 表示层

作用:这一层的主要功能是定义数据格式及加密。

协议:FTP,加密

第七层 应用层

作用:应用层是最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了OSI模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。
协议:telnet,HTTP,FTP,WWW,NFS,SMTP等。
 

OSI分层的优点: 

(1)人们可以很容易的讨论和学习协议的规范细节。 
(2)层间的标准接口方便了工程模块化。 
(3)创建了一个更好的互连环境。 
(4)降低了复杂度,使程序更容易修改,产品开发的速度更快。 
(5)每层利用紧邻的下层服务,更容易记住个层的功能。 

  • 21
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值