第二章 网络协议TCP/IP
众所周知,TCP/IP协议是整个因特网运行的基础,是因特网的灵魂,本章首先会介绍一下OSI参考模型和TCP/IP协议,并比较它们之间的相同和不同点,然后将会着重分析研究数据包在TCP/IP网络传输过程中封装与解封的过程,这也是网络数据包捕获和分析的关键所在。
2.1 OSI七层参考模型
我们都知道,要使两台计算机进行通信,必须让它们使用同一种“语言”,通信协议就是两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的规则,精确地定义了计算机在相互通信过程中的所有细节。我们利用一个共同遵守的通信协议,从而使Internet成为一个允许连接不同类型的计算机和不同操作系统的网络。例如,协议规定了每台计算机发送报文的格式和每个字段的含义,还规定了在各种情况下计算机应该做出什么反应,以避免差错从而达到最好的通信效果。
在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型,它是一种抽象的包含七层通信协议的参考模型,其中每
一层执行某一规定的任务,每层之间都有相应的接口,除了第一层和第七层外,每一层即使用下层提供的服务,又给上层提供服务,也就是说它既是服务的享有者,又是服务的提供者。这种设计模型可以简化协议开发过程中的难度,每一层只需做好该层的工作并提供好向上的接口即可,在保证每一层实现效率的前提下,具体怎么实现要根据具体情况来确定。该模型的目的是使各种硬件在相同的层次上相互通信,表2-1表示了0SI七层参考模型
七.应用层 |
六.表示层 |
五.会话层 |
四.传输层 |
三.网络层 |
二.数据链路层 |
一.物理层 |
表2-1 OSI七层参考模型
按照OSI开放系统互连参考模型的观点,可将网络系统划分为7层结构,每一个层次上运行着不同的协议和服务,并且上下层之间互相配合,完成网络数据交换的功能。然而,OSI模型仅仅是一个参考模型,并不是实际网络中应用的模型。实际上应用最广泛的商用网络模型是TCP/IP网络参考模型,将网络划分为四层,每一个层次上运行着不同的协议和服务。
2.2 TCP/IP参考模型
TCP/IP参考模型被称作因特网分层模型、因特网参考模型(Internet Reference Model),表3-2表示了TCP/IP分层模型的四层。
TCP/IP协议被设计成四个层次,其中应用层对应于OSI模型中的应用层、会话层、表示层、传输层和网络层分别对应OSI中的相应层,网络接口层对应于0SI中的数据链路层和物理层。
TCP/IP分层模型的四个协议层分别完成以下的功能:
第一层 网络接口层:网络接口层包括用于协作IP数据在已有网络介质上传输的协议。它对实际的网络媒体进行管理,定义了将资料组成正确帧的规则和网络中传输帧的规则,定义如何使用实际网络如以太网Ethernet等来传送数据。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相对,它定义像地址解析协议(ARP-Address Resolution Protocol)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
四.应用层 | DNS、FTP、HTTP、TELNET、SMTP、USENET、FINGER、WHOIS、GOPHER、IRC、其他 |
三.传输层 | TCP UDP |
二.网络层 | ICMP IP |
一.网络接口层 | ARP/RARP 其他协议 |
表2-2 TCP/IP四层参考模型
第二层 网络层:负责提供基本的数据封包路由功能,让每一个数据包都能够到达目的主机,但不检查是否被正确接收,如网际协议IP。本层包含IP协议、RIP协议,负责数据的包装、寻址和路由。同时还包含网间控制报文协议用来提供网络诊断信息。
第三层 传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接,提供两种端到端的通信服务。其中TCP协议提供可靠的数据流传输服务,UDP协议提供不可靠的用户数据报服务。
第四层 应用层:因特网的应用层协议包括FTP(文件传输协议)、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。
2.3 TCP/IP分层模型与OSI参考模型的比较
与OSI参考模型不同,TCP/IP协议并不完全符合OSI的七层参考模型,如表2-3所示。TCP/IP参考模型更侧重于互联设备间的数据传送,更注重实用性,而不是严格的功能层次划分。OSI参考模型在解释互联网络通信原理上比较合适,TCP/IP在实用性上面比较好,因而成为了互联网络协议的市场标准。TCP/IP参考模型是在它所解释的协议出现很久以后才发展起来的,并吸取了OSI模型的经验和教训,比OSI模型更灵活,这也是TCP/IP协议之所以流行的原因。
OSI参考模型 | OSI层号 | TCP/IP参考模型 |
应用层 | 7 | 应用层 |
表示层 | 6 | |
会话层 | 5 | |
传输层 | tcpip协议pdf4 | 传输层 |
网络层 | 3 | 网络层 |
数据链路层 | 2 | 网络接口层 |
物理层 | 1 | |
表2-3 OSI参考模型与TCP/IP参考模型的比较
2.4 数据包在TCP/IP网络中的封装解封过程
数据在网络中传输时要经过封装和解封的过程,这是两个正好相反的过程,一个组包,一个解包,下面是数据包在网络中封装的过程:首先,计算机生成用户数据,数据经过应用层后,被加上应用层协议的首部,然后传递到传输层变成了传输层的数据单元,传输层把收到的大的报文分割成小的包,再给每一个包加上这一层的报文头,如TCP头或者UDP头,形成新的数据单元然后再交给网络层,网络层又在各个数据包上加上自己的IP头部,包括源IP及目的IP,以方便路由,这样就到了网络接口层,这一层给到来的数据加上链路层的头部和尾部,此处是以太网头部和尾部,最后形成比特流传输到路线上。包的封装过程如图2-1所示:
当数据到达网络另一端得计算机时,又经过相反的解包过程:首先,数据链路层接收到从另一端计算机发过来的数据帧,并由链路层的协议来读取数据帧的内容,对于以太网的数
据链路层帧其中有一个字段是标志上层协议的,此处我们假设是IP协议,链路层协议会把以太网首部和尾部都去掉,然后把数据交给上层的网络层,数据经过网络层的处理去掉IP首部后交给相应的上层协议TCP或UDP去处理,同样道理,TCP或UDP协议经过对数据的处理后去掉TCP或UDP头部,又把数据交给应用层去处理,最用还原成用户数据,这就是数据进入协议栈时的解封过程,如图2-2所示:
图2-1 数据进入协议栈时的封装过程
图2-2 数据进入协议栈时的解封过程
数据在协议栈里面的封装与解封的原理是网络数据包捕获和进行协议分析的基础。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论