目录
前言
当给朋友写一封信时,一定会遵照一个约定俗成的信件格式去写信。例如,在开头写对收信人的称呼,接下来是问候语“你好”等,中间是信的内容,最后落款自己的姓名、日期等。那么,这个书信格式及通信采用的语言实际上就是和朋友之间的协议,只有遵照这个协议,对方才能读懂信。
写好了信,要将信装在信封中。在信封上,要书写收信人的地址和姓名等,再将信交给邮局。邮局根据收信人的目的地址,将信件再次封装成大的包裹,通过运输部门发往目的城市。运输部门会将信件的包裹送达目的地的邮局。目的地的邮局会将信件送达收信人手中。在这个寄信的例子中,一封信的传输需要经过三个层次。首先发信和收信的双方是这个过程中的最高层,位于下层的邮局和运输部门都是为了最高层之间的通信在服务。寄信人与收信人之间要有一个约定,这个协议保证收信人能读懂寄信人的信件。两地的邮局和运输部门之间也有约定,如包裹的大小、地址的书写方式、运输到站的时间等。
邮局是寄信人和收信人的下一层,为上一层提供服务,邮局为寄信人提供服务时,邮筒就是两个层之间的接口
一、数据封装过程
数据封装是在原始数据的基础上,自上而下的加入一些额外的信息的过程
1)应用层传输过程:数据被特殊的编码转化为二进制数据,这也是应用层在网络数据传输过程中最大的贡献。
2)传输层传输过程:在传输层,上层数据被分割成小段的数据段,并为每个分段后的数据 封装TCP头部。TCP有个关键的字段信息—端口号,用于表示上层的协议或应用程序,确保上层应用数据的正常通信。
3)网络层传输过程:在传输层,上层数据被封装新的报文头部—IP头部。IP头部有关键的信息—IP地址,由32位二进制数组成,用于标识网络逻辑地址
4)数据链路传输过程:在数据链路层,上层数据被封装一个MAC头部,内部有关键的信息—MAC地址,由48位二进制组成。
5)物理层传过程:将这些二进制数字组成的比特流转化为电信号在网络中传输。
二、数据解封过程
数据被封装完毕通过网络传输到接收方后,将进入数据的解封装过程,这将是封装过程的一个
逆过程。
在物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层。在数据链路层,将查看目标MAC地址,判断其是否与自己的MAC地址吻合,并据此完成后续处理。如果数据报文的目标MAC地址就是自己的MAC地址,数据的MAC头部将被“拆掉”,并将剩余的数据送至上一层;如果目标MAC地址不是自己的MAC地址,对于终端设备来说,它将会丢弃数据。在网络层与在数据链路层类似,目标IP地址将被核实是否与自己的IP地址相同,从而确定是否送至上一层;到了传输层,首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组,再送往应用层;在应用层,这些二进制数据将经历复杂的解码过程,以还原发送者所传输的原始信息。
三、数据传输的基本概念
3.1)PUD
对于OSI参考模型而言,每一层都是通过PDU(Protocol Data Unit,协议数据单元)来进行通信的;而对于TCP/IP五层结构,也可以沿用这个概念。PDU是指同层之间传递的数据单位。例如,TCP/IP五层结构体系中,上层数据被封装TCP头部后,这个单元称为段(Segment);数据段向下传到网络层,被封装IP头部后,这个单元称为包(Packet);数据包继续向下传送到达数据链路层,被封装MAC头部后,这个单元称为帧(Frame);最后帧传送到物理层,帧数据变成比特(Bits)流;比特流通过物理介质传送出去。
| 层名称 | 传输层 | 网络层 | 数据链路层 | 物理层 |
| 数据单位 | 数据段 | 数据包 | 数据帧 | 比特流 |
3.2)常见硬件设备与五层模型的对应关系
| 层名称 | 应用层 | 传输层 | 网络层 | 数据链路层 | 物理层 |
| 典型设备 | 计算机 | 防火墙 | 路由器 | 交换机 | 网卡 |
3. 3)发送方与接收方各层之间必须采用相同的协议才能建立连接,实现正常的通信。
应用层之间必须采用相同的编码、解码规则,才能保证用户信息传输的正确性:传输层之间必须采用相同的端口号与协议对应关系,才能保证上层应用进程间的通信:网络层之间必须采用相同的逻辑寻址过程才能保证数据不会传输到错误的目的地。如果数据链路层采用的协议不同,接收方甚至不能“理解”数据的内容;如果物理层的硬件接口规格不同,接收方甚至连信号都无法接收到。
总结
从这个过程我们可以看出,数据在传输过程中不断地进行着封装和解封装的过程,中间设备属于哪一层就在哪一层对数据进行相关的处理,以实现设备的主要功能。也正因如此,我们称TCP/IP五层模型为“参考”模型,参考这五层模型可以帮助我们很好地研究网络中的设备及设备工作过程中遵守的协议。
