一、OSI七层模型与TCP/IP五层模型
目前公认的计算机通信和因特网网络通信基本结构模型为OSI七层模型,OSI(Open
System Interconnect)开放式系统互联通信模型,它是由ISO(国际化标准组织)提出的标准模型。OSI将网络通信分为七层,分别为:物理层,数据链路层,网络层,传输层,会话层,表现层,应用层。首先我们要明白OSI模型它只是一个标准,并不是一种实现,目前实现的TCP/IP五层模型是OSI的一种实现,五层模型将会话层,表现层和应用层简化为应用层,这就是五层模型的由来。
数据从应用层开始传输,经过每一层会相应地封装相应的信息到报头,数据接收的时候会相应地解封装。
每一层的不同主要在于协议的不同,例如对于物理层网线光纤的规格就是它的协议,提供最基本的数据传输介质。我们常见的就是应用层,如HTTP服务,SMTP服务等,以及它们对于的协议。传输层提供TCP和UDP服务,网络层提供IP寻址服务。
下面我们简要地介绍一下各层的内容和作用。
二、物理层(Physical Layer)
提供数据的传输介质,例如网线,双绞线等,还包括网线接口,首先在线缆上会有相应的规格,例如1000BASE-SX,表示1000兆,基带传输,SX表现光纤介质。接口上有水晶头接口,如RJ-45接头。对于双绞线也有不同的规格,如568A和568B,还有线序的区别,对于光纤又可分为单模光纤和多模光纤。
以上的各种参数都是一种物理设备的规范,换而言之,它们就是一种协议,因为我们需要清楚,了解每一层的内容就是了解它们的协议。
三、数据链路层(Data Link Layer)
用于将物理层的比特流数据封装成数据帧,数据帧包括帧首部和尾部,以及帧的数据部分。链路层主要分为两层:LLC(逻辑链路层)和MAC(媒体介入控制),可以使用MAC寻址,MAC它是设备的唯一物理地址,由分号和十六进制表示,一共有48位,如00:00:0e:04:3c:07。
四、网络层(Network Layer)
物理层提供的服务比较多,例如IP编址,IP协议面向非连接,不用预先检测连接条件,相反的是TCP协议需要预先检测连接。IPv4为32位,IPv6为128位,使用点 十进制表示,如192.168.1.1,由网络部分和主机部分组成。A类地址网络部分8位,B类地址网络主机均16位,C类地址网络部分24位,网络部分用于网络通信,用于区分不同的网段,主机部分用于广播通信。
IP协议的报头定义了版本,数据包大小、长度,数据包标识、分片偏移,上层协议,源和目标IP地址等。
另外网络层还有动态主机配置协议DHCP协议,ARP协议保留了一张IP地址到MAC地址映射的ARP表,还有ICMP协议,ping使用的就是ICMP协议。
五、传输层(Transport Layer)
传输层提供端对端的传输,保证传输的可靠性,提供多路复用,在这一层的协议主要有TCP协议,TCP报头包括源和目标端口,状态标识等,另外还有流控机制,窗口大小,TCP连接需要进行三次握手四次分手,另外还有UDP协议,UDP协议和IP协议类似,面向非连接,不保证可靠连接,主要提供更快的传输。
六、应用层(Application Layer)
在这一层的服务都是比较具体的了,提供的服务比较多,如HTTP服务,邮箱SMTP服务,DNS查询服务等,以及它们提供的协议,主要是为应用程序提供服务,我们也可以开发自己的服务和协议。例如socket是基于TCP/IP的封装,本身并不一种协议,提供统一的调用接口,我们可以使用socket的API自定义自己的协议,与此相关的还有各种即时通讯协议。
如下图,TCP/IP五层模型的数据传输过程,经过各层封装相应的报头,接收后再进行解封装。