TCPIP协议的结构与运行原理_第1页
TCPIP协议的结构与运行原理_第2页
TCPIP协议的结构与运行原理_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TCP/IP 协议的结构与运行原理TCP/IP 模型很成功,其设计已经经得起多年的磨练。无奈,TCP/IP 协议 族是很繁杂的一个模型,为了全面理解它,宜采取先全局后局部的庖丁解牛式。本文从应用的角度试着去理解 TCP/IP 的全貌,配合例 子加以讲解。本文目的: 巩固自己这方面的知识,作为深入TCP/IP 协议 族的基础。本文内容:1. TCP/IP 协议 族组成从字面上理解,TCP/IP协议族只有TCP、IP协议,其实不然。其真正的名字是Internet协议族(Internet Protocol Suite) 。和大型软件一样,其分为四层:应用层、传输层、网络层、链路层。每一层的功能和目的

2、都是不一样的,每一层上服务的协议也不是有区别的。从上往下看:应用层(产生 |利用数据)协议:FTP、HTTP、SNMP(网管)、SMTP(Email)等常用协议;职责:利用应用层协议发送用户的应用数据,比如利用FTP发送文件,利用SMTP发送Email;由系统调用交给运输层处理。运输层(发送 |接收数据)协议:TCP(有连接)、UDP(无连接); 职责:负责建立连接、将数据分割发送;释放连接、数据重组或错误处理。网络层(分组 |路由 数据)协议:IP、ICMP(控制报文协议)、IGMP(组管理协议); 职责:负责数据的路由,即数据往哪个路由器发送。链路层(按位发送 |接收数据) 协议:以太网卡

3、设备驱动、令牌网卡驱动程序、 ARP、 RARP 等; 职责:负责传输校验二进制用户数据。从可靠性角度看各层区别:网络层 IP 协议是不可靠的协议, 为此, 如果其上面的层也不做任何特殊处理, 也将是不可靠的。 于是, 运输层的 TCP 协议弥补了这个空缺,提供有连接的、可校验的数据传输服务。应用层的话可对数据进行加密之类的处理,增强的是传输数据的 安全性,如 https。 链路层可对数据进行校验。从运行进程态看各层区别:应用层运行在用户程序进程中,属性用户态;其他层则在系统内核进程运行,属于核心态; 从通信方式上看各层区别:传输层是端对端的通信,也就是说,处理的是进程与进程之间的通信,如两个

4、TCP 进程;网络层是点对点的通信,也就是说,处理的是机器之间的逻辑连接。从传输数据单元上看区别:传输层上形成的是 TCP 或 UDP 报文段; 网络层形成的是 IP 数据报; 数据链路层形成的是帧 (Frame)。从寻址方式上看各层区别:网络层通过 IP 寻址;链路层通过 MAC 寻址。注解 :ICMP: 供 IP 用于发送错误报文,也可由应用层直接调用;IGMP: 用于多播 (Multicast) ,比如, UDP 可用多播 IP 地址往多个目标主机发送数据报,就是依靠它 ARP&RARP: 用户在 IP 地址与 MAC 地址互相转换。2. TCP/IP 模型基础设施IP 地址 共

5、分五类地址,分别如下:A 类:0. 0. 0. 0 55(单播 )B 类: 55(单播 )C 类: 55(单播 )D 类: 55(多播 )E 类:55(待用 )附加类: 55 (传输层 UDP 广播 )MAC 地址每个网卡的 MAC 地址世界唯一,不可变;计算机通信其实靠的是 MAC 地址,而不是 IP 地址,请看 下面注解。端口 端口在硬件里的名称为接口,跟网卡的入口

6、一样;在软件概念里,可以理解为一些数据结构数据缓冲 区。端口可分为:知名端口:00011023 (例如 FTP 20,TCP 21 ,UDP 69)临时端口:1024 5000预留端口:5000 65535假设你的应用程序需要端口,一般是从临时端口分配,只在应用程序运行时有效,故称临时端口。 传输层可将进程与端口进行绑定,当数据到来时,其知该往哪个进程缓冲区里送。注解:IP 与 MAC 的区别: IP 地址是基于网络拓扑结构的,是动态可变的。 MAC 地址是由网卡厂商定的,是 终身不可变且唯一的。假设应用层利用 MAC 地址传输数据,那么其是不灵活的 ,因为它不能变。所以,应 用层用 IP 寻

7、址。但是,硬件又必须用 MAC 才能找到机器,为此引入 ARP 及 RARP 来做两地址的查询与转换。3. TCP/IP 应用案例分析 场景:左边用户利用 FTP 客户端与右边 FTP 服务器 端进行连接上传文件。 数据将从上往下流,每到一层都会加上层头,数据以类堆栈形式 存储 ,到目标机器时,底层数据先 得,由底向上,符合堆栈先进后出的特性。步骤 1:应用层准备好数据文件,调用 Windows API 通知传输层 TCP 建立连接,传输层加入 TCP 包头,其中包含标识应用层协议的标识符 端口 21。步骤 2:网络层接收了传输层的 TCP 包,由于 IP 协议可接收 ICMP(1) 、IGM

8、P(2) 、TCP(6) 、 UDP(17) 来的数据,其需要一个标识域来表明是那个协议发来的数据。此数据域将加于 IP 包头中。除此之外,还将 赋以 IP 地址。步骤 3:数据链路层接收网络层来的数据后,加之标识域表明数据是从IP、 ARP 或 RARP 来。然后,加上 MAC 地址往外发送。步骤 4:将数据由网卡送出,送的过程中, ARP 利用目标 IP 找到最近的路由器 MAC 地址,然后将包 发往它,之后由它找到一个路由器,最终将数据包送到右边机器的网卡中。步骤 5 :根据包头的标识域可知这是一个 IP 数据包,利用 IP 协议拆包。步骤 6:根据包头的标识域可知这是一个 TCP 包,利用 TCP 协议拆包。步骤 7:根据包头的端口号,将数据直接送入应用层的对应缓冲区中,应用程序负责解析数据包, 相应的业务逻辑处理。注解:RFC 1600RF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论