ORLEANS Networking Overview

Slides:



Advertisements
Similar presentations
Intermediate TCP/IP TCP Operation.
Advertisements

Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Netprog: TCP Details1 TCP Details Introduction to Networking John Otto TA Jan 31, 2007 Recital 4.
Precept 3 COS 461. Concurrency is Useful Multi Processor/Core Multiple Inputs Don’t wait on slow devices.
Netprog: TCP Details1 TCP Details Introduction to Networking.
1 L53 Networking (2). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
Socket Addresses. Domains Internet domains –familiar with these Unix domains –for processes communicating on the same hosts –not sure of widespread use.
Address Resolution Protocol (ARP). Mapping IP Address to Data-Link Address  How does a machine map an IP address to its Data- Link layer (hardware or.
Gursharan Singh Tatla Transport Layer 16-May
Service Broker Lesson 11. Skills Matrix Service Broker Service Broker, provides a solution to common problems with message delivery and consistency that.
University of Calgary – CPSC 441.  UDP stands for User Datagram Protocol.  A protocol for the Transport Layer in the protocol Stack.  Alternative to.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) speaker : Wenping Zhang date :
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
Introduction to Interprocess communication SE-2811 Dr. Mark L. Hornick 1.
Virtual Circuit Network. Network Layer 2 Network layer r transport segment from sending to receiving host r network layer protocols in every host, router.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.
Computer & Information Sciences University of Delaware
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
Transport Layer: TCP and UDP. Overview of TCP/IP protocols Comparing TCP and UDP TCP connection: establishment, data transfer, and termination Allocation.
Chapter 14 Connection-Oriented Networking and ATM
Chapter 2 Applications and Layered Architectures Sockets.
The Socket Interface Chapter 22. Introduction This chapter reviews one example of an Application Program Interface (API) which is the interface between.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 7.
Networks and Protocols CE Week 7b. Routing an Overview.
Queues, Pipes and Sockets. QUEUE A structure with a series of data elements with the first element waiting for an operation Used when an element is not.
OS2014 PROJECT 2 Supplemental Information. Outline Sequence Diagram of Project 2 Kernel Modules Kernel Sockets Work Queues Synchronization.
Practical Session 12 Reactor Pattern. Disadvantages of Thread per Client It's wasteful – Creating a new Thread is relatively expensive. – Each thread.
CPSC 441 TUTORIAL – FEB 13, 2012 TA: RUITNG ZHOU UDP REVIEW.
Chapter 21 IP Encapsulation, Fragmentation, and Reassembly.
Institute of Technology Sligo - Dept of Computing Chapter 12 The Transport Layer.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
Distributed Computing Systems
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.
1 CSCD 330 Network Programming Fall 2013 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright Lecture 8a Application.
CSE 434: Computer Networks Project Single vs. Per Connection vs. Pooling Threading Techniques Dominic Hilsbos, Dorothy Johnson, Chris Volpe, Andy Wong,
Discussion of OCP/SMTP profile and some Use cases Presented by Abbie Barbir
Switching. Circuit switching Message switching Packet Switching – Datagrams – Virtual circuit – source routing Cell Switching – Cells, – Segmentation.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
1 Network Communications A Brief Introduction. 2 Network Communications.
SPL/2010 Reactor Design Pattern 1. SPL/2010 Overview ● blocking sockets - impact on server scalability. ● non-blocking IO in Java - java.niopackage ●
Chapter 3 Part 3 Switching and Bridging
Chapter 11 User Datagram Protocol
Module 12: I/O Systems I/O hardware Application I/O Interface
Data Link Layer.
Introduction to Networking Recital 4
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
Chapter 3 Internet Applications and Network Programming
SWITCHING Switched Network Circuit-Switched Network Datagram Networks
Chapter 3 Part 3 Switching and Bridging
Client/Server Example
CGS 3763 Operating Systems Concepts Spring 2013
High Performance Messaging on Workstations
Implementing a Network Protocol using Sockets: A Modular Approach
I/O Systems I/O Hardware Application I/O Interface
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
ELECTRICAL CIRCUITS AND CONSTRUCTIONS An electrical circuit is a network consisting of a closed loop, giving a return path for the current 2.
William Stallings Data and Computer Communications
Chapter 3 Part 3 Switching and Bridging
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Process-to-Process Delivery: UDP, TCP
Data Link Layer. Position of the data-link layer.
Module 12: I/O Systems I/O hardwared Application I/O Interface
Thread per client and Java NIO
Presentation transcript:

ORLEANS Networking Overview Jason Bragg 02/11/2016

Asynchronous IO Receive Caller Grain.Foo() Called Grain.Foo() Magic Magic Message Center Outgoing Messages Incoming Messages Accepter Sender Socket Sender Socket Sender Socket Sender Socket Senders Configurable number of senders. Each sender has its own message queue. Messages assigned to Sender based off target silo address. Sender has its own sending thread. Sender’s thread takes messages from it’s queue, serializes them and sends them to target silo. Asynchronous IO Receive Buffered read from socket. Dispatch all messages in receive buffer. If message size is larger than buffer, grow buffer, and continue reading.

Outgoing Message Path Grain call converted to Message (magic) Message is addressed. Target silo is set (magic) Sender is selected to send message. Message is added to Sender’s message queue. Sender thread performs blocking Take from message queue. Sender gets sending socket for the message’s target silo. Connects if necessary. If the connection is lost, the sender reconnects. Sender serializes the message into buffers from the buffer pool. Serialized message consists of three parts. Sizes – The serialized size of the headers, and body. Headers – Message metadata. Body – Grain call arguments and method info. Sender send serialized message (buffers) on sending socket. Sender returns buffers to pool. Get next message (go to 5).

Incoming Message Path Socket accepter accepts new connections. New socket is setup to asynchronously receive messages. Initial receive buffer is 128k from buffer pool. On asynchronous receive, dispatch all the messages in the receive buffer. Parse message size from start of receive buffer. If message will not fit into the receive buffer, we grow receive buffer and read more. If the bytes read is large enough to include the entire message, we map Headers and Body segments to the receive buffer (no data copy, just mapping). Construct Message using Headers and Body segments. New message is sent to the Incoming Messages queue for dispatch to grain (magic). Buffers used by the parsed message are returned to the buffer pool. New buffers, from the buffer pool, are appended to the end of the read buffer. Next message is read from buffer (go to 1). Once all the messages have been read, the receive buffer is reused for the next asynchronous read.