TCPIP原理及实现第二章.ppt
文本预览下载声明
2.4 TCP/IP软件结构-Unix 2.4 TCP/IP软件结构-Unix 2.4 TCP/IP软件结构-Unix 2.4 TCP/IP软件结构-Unix 2.5 总结 2.3 TCP/IP软件结构-Xinu CPU调用网卡驱动将解析获得的IP数据包置入接口队列,并通过消息来通知IP协议软件实体。 接口队列的设计:两种思想 单接口队列为每个网络接口设置单独的队列,存放到达对应接口的所有数据包; 多接口队列设置一个全局队列,存放到达所有接口的数据包,实现多个接口之间的共享使用。 Xinu系统采用单接口队列。 接口层与IP协议的交互 2.3 TCP/IP软件结构-Xinu IP协议实现为一个独立的进程,不断从多个接口队列中提取IP数据包并进行处理。 IP协议软件设计内容: 从接口队列提取数据包的策略 空队列情况下的处理 协议解析的实现 与其他协议之间的交互(TCP、UDP、ICMP等) 路由表的设计、路由操作 接收数据时的协议处理流程-续 2.3 TCP/IP软件结构-Xinu IP进程与相邻层协议的交互 IP-接口 共享队列+消息 IP-UDP 过程调用 IP-TCP 进程间通信 (端口) 2.3 TCP/IP软件结构-Xinu IP进程与相邻层协议的交互 IP-接口 共享队列+消息 IP-UDP 过程调用 IP-TCP 进程间通信 (端口) 2.3 TCP/IP软件结构-Xinu IP进程与相邻层协议的交互 IP-接口 共享队列+消息 IP-UDP 过程调用 IP-TCP 进程间通信 (端口) 2.3 TCP/IP软件结构-Xinu 由于UDP协议很简单,仅仅提供端口复用和差错检测的功能,所以,UDP协议实现为过程直接被IP进程调用来处理到达的UDP数据包。 UDP协议软件设计内容: 协议的解析功能 与应用层协议实体之间的交互 接收数据时的协议处理流程-续 2.3 TCP/IP软件结构-Xinu TCP协议很复杂,包含许多控制功能,如差错控制 、流量控制、拥塞控制、连接管理等。 Xinu系统中TCP协议软件实现为三个独立的进程,分别是TCP输入进程、TCP输出进程和定时管理进程。三个进程协同工作,完成TCP协议的功能。 其中,TCP输入进程负责TCP报文段的输入处理过程。 接收数据时的协议处理流程-续 2.3 TCP/IP软件结构-Xinu 从指定端口中提取来自IP进程的输入TCP数据分段 执行输入分段的报文解析任务。 若接收窗口允许,接收无差错的报文,存放到对应的TCP输入缓冲,等待应用进程提取。 如必要,向TCP输出进程指示确认消息。 TCP输入进程 2.3 TCP/IP软件结构-Xinu 应用进程通过系统调用访问UDP的输出过程,根据用户提供数据和寻址信息封装成UDP数据包,并通过端口交付给IP进程。 应用进程通过系统调用将等待发送的数据存放到对应TCP连接的输出缓冲中,后续的数据发送过程由TCP输出进程来执行。 发送数据时的协议处理流程 2.3 TCP/IP软件结构-Xinu TCP的数据发送由TCP输出进程和定时管理进程协同完成。 TCP输出进程从相应输出缓冲中提取数据,结合连接的信息封装TCP报文分段,交付给IP进程,并创建定时事件。 TCP定时管理进程负责对所有的定时事件进行管理,及时发现超时,并通知TCP输出进程执行重传。 TCP数据发送过程 2.3 TCP/IP软件结构-Xinu 端口的作用? 2.3 TCP/IP软件结构-Xinu IP软件接收到来自上层的数据后,执行: 封装IP分组 选择路由 交付网络接口 发送数据时的协议处理流程(续) 2.3 TCP/IP软件结构-Xinu 单接口输出队列 每个网络接口设置一个独立输出队列,存放来自IP进程的等待从对应接口输出的数据包。 接口输出队列满怎么办? 2.3 TCP/IP软件结构-Xinu 网络接口层执行输出通过以下两种途径: 当接口硬件空闲时,IP协议软件直接调用接口程序,执行输出处理; 一旦本次输出完成,接口硬件触发输出中断,CPU执行中断处理,调用接口输出程序,从接口输出队列中提取数据并发送。 发送数据时的协议处理流程(续) 2.3 TCP/IP软件结构-Xinu 协议实体形式: 进程+过程(包括中断服务例程) 协议间的交互: 进程间通信(消息传递+端口+信号量) 过程调用 Xinu系统TCP/IP软件设计思想总结 内容纲要 概述 相关基础 TCP/IP软件结构-Xinu
显示全部