计算机的体系结构包括三种:OSI的七层协议,TCP/IP的四层协议,五层协议。
?五层协议的体系结构知识为了介绍网络原理而设计的,实际应用还是采用TCP/IP四层体系结构。本文将要讲述的是五层协议的体系结构,越下面的层越靠近硬件,越上面的层越靠近用户。每一层都是为了完成一种功能,为了实现这些功能,就需要大家都遵守共同的规则--协议(protocol)。
下面从下而上的介绍各层的含义及主要功能:
1、物理层
任务:物理层的任务就是透明地传送比特流。
它就是把电脑连接起来的物理手段,比如光缆、电缆、双绞线、无线电波等方式。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。
2、数据链路层
任务:数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。
数据链路层使用的信道有两种类型:点对点(PPP)信道+广播信道。数据链路层协议有许多,三个基本问题是共同的:封装成帧、透明传输、差错检测。
- 以太网协议:以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。"标头"的长度,固定为18字节。"数据"的长度,最短为46字节,最长为1500字节。因此,整个"帧"最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。以太网采用的协议是:具有冲突检测的载波监听多点接入(CSMA/CD)。协议的要点是:发送前先监听,边发送边监听,一旦发现总线出现了碰撞,就立即停止发送。
- MAC地址:以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
- 广播:以太网采用了一种很"原始"的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的"标头",找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做"广播"(broadcasting)。
有了数据包的定义、网卡的MAC地址、广播的发送方式,"数据链路层"就可以在多台计算机之间传送数据了。
3、网络层
任务:网络层的任务就是要选择合适的路由,在发送数据时, 网络层把运输层产生的报文段或者用户数据报封装成分组或包进行交付给目的站的运输层。
"网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。
- IP协议:规定网络地址的协议,叫做IP协议,它所定义的地址,称为IP地址。网络地址由32个二进制位组成。根据IP地址来判断两台计算机是否属于同一个子网络,采用的是“子网掩码”,将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。一个IP地址在整个因特网范围内是唯一的,分类的IP地址包括A类(1~126)、B类(128~191)、C类(192~223单播地址)、D类(多播地址)。
- ARP协议:如果两台主机不在同一个子网络,那么将数据包传送到两个子网络连接处的网关,否则使用ARP协议来得到对方的MAC地址。ARP协议只适用于IPV4,不能用于IPV6,IPV6用ICMPV6发送邻居搜索消息。
4、运输层
任务:运输层的任务是负责向两个主机中的进程之间的通信提供可靠的端到端服务,应用层利用该服务传送应用层报文。
- UDP协议:提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。对实时应用很有用,如QQ聊天、在线视频、网络语音电话、直播、实时视频会议等。
- TCP协议:提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段。传输有三个连接:连接建立、数据传送、连接释放。TCP连接建立采用三次握手机制,连接释放采用四次握手机制。效率比UDP低,一般用于:文件传输、接受邮件、远程登录等
5、应用层
任务:应用层的任务是通过应用进程间的交互来完成特定网络应用。
应用层是体系结构中的最高层,应用层协议定义的是应用进程间通信和交互的规则。应用层的作用,就是规定应用程序的数据格式。对于不同的网络应用需要不有不同的应用层协议。在互联网的应用层协议很多,如域名DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。我们把应用层的数据单元称为报文。
|