五层网络模型
# 网络模型
# 1 网络体系结构
网络体系结果的模型分为3类:OSI七层模型、五层模型、TCP/IP四层模型。
下面将详细的介绍五层模型。
# 2 五层模型
# 网络分层结构
- 应用层:提供两个终端设备上的应用程序之间信息交换的服务,它定义了信息交换的格式,消息会交给传输层来传输。在互联网中的应用层协议很多,如DNS、HTTP、SMTP等。
- 传输层:负责向两台终端设备进程之间的通信提供通用的数据传输服务。传输控制协议TCP(面向连接、可靠)、用户数据协议UDP(无连接,不保证数据传输的可靠性)。
- 网络层:两个计算机之间有很多链路和网络,网络层的任务就是选择不同的节点或链路确保数据及时传送。包括IP协议。
- 数据链路层:在两个相邻节点之间传输数据时,将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传帧。
- 物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。
# 应用层
主要提供两台终端设备上的应用程序之间信息交互的服务,它定义了信息交换的格式,消息会交给下一层传输层来传输。我们把应用层交互的数据单元称为报文。
应用层协议定义了网路通信规则,对于不同的网络应用需要不同的应用层协议。等等。
应用层的协议有:Web 应用 HTTP 协议,支持电子邮件的 SMTP 协议,DHCP,FTP,DNS,SSH,IMAP...
# 传输层
负责向两台终端设备进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。
主要使用以下两个协议:
- 传输控制协议TCP,Transmission Control Protocal,提供面向连接的,可靠的数据传输服务。
- 用户数据协议UDP,User Datagram Protocal,提供无连接的,不保证数据传输可靠性的,尽最大努力的数据传输服务。
# 网络层
在计算机网络进行通信的两个计算机之间可能会经过多个数据链路,也可能还要经过很多通信子网。**网络层的任务就是选择合适的网络路由和交换节点,确保数据及时传送。**在发生数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传输。网络层还有一个任务就是选择合适的路由,使源主机运输层传下来的分组,能通过网络层中的路由器找到目的主机。
在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报,简称数据报。
注意:不要把运输层的用户数据报UDP
和网络层的IP数据报
弄混。
网络层是由大量的异构网络通过路由器相互连接起来的。互联网使用的网络层协议是无连接的网际协议和许多路由选择协议,因此互联网的网络层也叫做网际层或IP层。
# 数据链路层
将网络层交下来的 IP 数据包组装成帧,在两个相邻节点间的链路上传输帧。每一帧包括数据和必要的控制信息。
# 物理层
实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。
# 网络层与数据链路层的关系
- IP 在网络层,MAC 在数据链路层。
- MAC 的作用是实现【直连】的两个设备之间通讯,而 IP 则负责在【没有直连】的两个网络之间进行传输。
- 源 IP 地址和目标 IP 地址在传输过程中是不会变化的,只有源 MAC 地址和目标 MAC 一直变化。
以旅行为例:
- 比如,小林要去很远的地方旅行,制定了一个行程表,期间需要先后乘坐飞机、地铁、公交车才能到达目的地,为此小林需要买飞机票、地铁票等;飞机票、地铁票都是去往特定的地点,每张票只能在某一协定区间内移动,此处的【区间内】就如同通信网络中数据链路;
- 在区间内移动相当于数据链路层,充当区间内两个节点传输的功能,区间内的出发点好比源 MAC 地址,目标地点好比目的 MAC 地址。
- 整个旅游行程表相当于网络层,充当远程定位的功能,行程的开始好比源 IP,行程的终点好比目的 IP 地址。
- 如果小林只有行程表而没有车票,就无法搭乘交通工具到达目的地。相反,如果有车票而没有行程表,恐怕也很难到达目的地。
- 因此,计算机网络中也需要【数据链路层】和【网络层】这个分层才能实现向最终目标地址的通信。
- 旅程中虽然交通工具在不断的变化,但是旅行行程的起始地址和目的地址都没有变。源IP地址和目标IP地址在传输过程中是不会变化的,只有源MAC地址和目标MAC一直变化。
# 3 TCP/IP四层模型
网络分层结构如下:
- 应用层
- 传输层
- 网络层
- 网络接口层(数据链路层、物理层)
# 4 OSI七层模型
网络分层结构如下:
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
# 5 协议
# ARP
ARP,Address Resolution Protocal,地址解析协议,解析IP地址得到MAC地址,基于数据链路层之上的协议,可以看成和网络层同一层级,通常称为 2.5 层协议,ARP 是网络层与数据链路层的重要枢纽,它解决了网络层(软件)到数据链路层(硬件)的映射。
主机 A 想要发送数据给主机 B,数据需要在应用层、传输层、网络层、数据链路层封装。网络层添加源 IP 地址和目的 IP 地址,数据链路层添加源 MAC 地址和目的 MAC 地址。
- 如果 A 与 B 之前通信过,A 中将存有 IP - MAC 的映射关系,那么将 B 的MAC 地址填充到链路层头部完成封装,发送出去即可。
- 如果 A 与 B 之前未通信过,A 中没有 IP - MAC 的映射关系,A 会先发一个 ARP 广播请求报文请求目标 MAC 地址,接收到的请求的主机发现请求不是发给它,将无视该请求;接收到请求的主机发现请求是发给他的,他将回复 A 主机,告诉自身的 MAC 地址。