本文来自:可乐可乐可,更多精彩,访问:可乐可乐可的主页
若有帮助,还请一键三连
计算机网络篇 | 分层的协议架构
说到计算机网络,大家肯定也会立马反应到我们小学三年级就学过的TCP/IP协议簇。
TCP/IP协议簇为我们构建了计算机直接通信的一种模式。
我们首先看看计算机网络中的体系结构
啊啊啊...好多层,好复杂,怎么记忆啊?
作为一名光荣的理科生,就要从逻辑的角度来记忆。
这三种体系是从简到繁的关系,每一层都细化了一些东西,我们只要记住这一层是做什么的,为什么在这一层,很轻松就能记住了。
我们若访问一个网站,会经历大致这几个流程
- 根据域名获得ip (DNS协议)
- 发送一个HTTP请求给服务器,里面有我们要请求的所有数据 (HTTP协议)
- HTTP请求交给TCP进行传输,TCP会用滑动窗口等技术一段一段的发送出去 (TCP协议)
- TCP只调用了发送的函数,不关心怎么发送给目标的,这个函数出自IP协议,IP将一个数据进行分组转发,从一个路由器(ip地址)到另一个路由器(ip地址)(路由器是3级网络设备,是有ip地址的,这就是原因)。
- 从网络上的一个ip到另一个ip还是理想状态,数据链路层将这个信息封装成帧,格式化数据并调用相应的物理介质进行传输。
- 相应的物理介质传输。
每个层都负责了一个功能,只要把上面的这个流程理解了,问题就不大了。
如果上面这些还是很难理解,我们可以从发快递的角度来思考
又是你,土豪,今天的你希望把自己开腻了的特斯拉Model S卖出去,你希望使用步筷速递来帮你运输这个车(你是不会把车亲手送过去的,这样太省钱了)
那么你肯定需要这些步骤
- 通过买家的描述,找到要送到那里
- 订一个速递服务,表示自己想送一个车出去
- 安心等待
当然快递不能使用传送技能,这里不是魔法世界
作为一个正常的社会当代青年,你必然要知道快递是怎么发的啊,那么我们把完整版公布
- 通过买家的描述,找到要送到那里 (DNS)
- 订一个速递服务,表示自己想送一个车出去 (HTTP)
- 步筷速递收到了你的订单,订单里面有目标的位置,以及你的特斯拉,步筷速递会安排把你的特斯拉加入送货的队列,依次发送出去(TCP)
- 步筷速递会将货物运送到省级的中转站,中转站有很多货,这些货被分组,依次发出到另一个省的中转站,这中间会中转多次到目标的省中转站(IP)
- 步筷速递在每次省中转站之间的运输中,有卡车、飞机、自行车,步筷速递会将货物验证一下,然后放到一个集装箱中,发送到下个省中转站。(数据链路层的传输)
- 这样一层一层的交付,客户终于收到了你的特斯拉。
简要的流程就是这样了,理解了以后,我们再总结一下各层的作用。
总结一下各层的作用
1. 第五层——应用层(application layer)
- 应用层(application layer):是体系结构中的最高。直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。
- 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,DNS,POP3,SNMP,Telnet等等。
2. 第四层——运输层(transport layer)
运输层(transport layer):负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能
- 复用,就是多个应用层进程可同时使用下面运输层的服务。
- 分用,就是把收到的信息分别交付给上面应用层中相应的进程。
运输层主要使用以下两种协议:
- 传输控制协议TCP(Transmission Control Protocol):面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
- 用户数据包协议UDP(User Datagram Protocol):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
3. 第三层——网络层(network layer)
网络层(network layer)主要包括以下两个任务:
- 负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
- 选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。
协议:IP,ICMP,IGMP,ARP,RARP
4. 第二层——数据链路层(data link layer)
数据链路层(data link layer):常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。
- 在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点之间的链路上“透明”地传送帧中的数据。
- 每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。
注:”透明”是一个很重要的术语。
它表示,某一个实际存在的事物看起来却好像不存在一样。在数据链路层透明传送数据表示无论什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。 (1)在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。 (2)控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。
5. 第一层——物理层(physical layer)
- 物理层(physical layer):在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。