OSI模型与 TCP/IP模型
(1)网络协议的定义和作用。
(2)网络分层(功能分层,协议分层)的理念。
(3)OSI模型与TCP/IP模型的异同点。
1.2.1网络协议和标准机构
从网络通信的角度来看,这些各种各样的自然语言就相当于是网络通信中所使用的各种各样的通信协议。
什么是通信协议
就是指诸如计算机、交换机、路由器等网络设备为了实现通信而必须遵从的、事先定义好的一系列规则和约定。
经常提到网络通信协议:
HTTP(Hyper text Transfer Protocol)、
FTP(FileTransferProtocol)、
TCP(Transmission ControlProtocol)、
IPv4、
IEEE802.3(以太网协议)
注意:在网络通信领域中,“协议”、“标准”、“规范”、“技术”等这些词汇是经常混用的。
譬如,IEEE8023协议、IEEE802.3标准、IEEE802.3协议规范、IEEE802.3协议标准、IEEE802.3标准协议、IEEE8023标准规范、IEEE802.3技术规范等,说的都是一回事。
协议可分为两类
[if !supportLists]1. [endif]私有协议——各网络设备厂商自己定义的
[if !supportLists]2. [endif]开放式协议(或称开放性协议,开放协议)——专门的标准机构定义的
二者的关系有点像方言与普通话的关系。
显然,为了促进网络的普遍性互联,各厂商应尽量遵从开放式协议,减少私有协议的使用。
标准机构
专门整理、研究、制定和发布开放性标准协议的组织称
表1-4列出了几个在网络通信领域非常知名的标准机构。
(International Organization for Standardization,ISO)
标准机构ISO是世界上最大的非政府性标准化专门机构,是国际标准化领域中一个十分重要的组织。ISO的任务是促进全球范围内的标准化及其有关活动,以利于国际间产品与服务的交流,以及在知识、科学、技术和经济活动中发展国际间的相互合作
(Internet Engineering Task Force,IETF)
国际标准化组织IETF是全球互联网最具权威的技术标准化组织,其主要任务是负责互联网相关技术规范的研发和制定。目前,绝大多数的互联网技术标准都是出自IETF。著名的RFC(RequestForComments)标准系列就是由IETF制定和发布的
(Institute of ElectricalandElectronics Engineers,IEEE)
互联网工程任务组电气电子工程师学会IEEE是世界上最大的专业技术组织之一。IEEE成立的目的在于为电气电子方面的科学家、工程师、制造商提供国际联络交流的场合,并为他们提供专业教育、提高专业能力服务。著名的以太网标准规范就是IEEE的杰作之一
(International Telecommunications、Union,ITU)
国际电信联盟ITU是主管信息通信技术事务的联合国机构,也简称为“国际电联”或“电联”
(Electronic IndustriesAlliance,EIA)
电子工业联盟EIA是美国电子行业标准制定者之一,常见的RS·232串口标准便是由EIA制定的
(InternationalElectrotechnicalCom-mission,IEC)国际电工技术委员会IEC主要负责有关电气工程和电子工程领域中的国际标准化工作。该组织与ISO、ITU、IEEE等有着非常紧密的合作关系
1.2.2 OSI参考模型
网络设备的各种功能是通过运行各种相应的协议而实现的。因此,与功能分层模型相对应的便是协议分层模型:
属于同一层面的不同协议,其功能作用是相似或相近的;
属于不同层面的协议,其功能作用具有明显的差异。
OSI参考模型各层功能
层编号层名主要功能
1物理层完成逻辑上的“0”和“1”向适合于传输介质承载的物理信号(光/电信号)的转换;实现物理信号的发送、接收,以及在介质上的传输过程
2数据链路层在通过物理链路相连接的相邻节点之间,建立逻辑意义上的数据链路,在数据链路上实现数据的点到点或点到多点方式的直接通信
3网络层根据数据中包含的网络层地址信息,实现数据从任何一个节点到任何另外一个节点的整个传输过程
4传输层建立、维护和取消一次端到端的数据传输过程,控制传输节奏的快慢,调整数据的排序等
5会话层在通信双方之间建立、管理和终止会话,确定双方是否应该开始进行某一方发起的通信等
6表示层进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解
7应用层向用户应用软件提供丰富的系统应用接口
[if !vml]
[endif]
1.2.3 TCP/IP协议模型
现实中的网络的设计与实现,使用的几乎全都是TCP/IP协议簇,而不是OSI协议簇。
TCP/IP模型发端于ARPAnet的设计和实现,其后被IETF不断地充实和完善。
注意:TCP/IP模型、TCP/IP功能模型、TCP/IP协议模型、TCP/IP协议簇、TCP/IP协议栈等说法在现实中是经常被混用的。
TCP/IP名字由来
来自于这个协议簇中两个非常重要的协议,一个是IP(Internet Protocol),另一个TCP(TransmissionControl Protocol)。
TCP/IP协议模型的核心协议
IP协议——是TCP/IP的心脏,也是网络层中最重要的协议。
TCP协议——有高度的可靠性,面向连接的服务(例如Telnet、FTP、rlogin、XWindows和SMTP)
UDP协议——没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
ICMP协议——ICMP与IP位于同一层,用来传送IP的控制信息。PING命令是最常用的基于ICMP的服务。
ARP协议——根据IP地址获取物理地址的一个TCP/IP协议
TCP/IP模型
这里我们所说的TCP/IP模型均是指TCP/IP对等模型。
[if !vml]
[endif]
TCP/IP模型与OSI模型的差异
TCP/IP模型与OSI模型在层次的划分上稍有差异,但这种层次划分上的差异并不是二者之间的主要差别。
TCP/IP模型与OSI模型的主要差别在于二者所使用的具体协议的不同。
TCP/IP模型与OSI模型各自所使用的部分协议
[if !vml]
[endif]
数据单元称呼
在OSI模型中
把每一层的数据单元都称为“协议数据单元(Protocol Data Unit,PDU)”。
例如,第六层的数据单元称为L6PDU,第三层的数据单元称为L3PDU,其中的L代表“层(Layer)”。
在TCP/IP模型中
物理层的数据单元——称为“比特(Bit)”;
数据链路层的数据单元——称为“帧(Frame)”;
网络层的数据单元——称为“分组或包(Packet)”。
传输层:
通过TCP封装而得到的数据单元称为“段(Segment)”——“TCP段(TCP Segment)";
通过UDP封装而得到的数据单元称为“报文(Datagram)”——“UDP报文(UDP Datagram)”。
应用层:
通过HTTP封装的数据单元——称为"HTTP报文(HTTP Datagram)",
通过FTP封装的数据单元——称为“FTP报文(FTP Datagram)”,
数据封装的例子
现在,假设我们在Internet上通过某网站找到了一首歌曲,并向相应的Web服务器请求下载这首2000字节大小的歌曲,那么,这首歌曲在被发送之前将在服务器中被逐层进行封装。
封装步骤:
[if !supportLists]1. [endif]应用层会对原始歌曲数据(Data) 添加HTTP头部,形成一个HTTP报文;
[if !supportLists]2. [endif]因为该HTTP报文太长,所以传输层会将该HTTP报文分解成两部分,并在每部分前添加TCP头部,从而形成两个TCP段:
[if !supportLists]3. [endif]网络层会对每个TCP段添加IP头部,形成IP包:
[if !supportLists]4. [endif]数据链路层(假定数据链路层使用的是以太网技术)会在IP包的前面和后面分别添加以太网帧头和帧尾,形成以太网帧(简称以太帧)
[if !supportLists]5. [endif]最后,物理层会将这些以太帧转化为比特流。