80 likes | 215 Views
Project: Protocol Development Framework for Virtual Networking. Fred Kuhns Computer Science and Engineering Applied Research laboratory Washington University in St. Louis. Coming up with a design. What are the requirements?
E N D
Project:Protocol Development Framework for Virtual Networking Fred Kuhns Computer Science and Engineering Applied Research laboratory Washington University in St. Louis
Coming up with a design • What are the requirements? • as this is a research topic, the precise requirements can not be specified. But we can make some basic assumptions allowing us to design and implement a prototype framework. Then refine as we go. • we will also assume a general model where communicating applications may be distributed across a network or collocated on the same host. • communication medium may be a network layer like Ethernet, a local resource such as shared memory or a higher level abstraction representing any of the traditional IPC mechanisms. • Apps communication models may be object-oriented (RMI), procedure-oriented (RPC), message-oriented or stream-oriented. • For the immediate effort we will assume a message or stream oriented communication model. So we will use a traditional interface similar to sockets (but OO) permitting both connection-oriented and connectionless protocols. • Permit synchronous and asynchronous events. • Attempt to limit constraints on protocol implementations. CS422 – Operating Systems Concepts
App App App App protocol instance protocol instance First model the system reply() request() Logical Model reply() request() Communication Framework Model CS422 – Operating Systems Concepts
… … App App App App protocol instance protocol instance protocol instance … App App Then Refine Model request() reply() Sender must multiplex logical channels onto physical channels. Then demultiplex at destination and deliver to application. CS422 – Operating Systems Concepts
TxQ TxQ TxQ RxQ RxQ RxQ Closer Look: How a message “flows” Application Application Application notify when message sent recv message send message classify message returns destination attributes (qid) (rx and tx) Connection table demultiplex, determine destination application addr0, meta data addr1, meta data protocol instance addr2, meta data encapsulate message and include protocol control information … 1) receive event notification. 2) send events to apps addrN, meta data … … to app 1 to app 2 to app N from app 1 from app 2 from app N interrupts, signals, timeouts CS422 – Operating Systems Concepts
policy Classifier key/value table(s) optimized for lookup Protocol implementation “connection” state tables Event manager User X User Y User Z table mapping events to handlers policy “Network” interface provide generic interface to actual communication channel Client Server Example Server Client … get url http://www.arl.wustl.edu data object(index.htl) User Interface endpoint factory policy find ‘key’ (key, value) set handler asynchronous I/O Protocol Instance call handler interrupts Protocol Instance timer expire Interconnection Network CS422 – Operating Systems Concepts
OO Design • Decompose into simpler, loosely coupled components. Can you identify any? • User interface: Provides a consistent interface to users regardless of the protocol instance used. • Event manager: Interface between external events and internal components • Network interface: Provides a consistent interface between protocol and interconnection network. • Protocol implementation: A particular instance of a protocol, for example TCP or HTTP. • Classifier: Abstracts a generic operation performed by most protocol. Provided by framework so protocol developers do not have to implement their own. • Message and message queues: Fundamentally important abstraction but may not correspond to an actual component. • Communication channel : Fundamentally important abstraction but may not correspond to an actual component. CS422 – Operating Systems Concepts
What must you do? • Armed with this background and notes from class, do the following: • identify your first level components • for each component define the core service(s) it provides • for each component identify how it interacts with the other components, the user or the network (communication medium) • identify classes for each component that either represent the component itself or its interface to others • Turn this in next Tuesday. CS422 – Operating Systems Concepts