Named Pipes, Sockets and other IPC
|
|
|
- Kerry Gray
- 9 years ago
- Views:
Transcription
1 Named Pipes, Sockets and other IPC Mujtaba Khambatti Arizona State University Abstract The purpose of this paper is to discuss interprocess communication in the context of Windows 2000 and UNIX (Berkeley UNIX, System V, and SunOS). Special emphasis will be given to the system mechanisms that are involved with the creation, management, and use of named pipes and sockets. There will also be a discusssion of remote procedure calls and signals in the context of the UNIX environment. 1
2 1. Table of Contents Abstract 1 1. Table of Contents 2 2. Named Pipes in Windows Named Pipes Background Named Pipes Definition Architectural Description An Overview of the LANMAN Architecture LANMANWorkstation LANMANServer Relation with other IPC Impersonation 4 3. TCP/IP Sockets over Windows Windows Sockets Background Definition of Socket Windows Sockets 2 and TCP/IP Uses for Sockets Named Pipes Vs TCP/IP Sockets 6 4. Comparison between IPC over Unix and IPC over Windows UNIX IPC Background A note on UNIX Orientation for IPC Types of UNIX IPC and Definitions Local IPC Remote IPC Differences in IPC models in versions of UNIX Streams in UNIX Pipe Streams in UNIX Named Pipe Streams in UNIX Using Named Pipes in UNIX Sockets in UNIX Uses of Sockets in UNIX UNIX Socket Programming Interface Remote Procedure Calls in UNIX Signals in UNIX References 11 2
3 2. Named Pipes in Windows Named Pipes Background Named pipes provide a high-level connection-oriented messaging by using pipes. Connection-oriented messaging requires that the communication occur over a virtual circuit and maintain reliable and sequential data transfer. A pipe is a portion of memory that can be used by one process to pass information to another. A pipe connects two processes so that the output of one can be used as input to the other. This technique is used for passing data between client and server. Named pipes are based on OS/2 API calls, which have been ported to the WNet APIs. Additional asynchronous support has been added to named pipes to pass data between client/server applications. Named pipes are included to provide backwards compatibility with Microsoft LAN Manager and related applications [SYBEX, SoloRuss, NetArch, PlatSDK1]. 2.2 Named Pipes Definition A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. The term pipe, as used here, implies that a pipe is used as an information conduit. Conceptually, a pipe has two ends. A one-way pipe allows the process at one end to write to the pipe, and allows the process at the other end to read from the pipe. A two-way (or duplex) pipe allows a process to read and write from its end of the pipe. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network. Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe [SYBEX, SoloRuss, NetArch, PlatSDK1]. 2.3 Architectural Description The Named Pipes ties in with the I/O subsytem and can appear to the user as nothing but another file system. This is because Named pipes are written as file system drivers. Local processes can also use named pipes. As with all other file systems, remote access to named pipes is accomplished through the Common Internet File System (CIFS) redirector. A redirector intercepts file input/output (I/O) requests and directs them to a drive or resource on another networked computer. The redirector allows a CIFS client to locate, open, read, write, and delete files on another network computer running CIFS [PlatSDK1]. 2.4 An Overview of the LANMAN Architecture The Microsoft LAN Manager is used for networking. Two modules, LANMANWorkstation and LANMANServer, accomplish this. These two components, with the help of several more we will identify, provide most of the functionality of the OS/2 version of LAN Manager available today. Both of these modules execute as 32-bit services [Clark93] LANMANWorkstation: This module is really in two pieces (see Figure 1). The LANMANWorkstation component provides the user-mode interface. The other component is the RDR, or Redirector. This component is a File System Driver (FSD) that actually does the interaction with the lower layers of the protocol stack. Multiple UNC (Universal Naming Convention) Provider (MUP) is an interesting entity that runs in kernel-mode memory. The most productive way of thinking of MUP is as a resource locator. The types of resources it locates are UNC names. A UNC name is a naming convention for describing servers, and sharepoints on those servers, on a network [Clark93]. A typical UNC name would appear as: \\server\share\subdirectory\filename LANMANServer: This module is much like the LANMANWorkstation module. It is a service that runs in the lmsvrcs process. Unlike the workstation component, it is not dependent on the MUP service, since the server is not a UNC provider. It doesn't attempt to connect to other machines, but other machines connect it to. Like LANMANWorkstation, it is composed of two parts: the LANMANServer component and the SRV component. The 3
4 SRV component handles the interaction with the lower levels and also directly interacts with the other file system devices to satisfy command requests such as file read and write. Above the redirector and server components live the applications. As with our other layers, we want to provide them with a single unified interface to develop to, independent of the lower-layer services. This is done through two mechanisms. We have already looked at the first MUP. The other is the MPR, or Multi-Provider Router. The MPR is much like the MUP. This layer takes in WNet commands, finds the appropriate redirector based on the handle, and passes the command to that redirector for communication onto the network. In addition to I/O calls such as Open and Close, Win32 contains a set of APIs called the WNet API. These are APIs that were ported over from Windows 3.1 network calls. Most of these calls deal with establishing remote connections [Clark93]. 1 Figure 1: The LANMAN Workstation module divided into two parts [Clark93] 2.5 Relation with other IPC The six IPC mechanisms provided by Windows NT are: named pipes, mailslots, NetBIOS, Windows Sockets, Remote Procedure Calls (RPC), and Network Dynamic Data Exchange (NetDDE). Named pipes and mailslots provide backward compatibility with existing LAN Manager installations and applications. This is also true of the NetBIOS interface. Windows Sockets is a Windows-based implementation of the widely used sockets programming interface created by the University of California at Berkeley. RPC is compatible with the Open Software Foundation/Distributed Computing Environment (OSF/DCE) specification for remote procedure calls. NetDDE allows standard DDE connections to be redirected across the network as was possible with Windows for Workgroups [SYBEX]. 2.6 Impersonation One of the most popular area to use Named Pipes has been database client-server communication. Until before Windows 2000, there was a serious problem with the security of this communication. The Windows 2000 operating system now provides special APIs that increase security for named pipes. Using a feature called impersonation, the server can change its security identity to that of the client at the other end of the message. This is done with the ImpersonateNamedPipeClient() API [PlatSDK2]. A server typically has more permissions to access databases on the server than a client requesting services. When the request is delivered to the server through a named pipe, the server changes its security identity to the security identity of the client. This limits the server to only those permissions granted to the client rather than its own permissions, thus increasing the security of named pipes. 4
5 3. TCP/IP Sockets over Windows Windows Sockets Background The Windows Sockets specification defines a binary-compatible network programming interface for Microsoft Windows. Windows Sockets are based on the UNIX sockets implementation in the Berkeley Software Distribution (BSD, release 4.3) from the University of California at Berkeley. The specification includes both BSD-style socket routines and extensions specific to Windows. Using Windows Sockets permits your application to communicate across any network that conforms to the Windows Sockets API. On Win32, Windows Sockets provide for thread safety. Many network software vendors support Windows Sockets under network protocols including Transmission Control Protocol/Internet Protocol (TCP/IP), Xerox Network System (XNS), Digital Equipment Corporation s DECNet protocol, Novell Corporation s Internet Packet Exchange/Sequenced Packed Exchange (IPX/SPX), and others. Although the present Windows Sockets specification defines the sockets abstraction for TCP/IP, any network protocol can comply with Windows Sockets by supplying its own version of the dynamic link library (DLL) that implements Windows Sockets. Examples of commercial applications written with Windows Sockets include X Window servers, terminal emulators, and electronic mail systems [WinSock]. 3.2 Definition of Socket A socket is a communication endpoint an object through which a Windows Sockets application sends or receives packets of data across a network. A socket has a type and is associated with a running process, and it may have a name. Currently, sockets generally exchange data only with other sockets in the same communication domain, which uses the Internet Protocol Suite. Both kinds of sockets are bi-directional: they are data flows that can be communicated in both directions simultaneously (full-duplex). Two socket types are available: Stream sockets: Stream sockets provide for a data flow without record boundaries a stream of bytes. Streams are guaranteed to be delivered and to be correctly sequenced and unduplicated. Datagram sockets: Datagram sockets support a record-oriented data flow that is not guaranteed to be delivered and may not be sequenced as sent or unduplicated [WinSock]. 3.3 Windows Sockets 2 and TCP/IP One of the primary goals of Windows Sockets 2 has been to provide a protocol-independent interface fully capable of supporting emerging networking capabilities, such as real-time multimedia communications. Windows Sockets 2 is an interface, not a protocol. As an interface, it is used to discover and utilize the communications capabilities of any number of underlying transport protocols. Because it is not a protocol, it does not in any way affect the bits on the wire, and does not need to be utilized on both ends of a communications link. Windows Sockets programming previously centered on TCP/IP. Some of the programming practices that worked with TCP/IP do not work with every protocol. As a result, the Windows Sockets 2 API added new functions where necessary to handle several protocols. Windows Sockets 2 has changed its architecture to provide easier access to multiple transport protocols. Consequently, Windows Sockets 2 support is not limited to TCP/IP protocol stacks as is the case for Windows Sockets 1.1. There are new challenges in developing Windows Sockets 2 applications. When sockets only supported TCP/IP, a developer could create an application that supported only two socket types: connectionless and connection-oriented. Connectionless protocols used SOCK_DGRAM sockets and connection-oriented protocols used SOCK_STREAM sockets. Now, these are just two of the many new socket types. Additionally, developers can no longer rely on socket type to describe all the essential attributes of a transport protocol [PlatSDK3]. 5
6 3.4 Uses for Sockets Sockets are highly useful in at least three communications contexts: Client/Server models Peer-to-peer scenarios, such as chat applications Making remote procedure calls (RPC) by having the receiving application interpret a message as a function call 3.5 Named Pipes Vs TCP/IP Sockets In a fast local area network (LAN) environment, Transmission Control Protocol/Internet Protocol (TCP/IP) Sockets and Named Pipes clients are comparable in terms of performance. However, the performance difference between the TCP/IP Sockets and Named Pipes clients becomes apparent with slower networks, such as across wide area networks (WANs) or dial-up networks. This is because of the different ways the interprocess communication (IPC) mechanisms communicate between peers. For named pipes, network communications are typically more interactive. A peer does not send data until another peer asks for it using a read command. A network read typically involves a series of peek named pipes messages before it begins to read the data. These can be very costly in a slow network and cause excessive network traffic, which in turn affects other network clients. It is also important to clarify if you are talking about local pipes or network pipes. If the server application is running locally on the computer running an instance of Microsoft SQL Server 2000, the local Named Pipes protocol is an option. Local named pipes runs in kernel mode and is extremely fast. For TCP/IP Sockets, data transmissions are more streamlined and have fewer overheads. Data transmissions can also take advantage of TCP/IP Sockets performance enhancement mechanisms such as windowing, delayed acknowledgements, and so on, which can be very beneficial in a slow network. Depending on the type of applications, such performance differences can be significant. TCP/IP Sockets also support a backlog queue, which can provide a limited smoothing effect compared to named pipes that may lead to pipe busy errors when you are attempting to connect to SQL Server. In general, sockets are preferred in a slow LAN, WAN, or dial-up network, whereas named pipes can be a better choice when network speed is not the issue, as it offers more functionality, ease of use, and configuration options. For more information about TCP/IP, see the Microsoft Windows NT documentation [TCPvsPIP]. 6
7 4. Comparison between IPC over Unix and IPC over Windows UNIX IPC Background The UNIX operating system developers define interprocess communication (IPC) as a means by which two or more running programs (processes) can communicate by exchanging data [LawBesaw]. The communication we are interested in is conducted by ordinary read and write calls, occasionally supplemented by I/O control requests, so that it resembles - and, where possible, is indistinguishable from - I/O to files. Moreover, we wish to commence communication in ways that resemble the opening of ordinary files A note on UNIX Orientation for IPC The UNIX architecture provides a framework in which standard file, terminal, and communications I/O all operate in a similar fashion. Operations are performed on a file by means of calls such as: descriptor = open(filename, readwritemode); read(descriptor, buffer, length); write(descriptor, buffer, length); close(descriptor); When a program opens a file, the call creates an area in memory called a file control block (FCB). Information about the file is stored in the FCB. The open call returns a small integer called a file descriptor. The program uses this descriptor to identify the file in any subsequent operations. As the user reads from or writes to the file, a pointer in the file descriptor keeps track of the current location in the file. 4.2 Types of UNIX IPC and Definitions At first lets try and identify the types of IPC that is available over UNIX and define them very briefly. There are two types of IPC in UNIX: Local and Remote [EDavis]. These IPC mechanisms achieve the purpose of process to process communication either between processes on the same machine (local IPC) or on processes on separate machines (remote IPC). While the Windows 2000 model incorporates the use of Network protocols, file systems and redirectors to achieve this cross-machine data exchange, UNIX has a similar approach with some differences. We will take a look at the modules that UNIX uses to accomplish IPC Local IPC This can exist between one or more processes on a single host. Examples of the mechanisms of Local IPC are: signals, pipes (unnamed, named, and STREAM pipes), shared memory, message queues, semaphores, UNIXdomain sockets, file/record locking, memory-mapped files. Signals are nothing but software interrupts; Pipes allow for half-duplex (uni-directional), reliable, FIFO, byte-stream IPC between parent and child(en) on same machine; Sockets allow for full duplex (bi-directional), reliable local and remote IPC between potentially unrelated processes; Shared Memory is implemented via the mmap system call and Synchronization requires file and record locking Remote IPC This can exist between one or more processes on different hosts. Typically this involves some network protocols. There are different mechanisms for IPC over UNIX: Internet-domain sockets Transport Layer Interface (TLI) Remote Procedure Calls (RPC) 7
8 4.2.3 Differences in IPC models in versions of UNIX Below we compare the IPC model that exists between the BSD and System V [Klefstad] versions of Unix. Since there are a couple of differences between the 2 systems lets consider an intersection of the IPC mechanisms available on these two versions of UNIX for our discussions in comparing the IPC with Windows BSD UNIX Signals Pipes Sockets Shared Memory Synchronization System V Signals Pipes TLI (Transport Layer Interface similar to BSD sockets) Shared Memory FIFO (known as named pipes also in BSD now) Stream Pipes Semaphores Message Queues 4.3 Streams in UNIX Different mechanisms come into play to implement IPCs in UNIX. An example of one of them is a stream, which is a full-duplex connection between a process and a device or another process consisting of several linearly connected processing modules [LawBesaw]. A stream is analogous to a Shell pipeline, except that data flows in both directions. The end modules in a device stream become connected automatically when the process opens the device; streams between processes are created by a pipe call. Intermediate modules are attached dynamically by request of the user's program. They are addressed like a stack with its top close to the process, so installing one is called `pushing' a new module. Stream modules are part of the operating system kernel, but because they transmit messages, and streams can connect processes, it is plausible to transmit a stream through a user program Pipe Streams in UNIX Pipes in Unix are commonly used to avoid writing temporary files to communicate between programs [BobStear]. The most common use of a pipe is probably: ls -Fla more which takes the stdout from the ls command and transfers it to the stdin of the more command, allowing the reading of the file list one page at a time. If there were no pipe construct available and no file called listing, the process would be something like this: ls -Fla > listing more < listing rm listing Named Pipe Streams in UNIX Named pipes (also known as FIFOs) are used to communicate between programs just like regular pipes are, but are usable by programs which use file names rather than just stdin and stdout. Furthermore, multiple named pipes may be open at the same time, rather than just the two normally allowed by shell commands [BobStear] Using Named Pipes in UNIX The following example shows how to create the compressed version of the merge of three sorted files which currently only exist as compressed files, without creating an uncompressed file on disk [BobStear]. First create the named pipes to use: mkfifo in1 in2 in3 8
9 Then attach the uncompressed version of the compressed files to the pipes: zcat jan.z >> in1 & zcat feb.z >> in2 & zcat mar.z >> in3 & Next, merge the uncompressed versions and compress the result, writing only the compressed version on the disk: sort -m in1 in2 in3 \ compress > quarter1.z Finally, remove the pipes: rm in1 in2 in3 There are several noteworthy things about the example above. First, mkfifo is just a front-end to the mknod command with a p parameter. Second, all of the writing processes must be startedin the background before the reading process is started in the foreground. (Compare the zcat commands with the sort command.) Third, after they have been created, FIFOs are treated just the same as regular files. (That is why the zcat command has to write to the end of the files via '>>' rather than the beginning via '>'.) Also note that with the correct permissions, different users can be the source(s) and sink(s) for the data. This technique can be used anywhere you wish to create (uncompress, program, etc.) an input file without actually taking up disk space with it. 4.4 Sockets in UNIX Berkeley's 4.2 BSD system10 introduced sockets (communication connection points) that exist in domains (naming spaces). The design is powerful enough to provide most of the needed facilities Uses of Sockets in UNIX The use of a socket for communication often follows the client/server model. One method of communication between server and client processes is to design the server following these steps: 1. Create the socket. 2. Assign a name to the socket. 3. Attach a connection to the socket. 4. Transfer data via the socket. 5. Clean up the socket after use. The connection to a socket also uses a socket. The connecting socket used for a client follows similar steps, except that the assignment of a name is not always necessary UNIX Socket Programming Interface Most TCP/IP implementations offer a programming interface that follows a single model, the socket programming interface. The socket interface is a de facto standard because it is almost universally available and is in widespread use. The original socket interface was written for a Unix operating system. It was first introduced in 1982 with BSD Unix, and was designed for use with several communications protocols. AT&T introduced the Transport Layer Interface (TLI) for Unix System V. TLI is used to interface to the OSI transport layer, TCP, and other protocols. 9
10 4.5 Remote Procedure Calls in UNIX The Remote Procedure Call (RPC) framework was designed from the start to support general client/server application development. It has evolved into the Open Network Computing (ONC) standard. RPCs are implemented as a compiler feature supported by platform-specific RPC run-time libraries that allow the program to make remote-procedure calls in the same manner as a local procedure call would be made. The run-time library is responsible for "finding" the remote procedure, establishing the connection, and handling the communication. The external Data Representation (XDR) standard is an important part of the RPC architecture. XDR includes a datatype definition language and a method of encoding datatypes in a standard format. This enables data to be exchanged between different types of computers. Sun Microsystems published a RFC describing Remote Procedure Calls in Sun maintained control of the protocol until 1995, when new versions were published. At that point, Sun's Open Network Computing Remote Procedure Call and its supporting protocols were turned over to the Internet Engineering Task Force (IETF) and submitted to the Internet standards process. 4.6 Signals in UNIX Berkeley UNIX provides a set of signals that may be delivered to a process for various reasons, such as an interrupt key being typed or a bus error occurring. These signals--examples of which are SIGIO and SIGALRM--are defined in the file <signal.h>. Typically, the default action is that the delivery of the signal causes a process to terminate. This default can be changed so that a signal is caught or ignored. If the signal is caught, a signal handler is declared as the location where control is transferred at the time of interrupt. The arrival of a signal is thus similar to a hardware interrupt. When a signal is delivered to a process, the program state is saved, the delivered signal is blocked from further occurrence, and program control is transferred to the designated handler. If the handler returns normally, the signal is once again enabled and program execution resumes from the point where it was interrupted. If a signal that is currently blocked arrives, it is queued for later delivery. 10
11 5. References [BobStear] B.Stearns, Unix named pipes (FIFOs), Computer Review, Winter Quarter 1995, [Clark93] G.Clark, Networking in Microsoft Windows NT, Microsoft Corporate Technology Team, Technical Articles, MSDN Library, January [EDavis] E.Davis, UNIX Network Programming, [Klefstad] R.Klefstad, UNIX Network Programming, Introduction to UNIX Local and Remote Interprocess Communication, [LawBesaw] L.Besaw, Berkeley UNIX System Calls and Interprocess Communication, January [NetArch] Named Pipes and Mailslots, Windows 2000 Server Resource Kit Online Books, MSDN Library, January [NTUnix] MS Windows NT Server From a UNIX Point of view, Microsoft TechNet, [PlatSDK1] Named Pipes, Interprocess Communications: Platform SDK, MSDN Library, January [PlatSDK2] Named Pipe Security, Interprocess Communitions: Platform SDK, MSDN Library, January [PlatSDK3] Overview of Windows Sockets 2: Platform SDK, MSDN Library, January [SYBEX] Creating Named Pipes, Partial Books, MSDN Library, January [SoloRuss] Inside Microsoft Windows 2000, 3 rd edition, David A. Solomon and Mark E. Russinovich, Microsoft Press. [TCPvsPIP] Named Pipes vs. TCP/IP Sockets, Optimizing Database Performance (SQL Server), MSDN Library, January [WinSock] Windows Sockets: Background, MSDN Library, January
Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming
Socket Programming Limi Kalita M.Tech Student, Department of Computer Science and Engineering, Assam Down Town University, Guwahati, India. Abstract: The aim of the paper is to introduce sockets, its deployment
Computer Networks/DV2 Lab
Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss13/netlab Equipment for each group: - 1 Server computer (OS: Windows Server 2008 Standard)
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Network Programming TDC 561
Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating
The Win32 Network Management APIs
The Win32 Network Management APIs What do we have in this session? Intro Run-Time Requirements What's New in Network Management? Windows 7 Windows Server 2003 Windows XP Network Management Function Groups
Chapter 15 Windows Operating Systems
Understanding Operating Systems, Fifth Edition 15-1 Chapter 15 Windows Operating Systems At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion Topics Additional
Windows8 Internals, Sixth Edition, Part 1
Microsoft Windows8 Internals, Sixth Edition, Part 1 Mark Russinovich David A. Solomon Alex lonescu Windows Internals, Sixth Edition, Part i Introduction xvii Chapter 1 Concepts and Tools 1 Windows Operating
Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX
APPENDIX A Introduction Understanding TCP/IP To fully understand the architecture of Cisco Centri Firewall, you need to understand the TCP/IP architecture on which the Internet is based. This appendix
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X
(Advanced Topics in) Operating Systems Winter Term 2009 / 2010 Jun.-Prof. Dr.-Ing. André Brinkmann [email protected] Universität Paderborn PC 1 Overview Overview of chapter 3: Case Studies 3.1 Windows Architecture.....3
Objectives of Lecture. Network Architecture. Protocols. Contents
Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking
Protocols and Architecture. Protocol Architecture.
Protocols and Architecture Protocol Architecture. Layered structure of hardware and software to support exchange of data between systems/distributed applications Set of rules for transmission of data between
Operating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski [email protected] 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
EE4367 Telecom. Switching & Transmission. Prof. Murat Torlak
Packet Switching and Computer Networks Switching As computer networks became more pervasive, more and more data and also less voice was transmitted over telephone lines. Circuit Switching The telephone
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
USB Print Server User Manual (GPSU01)
USB Print Server User Manual (GPSU01) Welcome Thank you for purchasing this 1-port USB Print Server that allows any networked computer to share a USB printer. It complies with USB 1.1 specifications,
Transport Layer Protocols
Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements
Chapter 11: File System Implementation. Operating System Concepts with Java 8 th Edition
Chapter 11: File System Implementation 11.1 Silberschatz, Galvin and Gagne 2009 Chapter 11: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation
Computer Network. Interconnected collection of autonomous computers that are able to exchange information
Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
Module 1: Reviewing the Suite of TCP/IP Protocols
Module 1: Reviewing the Suite of TCP/IP Protocols Contents Overview 1 Lesson: Overview of the OSI Model 2 Lesson: Overview of the TCP/IP Protocol Suite 7 Lesson: Viewing Frames Using Network Monitor 14
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
Communications and Computer Networks
SFWR 4C03: Computer Networks and Computer Security January 5-8 2004 Lecturer: Kartik Krishnan Lectures 1-3 Communications and Computer Networks The fundamental purpose of a communication system is the
Chapter 3. Internet Applications and Network Programming
Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure
Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023
Operating Systems Autumn 2013 Outline 1 2 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP
CSCE 515: Computer Network Programming TCP/IP IP Network Layer Wenyuan Xu Department of Computer Science and Engineering University of South Carolina IP Datagrams IP is the network layer packet delivery
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Chapter 10 Case Study 1: LINUX
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 10 Case Study 1: LINUX History of UNIX and Linux UNICS PDP-11 UNIX Portable UNIX Berkeley UNIX Standard UNIX MINIX Linux UNIX/Linux Goals
File Sharing. Peter Lo. CP582 Peter Lo 2003 1
File Sharing Peter Lo CP582 Peter Lo 2003 1 File Sharing What is it? How is it different from File Transfer How it it done? CP582 Peter Lo 2003 2 This lecture we move away from the topic of transferring
Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.
Interprocess communication (Part 2) For an application to send something out as a message, it must arrange its OS to receive its input. The OS is then sends it out either as a UDP datagram on the transport
Overview of Computer Networks
Overview of Computer Networks Client-Server Transaction Client process 4. Client processes response 1. Client sends request 3. Server sends response Server process 2. Server processes request Resource
Socket Programming. Request. Reply. Figure 1. Client-Server paradigm
Socket Programming 1. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing with the request(s) received, and returns a reply
Ethernet. Ethernet. Network Devices
Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking
NFS File Sharing. Peter Lo. CP582 Peter Lo 2003 1
NFS File Sharing Peter Lo CP582 Peter Lo 2003 1 NFS File Sharing Summary Distinguish between: File transfer Entire file is copied to new location FTP Copy command File sharing Multiple users can access
The TCP/IP Reference Model
The TCP/IP Reference Model The TCP/IP Model Comparison to OSI Model Example Networks The TCP/IP Model Origins from ARPANET, DoD research network ARPA - Advanced Research Projects Agency Reliability was
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
Gigabit Ethernet Design
Gigabit Ethernet Design Laura Jeanne Knapp Network Consultant 1-919-254-8801 [email protected] www.lauraknapp.com Tom Hadley Network Consultant 1-919-301-3052 [email protected] HSEdes_ 010 ed and
File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi
File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi History of FTP The first proposed file transfer mechanisms were developed for implementation on hosts at M.I.T.
Considerations In Developing Firewall Selection Criteria. Adeptech Systems, Inc.
Considerations In Developing Firewall Selection Criteria Adeptech Systems, Inc. Table of Contents Introduction... 1 Firewall s Function...1 Firewall Selection Considerations... 1 Firewall Types... 2 Packet
Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XR and Windows 2000
Microsoft* Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XR and Windows 2000 Mark E. Russinovich David A. Solomon Historical Perspective Foreword Acknowledgments Introduction
Local-Area Network -LAN
Computer Networks A group of two or more computer systems linked together. There are many [types] of computer networks: Peer To Peer (workgroups) The computers are connected by a network, however, there
Have both hardware and software. Want to hide the details from the programmer (user).
Input/Output Devices Chapter 5 of Tanenbaum. Have both hardware and software. Want to hide the details from the programmer (user). Ideally have the same interface to all devices (device independence).
Remote Access Server - Dial-Out User s Guide
Remote Access Server - Dial-Out User s Guide 95-2345-05 Copyrights IBM is the registered trademark of International Business Machines Corporation. Microsoft, MS-DOS and Windows are registered trademarks
Linux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah [email protected] Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Stateful Inspection Technology
Stateful Inspection Technology Security Requirements TECH NOTE In order to provide robust security, a firewall must track and control the flow of communication passing through it. To reach control decisions
Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
The Microsoft Windows Hypervisor High Level Architecture
The Microsoft Windows Hypervisor High Level Architecture September 21, 2007 Abstract The Microsoft Windows hypervisor brings new virtualization capabilities to the Windows Server operating system. Its
What is CSG150 about? Fundamentals of Computer Networking. Course Outline. Lecture 1 Outline. Guevara Noubir [email protected].
What is CSG150 about? Fundamentals of Computer Networking Guevara Noubir [email protected] CSG150 Understand the basic principles of networking: Description of existing networks, and networking mechanisms
CPS221 Lecture: Layered Network Architecture
CPS221 Lecture: Layered Network Architecture Objectives last revised 9/10/12 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
ICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab. [email protected]
Course: Software Defined Radio ICT SEcurity BASICS Angelo Liguori [email protected] SP4TE lab 1 Simple Timing Covert Channel Unintended information about data gets leaked through observing the
The Native AFS Client on Windows The Road to a Functional Design. Jeffrey Altman, President Your File System Inc.
The Native AFS Client on Windows The Road to a Functional Design Jeffrey Altman, President Your File System Inc. 14 September 2010 The Team Peter Scott Principal Consultant and founding partner at Kernel
Module 1. Introduction. Version 2 CSE IIT, Kharagpur
Module 1 Introduction Lesson 2 Layered Network Architecture Specific Functional Objectives On Completion of this lesson, the students will be able to: State the requirement for layered approach Explain
Study and installation of a VOIP service on ipaq in Linux environment
Study and installation of a VOIP service on ipaq in Linux environment Volkan Altuntas Chaba Ballo Olivier Dole Jean-Romain Gotteland ENSEIRB 2002 Summary 1. Introduction 2. Presentation a. ipaq s characteristics
CS 5516 Computer Architecture Networks
Lecture 11: ISDN & ATM CS 5516 Computer Architecture Networks VA Tech Prof. Roy M. Wnek History of ISDN Traditionally, local loop connectivity has been with an analog signal on copper Inefficient, prone
CSE 3461 / 5461: Computer Networking & Internet Technologies
Autumn Semester 2014 CSE 3461 / 5461: Computer Networking & Internet Technologies Instructor: Prof. Kannan Srinivasan 08/28/2014 Announcement Drop before Friday evening! k. srinivasan Presentation A 2
Agenda. Distributed System Structures. Why Distributed Systems? Motivation
Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)
SFWR 4C03: Computer Networks & Computer Security Jan 3-7, 2005. Lecturer: Kartik Krishnan Lecture 1-3
SFWR 4C03: Computer Networks & Computer Security Jan 3-7, 2005 Lecturer: Kartik Krishnan Lecture 1-3 Communications and Computer Networks The fundamental purpose of a communication network is the exchange
Networks. Inter-process Communication. Pipes. Inter-process Communication
Networks Mechanism by which two processes exchange information and coordinate activities Inter-process Communication process CS 217 process Network 1 2 Inter-process Communication Sockets o Processes can
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Keywords: sockets, client-server, network programming-socket functions, OSI layering, byte-ordering Outline: 1.) Introduction
Windows Server 2003 default services
Windows Server 2003 default services To view a description for a particular service, hover the mouse pointer over the service in the Name column. The descriptions included here are based on Microsoft documentation.
Encapsulating Voice in IP Packets
Encapsulating Voice in IP Packets Major VoIP Protocols This topic defines the major VoIP protocols and matches them with the seven layers of the OSI model. Major VoIP Protocols 15 The major VoIP protocols
1 Organization of Operating Systems
COMP 730 (242) Class Notes Section 10: Organization of Operating Systems 1 Organization of Operating Systems We have studied in detail the organization of Xinu. Naturally, this organization is far from
Advanced Certificate in Networking (Microsoft) G5J9 17. Group Award Requirements
Advanced Certificate in Networking (Microsoft) G5J9 17 Group Award Requirements Advanced Certificate in Networking (NT4) Professional Development Award (PDA) Advanced Certificate in Networking Group Award
An Introduction to VoIP Protocols
An Introduction to VoIP Protocols www.netqos.com Voice over IP (VoIP) offers the vision of a converged network carrying multiple types of traffic (voice, video, and data, to name a few). To carry out this
Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
SQL*Net PERFORMANCE TUNING UTILIZING UNDERLYING NETWORK PROTOCOL
SQL*Net PERFORMANCE TUNING UTILIZING UNDERLYING NETWORK PROTOCOL Gamini Bulumulle ORACLE CORPORATION 5955 T.G. Lee Blvd., Suite 100 Orlando, FL 32822 USA Summary Oracle client/server architecture is a
Lecture 25 Symbian OS
CS 423 Operating Systems Design Lecture 25 Symbian OS Klara Nahrstedt Fall 2011 Based on slides from Andrew S. Tanenbaum textbook and other web-material (see acknowledgements) cs423 Fall 2011 1 Overview
Internetworking Microsoft TCP/IP on Microsoft Windows NT 4.0
Internetworking Microsoft TCP/IP on Microsoft Windows NT 4.0 Course length: 5 Days Course No. 688 - Five days - Instructor-led Introduction This course provides students with the knowledge and skills required
PART OF THE PICTURE: The TCP/IP Communications Architecture
PART OF THE PICTURE: The / Communications Architecture 1 PART OF THE PICTURE: The / Communications Architecture BY WILLIAM STALLINGS The key to the success of distributed applications is that all the terminals
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Software design (Cont.)
Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java
Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture
Review from last time CS 537 Lecture 3 OS Structure What HW structures are used by the OS? What is a system call? Michael Swift Remzi Arpaci-Dussea, Michael Swift 1 Remzi Arpaci-Dussea, Michael Swift 2
Introduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
How SafeVelocity Improves Network Transfer of Files
How SafeVelocity Improves Network Transfer of Files 1. Introduction... 1 2. Common Methods for Network Transfer of Files...2 3. Need for an Improved Network Transfer Solution... 2 4. SafeVelocity The Optimum
Internet Concepts. What is a Network?
Internet Concepts Network, Protocol Client/server model TCP/IP Internet Addressing Development of the Global Internet Autumn 2004 Trinity College, Dublin 1 What is a Network? A group of two or more devices,
The OSI model has seven layers. The principles that were applied to arrive at the seven layers can be briefly summarized as follows:
1.4 Reference Models Now that we have discussed layered networks in the abstract, it is time to look at some examples. In the next two sections we will discuss two important network architectures, the
Windows network services for Samba folks
Windows network services for Samba folks Jean-Baptiste Marchand Hervé Schauer Consultants 1 Agenda SMB/CIFS implementation MSRPC implementation Network authentication Interesting tools References
CPS221 Lecture: Operating System Structure; Virtual Machines
Objectives CPS221 Lecture: Operating System Structure; Virtual Machines 1. To discuss various ways of structuring the operating system proper 2. To discuss virtual machines Materials: 1. Projectable of
Understanding IP Faxing (Fax over IP)
Understanding IP Faxing (Fax over IP) A detailed technical overview of how VoIP technology and IP Faxing (Fax over IP) are changing the way organizations utilize existing network infrastructures for voice
Operating System Structures
Operating System Structures Meelis ROOS [email protected] Institute of Computer Science Tartu University fall 2009 Literature A. S. Tanenbaum. Modern Operating Systems. 2nd ed. Prentice Hall. 2001. G. Nutt.
Operating System Components and Services
Operating System Components and Services Tom Kelliher, CS 311 Feb. 6, 2012 Announcements: From last time: 1. System architecture issues. 2. I/O programming. 3. Memory hierarchy. 4. Hardware protection.
Chapter 5. Transport layer protocols
Chapter 5. Transport layer protocols This chapter provides an overview of the most important and common protocols of the TCP/IP transport layer. These include: User Datagram Protocol (UDP) Transmission
The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology
3. The Lagopus SDN Software Switch Here we explain the capabilities of the new Lagopus software switch in detail, starting with the basics of SDN and OpenFlow. 3.1 SDN and OpenFlow Those engaged in network-related
Topics. Computer Networks. Let s Get Started! Computer Networks: Our Definition. How are Networks Used by Computers? Computer Network Components
Topics Use of networks Network structure Implementation of networks Computer Networks Introduction Let s Get Started! Networking today: Where are they? Powerful computers are cheap Networks are everywhere
Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet
Basic Networking Concepts 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet 1 1. Introduction -A network can be defined as a group of computers and other devices connected
Requirements of Voice in an IP Internetwork
Requirements of Voice in an IP Internetwork Real-Time Voice in a Best-Effort IP Internetwork This topic lists problems associated with implementation of real-time voice traffic in a best-effort IP internetwork.
2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring
2057-15 First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 7-25 September 2009 TCP/IP Networking Abhaya S. Induruwa Department
Building a Highly Available and Scalable Web Farm
Page 1 of 10 MSDN Home > MSDN Library > Deployment Rate this page: 10 users 4.9 out of 5 Building a Highly Available and Scalable Web Farm Duwamish Online Paul Johns and Aaron Ching Microsoft Developer
Simple Network Management Protocol
A Seminar Report on Simple Network Management Protocol Submitted in partial fulfillment of the requirement for the award of degree Of Computer Science SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org
The OSI Model and the TCP/IP Protocol Suite
The OSI Model and the TCP/IP Protocol Suite To discuss the idea of multiple layering in data communication and networking and the interrelationship between layers. To discuss the OSI model and its layer
