scispace - formally typeset
Search or ask a question

Showing papers by "Kenneth L. Calvert published in 2008"


Book
22 Feb 2008
TL;DR: A focused, tutorial-based approach helps the reader master the tasks and techniques essential to virtually all client-server projects using sockets in Java.
Abstract: The networking capabilities of the Java platform have been extended considerably since the first edition of the book. This new edition covers version 1.5-1.7, the most current iterations, as well as making the following improvements:The API (application programming interface) reference sections in each chapter, which describe the relevant parts of each class, have been replaced with (i) a summary section that lists the classes and methods used in the code, and (ii) a ?gotchas? section that mentions nonobvious or poorly-documented aspects of the objects. In addition, the book covers several new classes and capabilities introduced in the last few revisions of the Java platform. New abstractions to be covered include NetworkInterface, InterfaceAddress, Inet4/6Address, SocketAddress/InetSocketAddress, Executor, and others; extended access to low-level network information; support for IPv6; more complete access to socket options; and scalable I/O. The example code is also modified to take advantage of new language features such as annotations, enumerations, as well as generics and implicit iterators where appropriate.Most Internet applications use sockets to implement network communication protocols. This book's focused, tutorial-based approach helps the reader master the tasks and techniques essential to virtually all client-server projects using sockets in Java. Chapter 1 provides a genral overview of networking concepts to allow readers to synchronize the concepts with terminology. Chapter 2 introduces the mechanics of simple clients and servers. Chapter 3 covers basic message construction and parsing. Chapter 4 then deals with techniques used to build more robust clients and servers. Chapter 5 (NEW) introduces the scalable interface facilities which were introduced in Java 1.5, including the buffer and channel abstractions. Chapter 6 discusses the relationship between the programming constructs and the underlying protocol implementations in more detail. Programming concepts are introduced through simple program examples accompanied by line-by-line code commentary that describes the purpose of every part of the program. The book's Web site contains many examples of command-based sockets-related code discussed throughout the book. No other resource presents so concisely or so effectively the material necessary to get up and running with Java sockets programming. KEY FEATURES* Focused, tutorial-based instruction in key sockets programming techniques allows reader to quickly come up to speed on Java applications. * Concise and up-to-date coverage of the most recent platform (1.7) for Java applications in networking technology* Provides code for all example programs via a companion Web site to let the reader see the important objects and methods in context and to understand the purpose of each line of code.

16 citations


Journal ArticleDOI
TL;DR: This paper proposes a distributed scheme for recovering lost rekey packets that allows each member to contact other members to get the missing packets during rekey events, thus avoiding the extra computation and bandwidth resources at the key server.
Abstract: The Logical Key Hierarchy (LKH) provides a scalable and efficient way to distribute session keys to authorized group members in secure group (multicast) communication However, because multicast is a best-effort service, it requires additional mechanism to ensure that every member receives the rekey information To solve this problem, several FEC-based schemes have been proposed Although these schemes significantly enhance the reliability of the rekey transmissions, they require significant additional resources at the key server In this paper we propose a distributed scheme for recovering lost rekey packets Our scheme allows each member to contact other members to get the missing packets during rekey events, thus avoiding the extra computation and bandwidth resources at the key server We compare our scheme with a well-known FEC scheme with respect to latencies experienced by receivers in reasonably large groups Results show that our scheme yields lower average and 95th-percentile latencies than the FEC-based scheme across several operating regimes

10 citations


Book ChapterDOI
01 Jan 2008
TL;DR: The TCP/IP protocols transport bytes of user data without examining or modifying them as mentioned in this paper, which allows applications great flexibility in how they encode their information for transmission, and thus allows applications to send and receive data without modifying them.
Abstract: Publisher Summary Any programs that exchange information must agree on how that information will be encoded—represented as a sequence of bits—as well as which program sends what information when, and how the information received affects the behavior of the program. This chapter discusses sending and receiving data. It discusses how simple values such as ints, longs, chars, and Strings can be sent and received via sockets. The TCP/IP protocols transport bytes of user data without examining or modifying them. This allows applications great flexibility in how they encode their information for transmission. Most application protocols are defined in terms of discrete messages made up of sequences of fields. Each field contains a specific piece of information encoded as a sequence of bits. The application protocol specifies exactly how these sequences of bits are to be arranged by the sender and interpreted, or parsed, by the receiver so that the latter can extract the meaning of each field. Bytes of information can be transmitted through a socket by writing them to an OutputStream (associated with a Socket) or encapsulating them in a DatagramPacket (which is then sent via a DatagramSocket). However, the only data types to which these operations can be applied are bytes and arrays of bytes. As a strongly typed language, Java requires that other types—int, String, and so on—be explicitly converted to byte arrays. Fortunately, the language has built-in facilities to help with such conversions.

1 citations


Book ChapterDOI
01 Jan 2008
TL;DR: This chapter demonstrates how Java applications identify network hosts using the InetAddress –Address, and lists the most significant methods, grouped according to usage, and briefly describe their behavior.
Abstract: Publisher Summary This chapter explores basic sockets. It demonstrates how Java applications identify network hosts using the InetAddress –Address . InetAddress abstraction represents a network destination, encapsulating both names and numerical address information. The class has two subclasses, Inet4Address and Inet6Address, representing the two versions in use. Instances of InetAddress are immutable: once created, each one always refers to the same address. further presents examples of the use of , through an example client and server that use TCP, and also the –Socket for clients and servers that use UDP. For each abstraction, it lists the most significant methods, grouped according to usage, and briefly describe their behavior. It demonstrates the use of InetAddress with an example program that first prints out all the addresses associated with the local host, and then prints the names and addresses associated with each host specified on the command line. each Java networking class described in it, it includes only the most important and commonly used methods, omitting those that are deprecated or beyond the use of the target audience of the study.

1 citations