计算机五层体系结构
一、计算机五层体系结构
我们一般说的五层体系结构就是上图中的C,结合互联网的情况,自上而下地,简要的介绍一下各层的作用。
1、应用层
应用层(application-layer)
的任务是通过应用进程间的交互来完成特定网络应用。
在互联网中应用层协议很多,如
域名系统DNS
,支持万维网应用的
HTTP协议
,支持电子邮件的
SMTP协议
等等。我们把应用层交互的数据单元称为报文。
1.域名系统
域名系统(Domain Name System缩写 DNS
,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
2.HTTP协议
**超文本传输协议(HTTP,HyperText Transfer Protocol)**是互联网上应用最为广泛的一种网络协议。所有的 WWW(万维网) 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。
2、运输层
**运输层(transport layer)**的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
运输层主要使用以下两种协议:
- 传输控制协议 TCP(Transmisson Control Protocol)–提供面向连接的,可靠的数据传输服务。
- 用户数据协议 UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。
1.UDP 的主要特点
- UDP 是无连接的(速度更快);
-
UDP 使用尽最大努力交付,即
不保证可靠交付
,因此主机不需要维持复杂的链接状态(这里面有许多参数); - UDP 是面向报文的;
- UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 直播,实时视频会议等);
- UDP 支持一对一、一对多、多对一和多对多的交互通信;
- UDP 的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
2.TCP 的主要特点
- TCP 是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);
- 每一条 TCP 连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);
-
TCP 提供可靠交付的服务。通过TCP连接传送的数据,
无差错、不丢失、不重复、并且按序到达
; - TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
- 面向字节流。TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。
- TCP有拥塞控制。
3.TCP 三次握手和四次挥手(面试常客)
三次握手:
为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。
-
客户端–发送带有 SYN 标志的数据包–一次握手–服务端。
(Client 什么都不能确认;Server 确认了对方发送正常)
-
服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端。
(Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己接收正常,对方发送正常)
-
客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端。
(Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送接收正常)
所以三次握手就能确认双发收发功能都正常,缺一不可。
**为什么要穿SYN和ACK:**双方通信无误必须是两者互相发送信息都无误。
- SYN:接收端传回发送端所发送的 SYN 是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。
- ACK:同理,接收方到发送方的通道还需要 ACK 信号来进行验证。
————————————————————————————————分割线
四次挥手:
- 客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送
- 服务器-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号
- 服务器-关闭与客户端的连接,发送一个FIN给客户端
- 客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1
为什么要四次挥手:
任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。
————————————————————————————————分割线
TCP 协议如何保证可靠传输:
- 应用数据被分割成 TCP 认为最适合发送的数据块。
- TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
-
校验和
: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。 - TCP 的接收端会丢弃重复的数据。
-
流量控制
: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制) -
拥塞控制
: 当网络拥塞时,减少数据的发送。 -
停止等待协议
: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。 -
超时重传
: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
拥塞控制:
TCP的拥塞控制采用了四种算法,即 慢开始 、 拥塞避免 、快重传 和 快恢复。在网络层也可以使路由器采用适当的分组丢弃策略(如主动队列管理 AQM),以减少网络拥塞的发生。
3、网络层
在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。
在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称 数据报。
互联网使用的网络层协议是无连接的
网际协议(Intert Prococol)
和许多
路由选择协议
,因此互联网的网络层也叫做网际层或IP层。
4、数据链路层
数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。 在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装程帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
5、物理层
在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。
6、在浏览器中输入url地址 ->> 显示主页的过程(面试常客)
到第五步,就开始涉及到了浏览器的渲染知识点,在后面博主会讲解,欢迎读者继续阅读。
本篇文章备份内容转自知乎文章
计算机网络基础知识 – 五层协议的体系结构
,详细只是可翻阅原文