TCP/IP协议分层
![]()
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如 TCP/IP,是一组不同层次上的多个协议的组合。 TCP/IP通常被认为是一个四层协议系统。
(1) 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。
(2) 网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括 IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。
(3) 运输层主要为两台主机上的应用程序提供端到端的通信。在 TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。
(4) 应用层负责处理特定的应用程序细节。
• Telnet 远程登录
• FTP 文件传输协议
• SMTP 简单邮件传送协议
• SNMP 简单网络管理协议
我们可以划分出端系统(两边的两台主机)和中间系统(中间的路由器)。应用层和运输层使用端到端协议。在图中,只有端系统需要这两层协议。但是,网络层提供的却是逐跳协议,两个端系统和每个中间系统都要使用它。
![]()
连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个局域网组合在一起,这样对上层来说就好像是一个局域网。
OSI(Open System Interconnect),即开放式系统互连。 一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型。
![]()
物理层
物理层是参考模型中的最底层,规范传输介质的标准(网线、光纤),用于设备间的连接、数据的传输,主要定义了系统的电气、机械、过程和功能标准。如:电压、物理数据速率、最大传输距离、物理联接器和其他的类似特性。物理层的主要功能是利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作。物理层传输的基本单位是比特流,即0和1,也就是最基本的电信号或光信号,是最基本的物理传输特征。物理层定义了通信网络之间物理链路的电气特性或机械特性,主要负责比特流和电压、光线等传输方式之间建立互换模式,并且依据比特流进行实时性传输,其中比特流记为0或1。
数据链路层
数据链路层是在通信实体间建立数据链路联接,传输的基本单位为“帧”,并为网络层提供差错控制和流量控制服务,提供链路上的地址的信息(mac地址)。数据链路层由MAC(介质访问控制子层)和LLC(逻辑链路控制子层)组成。介质访问控制子层的主要任务是规定如何在物理线路上传输帧。逻辑链路控制子层对在同一条网络链路上的设备之间的通信进行管理。数据链路控制子层主要负责逻辑上识别不同协议类型,并对其进行封装。也就是说数据链路控制子层会接受网络协议数据、分组的数据报并且添加更多的控制信息,从而把这个分组传送到它的目标设备。无法实现纠错、无法从全局的角度分析地址信息。
网络层
网络层从全局定位某一台设备(IP地址),进行路由功能。主要为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能。网络层是以路由器为最高节点俯瞰网络的关键层,它负责把分组从源网络传输到目标网络的路由选择工作。互联网是由多个网络组成在一起的一个集合,正是借助了网络层的路由路径选择功能,才能使得多个网络之间的连接得以畅通,信息得以共享。网络层提供的服务有面向连接和面向无连接的服务两种。面向连接的服务是可靠的连接服务,是数据在交换之前必须先建立连接,然后传输数据,结束后终止之前建立连接的服务。网络层以虚电路服务的方式实现面向连接的服务。面向无连接的服务是一种不可靠的服务,不能防止报文的丢失、重发或失序。面向无连接的服务优点在于其服务方式灵活方便,并且非常迅速。网络层以数据报服务的方式实现面向无连接的服务。无法实现纠错,无法实现一个设备上不同应用的区分。
传输层
传输层是网络体系结构中高低层之间衔接的一个接口层,实现了一个设备上不同应用的区分。传输层不仅仅是一个单独的结构层,而是整个分析体系协议的核心。传输层主要为用户提供End—to—End(端到端)服务,处理数据包错误、数据包次序等传输问题。传输层是计算机通信体系结构中关键一层,它向高层屏蔽了下层数据的通信细节,使用户完全不用考虑物理层、数据链路层和网络层工作的详细情况。传输层使用网络层提供的网络联接服务,依据系统需求可以选择数据传输时使用面向联接的服务或是面向无联接的服务。TCP可以纠错、而UDP无法纠错。
会话层
会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层在应用进程中建立、管理和终止会话。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。会话层通过自身协议对请求与应答进行协调。会话层主要是管理不同主机上不同进程的通信内容,打造更加完整的协调机制,从而确保用户之间无论是建立对话还是释放会话连接,都能最大程度保证数据交换的及时性和规范性。
表示层
表示层为在应用过程之间传送的信息提供表示方法的服务。表示层以下各层主要完成的是从源端到目的端可靠地的数据传送,而表示层更关心的是所传送数据的语法和语义。表示层的主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化、数据加密与解密、数据压缩与解压等。在网络带宽一定的前提下数据压缩的越小其传输速率就越快,所以表示层的数据压缩与解压被视为掌握网络传输速率的关键因素。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理。
应用层
应用层是OSI模型中的最高层,是直接面向用户的一层,用户的通信内容要由应用进程解决,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,并且保证这些不同类型的应用所采用的低层通信协议是一致的。应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的程序服务。需要注意的是应用层并不是应用程序,而是为应用程序提供服务。
数据封装过程
TCP的分层
![]()
互联网的地址
互联网上的每个接口必须有一个唯一的 Internet地址(也称作IP地址)。IP地址长32 bit。
Internet地址并不采用平面形式的地址空间,如 1、2、3等。IP地址具有一定的结构,五类不同的互联网地址格式如下图所示。
![]()
![]()
有三类IP地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)。
域名系统
尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名。在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
封装
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段。IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比特流称作帧。
![]()
Data数据(应用层)->段Segment(传输层)->包packet(网络层)->帧Frame(数据链路层)->位Bit(物理层)
数据传输的形式
1、电路交换
2、报文交换
在数据之外,加上能够标识接收者以及发送者的信息
3、分组交换
依然进行报文交换,不过将每个数据的大小进行定义
传输介质
1、实现设备的连接
2、实现数据的传输
介质-同轴电缆
| 以太网标准 |
电缆类别 |
最长有效传输距离 |
| 10BASES5 |
粗同轴电缆 |
500米 |
| 10BASES2 |
细同轴电缆 |
185米 |
分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用。
![]()
RFC提供的标准的简单服务
有一些标准的简单服务几乎每种实现都要提供。客户程序通常选择Telnet服务。从该图可以看出,当使用TCP和UDP提供相同的服务时,一般选择相同的端口号。