Internet Connectivity with

Size: px
Start display at page:

Download "Internet Connectivity with"

Transcription

1 Internet Connectivity with Introduction The purpose of this workshop is to help you g et acquainted with the basics of internet connectivity by leveraging ARM mbed tools. If you are not already familiar with these tools check out the Getting Started with mbed doc. In this workshop, we will approach internet connectivity from a product development perspective. To this end we will cover the existing standards, how TCP/UDP work, and how to make the most of an internet-enabled system. The prerequisites for this class are having an mbed enabled board with an internet capable interface (Ethernet, WiFi, etc) and an internet connection. The slides that accompany this document can be found here Here is a permalink to this document in case you are viewing it offline: Table of Contents: Introduction Network Layers Berkley Sockets Types of Sockets UDP UDP Example Server Code: Client code: TCP TCP Example Server code: Client code: Protocols HTTP What is it? Benefits: Issues: Example: GET Request Request Response Websockets What is it? Benefits: Issues:

2 Network Layers The entirety of the internet is based on the OSI seven layer networking model. This model specifies how the internet works, from the highest application level (7) with a web application to the lowest level (1) where the bits are twiddles across at the physical level. In general the seven layers can be simplified as below. Layers 1 4 will get lumped together into the Data Transport Layer. This part of the model is comprised of drivers for the device and is either hard coded in hardware or provided by the vendor of the device. As a developer you should almost never have to worry about this space. If you do wind up in this area it will usually be to port a pre existing driver with minimal changes. Levels 5 7 are the Application Layers where web servers, web pages, applications and all the use cases for technology live.

3 Berkley Sockets The Berkeley Socket API is an abstraction layer that sits between layers four and five and acts as a standard interface between them. This allows for the application layer and the data transport layer to be modular, in turn allowing high level applications to be written without needing to know how to use Ethernet, cellular or WiFi; each side interfaces to the Berkeley Socket API and doesn't care about what is on the other side. It just works. The Berkeley Socket abstraction has a few well defined function calls. Some functions are only used for TCP while others are only used for UDP. Some are only used by servers, some are only used by clients. The list below is not a full list of the Berkeley Socket API. For the full list see here. Accept() creates a socket for a new connection. Bind() associates a socket with a local endpoint. Close() closes a socket connection and releases any associated resources. Connect() establishes a connection to a remote host. Listen() allows a socket to listen for incoming connections. Send_to() sends data to an unbound socket. Send_all() sends data to a bound socket. Receive() receives data from an unbound socket. Receive_all() receives data from a bound socket and pushes the data into a buffer array.

4 Types of Sockets The Berkeley Socket Interface is designed to work with either Unix sockets or TCP/UDP sockets. Unix sockets are only used inside a computer for sharing information between threads or programs, so for the purposes of this document we will only be discussing TCP/UDP sockets that allow you to talk to remote resources (ie the internet). Both TCP and UDP have their own advantages and disadvantages depending on the type of application. UDP UDP is a stateless protocol, which means it does not remember what its last action was. It sends the packet and forgets about it no checking the packets for delivery or the order in which they arrive. This means that the UDP header is simple and the transaction is faster, but has no guarantee of delivery or data integrity. UDP is good for high throughput transfers like video streaming because you don t care if every single packet makes it there, a certain amount of packet loss is expected and corrected for on the other end with algorithms. In UDP, the transactions are as follows: 1. Server side: create socket and bind to port. 2. Server listens to bound socket for connection. 3. Client sends data to remote port on server. 4. Server receives data. 5. Server sends data back to client (optional). 6. Client receives data from server (optional, would need to bind to a socket to receive). 7. Close the socket.

5 A standard UDP transaction can be seen below: It is worth noting that if you want to receive data from a socket on a given port you must bind the socket to that port. This is why the server side had a bind; it would be necessary on the client as well if it wished to receive data. UDP Example This example demonstrates a server client connection over UDP. Server Code: The source code for this example can be found here: Start off by including the necessary header files and defining your server port: #include "mbed.h" #include "EthernetInterface.h" #define ECHO_SERVER_PORT 7 In the main program, declare objects for your Ethernet interface, then initialize and connect: int main ( void ) { EthernetInterface eth ;

6 eth. init (); //UseDHCP eth. connect (); printf ( "\nserveripaddressis%s\n", eth. getipaddress ()); Declare the UDP socket object and bind it to the previously declared server port. Declare an endpoint client: UDPSocket server ; server. bind ( ECHO_SERVER_PORT ); Endpoint client; Create a 256 byte character buffer and store the packets coming from the client using receivefrom socket method: char buffer [ 256 ]; while ( true ) { printf ( "\nwaitingforudppacket...\n" ); int n = server. receivefrom ( client, buffer, sizeof ( buffer )); buffer [ n ] = '\0'; Print out the contents of the packets until the transfer is complete: } } printf ( "Receivedpacketfrom:%s\n", client. get_address ()); printf ( "Packetcontents:'%s'\n", buffer ); printf ( "SendingPacketbacktoClient\n" ); server. sendto ( client, buffer, n ); To test this with a partner, have them load the client code to test your UDP connection. Else, you can load the python script below onto your PC: import socket ECHO_SERVER_ADDRESS = ' ' ECHO_PORT = 7 sock = socket. socket ( socket. AF_INET, socket. SOCK_DGRAM ) sock. sendto ( "HelloWorld\n", ( ECHO_SERVER_ADDRESS, ECHO_PORT ))

7 response = sock. recv ( 256 ) sock. close () print response Client code: This example is based on playing the client in the UDP socket relationship. The source code for this example can be found here: Start with the appropriate header files: #include "mbed.h" #include "EthernetInterface.h" Define the server address and the server port: const char * ECHO_SERVER_ADDRESS = " " ; const int ECHO_SERVER_PORT = 7; Declare the Ethernet interface object, initialize it and start a connection: int main () { EthernetInterface eth ; eth. init (); //UseDHCP eth. connect (); printf ( "\nclientipaddressis%s\n", eth. getipaddress ()); Declare the object for the UDP socket and initialize it: UDPSocket sock ; sock. init (); Declare the endpoint for the server and use it to set the server address: Endpoint echo_server ; echo_server. set_address ( ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT );

8 Create a character buffer with the message you would like to send to the server and send it to the previously set address: char out_buffer [] = "HelloWorld" ; printf ( "Sending message'%s' toserver(%s)\n", out_buffer, ECHO_SERVER_ADDRESS ); sock. sendto ( echo_server, out_buffer, sizeof ( out_buffer )); Receive the echoed message in an additional buffer and print it out. char in_buffer [ 256 ]; int n = sock. receivefrom ( echo_server, in_buffer, sizeof ( in_buffer )); in_buffer [ n ] = '\0' ; printf ( "Receivedmessagefromserver:'%s'\n", in_buffer ); } sock. close (); while ( 1 ) {} eth. disconnect (); To test this with a partner, have them load the server code to test your UDP connection. Else, you can load the python script below onto your PC: import socket ECHO_PORT = 7 print 'ServerRunningat', socket. gethostbyname ( socket. gethostname ()) sock = socket. socket ( socket. AF_INET, socket. SOCK_DGRAM ) sock. bind (( '', ECHO_PORT )) while True : print "waitingforudpdatapacket..." data, address = sock. recvfrom ( 256 ) print "Receivedpacketfrom", address, "withdata", data print "Sending packetbacktoclient" sock. sendto ( data, address) TCP Unlike UDP, TCP is a stateful protocol, which means that the protocol will error check for packets in the wrong order and any packets that didn t make it. This makes for a denser overhead and a longer time for transaction (because it has to resend every packet that

9 doesn t make it before it will allow the next one to proceed). This is best for applications where you need to guarantee the integrity of the data and the time is less critical. All HTTP transactions are based on TCP because it guarantees the web page is delivered to the user. The socket transactions are as follows: Server: 1. Create the TCP socket. 2. Bind the socket to a port number. 3. Wait for or/ accept a connection. 4. Wait for or send a message. 5. Continue until end of file notification. 6. Close the socket. Client: 1. Create a TCP socket. 2. Connect to server. 3. Wait for or send a message. 4. Close the connection.

10 Here is an example diagram of the TCP socket interaction: TCP Example This example demonstrates a server client connection over TCP. Server code: This example is based on playing the server in the TCP socket relationship. The source code for this example can be found here: p_source.html Include the relevant headers and define the server port that will be used: #include "mbed.h" #include "EthernetInterface.h"

11 #define ECHO_SERVER_PORT 7 In the main program, declare the Ethernet interface object, initialize it and connect: int main ( void ) { EthernetInterface eth ; eth. init (); //UseDHCP eth. connect (); printf ( "\nserveripaddressis%s\n", eth. getipaddress ()); Declare the socket server object, bind it to the previously set port, and start listening for connections: TCPSocketServer server ; server. bind ( ECHO_SERVER_PORT ); server. listen (); Wait for a new connection, declare the socket connection object and accept the connection: while ( true ) { printf ( "\nwaitfornewconnection...\n" ); TCPSocketConnection client ; server. accept ( client ); client. set_blocking ( false, 1500 ); // Timeoutafter(1.5)s Establish a character buffer to capture the incoming data: printf ( "Connectionfrom:%s\n", client. get_address ()); char buffer [ 256 ]; while ( true ) { int n = client. receive ( buffer, sizeof ( buffer )); if ( n <= 0 ) break ; // printreceivedmessagetoterminal buffer [ n ] = '\0' ; printf ( "ReceivedmessagefromClient:'%s'\n", buffer ); Reverse the message to be sent back to the client:

12 //reversethemessage char temp ; for ( int f = 0, l = n - 1 ; f < l ; f ++, l --){ temp = buffer [ f ]; buffer [ f ] = buffer [ l ]; buffer [ l ] = temp ; } Print out the new message and send it to the client: // printreversedmessagetoterminal printf ( "SendingmessagetoClient:'%s'\n", buffer ); } // Echoreceivedmessagebacktoclient client. send_all ( buffer, n ); if ( n <= 0 ) break ; Now that everything is complete for this transaction, close the connection: } } client. close (); If you have no one else for the client, run this python script on your PC to complete the test: import socket ECHO_SERVER_ADDRESS = " " ECHO_PORT = 7 message = 'Hello, world' s = socket. socket ( socket. AF_INET, socket. SOCK_STREAM ) s. connect (( ECHO_SERVER_ADDRESS, ECHO_PORT )) print 'Sending', repr ( message ) s. sendall ( message ) data = s. recv ( 1024 ) s. close () print 'Received', repr ( data) Client code: As before, make sure to include the important headers:

13 #include "mbed.h" #include "EthernetInterface.h" Set the server address and the server port: const char * ECHO_SERVER_ADDRESS = " " ; const int ECHO_SERVER_PORT = 7; In the main program, declare the Ethernet interface object, initialize it and connect: int main () { EthernetInterface eth ; eth. init (); //UseDHCP eth. connect (); printf ( "\nclientipaddressis%s\n", eth. getipaddress ()); Declare the object for the socket connection and set a loop to wait for a connection with the server: // ConnecttoServer TCPSocketConnection socket ; while ( socket. connect ( ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT ) < 0 ) { printf ( "Unabletoconnectto(%s) onport(%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT ); wait ( 1 ); } printf ( "ConnectedtoServerat%s\n", ECHO_SERVER_ADDRESS ); Now that the connection is secure, set a character string for a message of your choice and send it over the socket: // Sendmessagetoserver char hello [] = "HelloWorld" ; printf ( "Sending messagetoserver:'%s'\n", hello ); socket. send_all ( hello, sizeof ( hello ) - 1 ); Create a character buffer and use the receive socket method to collect the incoming bytes: // Receivemessagefromserver char buf [ 256 ];

14 int n = socket. receive ( buf, 256 ); buf [ n ] = '\0' ; printf ( "Receivedmessagefromserver:'%s'\n", buf ); Close the connection at this point: //Cleanup socket. close (); eth. disconnect (); } while ( true ) {} If you have no one else for the server, run this python script on your PC to complete the test: import socket print 'ServerRunningat', socket. gethostbyname ( socket. gethostname ()) s = socket. socket ( socket. AF_INET, socket. SOCK_STREAM ) s. bind (( '', 7 )) s. listen ( 1 ) while True : conn, addr = s. accept () print 'Connectedby', addr while True : data = conn. recv ( 1024 ) if not data : break conn. sendall ( data ) conn. close () Protocols A level up the abstraction ladder are the application layers where protocols live. Internet protocols build on the Berkeley Socket abstraction and use either TCP or UDP (in most cases). Protocols can be built independent of hardware considerations, and will then run on any hardware that pairs to the socket abstraction. HTTP What is it? HTTP, the Hyper Text Transfer Protocol, is a stateless method for transferring data across TCP. It works by having the client send a request header to the server, then the server

15 responds with the status, more headers, and the content payload. Then the connection is closed. This is done for every resource: open, send, close. So, for example, if you have a webpage with ten resources there will be ten different HTTP requests, each one opening its own socket. Benefits: TCP based. Widely used. Stateless (open, grab, close). Request and response. Issues: Bulky (1KB 1MB). Implementation varies. Every resource requires a new connection. Example: GET Request This is an example of a GET request to an HTTP server. It demonstrates the content being sent back and forth for a simple web page load. It is meant to give you an understanding of the complexity involved in even a simple HTTP exchange. Take note of how big some of the data fields can become, and think about how you would implement that on an embedded system. Request Here we will be sending data to the server to request something. In this case it is a GET request of the web page hosted at mbed.org.

16 Send request Type: GET using HTTP 1.1: GET / HTTP / 1.1 Request headers: Host : mbed. org User - Agent : Mozilla / 5.0 Gecko / Firefox / 37.0 Accept : text / html, application / xhtml + xml, application / xml ; q = 0.9,* /*;q=0.8 Accept - Language : en - US, en ; q = 0.5 Accept - Encoding : gzip, deflate DNT : 1 Cookie : messages =...// removedduetosizecontraints Connection : keep - alive There is no payload being sent with this request. GET requests do not have payloads, but POST requests do. Response The response from the server is displayed below. The server responds with the HTTP version number and the status, which in this case is 200 OK meaning it is a valid request and here is the response : HTTP / OK Other valid responses are 404 not found, 401 redirects, 500 server timeouts etc. Response headers are then sent. The response headers in this case list various things like cookie updates, content type and connection type:. Server : nginx / Date : Wed, 06 May : 23 : 03 GMT Content - Type : text / html ; charset = utf -8 Content - Length : 8429 Connection : keep - alive Vary : Cookie, Accept - Language, Accept - Encoding Content - Language : en Set - Cookie : csrftoken = 2r4hBeRBW5vEwMSZKduhPY6unHKs4NZN ; expires = Wed, 04 - May : 23 : 03

17 GMT ; Max - Age = ; Path =/ Content - Encoding : gzip X - Upstream - L3 : : 8090 X - Upstream - L2 : wcd nginx Response payload is included at the bottom of the response. In the case of a webpage this is the HTML data that represents the webpage. In the case of APIs this would be a JSON formatted data section: <HTMLResponsePayload>... Websockets What is it? Websockets are a type of upgraded HTTP/TCP connection that essentially allows for a real time pipe of data to be created between the client and server. Websockets are useful for embedded systems because once established they allow you to send and receive data to the server as if it were another peripheral. For real time sensor data such as location it is imperative to have a low latency; websockets provides this along with guaranteed connections. A websocket will start life as an HTTP connection, then send an upgrade request that will switch the connection into a bi directional TCP pipe. A Websocket connection can be closed by either side.

18 Benefits: TCP based, port 80 meaning the protocol is secure. Live connection in other words, instead of having to open up a new connection for every pair, the same initial connection can be used for the duration of the conversation, saving overhead and time. Server client the client and the server communicate both ways in the communication. Native support (web browser), Real time. Issues: Inconsistent implementation between browsers and servers. Scalability. In general, websockets are a great solution for getting embedded data to a remote server in real time. They have a relatively low overhead and open up a bi directional pipe that is easy to use. The one thing to keep in mind is that each websocket you open is a new TCP connection, which means each device will require a persistent socket connection to the server to operate. This is not an issue when you have fewer than 10,000 devices, but at a certain point you are going to start overloading the server. This can be alleviated by using a distributed server model or by switching to a different protocol.

CSC209H Lecture 9. Dan Zingaro. March 11, 2015

CSC209H Lecture 9. Dan Zingaro. March 11, 2015 CSC209H Lecture 9 Dan Zingaro March 11, 2015 Socket Programming (Kerrisk Ch 56, 57, 59) Pipes and signals are only useful for processes communicating on the same machine Sockets are a general interprocess

More information

A Client-Server Exchange

A Client-Server Exchange Socket programming A Client-Server Exchange A server process and one or more client processes Server manages some resource. Server provides service by manipulating resource for clients. 1. Client sends

More information

Socket Programming for TCP and UDP

Socket Programming for TCP and UDP CSCI4430 Data Communication and Computer Networks Socket Programming for TCP and UDP ZHANG, Mi Jan. 19, 2017 Outline Socket Programming for TCP Introduction What is TCP What is socket TCP socket programming

More information

9th Slide Set Computer Networks

9th Slide Set Computer Networks Prof. Dr. Christian Baun 9th Slide Set Computer Networks Frankfurt University of Applied Sciences WS1718 1/49 9th Slide Set Computer Networks Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

More information

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E.

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. UNIX Sockets Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. Socket and Process Communication application layer User Process Socket transport layer (TCP/UDP) network layer (IP)

More information

SOCKET. Valerio Di Valerio

SOCKET. Valerio Di Valerio SOCKET Valerio Di Valerio The Problem! Communication between computers connected to a network Network Network applications! A set of processes distributed over a network that communicate via messages!

More information

A set of processes distributed over a network that communicate via messages. Processes communicate via services offered by the operating system

A set of processes distributed over a network that communicate via messages. Processes communicate via services offered by the operating system SOCKET Network applications A set of processes distributed over a network that communicate via messages Ex: Browser Web, BitTorrent, ecc Processes communicate via services offered by the operating system

More information

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100 NAME: Login name: Computer Science 461 Midterm Exam March 10, 2010 3:00-4:20pm This test has five (5) questions. Put your name on every page, and write out and sign the Honor Code pledge before turning

More information

EECS122 Communications Networks Socket Programming. Jörn Altmann

EECS122 Communications Networks Socket Programming. Jörn Altmann EECS122 Communications Networks Socket Programming Jörn Altmann Questions that will be Addressed During the Lecture What mechanisms are available for a programmer who writes network applications? How to

More information

Interprocess Communication Mechanisms

Interprocess Communication Mechanisms Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name

More information

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name

More information

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick

More information

CSE 461: Computer Networks John Zahorjan Justin Chan Rajalakshmi Nandkumar CJ Park

CSE 461: Computer Networks John Zahorjan Justin Chan Rajalakshmi Nandkumar CJ Park CSE 461: Computer Networks John Zahorjan zahorjan@cs Justin Chan jucha@cs Rajalakshmi Nandkumar rajaln@cs CJ Park cjparkuw@cs Course Staff Grading Assignments/Projects/Homeworks: 55% Midterm: 15% Final:

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

Socket Programming. Omer Ozarslan

Socket Programming. Omer Ozarslan Socket Programming Omer Ozarslan omer@utdallas.edu 1 Outline Background Using TCP Example: hello_tcp Using UDP Example: hello_udp Blocking Calls and Threads Some Advises Code Examples Questions 2 Socket

More information

A programmer can create Internet application software without understanding the underlying network technology or communication protocols.

A programmer can create Internet application software without understanding the underlying network technology or communication protocols. CS442 Comer Networking API Chapter 3 Chapter three of the textbook presents an API to perform network programming in the C language. While this chapter does not cover everything about network programming,

More information

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary INTERNET ENGINEERING HTTP Protocol Sadegh Aliakbary Agenda HTTP Protocol HTTP Methods HTTP Request and Response State in HTTP Internet Engineering 2 HTTP HTTP Hyper-Text Transfer Protocol (HTTP) The fundamental

More information

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length)

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) File Systems 38 Memory-Mapped Files generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) mmap call returns the virtual address to which the file is mapped munmap call unmaps

More information

Socket Programming. #In the name of Allah. Computer Engineering Department Sharif University of Technology CE443- Computer Networks

Socket Programming. #In the name of Allah. Computer Engineering Department Sharif University of Technology CE443- Computer Networks #In the name of Allah Computer Engineering Department Sharif University of Technology CE443- Computer Networks Socket Programming Acknowledgments: Lecture slides are from Computer networks course thought

More information

Christian Tschudin (basierend auf einem Foliensatz von C. Jelger und T. Meyer) Departement Mathematik und Informatik, Universität Basel

Christian Tschudin (basierend auf einem Foliensatz von C. Jelger und T. Meyer) Departement Mathematik und Informatik, Universität Basel Internettechnologien (CS262) Socket Programming in C 4. März 2015 Christian Tschudin (basierend auf einem Foliensatz von C. Jelger und T. Meyer) Departement Mathematik und Informatik, Universität Basel

More information

Interprocess Communication

Interprocess Communication Interprocess Communication B.Ramamurthy CSE421 11/5/02 B.R 1 Topics Pipes (process level) Sockets (OS level) Distributed System Methods (Java s) Remote Method Invocation (PL Level) Other communication

More information

Transport Layer (TCP/UDP)

Transport Layer (TCP/UDP) Transport Layer (TCP/UDP) Where we are in the Course Moving on up to the Transport Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Recall Transport layer provides

More information

Socket Programming. CSIS0234A Computer and Communication Networks. Socket Programming in C

Socket Programming. CSIS0234A Computer and Communication Networks. Socket Programming in C 1 CSIS0234A Computer and Communication Networks Socket Programming in C References Beej's Guide to Network Programming Official homepage: http://beej.us/guide/bgnet/ Local mirror http://www.cs.hku.hk/~c0234a/bgnet/

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Overview. Exercise 0: Implementing a Client. Setup and Preparation Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple client server protocol. There are several differences, however. This time you will use the SOCK_DGRAM

More information

SOCKET PROGRAMMING. What is a socket? Using sockets Types (Protocols) Associated functions Styles

SOCKET PROGRAMMING. What is a socket? Using sockets Types (Protocols) Associated functions Styles LABORATORY SOCKET PROGRAMMING What is a socket? Using sockets Types (Protocols) Associated functions Styles 2 WHAT IS A SOCKET? An interface between application and network The application creates a socket

More information

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Overview. Exercise 0: Implementing a Client. Setup and Preparation Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple clientserver protocol. There are several differences, however. This time you will use the SOCK_DGRAM

More information

CS 43: Computer Networks. Layering & HTTP September 7, 2018

CS 43: Computer Networks. Layering & HTTP September 7, 2018 CS 43: Computer Networks Layering & HTTP September 7, 2018 Last Class: Five-layer Internet Model Application: the application (e.g., the Web, Email) Transport: end-to-end connections, reliability Network:

More information

CS321: Computer Networks Introduction to Application Layer

CS321: Computer Networks Introduction to Application Layer CS321: Computer Networks Introduction to Application Layer Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in Basic Application layer provides services to the

More information

Socket Programming. Dr. -Ing. Abdalkarim Awad. Informatik 7 Rechnernetze und Kommunikationssysteme

Socket Programming. Dr. -Ing. Abdalkarim Awad. Informatik 7 Rechnernetze und Kommunikationssysteme Socket Programming Dr. -Ing. Abdalkarim Awad Informatik 7 Rechnernetze und Kommunikationssysteme Before we start Can you find the ip address of an interface? Can you find the mac address of an interface?

More information

ECE697AA Lecture 2. Today s lecture

ECE697AA Lecture 2. Today s lecture ECE697AA Lecture 2 Application Layer: HTTP Tilman Wolf Department of Electrical and Computer Engineering 09/04/08 Protocol stack Application layer Client-server architecture Example protocol: HTTP Demo

More information

Application Layer Introduction; HTTP; FTP

Application Layer Introduction; HTTP; FTP Application Layer Introduction; HTTP; FTP Tom Kelliher, CS 325 Feb. 4, 2011 1 Administrivia Announcements Assignment Read 2.4 2.6. From Last Time Packet-switched network characteristics; protocol layers

More information

Tutorial on Socket Programming

Tutorial on Socket Programming Tutorial on Socket Programming Computer Networks - CSC 458 Department of Computer Science Hao Wang (Slides are mainly from Seyed Hossein Mortazavi, Monia Ghobadi, and Amin Tootoonchian, ) 1 Outline Client-server

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Programming with Network Sockets Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Sockets We ve looked at shared memory vs.

More information

Distributed Real-Time Control Systems. Module 26 Sockets

Distributed Real-Time Control Systems. Module 26 Sockets Distributed Real-Time Control Systems Module 26 Sockets 1 Network Programming with Sockets Sockets are probably the most widely used objects in programming networked communications. What is a socket? To

More information

Networked Applications: Sockets. End System: Computer on the Net

Networked Applications: Sockets. End System: Computer on the Net Networked Applications: Sockets Topics Programmer s view of the Internet Sockets interface End System: Computer on the Net Internet Also known as a host 2 Page 1 Clients and Servers Client program Running

More information

CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool

CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool Due: Monday 17 February. Electronic copy due at 10:30 A.M., Optional paper copy may be

More information

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers Networked Applications: Sockets CS 375: Computer Networks Spring 2009 Thomas Bressoud 1 Goals of Todayʼs Lecture Client-server paradigm End systems Clients and servers Sockets and Network Programming Socket

More information

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017 Distributed Systems 02. Networking Paul Krzyzanowski Rutgers University Fall 2017 1 Inter-computer communication Without shared memory, computers need to communicate Direct link Direct links aren't practical

More information

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng. CS 355 Computer Networking Wei Lu, Ph.D., P.Eng. Chapter 2: Application Layer Overview: Principles of network applications? Introduction to Wireshark Web and HTTP FTP Electronic Mail SMTP, POP3, IMAP DNS

More information

Network Programming in Python. based on Chun, chapter 2; plus material on classes

Network Programming in Python. based on Chun, chapter 2; plus material on classes Network Programming in Python based on Chun, chapter 2; plus material on classes What is Network Programming? Writing programs that communicate with other programs Communicating programs typically on different

More information

Network concepts introduction & wireshark. workshop

Network concepts introduction & wireshark. workshop Network concepts introduction & workshop @KirilsSolovjovs ISO/OSI+DoD model Topics for our workshop Network layer models Ethernet, WiFi Layer3: ARP, ICMP, IPv4, IPv6 Layer4: UDP, TCP Routing Application

More information

2/13/2014. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints

2/13/2014. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints Rensselaer Polytechnic Institute CSCI-4220 Network Programming David Goldschmidt, Ph.D. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints All

More information

Ports under 1024 are often considered special, and usually require special OS privileges to use.

Ports under 1024 are often considered special, and usually require special OS privileges to use. 1 2 Turns out that besides an IP address (used by the IP layer), there is another address that is used by TCP (stream sockets) and, coincidentally, by UDP (datagram sockets). It is the port number. It's

More information

Sockets 15H2. Inshik Song

Sockets 15H2. Inshik Song Sockets 15H2 Inshik Song Internet CAU www server (www.cau.ac.kr) Your web browser (Internet Explorer/Safari) Sockets 2 How do we find the server? Every computer on the Internet has an Internet address.

More information

Applications and Layered Architectures. Chapter 2 Communication Networks Leon-Garcia, Widjaja

Applications and Layered Architectures. Chapter 2 Communication Networks Leon-Garcia, Widjaja Applications and Layered Architectures Chapter 2 Communication Networks Leon-Garcia, Widjaja Network Architecture Architecture: Any design or orderly arrangement perceived by man. The goals of a network:

More information

Oral. Total. Dated Sign (2) (5) (3) (2)

Oral. Total. Dated Sign (2) (5) (3) (2) R N Oral Total Dated Sign (2) (5) (3) (2) Assignment Group- A_07 Problem Definition Write a program using TCP socket for wired network for following Say Hello to Each other ( For all students) File transfer

More information

The Fundamentals. Port Assignments. Common Protocols. Data Encapsulation. Protocol Communication. Tevfik Ko!ar

The Fundamentals. Port Assignments. Common Protocols. Data Encapsulation. Protocol Communication. Tevfik Ko!ar CSC 4304 - Systems Programming Fall 2008 Lecture - XXII Network Programming Tevfik Ko!ar Louisiana State University December 2 nd, 2008 1 The Fundamentals The Computer Systems Research Group (CSRG) at

More information

PROGRAMMING ASSIGNMENTS 3 & 4 TAO

PROGRAMMING ASSIGNMENTS 3 & 4 TAO PROGRAMMING ASSIGNMENTS 3 & 4 TAO INTRODUCTION Create network programs using Socket APIs Language is not limited C, Python, Java, Your program will interact with the CSE3300 server Server is hosted at

More information

Types (Protocols) Associated functions Styles We will look at using sockets in C Java sockets are conceptually quite similar

Types (Protocols) Associated functions Styles We will look at using sockets in C Java sockets are conceptually quite similar Socket Programming What is a socket? Using sockets Types (Protocols) Associated functions Styles We will look at using sockets in C Java sockets are conceptually quite similar - Advanced Data Communications:

More information

UNIX Sockets. COS 461 Precept 1

UNIX Sockets. COS 461 Precept 1 UNIX Sockets COS 461 Precept 1 Socket and Process Communica;on application layer User Process Socket transport layer (TCP/UDP) OS network stack network layer (IP) link layer (e.g. ethernet) Internet Internet

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science NETWORK PROGRAMMING CSC- 341 25 Instructor: Junaid Tariq, Lecturer, Department of Computer Science 26 9 Lecture Sockets as means for inter-process communication (IPC) application layer Client Process Socket

More information

Internet applications

Internet applications CSc 450/550 Computer Networks Worldwide Web Jianping Pan Summer 2006 5/18/06 CSc 450/550 1 Traditionally Internet applications remote login: e.g., telnet file transfer: e.g., FTP electronic mail: e.g.,

More information

Introduction to Lab 2 and Socket Programming. -Vengatanathan Krishnamoorthi

Introduction to Lab 2 and Socket Programming. -Vengatanathan Krishnamoorthi Introduction to Lab 2 and Socket Programming -Vengatanathan Krishnamoorthi Before we start.. Soft deadline for lab 2- February 13 Finish assignment 1 as soon as possible if you have not yet. Hard deadline

More information

HTTP TRAFFIC CONSISTS OF REQUESTS AND RESPONSES. All HTTP traffic can be

HTTP TRAFFIC CONSISTS OF REQUESTS AND RESPONSES. All HTTP traffic can be 3 HTTP Transactions HTTP TRAFFIC CONSISTS OF REQUESTS AND RESPONSES. All HTTP traffic can be associated with the task of requesting content or responding to those requests. Every HTTP message sent from

More information

The User Datagram Protocol

The User Datagram Protocol The User Datagram Protocol Stefan D. Bruda Winter 2018 UDP Very similar to the TCP in terms of API Dissimilar with TCP in terms of innards (and hence programming techniques) Many-to-many communication.

More information

Network Implementation

Network Implementation CS 256/456: Operating Systems Network Implementation John Criswell! University of Rochester 1 Networking Overview 2 Networking Layers Application Layer Format of Application Data Transport Layer Which

More information

Application Protocols and HTTP

Application Protocols and HTTP Application Protocols and HTTP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #0 due

More information

Computer Networks Prof. Ashok K. Agrawala

Computer Networks Prof. Ashok K. Agrawala CMSC417 Computer Networks Prof. Ashok K. Agrawala 2018Ashok Agrawala September 6, 2018 Fall 2018 Sept 6, 2018 1 Overview Client-server paradigm End systems Clients and servers Sockets Socket abstraction

More information

CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1

CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1 CSMC 412 Computer Networks Prof. Ashok K Agrawala 2015 Ashok Agrawala Set 2 September 15 CMSC417 Set 2 1 Contents Client-server paradigm End systems Clients and servers Sockets Socket abstraction Socket

More information

CSE 333 Section 8 - Client-Side Networking

CSE 333 Section 8 - Client-Side Networking CSE 333 Section 8 - Client-Side Networking Welcome back to section! We re glad that you re here :) Networking Quick Review What are the following protocols used for? (bonus: what layer of the networking

More information

CSCI-1680 WWW Rodrigo Fonseca

CSCI-1680 WWW Rodrigo Fonseca CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Scott Shenker and John Jannotti Precursors 1945, Vannevar Bush, Memex: a device in which an individual stores all his books, records, and

More information

CS UDP: User Datagram Protocol, Other Transports, Sockets. congestion worse);

CS UDP: User Datagram Protocol, Other Transports, Sockets. congestion worse); CS314-26 UDP: User Datagram Protocol, Other Transports, Sockets! IP is an unreliable datagram protocol " congestion or transmission errors cause lost packets " multiple routes may lead to out-of-order

More information

Network concepts introduction & wireshark

Network concepts introduction & wireshark Network concepts introduction & wireshark W0RKSH0P @KirilsSolovjovs Why am I doing this? Many people attending hacker conferences are not in fact experts, but come here to learn and have fun Opportunity

More information

Processes communicating. Network Communication. Sockets. Addressing processes 4/15/2013

Processes communicating. Network Communication. Sockets. Addressing processes 4/15/2013 Processes communicating Network Communication Process: program running within a host. within same host, two processes communicate using inter-process communication (defined by OS). processes in different

More information

Session NM056. Programming TCP/IP with Sockets. Geoff Bryant Process software

Session NM056. Programming TCP/IP with Sockets. Geoff Bryant Process software Session NM056 Programming TCP/IP with Sockets Geoff Bryant Process software Course Roadmap Slide 57 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server

More information

NWEN 243. Networked Applications. Layer 4 TCP and UDP

NWEN 243. Networked Applications. Layer 4 TCP and UDP NWEN 243 Networked Applications Layer 4 TCP and UDP 1 About the second lecturer Aaron Chen Office: AM405 Phone: 463 5114 Email: aaron.chen@ecs.vuw.ac.nz Transport layer and application layer protocols

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

Client/Server Computing & Socket Programming

Client/Server Computing & Socket Programming COMP 431 Internet Services & Protocols Client/Server Computing & Socket Programming Jasleen Kaur January 29, 2019 Application-Layer Protocols Overview Application-layer protocols define:» The types of

More information

CS 326: Operating Systems. Networking. Lecture 17

CS 326: Operating Systems. Networking. Lecture 17 CS 326: Operating Systems Networking Lecture 17 Today s Schedule Project 3 Overview, Q&A Networking Basics Messaging 4/23/18 CS 326: Operating Systems 2 Today s Schedule Project 3 Overview, Q&A Networking

More information

Kaazing Gateway: An Open Source

Kaazing Gateway: An Open Source Kaazing Gateway: An Open Source HTML 5 Websocket Server Speaker Jonas Jacobi Co-Founder: Kaazing Co-Author: Pro JSF and Ajax, Apress Agenda Real-Time Web? Why Do I Care? Scalability and Performance Concerns

More information

CLIENT-SIDE PROGRAMMING

CLIENT-SIDE PROGRAMMING CLIENT-SIDE PROGRAMMING George Porter Apr 11, 2018 ATTRIBUTION These slides are released under an Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Creative Commons license These slides

More information

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1 The HTTP protocol Fulvio Corno, Dario Bonino 08/10/09 http 1 What is HTTP? HTTP stands for Hypertext Transfer Protocol It is the network protocol used to delivery virtually all data over the WWW: Images

More information

Lecture 2. Outline. Layering and Protocols. Network Architecture. Layering and Protocols. Layering and Protocols. Chapter 1 - Foundation

Lecture 2. Outline. Layering and Protocols. Network Architecture. Layering and Protocols. Layering and Protocols. Chapter 1 - Foundation Lecture 2 Outline Wireshark Project 1 posted, due in a week Lab from a different textbook Work through the lab and answer questions at the end Chapter 1 - Foundation 1.1 Applications 1.2 Requirements 1.3

More information

CSE 461 Module 11. Connections

CSE 461 Module 11. Connections CSE 461 Module 11 Connections This Time More on the Transport Layer Focus How do we connect processes? Topics Naming processes Connection setup / teardown Flow control Application Presentation Session

More information

CPS 214: Computer Networks. Slides by Adolfo Rodriguez

CPS 214: Computer Networks. Slides by Adolfo Rodriguez CPS 214: Computer Networks Slides by Adolfo Rodriguez Paper Evaluations 1 page maximum evaluation of reading for each class Evaluations submitted in advance of class from course Web page Describe: Biggest

More information

LECTURE 10. Networking

LECTURE 10. Networking LECTURE 10 Networking NETWORKING IN PYTHON Many Python applications include networking the ability to communicate between multiple machines. We are going to turn our attention now to the many methods of

More information

Zero Latency HTTP The comet Technique

Zero Latency HTTP The comet Technique Zero Latency HTTP The comet Technique Filip Hanik SpringSource Inc Keystone, Colorado, 2008 Slide 1 Who am I bla bla fhanik@apache.org Tomcat Committer / ASF member Co-designed the Comet implementation

More information

The Application Layer: Sockets Wrap-Up

The Application Layer: Sockets Wrap-Up The Application Layer: Sockets Wrap-Up CSC 249 February 13, 2018 slides mostly from J.F Kurose and K.W. Ross,copyright 1996-2012 1 Overview qreview the Socket API vdefined for UNIX v Used by most operating

More information

The Application Layer: Sockets Wrap-Up

The Application Layer: Sockets Wrap-Up Overview The Application Layer: Sockets Wrap-Up CSC 249 February 13, 2017 qreview the Socket API v Defined for UNIX v Used by most operating systems qreview TCP and UDP examples and flow charts q Methods

More information

Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland

Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland t Your task Write a simple file server Client has to be implemented in Java Server has to be implemented

More information

Interprocess communication in shared memory systems. Interprocess communcation. Berkeley Sockets

Interprocess communication in shared memory systems. Interprocess communcation. Berkeley Sockets Interprocess communcation slide 1 slide 2 Interprocess communication in shared memory systems in Operating systems we find there are a number of mechanisms used for interprocess communication (IPC) the

More information

HTTP Server Application

HTTP Server Application 1 Introduction You are to design and develop a concurrent TCP server that implements the HTTP protocol in the form of what is commonly called a web server. This server will accept and process HEAD and

More information

CSE/EE 461 Lecture 14. Connections. Last Time. This Time. We began on the Transport layer. Focus How do we send information reliably?

CSE/EE 461 Lecture 14. Connections. Last Time. This Time. We began on the Transport layer. Focus How do we send information reliably? CSE/EE 461 Lecture 14 Connections Last Time We began on the Transport layer Focus How do we send information reliably? Topics ARQ and sliding windows Application Presentation Session Transport Network

More information

HTTP and Web Content Delivery

HTTP and Web Content Delivery HTTP and Web Content Delivery COS 461: Computer Networks Spring 2011 Mike Freedman hgp://www.cs.princeton.edu/courses/archive/spring11/cos461/ 2 Outline Layering HTTP HTTP conneclon management and caching

More information

UDP CONNECT TO A SERVER

UDP CONNECT TO A SERVER UDP The User Datagram Protocol Stefan D. Bruda Winter 2018 Very similar to the TCP in terms of API Dissimilar with TCP in terms of innards (and hence programming techniques) Many-to-many communication.

More information

Project 1: A Web Server Called Liso

Project 1: A Web Server Called Liso Project 1: A Web Server Called Liso 15-441/641 Computer Networks Kenneth Yang Viswesh Narayanan "What happens when you type google.com into your browser's address box and press enter?"... Establish a TCP

More information

Internet Technology 3/2/2016

Internet Technology 3/2/2016 Question 1 Defend or contradict this statement: for maximum efficiency, at the expense of reliability, an application should bypass TCP or UDP and use IP directly for communication. Internet Technology

More information

Socket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory

Socket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory Socket Programming Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2019 Networking Laboratory Contents Goals Client-Server mechanism Introduction to socket Programming with socket on

More information

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016 Internet Technology 06. Exam 1 Review Paul Krzyzanowski Rutgers University Spring 2016 March 2, 2016 2016 Paul Krzyzanowski 1 Question 1 Defend or contradict this statement: for maximum efficiency, at

More information

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation. Notes Midterm reminder Second midterm next week (04/03), regular class time 20 points, more questions than midterm 1 non-comprehensive exam: no need to study modules before midterm 1 Online testing like

More information

Light & NOS. Dan Li Tsinghua University

Light & NOS. Dan Li Tsinghua University Light & NOS Dan Li Tsinghua University Performance gain The Power of DPDK As claimed: 80 CPU cycles per packet Significant gain compared with Kernel! What we care more How to leverage the performance gain

More information

Programming with TCP/IP. Ram Dantu

Programming with TCP/IP. Ram Dantu 1 Programming with TCP/IP Ram Dantu 2 Client Server Computing Although the Internet provides a basic communication service, the protocol software cannot initiate contact with, or accept contact from, a

More information

CSC Systems Programming Fall Lecture - XV Network Programming - I. Tevfik Ko!ar. Louisiana State University. November 9 th, 2010

CSC Systems Programming Fall Lecture - XV Network Programming - I. Tevfik Ko!ar. Louisiana State University. November 9 th, 2010 CSC 4304 - Systems Programming Fall 2010 Lecture - XV Network Programming - I Tevfik Ko!ar Louisiana State University November 9 th, 2010 1 Network Programming 2 Sockets A Socket is comprised of: a 32-bit

More information

CS 428/528 Computer Networks Lecture 01. Yan Wang

CS 428/528 Computer Networks Lecture 01. Yan Wang 1 CS 428/528 Computer Lecture 01 Yan Wang 2 Motivation: Why bother? Explosive growth of networks 1989, 100,000 hosts on the Internet Distributed Applications and Systems E-mail, WWW, multimedia, distributed

More information

Lecture 8: February 19

Lecture 8: February 19 CMPSCI 677 Operating Systems Spring 2013 Lecture 8: February 19 Lecturer: Prashant Shenoy Scribe: Siddharth Gupta 8.1 Server Architecture Design of the server architecture is important for efficient and

More information

Systems software design NETWORK COMMUNICATIONS & RPC SYSTEMS

Systems software design NETWORK COMMUNICATIONS & RPC SYSTEMS Systems software design NETWORK COMMUNICATIONS & RPC SYSTEMS outline network programming BSD/POSIX Socket API RPC systems object-oriented bridges CORBA DCOM RMI WebServices WSDL/SOAP XML-RPC REST network

More information

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy Network Programming Samuli Sorvakko/Nixu Oy Telecommunications software and Multimedia Laboratory T-110.4100 Computer Networks October 5, 2009 Agenda 1 Introduction and Overview 2 Socket Programming 3

More information

Chapter 6. The Transport Layer. Transport Layer 3-1

Chapter 6. The Transport Layer. Transport Layer 3-1 Chapter 6 The Transport Layer Transport Layer 3-1 Transport services and protocols provide logical communication between app processes running on different hosts transport protocols run in end systems

More information