ISO指定协议分层
- 应用层
在应用层的通信协议,例如,http,如果使用http协议,必须加上http或者https在浏览器里,服务器才能响应数据返回到客户端,然后根据服务端回传的压缩格式(content-encoding
)、内容(Content-Type
),浏览器在对其解压,然后以内容方式进行解析、展示给用户 - 表示层
代表数据接收后应该以何种方式解析,例如,上面的Content-Type:text/html; charset=utf-8
,代表我拿到这个加压的数据之后,我需要以html的方式对其进行解析,再例如,content-type: application/javascript; charset=utf-8
代表我要客户端以javascript解析 - 会话层
代表客户端和连接层的可靠传输,在上面的例子来说,如果是https,它需要先建立SSH的可靠连接,这里SSH就是会话层协议,用于建立安全可靠的连接 - 传输层
负责数据的可靠传输,在上面的例子中,使用的是tcp连接,他保证了数据可靠的传输到目的地,在这一层的数据被加上TCP/UDP的头部,称之为,Segment(段) - 网络层
负责寻址,也就是找到到达目的地的路径,在上面的例子中,使用的是IP协议,通过路由寻址找到正确的路径传输,在这一层的数据会被加上ip头部,被称之为包 - 数据链路层
数据链路层负责互联设备之间传输的单位,也就是网卡(交换机)的传输,被加上了MAC地址,这里的数据被称之为帧 - 物理层
最底层的数据传输,以比特传输,不论什么数据,在硬件中只支持01传输
现实中网络构成
- 电脑
负责执行各种应用层协议,例如,浏览器访问百度网站,即执行了http协议 - 网卡
属于链路层,在浏览器和服务器简历了可靠连接后,通过一层层加头,最后到了网卡,网卡记录了MAC地址,也就是和它直连的物理地址,他将数据传输到交换机 - 交换机
交换机负责接收直连过来的设备,可以多台局域网电脑共同连接这个交换机,再由交换机把数据交给直连的路由器 - 路由器
路由器接收到数据以后,根据ip头里的源和目的地地址,查看它的路由配置表,传输给下一个路由器 - 最后到服务器解析数据
TCP/IP协议分层
ISO中分层太多,实际封层根据以下,如果按七层,每一层可能都需要加一个专门的设备或者协议去实现该层的逻辑,比较麻烦
- 应用层
负责应用所有的功能,包含了OSI的应用层、表现层、连接层,现在由物理层 - 传输层
负责可靠传输,还是TCP/UDP - 网络层
负责寻址,找到目的地 - 物理层
负责真正传输01数据