INTRODUCTION NETWORK SOCKETS

Size: px
Start display at page:

Download "INTRODUCTION NETWORK SOCKETS"

Transcription

1 INTRODUCTION Computer Network Programming allows information to be exchanged across and between networks. The primary connection point for this communication is known as a network socket or socket pair. Because computing platforms often vary from one end system device to the next, protocols have been developed to reconcile conflicts. The most commonly used protocol for network sockets is Transmission Control Protocol/Internet Protocol (TCP/IP) and the vast majority of network sockets in use are Internet Sockets (Wikipedia, Network Sockets). The primary Application Programming Interface (API) for Inter-Process Communication (IPC) is known as Berkeley Sockets (BSD) and all contemporary operating systems include some version of BSD. Berkeley Sockets originally began as a part of the proprietary Unix library in The library was released to the public in 1989 and by 1991, Microsoft was able to incorporate a Winsock version into the Windows OS. Other variations evolved over time including POSIX and a variation known as STREAMS for transport layer interface (TLI) is available today. (Wikipedia, Berkeley Sockets) For our project, we decided to create a couple of Internet socket pairs in Python to learn more about TCP socket programming and functionality. We chose Python because neither of us had worked with it before and we wanted to gain some experience in this area also. What we learned is that Python is an open source high-level programming language that s fast, flexible, easy- to- learn and simple- to- understand. It s an ideal scripting tool for preliminary programming models. Web developers often use it for prototyping because it requires considerably fewer lines of code allowing them to get products to the market much faster than otherwise possible. It s also compatible with such programming languages such as C, C++ and Java. In fact, versions of Python and Python language extension packages are available including CPython, Jython, and Cython (Wikipedia, Python_(programming_language). Many scientific communities such as NASA and the National Weather Service, educational institutions including the University of California at Irvine and the web-based companies Yahoo!, Google and Youtube make use of Python functionality (Python.org, Organizations Using Python). NETWORK SOCKETS There are some rudimentary functions that all web servers need to provide. These include creating the socket, binding it to the port and IP address, providing the server with the ability to listen for incoming client requests, enabling the client to make the connection to the server, allowing both server and client to send and receive messages, handling errors and providing a closing method. The following diagram illustrates the flow of function between the server and client.

2 While we were given a skeleton code for building our basic server prototype, we still needed to do some research in order to discover just how Python would be able to accomplish these objectives. It was surprisingly simple to locate various short coding examples, but that still left us with three main problems to resolve. These were: 1. Learning how the Python split methods worked so we could parse data from the message header. For a look at how accomplished this, see the section on Basic Socket Pair. 2. Deciding how we could best implement looping to allow us to process serial GET requests from the client without having to terminate and restart the connection each time. We discuss this in the section on Moduled Socket Pair. 3. Resolving an open port bug discovered during the testing phase of programming our sockets. This proved to be our biggest challenge during this exercise and we cover this in greater detail in the section on Simple Server. BASIC SOCKET PAIR We began creating a basic web server and client from the ground up in order to learn as much as possible about the fundamentals of TCP socket pairs. On the server side, creating the socket begins with initializing server socket with arguments for designating an IP address and port

3 number. Once we had done this, we passed the port number and bound it to the host (here: localhost). Next, we set the server to listen for requests. When a request is received, the server will then examine the file name to see if it is formatted according to html standard. If it s not formatted correctly, the server will adjust the file name so that it does (i.e. index.html ). This parsing is done using the splitmessage function shown in our code. We use a similar approach for extracting information from the request header. The coding for the client side was even simpler as it needed to allow the connection, take input for the file name request, send it properly formatted to the correct server. We set the maximum buffer size to 1024 bytes and allowed it to maintain the open connection until all bytes have been received. A close operation is then invoked for both the client and the server. We were able to get our server to send the requested html file fairly easily, but discovered quickly that there were several different ways in which the file data could be sent using Python methods. One method was to send one line at a time, which was our original approach so that we could observe how this worked. We immediately noticed problems as only one of browsers tested was able to receive the file properly. We then tried the send () method, but then learned that this left us with no way to know how many bytes were successfully received in the event that the transfer experienced a difficulty or interruption. We found that the sendall() method ensured that all bytes would be sent until the maximum buffer size was achieved. On testing, we again found that method was not working well on all browsers and so, we decided to use a for-loop that would run until it reached the end of the file. This approach worked the best

4 during all testing. Finally, we decided to implement the atexit method for closing the socket and are able to close both the socket by restarting the Python shell. The socket options are set to reuse the port address if it is open. While this isn t exactly the solution we had been hoping for, it was much better than what we had been working with so we considered this a success. MODULED SOCKET PAIR After more research, we decided to create a modilfied socket pair using modules. Modules allow the programmer to use file definitions (or scripts) as input for the interpreter. These can be accessed by either the main method or by other modules using the import statement. Being able to access pre-existing socket libraries is far more efficient than trying to re-code everything from the ground-up whenever you want to create a socket pair. Our moduled client uses the import statement to access the http library in order to handle request formatting and general socket functions. We then added more detail to refine the parsing process for user input so that it can detect domain dot syntax and directory slash syntax. This allows us to make use of information across multiple browsing platforms. While we can still get an invalid url message on some requests, this seems to be a common outcome for all browsers.

5 We also set to work trying to find ways that the client can keep the connection to the server open until the user quits or enters a new server. Problems arose during this phase when a server instance crashed or got interrupted and we experienced the port-still-in-use problem. This has to do with the TIME_WAIT state and is explained in section 2.7 of This had been an ongoing problem since we created the first socket pair. Up until this point, we had to keep changing the port # s in both server and client when something would go wrong such as a crash or premature termination and our initial scripting attempts to solve this bug had failed. When this error message occurs, the port is still open even though both client and server sockets have been closed. In this event, the only remedy is to restart Python. We developed a preliminary work-around for this by including code to keep the server running until the user enters control-c in the Python console. SIMPLE SERVER After still more research, we found some new ways to approach. The first approach involved attempting to add quit functionality for the server using the Python shell. Unfortunately, it still didn t work with a persistent server. Whenever we tried to obtained raw_input, the program would stop and wait. Then, we tried to put in a control-c method for stopping the program. This worked, but we still wanted more functionality.

6 At this point, we decided to code a third server version Simple Server incorporating the SimpleHTTPServer and SocketServer modules into our code. This was definitely a better approach as it allows for the handling secondary GET images requests from browsers, which is a real time-saver. RESULTS AND ANALYSIS While it is relatively easy to get a basic TCP/IP server and client coded in Python without a great deal of knowledge or experience working in the language, it is far easier to make use of the preexisting modules and libraries. Most of the functionality we have come to expect for Internet Protocol has already been created. Additionally, new browser versions come out presupposing that most people will be using these established methods. One important item not yet discussed is HTTP status code handling. Our code for Basic Server uses 200 OK and 404 Not Found. After looking around at the research and comparing our base code with other examples, we decided this was a good place to begin. We had success in getting our Basic Server to close on a 404 Not Found error. When we compare the three server versions, we see that the Simple Server is far and away the most functional. It allows us to better parse information being sent from client to server as well as provides a way to reuse the same connection for multiple exchanges between users. Furthermore, we are able to take raw input directly from the client so that we can tailor the file transfer to meet the user s specific needs as well as giving us the ability to send multiple image

7 files in a single exchange. The next server in terms of ease of use is the moduled Server. This server uses the BaseHTTPServer module allowing you to handle HTTP GET requests. Specifically, the BaseHTTPRequest handler allows you to access variables useful for process both GET and POSTS. The most useful function is serve_forever (). Using this method, we can continue to use the server until there is a keyboard interrupt call to terminate the server. The other unique aspect of the moduled server is that we used it to learn more about Python. We explored the following using an if name == main statement block in order to make it increasingly moduled if we later desired. Again, our basic TCP server only provides bare bones functionality and is useful, though not as useable as the other two versions. On the client side, the most functional is our moduled client. This client connects with a default server connection. The client then gives the user options for input including a single file, a full URL with file, a file path, a file path on the current server and quit. For instance, the user enters a URL, then has the ability to navigate to another site and then stop the client. Codewise the client parses the user input by creating split lists for full path directories, splitting the first elements off the lists by dots in the event of domains, and then checking to see if the first element is htm or html. We also did some error checking by entering invalid user input. The client handles the information appropriately. Additionally, the client checks to see if there is a specific port as well as a re-assembling the file path. Of course, none of these features are found on our basic TCP server. LESSONS LEARNED In order to the run both the client and the server from the same end-device, you must open two separate Python shells. Then open the server in one instance and the client in another. Otherwise you would need to run a multi-threaded process, which doesn t make sense within the scope of this project. Python is a very efficient language for low-level network programming. There are many modules (libraries) available, which provide most of the common network programming functions and protocols. We feel that in most cases, these modules should be utilized rather than attempting to program these functions yourself. If you don t require functionality outside of routine network programming models, it doesn t make sense to try to re-invent the wheel except as a learning exercise. We learned that it s important to be able to manage port assignment and access. If a port number stays open even after the socket has been closed, you will get an error message, only one usage of each socket address is normally permitted. The work-arounds for this are not as straight-forward as one might think, as it requires reusing the open port rather than closing it.

8 It s critical to be able to handle this because the TIME_WAIT state is important, making sure that all of the data has gone through. From FAQs.org, A couple of points about the TIME_WAIT state. o The end that sends the first FIN goes into the TIME_WAIT state, because that is the end that sends the final ACK. If the other end's FIN is lost, or if the final ACK is lost, having the end that sends the first FIN maintain state about the connection guarantees that it has enough information to retransmit the final ACK. o Realize that TCP sequence numbers wrap around after 2**32 bytes have been transferred. Assume a connection between A.1500 (host A, port 1500) and B During the connection one segment is lost and retransmitted. But the segment is not really lost, it is held by some intermediate router and then re-injected into the network. (This is called a "wandering duplicate".) But in the time between the packet being lost & retransmitted, and then reappearing, the connection is closed (without any problems) and then another connection is established between the same host, same port (that is, A.1500 and B.2000; this is called another "incarnation" of the connection). But the sequence numbers chosen for the new incarnation just happen to overlap with the sequence number of the wanderingp0 duplicate that is about to reappear. (This is indeed possible, given the way sequence numbers are chosen for TCP connections.) Bingo, you are about to deliver the data from the wandering duplicate (the previous incarnation of the connection) to the new incarnation of the connection. To avoid this, you do not allow the same incarnation of the connection to be reestablished until the TIME_WAIT state terminates. Even the TIME_WAIT state doesn't complete solve the second problem, given what is called TIME_WAIT assassination. RFC 1337 has more details. o The reason that the duration of the TIME_WAIT state is 2*MSL is that the maximum amount of time a packet can wander around a network is assumed to be MSL seconds. The factor of 2 is for the round-trip. The recommended value for MSL is 120 seconds, but Berkeley-derived implementations normally use 30 seconds instead. This means a TIME_WAIT delay between 1 and 4 minutes. Solaris 2.x does indeed use the recommended MSL of 120 seconds. ( )

9 CITATIONS AND SOURCES FAQs.org. Ed. Vic Metcalf and Andrew Gierth. FAQ, 22 Jan Web. 3 Dec Stack Overflow. Close Server Socket on Quit Crash. N.p., 14 Oct Web. 1 Dec Stack Overflow. Python Binding Socket: "Address already in use". N.p., 14 Oct Web. 17 June Triajianto, Junian. "Simple HTTP Server and Client in Python." Code Project. N.p., 21 Sept Web. 1 Dec Wiki: HTML Parser. Python.org, 2 July Web. 30 Nov Wiki: Web Client Programming. Python.org, 2 July Web. 30 Nov Wiki: HTML Parser. Python.org, 2 July Web. 30 Nov Wiki: Organizations Using Python. Python.org, 2 July Web. 30 Nov Wikipedia. Berkeley Sockets. Wikipedia Foundation, n.d. Web. 30 Nov Wikipedia. Network Sockets. Wikipedia Foundation, n.d. Web. 30 Nov Wikipedia. Python_(programming_language). Wikipedia Foundation, n.d. Web. 30 Nov

10 APPENDIX #CS 336 Fall 2013 #Adam Callaway and Kathleen Bodi #Final Project - Python Web Server and Client #sockserver.py : Rudimentary TCP Server responding to HTTP GET requests #Version 1.4 #!/usr/bin/env python #import socket module from socket import * import atexit import sys #turn code into a modular function rather than a standalone program def main(): #Prepare a server socket serversocket = socket(af_inet, SOCK_STREAM) serversocket.setsockopt(sol_socket, SO_REUSEADDR, 1) serverport = 8000 serversocket.bind(('localhost',serverport)) serversocket.listen(1) #attemping to prevent port lockout on crash or bug def close_socket(): serversocket.close() atexit.register(close_socket) while True: #Establish the connection print ('Server is ready on port: '), serverport connectionsocket, addr = serversocket.accept() try: clientmessage = connectionsocket.recv(1024) message" #for debugging print "client message:: \n",clientmessage,"\n::end client #python splits string, assigns element 1 of array to var filename splitmessage = clientmessage.split() #for debugging print '\nsplitmessage::',splitmessage,'\n::end splitmessage' #get element 1 from the split (element 0 is 'GET') filename = splitmessage[1]

11 print filename if not filename[1:]: filename = '/index.html' element #opens a file using filename variable, split starting at 1st #presumably stripping the '/' off the start f = open(filename[1:]) #pass outputdata = f.read() print "Sending data: ",filename print outputdata #Send one HTTP header line into socket connectionsocket.send('\nhttp/ OK\n\n') #Send the content of the requested file to the client #sending it one line at a time for i in range (0, len(outputdata)): connectionsocket.send(outputdata[i]) #alternate method below #sendall instead of send, as the send() method is not guaranteed #to send all of the data you pass it and will simply return #the number of bytes that were successfully sent #reference: #connectionsocket.sendall(outputdata) connectionsocket.close() except IOError: #Send response message for file not found print "404 Not Found" connectionsocket.send('\http/ Not Found \n\n') #Close client socket print "Closing socket on port: ", serverport connectionsocket.close() break #redundant safety catch serversocket.close() if name == ' main ': main()

12 #CS 336 Fall 2013 #Adam Callaway and Kathleen Bodi #Final Project - Python Web Server and Client #sockclient.py : Rudimentary TCP HTTP Client: #opens socket to server, sends HTTP GET requests, prints data, closes socket #Version 1.5 #!/usr/bin/env python #import socket module from socket import * servername = ' ' serverport = 8000 clientsocket = socket(af_inet, SOCK_STREAM) clientsocket.connect((servername,serverport)) filename = raw_input('enter filename to GET (or \'quit\' to close server): ') clientsocket.send('get /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (filename, servername)) receiveddata = clientsocket.recv(1024) print receiveddata printstring = "" while len(receiveddata): printstring += receiveddata receiveddata = clientsocket.recv(1024) print printstring clientsocket.close()

13 #CS 336 Fall 2013 #Adam Callaway and Kathleen Bodi #Final Project - Python Web Server and Client #modserver.py : Rudimentary TCP Server responding to HTTP GET requests #uses Python's BaseHTTPServer module #Version 1.2 #!/usr/bin/env python from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer import BaseHTTPServer import os import time HOST_NAME = " " PORT_NUMBER = 8000 # class derived from BaseHTTPRequestHandler class BC_HTTPRequestHandler(BaseHTTPRequestHandler): # GET request handling def do_get(self): httpdir = '.' #default directory is same as server program try: #debugging print path print "requested file path: " + self.path if self.path == '/': self.path = '/index.html' if self.path.endswith('.html') or self.path.endswith('.htm'): sendfile = open(httpdir + self.path) #send the 200 OK message self.send_response(200) #send the header self.send_header("content-type", "text-html") self.end_headers() self.wfile.write(sendfile.read()) sendfile.close() return except IOError: self.send_error(404, 'The requested resource could not be found but may be available again in the future.') if name == ' main ': #start the server print "Attempting to Start Server..." server_class = BaseHTTPServer.HTTPServer httpd = server_class((host_name, PORT_NUMBER), BC_HTTPRequestHandler) #server has started

14 print"(",time.asctime(),")", "Started Server at %s:%s" % (HOST_NAME, PORT_NUMBER) print "Now handling HTTP requests. Use \'ctrl+c\' to stop server." try: httpd.serve_forever() except KeyboardInterrupt: #hit ctrl-c in console to stop server pass httpd.server_close() print "(",time.asctime(),")", "Stopped Server at %s:%s" % (HOST_NAME, PORT_NUMBER)

15 #CS 336 Fall 2013 #Adam Callaway and Kathleen Bodi #Final Project - Python Web Server and Client #modclient.py : Rudimentary TCP HTTP Client: #uses Python's httplib module #allows user to enter server name, file name, port number #Version 1.9 #!/usr/bin/env python import httplib import sys def main(): servername = ' ' serverport = '8000' filename = '' serverconnection = httplib.httpconnection(servername, serverport) while True: print "\nconnection open to server: %s on port: %s" % (servername, serverport) print "Your options for input are:" print " * a file to GET from current server (i.e. homepage.html)" print " * a complete URL to GET (i.e. print " * a new directory and/or file to GET on current server" print " (i.e. /sub1/info.html or /sub2/)" print " * nothing to GET the current server's default page (index.html)" print " * quit the client (quit)" userinput = raw_input("what would you like? ") if userinput == 'quit': print("quitting the HTTP client.") serverconnection.close() break #print "\n[> debug start userinput::\n",userinput,"\n::end userinput debug <]" splitinput = userinput.split('/') #print "\n[> debug start splitinput::\n",splitinput,"\n::end splitinput debug <]" dotsplit = splitinput[0].split('.') #print "\n[> debug start dotsplit::\n",dotsplit,"\n::end dotsplit debug <]" #user hit 'enter' for current server's default if userinput == "":

16 filename = "/index.html" #user entered an html filename elif splitinput[0].endswith('.html') or splitinput[0].endswith('.htm'): filename = splitinput[0] #user input splits to one entry and is not a domain or webpage elif len(splitinput) == 1 and len(dotsplit) == 1: print "\nerror: \'%s\' is not a valid server." % (splitinput[0]) continue #assume we have a new address of some sort else: #if input is not another directory on old server, close connection to old server if not userinput.startswith('/'): print "Closing connection to %s." % servername serverconnection.close() #check if there's a port specified portsplit = splitinput[0].split(':') #print "[> debug start portsplit::\n",portsplit,"\n::end portsplit debug <]" if len(portsplit) > 1: servername = portsplit[0] serverport = portsplit[1] else: servername = splitinput[0] serverport = '80' #if there's more than one piece to the filename path if len(splitinput) > 1: #stitch it back together filestring = '' #for each element in the split from the second to last for s in splitinput[1:]: filestring += '/' + s filename = filestring #print "\n[> debug servername: %s:%s <]" % (servername, serverport) #print "[> debug filename:", filename," <]" serverconnection = httplib.httpconnection(servername, serverport) serverconnection.request("get", filename) serverresponse = serverconnection.getresponse() print "\nhttp Response from %s: " % servername print "=========================================================="

17 print(serverresponse.status, serverresponse.reason) serverdata = serverresponse.read() print "\nhttp Data from %s:%s%s::" % (servername, serverport, filename) print "==========================================================" print(serverdata) print "==========================================================" print "::end of HTTP Data from %s:%s%s." % (servername, serverport, filename) if name == ' main ': main()

18 #CS 336 Fall 2013 #Adam Callaway and Kathleen Bodi #Final Project - Python Web Server and Client #simpserver.py : Rudimentary TCP Server responding to HTTP GET requests #uses Python's SimpleHTTPServer and SocketServer modules #Version 1.7 #!/usr/bin/env python import socket import SimpleHTTPServer import SocketServer import time HOST_NAME = ' ' PORT_NUMBER = 8000 #setting up socket to be reused #prevents TCP port lockout issue (TIME_WAIT) on crash or bug class SimpleServer(SocketServer.TCPServer): def server_bind(self): self.socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1) self.socket.bind(self.server_address) if name == ' main ': print "Attempting to Start Server..." Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SimpleServer((HOST_NAME, PORT_NUMBER), Handler) #server has started print"(",time.asctime(),")", "Started Server at %s:%s" % (HOST_NAME, PORT_NUMBER) print "Now handling HTTP requests. Use \'ctrl+c\' to stop server." try: httpd.serve_forever() except KeyboardInterrupt: #hit ctrl-c in console to stop server pass httpd.shutdown() print "(",time.asctime(),")", "Stopped Server at %s:%s" % (HOST_NAME, PORT_NUMBER)

The exam has 110 possible points, 10 of which are extra credit. There is a Word Bank on Page 8. Pages 7-8 can be removed from the exam.

The exam has 110 possible points, 10 of which are extra credit. There is a Word Bank on Page 8. Pages 7-8 can be removed from the exam. CS326e Spring 2014 Midterm Exam Name SOLUTIONS UTEID The exam has 110 possible points, 10 of which are extra credit. There is a Word Bank on Page 8. Pages 7-8 can be removed from the exam. 1. [4 Points]

More information

Lab 5: HTTP Web Proxy Server

Lab 5: HTTP Web Proxy Server Lab 5: HTTP Web Proxy Server In this lab, you will learn how web proxy servers work and one of their basic functionalities caching. Your task is to develop a small web proxy server which is able to cache

More information

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming

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

More information

APACHE WEB SERVER. Andri Mirzal, PhD N28-439-03

APACHE WEB SERVER. Andri Mirzal, PhD N28-439-03 APACHE WEB SERVER Andri Mirzal, PhD N28-439-03 Introduction The Apache is an open source web server software program notable for playing a key role in the initial growth of the World Wide Web Typically

More information

CPS221 Lecture: Layered Network Architecture

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:

More information

Apache Thrift and Ruby

Apache Thrift and Ruby Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and

More information

Python. Network. Marcin Młotkowski. 24th April, 2013

Python. Network. Marcin Młotkowski. 24th April, 2013 Network 24th April, 2013 1 Transport layer 2 3 4 Network layers HTTP, POP3, SMTP, FTP Transport layer TCP, UDP Internet User Datagram Protocol (UDP) Features of UDP Very easy Unreliable: no acknowledgment,

More information

Practice Fusion API Client Installation Guide for Windows

Practice Fusion API Client Installation Guide for Windows Practice Fusion API Client Installation Guide for Windows Quickly and easily connect your Results Information System with Practice Fusion s Electronic Health Record (EHR) System Table of Contents Introduction

More information

A Comparison of Programming Languages for Graphical User Interface Programming

A Comparison of Programming Languages for Graphical User Interface Programming University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange University of Tennessee Honors Thesis Projects University of Tennessee Honors Program 4-2002 A Comparison of Programming

More information

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed. Session Layer The session layer resides above the transport layer, and provides value added services to the underlying transport layer services. The session layer (along with the presentation layer) add

More information

Computer Networks/DV2 Lab

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)

More information

transmission media and network topologies client/server architecture layers, protocols, and sockets

transmission media and network topologies client/server architecture layers, protocols, and sockets Network Programming 1 Computer Networks transmission media and network topologies client/server architecture layers, protocols, and sockets 2 Network Programming a simple client/server interaction the

More information

DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES

DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES By Michael Crouse Dr. Errin W. Fulp, Ph.D., Advisor Abstract The increasingly high volume of users on the web and their use of web

More information

Life of a Packet CS 640, 2015-01-22

Life of a Packet CS 640, 2015-01-22 Life of a Packet CS 640, 2015-01-22 Outline Recap: building blocks Application to application communication Process to process communication Host to host communication Announcements Syllabus Should have

More information

An Introduction To The Web File Manager

An Introduction To The Web File Manager An Introduction To The Web File Manager When clients need to use a Web browser to access your FTP site, use the Web File Manager to provide a more reliable, consistent, and inviting interface. Popular

More information

Building a Multi-Threaded Web Server

Building a Multi-Threaded Web Server Building a Multi-Threaded Web Server In this lab we will develop a Web server in two steps. In the end, you will have built a multi-threaded Web server that is capable of processing multiple simultaneous

More information

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Author: Paul Seymer CMSC498a Contents 1 Background... 2 1.1 HTTP 1.0/1.1... 2 1.2 Password

More information

Transport Layer Protocols

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

More information

Introduction to Python

Introduction to Python 1 Daniel Lucio March 2016 Creator of Python https://en.wikipedia.org/wiki/guido_van_rossum 2 Python Timeline Implementation Started v1.0 v1.6 v2.1 v2.3 v2.5 v3.0 v3.1 v3.2 v3.4 1980 1991 1997 2004 2010

More information

StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes

StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes User Guide Rev A StreamServe Persuasion SP4StreamServe Connect for SAP - Business Processes User Guide Rev A SAP, mysap.com,

More information

LESSON 3.6. 98-366 Networking Fundamentals. Understand TCP/IP

LESSON 3.6. 98-366 Networking Fundamentals. Understand TCP/IP Understand TCP/IP Lesson Overview In this lesson, you will learn about: TCP/IP Tracert Telnet Netstat Reserved addresses Local loopback IP Ping Pathping Ipconfig Protocols Anticipatory Set Experiment with

More information

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address Objectives University of Jordan Faculty of Engineering & Technology Computer Engineering Department Computer Networks Laboratory 907528 Lab.4 Basic Network Operation and Troubleshooting 1. To become familiar

More information

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. 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

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

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 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

More information

Lab 4: Socket Programming: netcat part

Lab 4: Socket Programming: netcat part Lab 4: Socket Programming: netcat part Overview The goal of this lab is to familiarize yourself with application level programming with sockets, specifically stream or TCP sockets, by implementing a client/server

More information

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. G.Bianchi, G.Neglia, V.Mancuso

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. G.Bianchi, G.Neglia, V.Mancuso Lecture 2-ter. 2 A communication example Managing a HTTP v1.0 connection Managing a HTTP request User digits URL and press return (or clicks ). What happens (HTTP 1.0): 1. Browser opens a TCP transport

More information

A Tool for Evaluation and Optimization of Web Application Performance

A Tool for Evaluation and Optimization of Web Application Performance A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application

More information

Access Control: Firewalls (1)

Access Control: Firewalls (1) Access Control: Firewalls (1) World is divided in good and bad guys ---> access control (security checks) at a single point of entry/exit: in medieval castles: drawbridge in corporate buildings: security/reception

More information

Kiwi SyslogGen. A Freeware Syslog message generator for Windows. by SolarWinds, Inc.

Kiwi SyslogGen. A Freeware Syslog message generator for Windows. by SolarWinds, Inc. Kiwi SyslogGen A Freeware Syslog message generator for Windows by SolarWinds, Inc. Kiwi SyslogGen is a free Windows Syslog message generator which sends Unix type Syslog messages to any PC or Unix Syslog

More information

SWE 444 Internet and Web Application Development. Introduction to Web Technology. Dr. Ahmed Youssef. Internet

SWE 444 Internet and Web Application Development. Introduction to Web Technology. Dr. Ahmed Youssef. Internet SWE 444 Internet and Web Application Development Introduction to Web Technology Dr. Ahmed Youssef Internet It is a network of networks connected and communicating using TCP/IP communication protocol 2

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS FREQUENTLY ASKED QUESTIONS Secure Bytes, October 2011 This document is confidential and for the use of a Secure Bytes client only. The information contained herein is the property of Secure Bytes and may

More information

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP

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

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto [email protected] Luís Teixeira INESC Porto, Universidade Católica Portuguesa [email protected] Luís Corte-Real

More information

Chapter 6, The Operating System Machine Level

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

More information

SY0-201. system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users.

SY0-201. system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users. system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users. From a high-level standpoint, attacks on computer systems and networks can be grouped

More information

CS514: Intermediate Course in Computer Systems

CS514: Intermediate Course in Computer Systems : Intermediate Course in Computer Systems Lecture 7: Sept. 19, 2003 Load Balancing Options Sources Lots of graphics and product description courtesy F5 website (www.f5.com) I believe F5 is market leader

More information

How to test and debug an ASP.NET application

How to test and debug an ASP.NET application Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult

More information

GlobalSCAPE DMZ Gateway, v1. User Guide

GlobalSCAPE DMZ Gateway, v1. User Guide GlobalSCAPE DMZ Gateway, v1 User Guide GlobalSCAPE, Inc. (GSB) Address: 4500 Lockhill-Selma Road, Suite 150 San Antonio, TX (USA) 78249 Sales: (210) 308-8267 Sales (Toll Free): (800) 290-5054 Technical

More information

Web Browsing Examples. How Web Browsing and HTTP Works

Web Browsing Examples. How Web Browsing and HTTP Works How Web Browsing and HTTP Works 1 1 2 Lets consider an example that shows how web browsing and HTTP work. The example will cover a simple, but very common case. There are many more details of HTTP that

More information

Final Exam. Route Computation: One reason why link state routing is preferable to distance vector style routing.

Final Exam. Route Computation: One reason why link state routing is preferable to distance vector style routing. UCSD CSE CS 123 Final Exam Computer Networks Directions: Write your name on the exam. Write something for every question. You will get some points if you attempt a solution but nothing for a blank sheet

More information

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment? Questions 1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment? 4. When will a TCP process resend a segment? CP476 Internet

More information

Managing Users and Identity Stores

Managing Users and Identity Stores CHAPTER 8 Overview ACS manages your network devices and other ACS clients by using the ACS network resource repositories and identity stores. When a host connects to the network through ACS requesting

More information

String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivepacket.getaddress(); int port = receivepacket.

String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivepacket.getaddress(); int port = receivepacket. 164 CHAPTER 2 APPLICATION LAYER connection requests, as done in TCPServer.java. If multiple clients access this application, they will all send their packets into this single door, serversocket. String

More information

Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit

Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit Bug hunting Vulnerability finding methods in Windows 32 environments compared FX of Phenoelit The goal: 0day What we are looking for: Handles network side input Runs on a remote system Is complex enough

More information

Application Development with TCP/IP. Brian S. Mitchell Drexel University

Application Development with TCP/IP. Brian S. Mitchell Drexel University Application Development with TCP/IP Brian S. Mitchell Drexel University Agenda TCP/IP Application Development Environment Client/Server Computing with TCP/IP Sockets Port Numbers The TCP/IP Application

More information

Dove User Guide Copyright 2010-2011 Virgil Trasca

Dove User Guide Copyright 2010-2011 Virgil Trasca Dove User Guide Dove User Guide Copyright 2010-2011 Virgil Trasca Table of Contents 1. Introduction... 1 2. Distribute reports and documents... 3 Email... 3 Messages and templates... 3 Which message is

More information

Protocols and Architecture. Protocol Architecture.

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

More information

File Sharing. Peter Lo. CP582 Peter Lo 2003 1

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

More information

Division of Informatics, University of Edinburgh

Division of Informatics, University of Edinburgh CS1Bh Lecture Note 20 Client/server computing A modern computing environment consists of not just one computer, but several. When designing such an arrangement of computers it might at first seem that

More information

Implementing and testing tftp

Implementing and testing tftp CSE123 Spring 2013 Term Project Implementing and testing tftp Project Description Checkpoint: May 10, 2013 Due: May 29, 2013 For this project you will program a client/server network application in C on

More information

Objectives of Lecture. Network Architecture. Protocols. Contents

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

More information

Using TestLogServer for Web Security Troubleshooting

Using TestLogServer for Web Security Troubleshooting Using TestLogServer for Web Security Troubleshooting Topic 50330 TestLogServer Web Security Solutions Version 7.7, Updated 19-Sept- 2013 A command-line utility called TestLogServer is included as part

More information

Firewall Builder Architecture Overview

Firewall Builder Architecture Overview Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.

More information

Operating Systems Design 16. Networking: Sockets

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

More information

Python for Series 60 Platform

Python for Series 60 Platform F O R U M N O K I A Getting Started with Python for Series 60 Platform Version 1.2; September 28, 2005 Python for Series 60 Platform Copyright 2005 Nokia Corporation. All rights reserved. Nokia and Nokia

More information

Lesson: All About Sockets

Lesson: All About Sockets All About Sockets http://java.sun.com/docs/books/tutorial/networking/sockets/index.html Page 1 sur 1 The Java TM Tutorial Start of Tutorial > Start of Trail Trail: Custom Networking Lesson: All About Sockets

More information

Mobility Information Series

Mobility Information Series SOAP vs REST RapidValue Enabling Mobility XML vs JSON Mobility Information Series Comparison between various Web Services Data Transfer Frameworks for Mobile Enabling Applications Author: Arun Chandran,

More information

Chapter 6. About This Chapter. Before You Begin. Windows 2000 Naming Schemes. [Previous] [Next]

Chapter 6. About This Chapter. Before You Begin. Windows 2000 Naming Schemes. [Previous] [Next] [Previous] [Next] Chapter 6 R e s o l v i n g N e t w o r k H o s t N a m e s About This Chapter Both clients and servers on a network must resolve the user-friendly host names to the Internet Protocol

More information

Integrating the Internet into Your Measurement System. DataSocket Technical Overview

Integrating the Internet into Your Measurement System. DataSocket Technical Overview Integrating the Internet into Your Measurement System DataSocket Technical Overview Introduction The Internet continues to become more integrated into our daily lives. This is particularly true for scientists

More information

Connecting with Computer Science, 2e. Chapter 5 The Internet

Connecting with Computer Science, 2e. Chapter 5 The Internet Connecting with Computer Science, 2e Chapter 5 The Internet Objectives In this chapter you will: Learn what the Internet really is Become familiar with the architecture of the Internet Become familiar

More information

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 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

More information

EXTENDED FILE SYSTEM FOR F-SERIES PLC

EXTENDED FILE SYSTEM FOR F-SERIES PLC EXTENDED FILE SYSTEM FOR F-SERIES PLC Before you begin, please download a sample I-TRiLOGI program that will be referred to throughout this manual from our website: http://www.tri-plc.com/trilogi/extendedfilesystem.zip

More information

Network Technologies

Network Technologies Network Technologies Glenn Strong Department of Computer Science School of Computer Science and Statistics Trinity College, Dublin January 28, 2014 What Happens When Browser Contacts Server I Top view:

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

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

More information

Project Report on Implementation and Testing of an HTTP/1.0 Webserver

Project Report on Implementation and Testing of an HTTP/1.0 Webserver Project Report on Implementation and Testing of an HTTP/1.0 Webserver Christian Fritsch, Krister Helbing, Fabian Rakebrandt, Tobias Staub Practical Course Telematics Teaching Assistant: Ingo Juchem Instructor:

More information

Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008

Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008 Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008 Nature of Document: Guideline Product(s): IBM Cognos Express Area of Interest: Infrastructure 2 Copyright and Trademarks Licensed Materials

More information

TCP/IP and the Internet

TCP/IP and the Internet TCP/IP and the Internet Computer networking today is becoming more and more entwined with the internet. By far the most popular protocol set in use is TCP/IP (Transmission Control Protocol/Internet Protocol).

More information

BASIC CLASSWEB.LINK INSTALLATION MANUAL

BASIC CLASSWEB.LINK INSTALLATION MANUAL LINKS MODULAR SOLUTIONS BASIC CLASSWEB.LINK INSTALLATION MANUAL classweb.link installation Links Modular Solutions Pty Ltd Table of Contents 1. SYSTEM REQUIREMENTS 3 2. DATABASES 3 Standalone Links Database

More information

Lecture (02) Networking Model (TCP/IP) Networking Standard (OSI) (I)

Lecture (02) Networking Model (TCP/IP) Networking Standard (OSI) (I) Lecture (02) Networking Model (TCP/IP) Networking Standard (OSI) (I) By: Dr. Ahmed ElShafee ١ Dr. Ahmed ElShafee, ACU : Fall 2015, Networks II Agenda Introduction to networking architecture Historical

More information

Lecture 2. Internet: who talks with whom?

Lecture 2. Internet: who talks with whom? Lecture 2. Internet: who talks with whom? An application layer view, with particular attention to the World Wide Web Basic scenario Internet Client (local PC) Server (remote host) Client wants to retrieve

More information

Layered Architectures and Applications

Layered Architectures and Applications 1 Layered Architectures and Applications Required reading: Garcia 2.1, 2.2, 2.3 CSE 3213, Fall 2010 Instructor: N. Vlajic 2 Why Layering?! 3 Montreal London Paris Alice wants to send a mail to Bob and

More information

Building Applications Using Micro Focus COBOL

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.

More information

NAT TCP SIP ALG Support

NAT TCP SIP ALG Support The feature allows embedded messages of the Session Initiation Protocol (SIP) passing through a device that is configured with Network Address Translation (NAT) to be translated and encoded back to the

More information

20.12. smtplib SMTP protocol client

20.12. smtplib SMTP protocol client 20.12. smtplib SMTP protocol client The smtplib module defines an SMTP client session object that can be used to send mail to any Internet machine with an SMTP or ESMTP listener daemon. For details of

More information

pyownet Documentation

pyownet Documentation pyownet Documentation Release 0.10.0 Stefano Miccoli March 30, 2016 Contents 1 Contents 3 1.1 Introduction............................................. 3 1.2 Installation..............................................

More information

How to configure HTTPS proxying in Zorp 5

How to configure HTTPS proxying in Zorp 5 How to configure HTTPS proxying in Zorp 5 June 24, 2014 This tutorial describes how to configure Zorp to proxy HTTPS traffic Copyright 1996-2014 BalaBit IT Security Ltd. Table of Contents 1. Preface...

More information

Transport and Network Layer

Transport and Network Layer Transport and Network Layer 1 Introduction Responsible for moving messages from end-to-end in a network Closely tied together TCP/IP: most commonly used protocol o Used in Internet o Compatible with a

More information

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

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

More information

Lotus Sametime. FIPS Support for IBM Lotus Sametime 8.0. Version 8.0 SC23-8760-00

Lotus Sametime. FIPS Support for IBM Lotus Sametime 8.0. Version 8.0 SC23-8760-00 Lotus Sametime Version 8.0 FIPS Support for IBM Lotus Sametime 8.0 SC23-8760-00 Disclaimer THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE

More information

TOE2-IP FTP Server Demo Reference Design Manual Rev1.0 9-Jan-15

TOE2-IP FTP Server Demo Reference Design Manual Rev1.0 9-Jan-15 TOE2-IP FTP Server Demo Reference Design Manual Rev1.0 9-Jan-15 1 Introduction File Transfer Protocol (FTP) is the protocol designed for file sharing over internet. By using TCP/IP for lower layer, FTP

More information

2 Downloading Access Manager 3.1 SP4 IR1

2 Downloading Access Manager 3.1 SP4 IR1 Novell Access Manager 3.1 SP4 IR1 Readme May 2012 Novell This Readme describes the Novell Access Manager 3.1 SP4 IR1 release. Section 1, Documentation, on page 1 Section 2, Downloading Access Manager 3.1

More information

Introduction to Web Services

Introduction to Web Services Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies

More information

DevKey Documentation. Release 0.1. Colm O Connor

DevKey Documentation. Release 0.1. Colm O Connor DevKey Documentation Release 0.1 Colm O Connor March 23, 2015 Contents 1 Quickstart 3 2 FAQ 5 3 Release Notes 7 i ii DevKey Documentation, Release 0.1 Github PyPI Contents 1 DevKey Documentation, Release

More information

Modern snoop lab lite version

Modern snoop lab lite version Modern snoop lab lite version Lab assignment in Computer Networking OpenIPLab Department of Information Technology, Uppsala University Overview This is a lab constructed as part of the OpenIPLab project.

More information

Configuring and Integrating Oracle

Configuring and Integrating Oracle Configuring and Integrating Oracle The Basics of Oracle 3 Configuring SAM to Monitor an Oracle Database Server 4 This document includes basic information about Oracle and its role with SolarWinds SAM Adding

More information

Firewalls. Firewalls. Idea: separate local network from the Internet 2/24/15. Intranet DMZ. Trusted hosts and networks. Firewall.

Firewalls. Firewalls. Idea: separate local network from the Internet 2/24/15. Intranet DMZ. Trusted hosts and networks. Firewall. Firewalls 1 Firewalls Idea: separate local network from the Internet Trusted hosts and networks Firewall Intranet Router DMZ Demilitarized Zone: publicly accessible servers and networks 2 1 Castle and

More information

Collaboration Solution Helps Law Firm Bolster Relationships, Streamline Processes

Collaboration Solution Helps Law Firm Bolster Relationships, Streamline Processes Microsoft Office System Customer Solution Case Study Collaboration Solution Helps Law Firm Bolster Relationships, Streamline Processes Overview Country or Region: United States Industry: Professional Services

More information

RMCS Installation Guide

RMCS Installation Guide RESTRICTED RIGHTS Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (C)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS

More information

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code. Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...

More information

Security Correlation Server Quick Installation Guide

Security Correlation Server Quick Installation Guide orrelogtm Security Correlation Server Quick Installation Guide This guide provides brief information on how to install the CorreLog Server system on a Microsoft Windows platform. This information can also

More information

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]

More information

Spark ΕΡΓΑΣΤΗΡΙΟ 10. Prepared by George Nikolaides 4/19/2015 1

Spark ΕΡΓΑΣΤΗΡΙΟ 10. Prepared by George Nikolaides 4/19/2015 1 Spark ΕΡΓΑΣΤΗΡΙΟ 10 Prepared by George Nikolaides 4/19/2015 1 Introduction to Apache Spark Another cluster computing framework Developed in the AMPLab at UC Berkeley Started in 2009 Open-sourced in 2010

More information

Networking Test 4 Study Guide

Networking Test 4 Study Guide Networking Test 4 Study Guide True/False Indicate whether the statement is true or false. 1. IPX/SPX is considered the protocol suite of the Internet, and it is the most widely used protocol suite in LANs.

More information