网络模型
网络模型是很基础但是很重要的网络基础知识.现在常说的都是 OSI 七层模型和 TCP/IP 四层模型和五层协议模型.
计算机网络为什么要分层呢?
因为计算机网络是一个复杂的程序,需要对复杂的程序进行分层管理,一层解决一类事情。分层有很多好处:
- 各层之间是独立的,某一层并不需要知道它的下一层或上一层是如何实现的,仅仅需要知道该层通过层间的接口所提供的服务。将复杂的系统拆分成一个一个小的系统,使得整个问题的复杂程度就降低了;
- 灵活性好, 某一层的内部发生了变化,只要它提供的接口是不变的,就不会影响上层或者下层的使用;
- 能促进标准化工作
分层是一个逻辑概念,在做架构设计时,有句话叫没有什么问题是多加一层解决不了的。计算机网络的分层也是程序逻辑上的抽象
计算机网络分层思想
为了减少计算机网络设计的复杂性,大多数网络都按层(Layer)
或 在级 (Level)
的方式来组织,每一层都建立在它的下层之上。在所有的网络中,每一层的目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上层加以屏蔽。
OSI 七层模型
一般叫做OSI(Open System Interconnection) 模型或者叫七层模型.他是国际标准化(ISO)定的一个用于计算机或通信系统间互联的标准体系.协议将计算机网络体系结构划分为 7 层.
每一层实现各自的功能和协议,并完成与相邻层的接口通信.每一层提供的服务就是该层及其以下层的协作完成的.
层级 | OSI/RM 模型 | 功能 | 协议 |
---|---|---|---|
7 | 应用层(Application Layer) | 应用层是 OSI 标准模型的最顶层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。包括文件传输、电子邮件远程登录和远端接口调用等协议。 | HTTP、FTP、SMTP、POP3 |
6 | 表示层(Presentation Layer) | 表示层向上对应用进程服务,向下接收会话层提供的服务,表示层位于 OSI 标准模型的第六层,表示层的主要作用就是将设备的固有数据格式转换为网络标准传输格式。 | HTML、MIME |
5 | 会话层(Session Layer) | 会话层位于 OSI 标准模型的第五层,它是建立在传输层之上,利用传输层提供的服务建立和维持会话。 | |
4 | 传输层(Transport Layer) | 传输层位于 OSI 标准模型的第四层,它在整个 OSI 标准模型中起到了至关重要的作用。传输层涉及到两个节点之间的数据传输,向上层提供可靠的数据传输服务。传输层的服务一般要经历传输连接建立阶段,数据传输阶段,传输连接释放阶段 3 个阶段才算完成一个完整的服务过程。 | TCP、UDP |
3 | 网络层(Network Layer) | 网络层位于 OSI 标准模型的第三层,它位于传输层和数据链路层的中间,将数据设法从源端经过若干个中间节点传送到另一端,从而向运输层提供最基本的端到端的数据传送服务。 | |
2 | 数据链路层(Data Link Layer) | 数据链路层位于物理层和网络层中间,数据链路层定义了在单个链路上如何传输数据。 | |
1 | 物理层(Physical Layer) | 物理层是 OSI 标准模型中最低的一层,物理层是整个 OSI 协议的基础,就如同房屋的地基一样,物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。 |
TCP/IP 四层模型
层级 | TCP/IP 模型 | 功能 | 协议 |
---|---|---|---|
4 | 应用层(Application Layer) | 包含OSI的会话层、表示层和应用层,提供了一些常用的协议规范,比如FTP、SMPT、HTTP、DNS等。 | |
3 | 传输层 (Transport Layer) | 为两台主机设备提供端到端的通信。TCP、UDP | |
2 | 网络层 (Network Layer) | 负责处理IP数据包的传输、路由,建立主机间的通信。 | IP 是 互联网协议(Internet Protocol) |
1 | 网络接口层 | 包含了OSI模型的物理层和数据链路层 |
五层协议模型
层级 | 五层协议模型 | 功能 | 协议 |
---|---|---|---|
5 | 应用层 (Application Layer) | 任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。 | HTTP 协议、FTP 协议、DNS 协议、WebScoket协议 |
4 | 传输层 (Transport Layer) | 主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。 | 传输控制协议 TCP 、用户数据协议 UDP |
3 | 网络层 (Network Layer) | 负责寻址和路由功能,将数据包发送到特定的计算机 负责为分组交换网上的不同主机提供通信服务。 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称 数据报。 | IP协议 |
2 | 数据链路层 (Data Link Layer) | 负责将二进制数据包和网络信号相互转换 两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。 在两个相邻节点之间传送数据时 ,数据链路层将网络层交下来的 IP 数据报组装程帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等) | |
1 | 物理层 (Physical Layer) | 实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。 使其上面的数据链路层不必考虑网络的具体传输介质是什么。 | 接收器、发送器、中继器、光纤电缆 |
三种模型对比
TCP/IP 协议簇中都有哪些具体的协议
IP 协议
IP
是 互联网协议(Internet Protocol
) ,位于网络层。IP
是整个 TCP/IP
协议族的核心,也是构成互联网的基础。IP
能够为运输层提供数据分发,同时也能够组装数据供运输层使用。它将多个单个网络连接成为一个互联网,这样能够提高网络的可扩展性,实现大规模的网络互联。二是分割顶层网络和底层网络之间的耦合关系。
ICMP 协议
ICMP
协议是 Internet Control Message Protocol
, ICMP
协议主要用于在 IP
主机、路由器之间传递控制消息。ICMP
属于网络层的协议,当遇到 IP
无法访问目标、IP
路由器无法按照当前传输速率转发数据包时,会自动发送 ICMP
消息,从这个角度来说,ICMP
协议可以看作是 错误侦测与回报机制,让我们检查网络状况、也能够确保连线的准确性。
ARP 协议
ARP
协议是 地址解析协议,即 Address Resolution Protocol
,它能够根据 IP
地址获取物理地址。主机发送信息时会将包含目标 IP
的 ARP
请求广播到局域网络上的所有主机,并接受返回消息,以此来确定物理地址。收到消息后的物理地址和 IP
地址会在 ARP
中缓存一段时间,下次查询的时候直接从 ARP
中查询即可。
TCP 协议
TCP
就是 传输控制协议,也就是 Transmission Control Protocol
,它是一种面向连接的、可靠的、基于字节流的传输协议,TCP
协议位于传输层,TCP
协议是 TCP/IP
协议簇中的核心协议,它最大的特点就是提供可靠的数据交付。
TCP
的主要特点有 慢启动、拥塞控制、快速重传、可恢复。