应用层
应用层主要是负责一些顶层协议的工作,主要包括数据封装协议,动态分配内网IP地址以及DNS域名解析。
在这一层中主要是浏览器或应用程序等组件参与了这些工作,为了保证在不同平台或不同组件中规范和标准化各项工作流程,应用层涉及了以下协议:
首先在数据封装协议中,除了HTTP协议,我们还使用到其他常用的封装协议,例如文件传输协议(FTP)、邮件接收协议(POP3协议、SMTP协议)以及终端仿真协议(TELNET)等。
除了数据的封装之外,应用层还包括了为主机动态分配IP地址的工作,该功能主要是通过DHCP协议(即动态主机配置协议)来实现路由器动态为连接主机分配内网IP,从而保证路由能正确识别连接的设备。
表示层
接着往下走则是表示层,表示层的主要功能是转换(包括图片转换)、压缩和加密数据。例如我们常用的SSL加密,就是工作在表示层的。
所以在这一层常见的协议有ASCII以及一些常见的图片协议PNG、JPEG协议。
会话层
会话层是两个应用进程之间的逻辑连接,负责创建、管理和终止会话。比较常见的是我们经常使用RPC通信。会话层还负责管理和确定传输模式。计算机可以由三种模式来传输数据:单向(Simplex)、半双工(Half-Duplex)、全双工(Full-Duplex)。
会话层涉及到的相关协议有:SSL、TLS通信安全协议以及自定义的RPC协议。
传输层
传输层提供数据传输的服务,负责确保顺序接收数据包,并保证没有数据对视或破坏。如果丢包,传输层会请求发送方重发数据包。为实现这个目标,IP网络会给每个数据报添加一个附加首部,其中包含有更多信息。
这一层上主要有两个协议。第一个是传输控制协议(Transmission Control Protocol,TCP),这是一个开销很高的协议,支持对丢失或破坏的数据进行重换,并按照发送时的顺序进行传送。第二个协议是用户数据报协议(User Datagram Protocol,UDP),它允许接收方检测被破坏的包,但不保证这些包以正确的顺序传送(或者包有可能根本未传送)。
网络层
网络层主要负责源机器与目标机器的路由和通信数据处理。网络层定义了能够标识所有端结点的逻辑地址,还定义了路由实现的方式和学习的方式,为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。即网络层的基本功能为寻址、路由、分段以及包重组。
网络层上有两个重要的协议:IP协议和ICMP协议。IP协议中有一个ARP协议,它用于将IP地址转换成MAC地址,通过MAC地址获取转发的路由,该协议属于数据链路层。而ICMP协议则是主要负责诊断和报告IP数据报在传输过程的差错。
网络层的主体是路由器,在上述过程中,已经谈到了网络层的路由。在互联网中存在着非常多的路由器,A机器访问B机器的路径不是固定一条的,而是通过路由选择,获取到路由路径。
数据链路层
既然有了网络层,为什么我们还需要数据链路层呢?我们知道,网络层负责了数据的通信处理和路由,但数据包的差错校验和流量控制没有完成,而基于数据链路层之上的物理层只负责数据的透明传输(无需关心传输设备和介质)。为了保证通信的高质量传输,我们在网络层和物理层之间引入了数据链路层,确定以太网的连接方式,例如点对点的,还是广播的,采用差错检测、差错控制和流量控制等方法,向网络层提供高质量的数据传输服务。
数据链路层的主要协议有:ARP地址解析协议、以太网(Ethernet)协议(也属于物理层)、点对点协议(Point-to-Point Protocol)、广播协议(CSMA/CD协议)以及逻辑链路控制(LLC)协议。
数据链路层不仅仅存在于计算机中,还存在与交换机、路由器等网络设备中。那么数据链路层主要完成了哪些操作呢?
1、链路管理。
2、帧同步。
3、差错控制。
4、流量控制。
物理层
物理层的主要功能是利用传输介质为通信的两端建立、管理和释放物理链接,实现比特流的透明传输,保证比特流正确的传输到对端。物理层中承载的是比特流单位是比特(bit)。
由于物理层的媒体设备种类非常之多,物理层所管理的物理协议也非常丰富和复杂,最常见的就是负责光线和同轴电缆的全双工通信标准IEEE802.3xx、蓝牙连接协议Bluetooth、WI-FI协议以及USB接口协议等。
物理层涉及的媒体设备非常丰富,常见的包括网卡,网线(包括普通网线、电话线、光纤以及同轴电缆等),集线器,中继器,调制解调器(光猫)。
小结
我们可以用一张图表来总结下ISO各个分层的功能、相关协议以及相关的软硬件设备: