一、OSI协议栈分层的目的以及逐层协议功能定位概述
网络协议(protocol):管理系统之间如何相互通信的规则
公有协议(标准化组织定义) 私有协议(厂商制定)
三个概念:ISO(国际标准化组织) OSI(open system interconnection开放式系统参考模型) IOS(Internet work operating system思科操作系统)
OSI协议栈分层的目的:简化相关的网络操作;提供不同厂商之间的兼容性;促进标准化工作;结构上进行了分层
二、OSI与TCP/IP
因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。
OSI/RM与TCP/IP在封装机制上有所不同,OSI是逐层封装而TCP/IP可以跃层封装
数据封装与解封装
常用的网络术语:
术语 | 解释 |
---|---|
数据载荷 | 最终想要传递的信息 |
报文 | 网络中交换与传输的数据单元 |
头部 | 在数据载荷的前面添加的信息段 |
尾部 | 在数据载荷的后面添加的信息段 |
封装 | 对数据载荷添加头部和尾部,形成新的报文的过程 |
解封装 | 去掉报文的头部和尾部,获取数据载荷的过程 |
发送方发送数据
假设你正在通过网页浏览器访问华为官网,当你输入完网址,敲下回车后,计算机内部会发生下列事情:
1. IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装(图中DATA还应包括HTTP头部,此处省略) 。
2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。
4. 在IPv4网络中,TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理)。
5. IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。
6. 由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。
7. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS(验证数据的完整性)帧尾,此时的PDU被称为Frame(帧)。
8. 在Ethernet模块封装完毕之后,会将数据传递到物理层。
9. 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。
10. 转换完成的信号在网络中开始传递。
中间网络数据传输
封装好的完整数据,将会在网络中被传递。
网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。
接收方数据解封装
经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将被一层层的解封装并做相应的处理和传递,最终交由WEB服务器上的应用程序进行处理。