温馨提示
该文章距离上次更新已经过去了 1246 天,文章内容可能已经过时。
五层网络模型
五层网络模型包括:物理层、数据链路层、网络层、传输层、应用层。
应用层(数据)
应用层是直接向用户提供服务的,也就是我们能直接接触到的,例如:浏览器、计算机上的软件或者程序等,这些都是在应用层上实现的。
应用层是不用去关心数据是如何传输的,就像我们在寄快递的时候,只需要把快递交给快递员,由他们负责运输快递,我们不需要关心快递是如何被运输的。
应用层中的协议:
- HTTP协议(万维网应用)
- SMTP协议(电子邮件)
- FTP协议(文件传送)
- DNS(域名解析)
- POP3(邮件)
- Socks(安全套接字协议)
- SNMP(简单网络管理协议)
- Telnet(TCP/IP终端仿真协议)
- RIP(路由信息协议)
- TFTP(简单文件传输协议)
传输层(段)
传输层协议提供端对端的连接,也就是数据是通过何种方式来传输的。
传输层中的协议:
- TCP协议(传输控制协议):TCP协议会保证数据的正确性,也会保证数据的顺序性,也就是如果数据在中途丢失了,那么会重新发送一条数据。
- UDP协议(用户数据报协议):UDP协议会尽最大努力保证数据送到,但不一定能够送到。我们经常用Ping来测试主机之间是否联通,原理就是UDP协议,如果在中途数据丢失了,就称为丢包。
应用需要传输的数据可能会非常大,如果直接传输就不好控制,因此当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,这样即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。在 TCP 协议中,我们把每个分块称为一个 TCP 段(TCP Segment)。
网络层(包)
通过路由选择算法,为数据包选择最适当的路径。网络层就相当于这个世界,这个世界的每一栋房子都相当于一台计算机,房子中的每一个门都相当于计算的的端口,而要找到一个人的住址就需要地址和门牌号,而地址和门牌号具有一定的格式,这个格式就相当于计算机中的协议,就是网络层协议,我们在网络中通常使用IP加端口号来定位一个程序的位置,这种方式叫做IP协议,IP协议就是一种网络层协议。
网络层中的协议:
- IP协议(网络协议)
- ARP(地址解析协议)
- ICMP(互联网控制信息协议)
- IGMP(互联网组管理协议)
数据链路层(帧)
数据链路层接收来自物理层的比特流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为比特流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
数据链路层就相当于我们到一个地方,规划好路线后,先到A地再到B地再到C地,最后到达目的地的过程,数据链路层又包含两个部分或者两个子层:
- 在地图上显示的路线我们称之为逻辑链路控制子层。
- 现实中的路线,我们称之为媒体访问控制子层,也就是MAC地址。
数据链路层中的协议: - ARP(地址解析协议)
- RARP(逆向地址解析协议)
- PPP(点对点协议)
物理层(比特流)
物理层利用传输介质(网线、光纤、同轴电缆)为数据链路层提供物理连接,实现比特流的透明传输。尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。
物理层就相当于我们出行选择的工具,公交,地铁等。
物理层中的协议:
- IEEE802.3 以太网协议和物理层规范
七层网络模型(OSI七层网络模型)
七层网络模型就是将应用层一分为三,分为:应用层、表示层和会话层。
表示层(数据)
表示层是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。
会话层(数据)
会话层建立和管理应用程序之间会话。
SSL和TLS就处于应用层和传输层之间对网络连接进行加密
数据在各层之间传递的过程
在数据的传输过程中,当数据从A计算机中的某个应用到达B计算机的过程,是应用层到物理层的过程,但当数据到达B后,从B到B的应用,又是一个物理层到应用层的过程。
每层协议本质就是在外面套一层特殊格式的数据。所以在将数据送到的时候,需要将这一层层的协议拆开,然后才能得到里面的数据。
四层网络模型(TCP/IP四层网络模型)
四层网络模型包括:应用层、传输层、网间层、网络接口层。
TCP/IP四层网络模型不包含物理层和数据链路层
应用层
应用层对应于OSI七层参考模型的应用层、表达层和会话层。
传输层
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。
网间层
网间层对应于OSI七层参考模型的网络层。负责数据的包装、寻址和路由。
网络接口层
网络接口层对应OSI七层参考模型中的物理层和数据链路层,用于协作IP数据在已有网络介质上传输的协议
为什么需要对计算机网络进行分层?
在数据的传输中,虽然直接通过物理层就可以传输数据,但是物理层中有多种不同的传输介质(光纤、同轴电缆等)、设备和通信协议,不同的传输介质和设备选择,必须要有对应的通信协议支持,而且这也决定了不同的选择有不同的物理层性能。就好像不同的交通工具以及在不同的道路上的速率是不一样的。这样所有人都在传输,因为传输的介质不同,传输的速率也不同,这样很难保证数据的安全性、完整性,这时就需要这些网络分层来解决这些问题。
物理层是做数据传输的(相当于交通设施),数据链路层制定了传输的规则(相当于交通规则),网络层则是把交通路线连接起来(相当于各个交通枢纽站),传输层是端对端的数据通信(相当于快递小哥把快递送到你手上),应用层则是负责提供服务