一步一步学Linux C:网络编程之通信机制和体系结构模式
提到Linux 操作系统,就不能不提到网络技术。Linux 系统本身就是一个网络的产物,它在网络上可以供人们自由下载,并得到修改和完善。。Linux 系统支持多种网络协议,它的shell 还提供了强大的联网命令。这些优点使得Linux 为许多中小型的网络应用提供了完全的解决方案.
提到计算机网络,就不得不先介绍一下它的通信机制和体系结构模式。
1.通信模式
所有的网络通信的实现方式可以分为两种:线路交换和包交换。
所谓线路交换,就是指传输时在发送端和接收端之间建立一个特定的线路连接,数据就可以在这条线路上传输。最常用的电话就是采用这种线路交换的技术。但是计算机网络采用的是包交换的方法。所有的计算机使用一个共同的网络连接,数据的发送端将要传输的数据分割成块,而每个块经过适当的处理(数据封装)后形成一个数据包,包中有接收端的地址等必要信息,并且每个包单独传输。包中的数据并不是限定死的,只要保证数据的正确传输即可,具体应该定义哪些信息,则与所使用的协议有关。
2.OSI 标准
OSI 标准就是开放系统互联标准(Open System Interconnection),它是国际标准化组织在1977 提出的一种参考模式。它定义的是一种七层通信协议标准。具体分层结构和功能如下(从高到低):
(1)应用层
应用层是网络的最高层,也就是最接近用户的一层。应用层里包含了构筑在各种通信协议上的网络应用软件,可以实现与用户直接交互的功能。例如电子邮件和文件传输程序等。
(2)表示层
表示层完成被传输数据的表示和解释工作,它包含数据转换和数据加密以及数据压缩等。它的主要功能为:为用户提供执行会话层服务原语的手段;提供描述复杂数据结构的方法;管理当前所需的数据结构集;完成数据的内部格式与外部格式间的转换。
(3)会话层
会话层使用运输层协议提供的可靠的端到端通信服务,并增加一些用户所需要的附加功能和建立不同机器上的用户之间的数据交换。
(4)传输层
它是OSI 网络体系结构中最核心的一层,它把实际使用的通信子网与高层应用分开,提供发送端和接收端之间的高可靠低成本的数据传输。TCP 和UDP 协议都属于这一层。
(5)网络层
网络层主要对主机和网络之间的交互进行定义,它又被称为通信子网层,定义了在网络中传输的基本数据单元以及目的寻址和选路的概念。IP 协议属于这一层。
(6)数据链接层
数据链接层对下层传来的数据进行打包封装,将上层的数据分割成帧,它还完成流量控制和差错处理的工作。
(7)物理层
物理层是OSI 的最底层,它规定传输媒体本身及与其相关联的机械和电气接口。这些接口和传输媒体必须保证发送和接受信号的一致性。
TCP/IP 协议
TCP/IP 协议是一组在网络中提供可靠数据传输和无连接数据服务的协议。其中提供可靠数据传输的协议称为传输控制协议TCP,而提供无连接数据包服务的协议叫做网际协议IP。但是TCP/IP 协议并不是只有TCP 和IP 两个协议,而是包含很多其他协议的一个网络协议的集合。
TCP/IP 协议于1983年开始在ARPA网上运行,并于当年插入BSDUNIX 操作系统的内核,成为该操作系统的一部分。随后TCP/IP 协议随着UNIX 操作系统的普及而广泛流行,逐渐成为使用最广泛的协议。使用TCP/IP 协议的网络提供的主要服务有:电子邮件、文件传送、远程登录、网络文件系统、电视会议系统以及Mwsaic 和万维网等。