「物理层」
首先解决两台物理机之间的通信需求,具体就是机器A往机器B发送比特流,机器B能收到比特流。
物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率。
主要作用是传输比特流(0101二进制数据),将比特流转化为电流强弱传输,到达目的后再转化为比特流,即常说的数模转化和模数转换。
这层数据叫做比特。「网卡工作在这层」。
物理层是OSI七层模型的物理基础,没有它就谈不上数据传输了
物理层就是由实物所承载的,所以作比喻的话,公路、汽车和飞机等承载货物(数据)的交通工具,就是物理层的象征
「数据链路层」
在传输比特流的过程中,会产生错传、数据传输不完整的可能。
数据链路层定义了「如何格式化数据进行传输」,以及如何控制对物理介质的访问。通常提供错误检测和纠正,以确保数据传输的准确性。
本层将比特数据组成帧,交换机工作在这层,对帧解码,并根据帧中包含的信息把数据发送到正确的接收方。
该层负责物理层面上互连的节点之间的通信传输。例如与1个以太网相连的两个节点间的通讯。
常见的协议有 HDLC、PPP、SLIP等
数据链路层会将0、1序列划分为具有意义的数据帧传送给对端(「数据帧的生成与接收」)
「网络层」
随着网络节点的不断增加,点对点通讯需要通过多个节点,如何找到目标节点,如何选择最佳路径成为首要需求。
网络层主要功能是将网络地址转化为对应的物理地址,并决定如何将数据从发送方路由到接收方。
网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。
由于网络层处理并智能指导数据传送,路由器连接网络隔断,所以路由器属于网络层。
此层的数据称之为数据包。本层需要关注的协议TCP/IP协议中的IP协议。
网络层负责将数据传输到目标地址。目标地址可以使多个网络通过路由器连接而成的某一个地址。因此这一层主要负责「寻址和路由选择」。主要由 IP、ICMP 两个协议组成
网络层将数据从发送端的主机发送到接收端的主机,两台主机间可能会存在很多数据链路,但网络层就是负责找出一条相对顺畅的通路将数据传递过去。传输的地址使用的是IP地址。IP地址通过不断转发到更近的IP地址,最终可以到达目标地址
「传输层」
随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输,可能需要很长时间,网络在通信的过程中会中断很多次,此时为了保证传输大量文件时的准确性,需要对发送出去的数据进行切分,切割为一个一个的段落(Segement)发送,其中一个段落丢失是否重传,段落是否按顺序到达,是传输层需要考虑的问题。
传输层解决了主机间的数据传输,数据间的传输可以是不同网络,并且传输层解决了「传输质量」的问题。
传输层需要关注的协议有TCP/IP协议中的TCP协议和UDP协议。
「会话层」
自动收发包,自动寻址。
会话层作用是「负责建立和断开通信连接」,何时建立,断开连接以及保持多久的连接。常见的协议有 ADSP、RPC 等
「表示层」
Linux给WIndows发包,不同系统语法不一致,如exe不能在Linux下执行,shell不能在Windows不能直接运行。于是需要表示层。
解决「不同系统之间通信语法问题」,在表示层数据将按照网络能理解的方案进行格式化,格式化因所使用网络的不同而不同。
它主要负责数据格式的转换。具体来说,就是讲设备固有的数据格式转换为网络标准格式。常见的协议有ASCII、SSL/TLS 等
「应用层」
规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,消息头中必须记录消息体的长度等信息,方便接收方正确解析发送方发送的数据。
应用层旨在更「方便应用从网络中接收的数据」,重点关注TCP/IP协议中的HTTP协议
四层传输层数据被称作「段」(Segments);
三层网络层数据被称做「包」(Packages);
二层数据链路层时数据被称为「帧」(Frames);
一层物理层时数据被称为「比特流」(Bits)。
TCP和IP模型OSI模型注重通信协议必要的功能;TCP/IP更强调在计算机上实现协议应该开发哪种程序
「TCP/IP划分了四层网络模型」
- 第一层:应用层,主要有负责web浏览器的HTTP协议, 文件传输的FTP协议,负责电子邮件的SMTP协议,负责域名系统的DNS等
- 第二层:传输层,主要是有「可靠传输」的TCP协议,特别「高效」的UDP协议。主要负责传输应用层的数据包。
- 第三层:网络层,主要是IP协议。主要负责寻址(找到目标设备的位置)
- 第四层:数据链路层,主要是负责转换数字信号和物理二进制信号。
「四层网络协议的作用」
- 发送端是由上至下,把上层来的数据在头部加上各层协议的数据(部首)再下发给下层。
- 接受端则由下而上,把从下层接受到的数据进行解密和去掉头部的部首后再发送给上层。
- 层层加密和解密后,应用层最终拿到了需要的数据。
「举个例子:」
我们需要发送一个「index.html」。
两台电脑在应用层都使用HTTP协议(即都使用浏览器)。
在传输层,TCP协议会将HTTP协议发送的数据看作一个数据包,并在这个数据包前面加上TCP包的一部分信息(部首)
在网络层,IP协议会将TCP协议要发送的数据看作一个数据包,同样的在这个数据包前端加上IP协议的部首
在数据链路层,对应的协议也会在IP数据包前端加上以太网的部首。
源设备和目标设备通过网线连接,就可以通过物理层的二进制传输数据。
数据链路层,会使用对应的协议找到物理层的二进制数据,解码得到以太网的部首信息和对应的IP数据包,再将IP数据包传给上层的网络层。
数据链路层>网络层>传输层>应用层,一层层的解码,最后就可以在浏览器中得到目标设备传送过来的「index.html」。
「TCP/IP协议族」
从字面意义上来讲,TCP/IP是指「传输层」的TCP协议和「网络层」的IP协议。
实际上,TCP/IP只是利用 IP 进行通信时所必须用到的协议群的统称。
具体来说,在网络层是IP/ICMP协议、在传输层是TCP/UDP协议、在应用层是SMTP、FTP、以及 HTTP 等。他们都属于 TCP/IP 协议。