Sockets and UDP. The second assignment at DAB

Storlek: px
Starta visningen från sidan:

Download "Sockets and UDP. The second assignment at DAB"

Transkript

1 Sockets and UDP The second assignment at DAB Jonas Lundberg/Ola Flygt Matematiska och systemtekniska institutionen, MSI Växjö universitet ( This assignment should be nished and handed in before December 20. Introduction The aim of this second assignment is to introduce the fundamentals of network programming using C. We start by introducing the concepts: application, port, endpoint, client-server model and socket. Our presentation of the various network related system calls is based on a simple implementation of an UDP echo client/server. The idea is to discuss the various calls as we come across them. We only give a short description of the system calls, further information can be found in the manual pages.

2 Applications, Ports and Endpoints TCP/IP is the name of a collection of protocols that, put together, makes it possible for two or more machines to communicate across a network. The precise functionality of each one of these protocols are specied in dierent RFCs (Request For Comment). The RFCs doesn't describe how the various protocols should be implemented (although some advice is given); they only specify the functionality. As a result, the software that constitutes the implementation of the TCP/IP protocols might vary among dierent manufacturers. The software implementation is in most cases a part of the operating system. That is the case for the UNIX machines here at MSI. We consider the TCP/IP protocols as a service provided by the operating system. Like any other services provided by the operating system, a user can only access them through various system calls. In order to separate the network related software that uses these system calls from the software that is a part of the operating system, we refer to them as applications. An application is therefore a program that uses the system calls provided by the operating system. There are several standard applications (e.g. TELNET and FTP) whose functionality also is specied by RFCs. In assignment 4 we will take a closer look (and implement) one them: The Trivial File Transfer Protocol (TFTP). In this assignment, and the next, we will prepare ourselves by implementing a few simple applications. In order to understand the term port in a networking context we must rst realize that communication across a network primarily takes part between applications, and not between machines. For example, if you at home use TELNET to contact a computer here at the university, then the communication is primarily between the TELNET application at home and the TELNET application at the university. It is quite possible to have a second communication channel open between the two machines that uses a dierent application (e.g. FTP). As a result, when we connect, we must not only specify what machine we want to contact, we must also specify what kind of application in the foreign machine we intend to use. This is where the port number comes into play. The port identies a single application. The application identication by ports has two parts; rst, by using a specic port number a user can determine what application on the foreign machine to contact. Secondly, the port number is necessary at the receiving end since it tells the machine how to handle incoming trac. That is, which of all the possible applications that should be used to interpret the incoming packet. (The process of identifying what protocols and applications to use, when a packet is received, is called demultiplexing.) The port number is a 16-bit integer ranging from 1 to All the numbers below 1024 are reserved for the standard applications. In the following table we list some of the standard applications and their corresponding port number. Application Port =========== ==== FTP 21 TELNET 23 SMTP 25 TFTP 69 HTTP 80 Every packet that travels across the Internet contains two port numbers. One that species the application at the receiving end (destination port) and one that species the application at the transmitting end (source port). The latter is necessary if a response is expected (which usually is the case). The port numbers are elds in the TCP or UDP header. Besides the port number, every packet also includes two IP addresses that uniquely identies the communicating machines. Since both port number and IP address are necessary to identify a unique application at a unique machine, both must be included in every packet that enters the Internet. The combination (IP address, port number) is called an endpoint. We can summarize the discussion above as: All communication across the Internet takes part between two endpoints. Each endpoint is speci- ed by an IP address and a port number. 1

3 The Client-Server model The client-server model of communication across a network separates the participating applications into two categories depending on whether the application is passively waiting for contact (the server) or if it actively initiates a contact (the client). Hence, it is the direction of initiative to make contact that determines whether an application should be considered as a client or a server. The client-server model is by far the most common way to organize the interacting parts in a distributed environment. Most of the applications we use daily are client applications. Whenever we use FTP to fetch a le or a document or when we use a web browser to read a HTML document, we are the one that initiates contact and thus, we act as a client in the communication process. The software that constitutes the client application is in principle simple compared to a server. It supports means to get in contact usually followed by one or more request/response cycles. In practice however; although the principles are straight forward, the amount of services and the exibility that users today demand from a client makes the design of a client a rather extensive project. Think of a web browser. The server on the other hand must constantly be prepared to accept a call and handle various request from dierent clients. Furthermore, the server must be able to handle several clients at the same time. In most application it is not acceptable that a single client blocks a server. For example, it is unacceptable that a client that uses FTP to communicate with a server blocks the server for other clients while it is connected. A server must therefore be able to communicate with many clients concurrently. We will look closer at dierent techniques to implement concurrency in assignment 3. A server should also be a somewhat robust construction that is capable of handle erroneous connections from a client. If a client crashes during a connection it is frustrating. However, the amount of work required for the user to make a new connection is most often not overwhelming. If, on the other hand, a server crashes, many users might be suering and it might take a while to get the server restarted again. For example, if the le server luc here at MSI stopped working, none of the students would be able to reach any of their les until the system administrator (Niklas Brandt) was contacted and had gured out how to restart the server. Finally, server software should also include some means to handle illegal intrusions and malicious use of the system's resources. Put together, the server software is usually much more complicated than the client software. 2

4 Introduction to Sockets We have earlier mentioned that the implementation of the TCP/IP protocols in most cases is a part of the operating system and that a user can only access these parts by certain system calls. The set of system calls can be considered as an interface between the applications and the operating system. Each system call is designed to perform a specic task. It is common to view the system calls as services provided by the operating system. The set of all system calls is referred to as the Application Program Interface (API) and they can be considered as a set of tools that a programmer can use to build applications. In Figure 1 we show the position of the API in a schematic picture. A1 A2 A3 A4 API UDP TCP IP Ethernet Internet Figur 1: A schematic picture showing four applications using the services provided by the operating system. The network API that we shall take a closer look at is the BSD UNIX Socket Interface that was developed at the University of California at Berkeley during the 1980s. It is by far the most commonly used interface for UNIX machines but one should be aware that other interfaces exist (e.g. TLI used by System V). Microsoft has developed an interface of their own (Winsock) that is similar to BSD. However, applications developed using the BSD socket interface on UNIX machines are in general not portable to Windows machines without some modications, and vice versa. Before we start to look at the various network related system calls that constitutes the BSD socket API, we must rst take a closer look at the so called socket. The traditional UNIX way to handle external units (e.g. disks, printers and modems) is to consider them as les that we can manipulate through le descriptors and system calls like open, read, write, and close. Whenever we want to access an external unit we start by calling open which generates a le descriptor through which we later can access the le associated with the unit. The le descriptor is an index to a table (the open le table) that contains pointers to the data structures that represent the various les that are open at the moment. When the people at Berkeley made the rst implementations of the TCP/IP protocols they wanted a design that, as far as possible, imitated the system with le descriptors. The ideal would be if we could send a UDP package the following way: fd = open(``/dev/udp'', O_RDWR,0); write(fd, buffert, strlen(buffert)); That is, in a way that is analogous to the way we open and write to an ordinary le in UNIX. The le /dev/udp represents the connection and contains endpoint information. However, that didn't work for several reasons. One problem is to handle servers that should be able to accept 3

5 calls from unknown clients. In the above model that would mean opening and reading from an unknown device le. The solution they came up with was the socket. A socket is an internal data structure that on creation (by a system call socket to be described later) only contains information regarding what transport protocol to be used. Additional information (endpoint information of the communicating applications) is added later on using the system calls bind and connect. A socket is a close relative to the le descriptors since both of them can be considered as communication channels or pipes through which communication between a process and an external unit takes place. In the socket case, the external unit represents a process at a (possibly foreign) machine. It is also treated in a way that is similar to le descriptors by the operating system. Once a socket has been created it can be used by a server waiting for an Open File Table Socket Data Structure family: PF_INET service: SOCK_DGRAM local!p: remote IP: local port: remote port: n More fields with options Figur 2: Conceptual operating system data structures after a call to socket. incoming call (a passive socket where only the endpoint information of the server is stored in the socket), or by a client to initiate a connection (an active socket where the endpoint information of both parties is stored in the socket). In the next section we will show how to use sockets. A Simple Echo Client In this section some of the most common system calls related to network programming will be presented. We start with a simple application and discuss the various calls as we come across them. The rst example is a so called echo client. All it does is to send and receive a UDP package to a specic endpoint that is passed as a parameter in the program call. After it has received the package it checks if the sent and received packages are identical. The program doesn't work properly on its own, it requires a second application (an echo server) that mirrors (or echos) every packet it receives. The echo server will be presented in the next section. /* udp_echo_client.c A simple echo client with no error handling */ #include <stdio.h> #include <stdlib.h> /* atoi */ #include <string.h> /* strcpy, strcmp */ #include <unistd.h> /* read, write, close */ #include <sys/types.h> /* socket, connect, bind */ #include <sys/socket.h> /* socket, connect, bind */ #include <netinet/in.h> /* htons */ #include <netdb.h> /* hostent, gethostbyname */ #define BUFSIZE 1024 #define MYPORT 0 /* Zero means auto-choice */ #define MSG "An Echo Message!" /* Echo-message */ 4

6 void main(int argc, char *argv[]) { int sockfd, numbytes; char buf[bufsize]; struct sockaddr_in myaddr; /* local endpoint */ struct sockaddr_in theiraddr; /* remote endpoint */ struct hostent *he; if (argc!= 3) { fprintf(stderr,"usage: %s server_name port\n",argv[0]); exit(1); /* Create socket */ sockfd = socket(pf_inet, SOCK_DGRAM, 0); /* Define local endpoint */ myaddr.sin_family = AF_INET; myaddr.sin_port = htons(myport); myaddr.sin_addr.s_addr = INADDR_ANY; memset(&(myaddr.sin_zero),0, 8); /* Add myaddr-info to socket */ bind(sockfd, (struct sockaddr *)&myaddr, sizeof(struct sockaddr)); /* get the server info */ he=gethostbyname(argv[1]); /* Define remote endpoint */ theiraddr.sin_family = AF_INET; theiraddr.sin_port = htons(atoi(argv[2])); theiraddr.sin_addr = *((struct in_addr *)he->h_addr_list[0]); memset(&(theiraddr.sin_zero),0, 8); /* Add theiraddr-info to socket */ connect(sockfd, (struct sockaddr *)&theiraddr,sizeof(struct sockaddr)); /* Send and receive message */ strcpy(buf,msg); /* Copy MSG to buf */ write(sockfd, buf, strlen(buf)); /* Send message */ numbytes=read(sockfd,buf,bufsize); /* Receive message */ buf[numbytes] = '\0'; /* Compare sent and received message */ if (strcmp(buf,msg) == 0) printf("%d bytes sent and received\n", strlen(buf)); else printf("sent and received msg not equal!\n"); close(sockfd); In what follows we will discuss the various parts of the example above as well as explaining the synopsis and purpose of the dierent system calls and data structures. We only give an introduction suited for our type of applications (applications based on TCP/IP). Remember that the socket interface is designed to be very exible and that it can handle several dierent types of networking protocols. This exibility is one reason why we have to cast one type of data structure into another all the time. Additional information can be found in the man pages. The socket call SYNOPSIS 5

7 #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol) DESCRIPTION The call ``socket'' creates a socket and adds information to the socket about what protocols to be used during the communication. The domain parameter specifies a communication domain within which communication will take place; this selects the protocol family which should be used. These families are defined in <sys/socket.h>. The two most common families are PF_UNIX and PF_INET. The PF_UNIX protocol family can be used for IPC between processes on the same machine. The PF_INET protocol family uses the IP version 4 Internet protocols. The PF_INET type option is what we will use throughout this course. The second parameter type indicates what kind of transport to be used. The two most common types are SOCK_STREAM and SOCK_DGRAM. The SOCK_DGRAM option indicates that data will be sent and received in packets called datagrams whereas the SOCK_STREAM option indicates that data will be transported as a stream of characters. Using the TCP/IP transport protocols (i.e. the PF_INET domain option) the SOCK_STREAM options equals choosing TCP and SOCK_DGRAM is equivalent to UDP. The protocol option will not be used throughout this course. You can safely put it to zero. RETURN VALUES A -1 is returned and errno is set if an error occurs. Otherwise the return value is a descriptor referencing the socket. The struct sockaddr_in Endpoint Data Structure Each protocol family that uses sockets denes their own exact representation of its endpoint addresses by providing a corresponding data structure. The TCP/IP protocols uses a data structure named sockaddr_in that is provided by the BSD interface to store the endpoint information. struct sockaddr_in { u_char sin_len; /* total length */ u_short sin_family; /* type of address */ u_short sin_port; /* port in network byte order */ struct in_addr sin_addr; /* IP address in binary */ char sin_zero[8]; /* unused (set to zero) */ ; where the address structure in_addr is dened as: struct in_addr { unsigned long s_addr; ; In the program udp_echo_client.c, under the section entitled Define local endpoint we simply add information to the variable myaddr that stores the local endpoint information. There are a few things to notice here; We don't add any information to the sin_len eld. This will be taken care of later on when we use the bind system call. The port number (myaddr.sin_port) should be given in Network Byte Order. This refers to the representation of objects such as integers within a word. Some computers are big endian whereas others are little endian. A big endian machine stores the most signicant byte in leftmost position. A little endian machine works the other way around. In order for the system calls provided by BSD to work we have to pass arguments in Network Byte Order which is big endian. There are a number of conversion functions provided that handles the byte ordering: 6

8 SYNOPSIS #include <netinet/in.h> unsigned long int htonl(unsigned long int hostlong); unsigned short int htons(unsigned short int hostshort); unsigned long int ntohl(unsigned long int netlong); unsigned short int ntohs(unsigned short int netshort); DESCRIPTION The htonl(): converts long integer to network byte order. The htons(): converts short integer to network byte order. The ntohl(): converts long integer to host byte order. The ntohs(): converts short integer to host byte order. These conversion functions should always be used in order to make the applications portable between dierent types of machines. The parameter MYPORT is set to zero. This means that a random available port is chosen by the computer. The eld myaddr.sin_addr.s_addr is set to INADDR_ANY. This means that the machine's own IP address is used. You could just as well add it explicitly as: myaddr.sin_addr.s_addr = inet_addr(`` ''); where inet_addr() is a function that converts dotted decimal notation to a 32-bit binary representation. Finally, the assignment memset(&(myaddr.sin_zero),0, 8) adds zeros to the unused eld sin_zero. Further down the program we repeat the same assignment procedure for the data structure (theiraddr) that stores the remote endpoint information. This time we can no longer use the port number auto-choice function (MYPORT 0) and the auto-ll function INADDR_ANY. Instead we must explicitly assign the server port number and the server IP address. Notice also that we rst use the call gethostbyname() (introduced in assignment 1) to gather information about the server. The assignment of the eld theiraddr.sin_addr is ugly but it works! The bind call SYNOPSIS #include <sys/types.h> #include <sys/socket.h> int bind(int sockfd, struct sockaddr *local_addr, int addrlen); DESCRIPTION bind assigns the socket with socket descriptor sockfd the local endpoint information. RETURN VALUE On success, zero is returned. On error, -1 is returned, and errno is set appropriately. Notice that the bind call is designed to use the general address data structure struct sockaddr and that we in the program udp_echo_client.c have to cast the struct sockaddr_in in use into that form. The connect call SYNOPSIS #include <sys/types.h> #include <sys/socket.h> 7

9 int connect(int sockfd, struct sockaddr *remote_addr, int addrlen); DESCRIPTION The parameter sockfd is a socket. If the socket is of type SOCK_DGRAM (i.e. we use UDP as transport protocol), this call specifies the remote endpoint information; this address is that to which datagrams are to be sent, and the only address from which datagrams are to be received. If the socket is of type SOCK_STREAM (i.e. we use TCP as transport protocol), this call (besides specifying the remote endpoint) also attempts to make a connection to the remote host. The remote endpoint is specified by remote_addr. RETURN VALUE If the connection or binding succeeds, zero is returned. On error, -1 is returned, and errno is set appropriately. This call works similar to bind. We have to cast the struct sockaddr_in in use into a struct sockaddr. The write and read call Once the socket has both endpoints specied, reading and writing to the remote host works exactly the same way as reading and writing to an ordinary external unit in UNIX. That is, we can use the functions read() and write(). SYNOPSIS #include <unistd.h> int read(int fd, void *buf, int count); int write(int fd, const void *buf, int count); DESCRIPTION read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf. write() writes up to count bytes to the file referenced by the file descriptor fd from the buffer starting at buf. RETURN VALUE On success, the number of bytes read by read() is returned (zero indicates end of file), and the file position is advanced by this number. On error, -1 is returned, and errno is set appropriately. On success, the number of bytes written by write() are returned. On error, -1 is returned, and errno is set appropriately. 8

10 A Simple Echo Server The echo client presented in the last section requires an echo server that mirrors every packet it receives. Before we present the C code for the server, let us view a schematic picture of the two cooperating processes. There is one principal dierence between a client and a server. The client Echo Client Echo Server socket() bind() socket() connect() bind() write() read() echo request echo response recvfrom() sendto() return to listening state close() close() Figur 3: Schematic structure of the system calls during a echo session. requires that both endpoints are specied before the exchange of packets starts. This implies that both bind() and connect() must be called before the rst transmission in order to assign the socket the required information. An application where both endpoints are xed in the socket is called a connection-oriented application. The server on the other hand can't have both endpoints xed if we want the server to be able to mirror echo requests from dierent clients. That is the reason why we don't nd a connect() call on the server side in gure 3. Applications where only one endpoint in the socket is xed are called connectionless applications. Since the echo server is connectionless we can not use the simple calls read() and write() to receive and transmit the packets. Instead we use the calls recvfrom() and sendto() that are designed for connectionless applications. Notice also that the call recvfrom() blocks the server until an incoming packet is received, just like an ordinary read() would. A server that is blocked and waiting for an incoming call is said to be listening. Furthermore, since we want the server to be able to handle many clients we use an eternal loop that returns to the listening state as soon as a client request is handled. /* udp_echo_server.c A simple echo server with no error handling */ #include <stdio.h> #include <stdlib.h> /* atoi */ #include <string.h> /* strcpy */ #include <errno.h> /* perror */ #include <string.h> /* strcpy */ #include <unistd.h> /* read, write, close */ #include <sys/types.h> /* socket, bind, htons, inet_ntoa */ #include <sys/socket.h> /* socket, bind, inet_ntoa */ #include <netinet/in.h> /* htons, ntohs, inet_ntoa */ #include <inttypes.h> /* htons, ntohs */ #include <arpa/inet.h> /* inet_ntoa */ 9

11 #define BUFSIZE 1024 #define MYPORT 4950 /* the "well-known" port */ void main() { int sockfd; struct sockaddr_in myaddr; /* local endpoint */ struct sockaddr_in theiraddr; /* remote endpoint */ char buf[bufsize]; /* Create socket */ sockfd = socket(pf_inet, SOCK_DGRAM, 0); /* Defining myaddr */ myaddr.sin_family = AF_INET; myaddr.sin_port = htons(myport); myaddr.sin_addr.s_addr = INADDR_ANY; memset(&(myaddr.sin_zero),0, 8); /* Add myaddr-info to socket */ bind(sockfd, (struct sockaddr *)&myaddr, sizeof(struct sockaddr)); printf("listening at port %d\n", ntohs(myaddr.sin_port)); while(1) { /* Main receive-send loop */ int addrlen = sizeof(struct sockaddr); int numbytes; numbytes=recvfrom(sockfd,buf,bufsize,0, /* Receive message */ (struct sockaddr *)&theiraddr,&addrlen); buf[numbytes] = '\0'; numbytes=sendto(sockfd, buf, strlen(buf), 0, /* Send message */ (struct sockaddr *)&theiraddr,addrlen); printf("udp echo request from %s",inet_ntoa(theiraddr.sin_addr)); printf(" using port %d\n", ntohs(theiraddr.sin_port)); Many things in the program udp_echo_server.c are just the same as in the previously presented program udp_echo_client.c and we refer to that program for explanations. However, a few things are dierent and worth commenting. First, a server requires a well-known port. We can not have a randomly chosen port that vary between dierent values every time we start the server. In that case no client would be able to make contact since it has no way of knowing the remote endpoint of the server. Secondly, since the server is a connectionless application we must add the remote endpoint information every time we transmit a packet. In the above server we do so by passing a struct theiraddr storing the remote endpoint information to the transmitting function sendto(). The struct theiraddr is assigned the remote endpoint information in the call recvfrom(). That is, besides receiving a buer that contains received data, the function recvfrom() also stores the endpoint information of the received packet in the struct theiraddr that is passed as a parameter. Notice also that both sendto() and recvfrom() are designed to use the general address data structure struct sockaddr (just like bind() and connect()) and that we have to cast the struct sockaddr_in in use into that form. The functions sendto() and recvfrom() have the following synopsis: SYNOPSIS #include <sys/types.h> #include <sys/socket.h> int sendto(int sockfd, const void *msg, int msglen, unsigned int flags, 10

12 const struct sockaddr *target, int targetlen); int recvfrom(int sockfd, void *buf, int buflen, unsigned int flags, struct sockaddr *from, int *fromlen); DESCRIPTION sendto() is used to transmit a message to another socket. The parameter sockfd refers to a socket storing local endpoint information. The call may be used to transmit data on a socket whether or not it is connection-oriented. The endpoint information of the target is given by target with targetlen specifying its size. The length of the message is given by msglen. The flags parameter can be put to zero. The recvfrom() call is used to receive messages from a socket. The parameter sockfd refers to a socket storing local endpoint information. The call may be used to receive data on a socket whether or not it is connection-oriented. If from is not NULL, and the socket is not connection-oriented, the source endpoint information of the message is filled in. Fromlen is a value-result parameter, initialized to the size of the buffer associated with from, and modified on return to indicate the actual size of the address stored there. The maximum size of buf is given by buflen. The flags parameter can be put to zero. RETURN VALUES The call sendto() return the number of characters sent. On error, -1 is returned, and errno is set appropriately. The call recvfrom() return the number of bytes received. On error, -1 is returned, and errno is set appropriately. Error handling None of the two programs udp_echo_server.c and udp_echo_client.c has any error handling. If an error occurs during execution, no detailed information will be shown to tell us what went wrong. A program should always include some error handling! This is especially important when dealing with network programming since many dierent errors might occur while communicating with a foreign host. The traditional C way to handle errors due to mis-happenings in a system call is to use the routine perror(). The routine perror() produces a message on the standard error output, describing the last error encountered during a call to a system or library function. #include <stdio.h> #include <errno.h> void perror(const char *s); The argument string s is printed rst, then a colon and a blank, then the message and a newline. To be of most use, the argument string should include the name of the function that incurred the error. When a system call fails, it usually returns -1 and sets the variable errno to a value describing what went wrong. The function perror() serves to translate this error code into human-readable form. For example, the bind calls shown in the previous client and server examples ought to be replaced by: if (bind(sockfd, (struct sockaddr *)myaddr,sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); In case of an error when using the call bind, we now get a message saying that an error occurred while calling bind() (i.e. pointing out where the error occurred). We also get information about why it happened. After that, the program exits. 11

13 UDP: A Short Introduction UDP (User Datagram Protocol) is a simple datagram-oriented transport protocol within the TCP/IP protocol suite. UDP provides no reliability. It sends the datagram that the applications writes to the IP layer, but there is no guarantee that they ever reach their destination. If UDP is used and a reliable delivery is required, packet sequence checking and error notication must be written into the applications. A common method to implement error notication is presented in the next section. Given the lack of reliability of UDP, we are tempted to think that we should avoid UDP and always use a reliable protocol such as TCP. After assignment 3 where we use TCP we will return to this topic and discuss what kind of applications can utilize UDP. Figure 4 shows a UDP/IP/Ethernet packet and the UDP header. The top of the gure shows that Ethernet Frame IP Datagram UDP Datagram Ethernet header IP header UDP header UDP Data Ethernet tail UDP Header 16-bit source port 16-bit UDP length 16-bit destination port 16-bit UDP checksum Data (if any) Figur 4: Schematic structure of a packet using UDP (above) and the UDP header (below). UDP is encapsulated in an IP frame. We can think of IP as the protocol that is responsible for transport from one machine to another across the Internet whereas UDP is responsible for locating the target application. It is therefore no surprise that the UDP header (Figure 4, bottom) includes port information. Both the port number identifying the source application as well as the destination application is included in the UDP header. The UDP length eld is the length of the UDP header and the UDP data in bytes. The minimum value for this eld is 8 bytes. The UDP checksum uses a 16-bit Cyclic Redundancy Check technique to help the receiving end to detect errors. The checksum covers both the UDP header and the UDP data. An Acknowledgment/Retransmission Scheme for Fetch We have earlier mentioned briey that if UDP is used and a reliable delivery is required, error notication must be implemented into the applications. One often used technique to implement error notication is called Positive Acknowledgment With Retransmissions. The technique requires a recipient to communicate with the source, sending back an acknowledgment (ACK) message as it receives data. The sender sends a packet and then waits for an acknowledgment before sending the next packet. The sender also starts a timer when it sends a packet and retransmits if the timer expires before an acknowledgment arrives. In the last exercise in this assignment you are asked to implement fetch, a client-server pair where (similar to the last exercise in assignment 1) the client reads a le from a predened server side directory. In what follows we give a short (but hopefully sucient) description of the Acknowledge/Retransmit scheme you are supposed to use. It is a simplied version of the TFTP scheme (RFC 1350) you will use in assignment 4. 12

14 Overview Any transfer begins with a request to read a le, which also serves to request a connection. If the server grants the request, the connection is opened and the le is sent in xed length blocks of 512 bytes. Each data packet contains one block of data, and must be acknowledged by an acknowledgment packet before the next packet can be sent. A data packet of less than 512 bytes signals termination of a transfer. If a packet gets lost in the network, the intended recipient will timeout and may retransmit his last packet (which may be data or an acknowledgment), thus causing the sender of the lost packet to retransmit that lost packet. The sender has to keep just one packet on hand for retransmission, since the lock step acknowledgment guarantees that all older packets have been received. Notice that both machines involved in a transfer are considered senders and receivers. One sends data and receives acknowledgments, the other receives data and sends acknowledgments. In Figure 5 (left) we show a successful set of transmissions. Each diagonal line represents the transfer of one packet across the network. The fetch header consists of a 2 byte opcode eld which indicates the packet's type (e.g. RRQ, DATA or ACK). These opcodes and the formats of the various types of packets are dsicussed in the next section. Client Site Server Site Client Site Server Site Send RRQ Send ACK(X) Recv. DATA(1) Send ACK(1) Receive RRQ Send DATA(1) Retransmission time DATA lost Receive ACK(X) Send DATA(X+1) Receive ACK(1) Send DATA(2) Time expires Recc. DATA(2) Retransmit ACK(X) Send ACK(2) Receive ACK(2) Receive ACK(X) Send DATA(X+1) Receive DATA(X+1) Figur 5: Schematic picture of a succesful transmission of two packets (left) and a retransmission after a packet is lost (right). In Figure 5 (right) a packet is lost and hence no data is returned before the timer expires. This forces the client to retransmit the packet. Usually the number of retransmissions is limited (e.g. no more than 5 retransmissions) in order to prevent an application to get caught in a innite loop of retransmissions if the recipient part goes down or some other problem arises. All errors cause termination of the connection. Timeouts are therefore also used to detect such termination. If one side goes down the other side retransmits the last packet ve times and then terminates. The Fetch Protocol A transfer is established by sending a read request (RRQ), and receiving a positive reply - the rst data packet DATA(1). (See Figure 6 for an account of the three types of packages supported by the fetch protocol.) The client responds to the arrival of the data packet with an ACK(1). Data is transferred in DATA packets depicted in Figure 6. DATA packets (opcode = 2) have a block number and data eld. The block numbers on data packets begin with one and increase by one for each new block of data. This restriction allows the program to use a single number to 13

15 discriminate between new packets and duplicates. The data eld is from zero to 512 bytes long. If it is 512 bytes long, the block is not the last block of data; if it is from zero to 511 bytes long, it signals the end of the transfer. opcode operation 1 Read request (RRQ) 2 Data (DATA) 3 Acknowledgment (ACK) 2 bytes string Opcode Filename RRQ packet bytes 2 bytes n bytes Opcode Block # Data DATA packet bytes 2 bytes Opcode Block # ACK packet Figure 6: The three types of opcodes and packets supported by the fetch protocol. The following example demonstrates a correct use of the block number. Somewhere in the network, the data packet is duplicated, and as a result two data packets with the same block number X are returned to the client. When the rst packet arrives the client responds with an ACK(X). When the second data packet arrives, the client must, by checking the block number, recognize it as a duplicate and reject it. However, there is no reason to terminate the connection. The client just resets the timer and continues to wait for DATA(X+1). All packets other than duplicate ACK's and those used for termination are acknowledged unless a timeout occurs. Sending a DATA packet is an acknowledgment for the ACK packet of the previous DATA packet. The DATA packets are acknowledged by ACK packets, while a RRQ packet is acknowledged by the rst DATA packet. Figure 6 depicts an ACK packet; the opcode is 3. The block number in an ACK echoes the block number of the DATA packet being acknowledged. In Figure 6 you can also see that a RRQ packet contains an opcode (1) and the name of the le to be fetched. Once a packet has been received we must parse it in order to get the information (opcode, block number, requested le etc). The following function reads two bytes at a given address and converts it to an unsigned short in host byte order: unsigned short GetShortAt(char *addr) { return ntohs(*((unsigned short*) addr)); (Its a beauty, isn't it?). We can now, for example, parse a read request (RRQ) for opcode and requested le as: opcode = GetShortAt(buf); strcpy(reqfile,buf+2); We leave you with the problem of writing the corresponding function PutShortAt(char* buf, short val). Timeout and retransmission occur when a packet is lost (or severely delayed). The general strategy is the following: Assume that a host has transmitted a packet X, started the timer and is waiting for a response. If the response is lost (or severely delayed) the time expires. The host then retransmits packet X to notify the other side that a packet is lost. The maximum number 14

16 of retransmissions is set to 5 in order to prevent an innite loop if the recipient (or some other machine along the way) goes down. Usually the timeout time is increased for every retransmission to avoid congestion in cases where an overloaded router or recipient is the reason behind the problem. We expect you to use the following retransmission times (in seconds): Time before retransmission: [1, 2, 4, 8, 16] The end of a transfer is marked by a DATA packet that contains between 0 and 511 bytes of data (i.e., Datagram length < 512). This packet is acknowledged by an ACK packet like all other DATA packets. The client acknowledging the nal DATA packet may terminate its side of the connection on sending the nal ACK. The server sending the last DATA must retransmit it until the packet is acknowledged or the server times out. If the response is an ACK, the transmission was completed successfully. If the server times out and is not prepared to retransmit any more, the transfer may still have been completed successfully. Implement a timer with select() In the previous section we found out that a timer is needed if we want to implement Positive Acknowledgment with Retransmissions. In this section we show how we can use the system call select() to implement a timer. The select() will also be used in Assignment 3 to implement a server that can handle concurrent connections. The select() function indicates which of the specied le descriptors is ready for reading, ready for writing, or has an error condition pending. If the specied condition is false for all of the specied le descriptors, select() blocks, up to the specied timeout interval, until the specied condition is true for at least one of the specied le descriptors. That is; select() blocks until something happens with the set of le descriptors that select monitors, or until the time limit (specied in the parameter timeout) expires. #include <sys/time.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout); The nfds argument species the range of le descriptors to be tested. The select() function tests le descriptors in the range of 0 to nfds-1. The arguments readfs, writefs and errorfds is dierent sets of le descriptors, each of type fd_set. These three sets of le descriptors specify which descriptors we are interested in and for which condition (readable, writable, or exception condition). There is a set of functions designed to manipulate this type of le descriptor sets: #include <sys/time.h> #include <sys/types.h> void FD_ZERO(fd_set *fdset); // remove all descriptors from fdset void FD_SET(int fd, fd_set *fdset); // add descriptor fd to fdset void FD_CLR(int fd, fd_set *fdset); // remove descriptor fd from fdset int FD_ISSET(int fd, fd_set *fdset); // test if fd in fdset is activated The maximum number of le descriptors in an fd_set is given by a the constant FD_SETSIZE. The last argument in the select call, timeout, determines the maximum amount of time that select() is allowed to block. The timeout value is given using a struct timeval also dened in <sys/time.h>: struct timeval { int tv_sec; /* seconds */ long tv_usec; /* microseconds */ ; In the example that follows we illustrate how select() can be used to implement a timer. The example shows a modication of the client udp_echo_client.c presented earlier. Some parts have been left out in order to make the example more readable. The major dierence is that after the message has been sent by write(), the program only waits for 1.5 seconds for a response from the server. If no response is received within that time, the program skips the read() part and exits. 15

17 void main(int argc, char *argv[]) { /* Various other declarations */ int sockfd, numbytes, result; fd_set fdset; struct timeval timeout; /* Create socket and endpoint information */ /* => socket (), bind(), connect() */ /* Look att udp_echo_client.c for details */ /* Prepare fdset */ FD_ZERO(&fdset); /* Clears fdset */ FD_SET(sockfd,&fdset); /* Add sockfd to fdset */ /* Set time to wait */ timeout.tv_sec = 1; /* Set time to wait */ timeout.tv_usec = ; /* Send and receive message */ write(sockfd, buf, strlen(buf)); result = select(fd_setsize, &fdset, NULL, NULL, &timeout); /* Start timer */ switch (result) { case -1: /* result = -1 ==> Error in select() */ perror("select"); exit(-1); case 0: /* result = 0 ==> Timer expired */ printf("timeout: No respons within 1.5 seconds\n"); break; default: /* Event occured before timer expired */ numbytes=read(sockfd,buf,bufsize); buf[numbytes] = '\0'; /* Compare sent and received message */ /* End of switch */ close(sockfd); There are a few things to notice about the select call: result = select(fd_setsize, &fdset, NULL, NULL, &timeout); Most important; the call select() blocks the execution. This means that the program stops there until one of the three cases in the switch statement occurs. The value of result determines which. We have put the arguments writefds and errorfds to NULL. This implies that we are only interested in events related to reading. In our case this means that we are waiting for reading on the socket descriptor sockfd, the only le descriptor in fdset. The reason why we introduced select in this section was that we needed a timer in the fetch exercise 7. In that case we don't skip the read call and terminate if the timer expires. Instead we retransmit the previous packet until we get a response. Notice also that select changes the value of fdset after each call and that the original value must be restored before the next call to select. 16

18 Exercises The names of the les you send in are supposed to be the ones stated in the assignment question. If you want to rename the les you should also hand in a makefile that reects these changes. If you are not familiar with makeles and how to create one, you can search Google using the keywords makefile tutorial. One of the results from this search is the URL This is useful for the tutor but also to you, since when compiling using a makele you need not remember the exact syntax and one or more compilations can be done as the result of one invocation. This is strongly advised. 1. The C code of the two example programs presented earlier (udp_echo_client.c and udp_echo_server.c) can be found on the home page of this course. Download them and make them work. Remember to compile each program according to: gcc -o server udp_echo_server.c -lsocket -lnsl -Wall 2. None of the two programs in exercise 1 have any error handling. Modify them in such a way that all system calls handles errors using perror(). At the same time; build a library udp.h that includes functions Socket(), Bind(),..., Recvfrom(). The various functions should be dened in a le named udp_def.c such that the following program is equivalent to udp_echo_client.c. The corresponding header le udp.h can be found at the home page of this course. /* udp_echo_clnt.c : An echo-client using udp.h */ #include <stdio.h> #include <unistd.h> /* close */ #include <stdlib.h> /* atoi */ #include <string.h> /* strcpy */ #include "udp.h" #define BUFSIZE 2000 #define MYPORT 0 /* Zero means auto-choice */ #define MSG "Our Echo Message!" void main(int argc, char *argv[]) { int sockfd; struct sockaddr_in myaddr; struct sockaddr_in theiraddr; char buf[bufsize] = MSG; if (argc!= 3) { fprintf(stderr,"usage: %s server_name port\n",argv[0]); exit(1); sockfd = Socket("udp"); GetMyAddress(MYPORT, &myaddr); Bind(sockfd, &myaddr); GetTheirAddress(atoi(argv[2]), argv[1], &theiraddr); Connect(sockfd, &theiraddr); Write(sockfd, buf, strlen(buf)); Read(sockfd, buf, BUFSIZE); if (strncmp(buf,msg,strlen(msg)) == 0) printf("%d bytes sent and received\n", strlen(buf)); else fprintf(stderr,"%s: sent and received msg not equal!\n",argv[0]); close(sockfd); 17

19 For example, the function Socket() might look like: int Socket(const char *transport) { int sockfd; if (strncmp(transport,"udp",3) == 0) sockfd = socket(pf_inet, SOCK_DGRAM, 0); else if (strncmp(transport,"tcp",3) == 0) sockfd = socket(pf_inet, SOCK_STREAM, 0); else { printf("%s : Unknown transport protocol in Socket\n",transport); exit(1); if (sockfd == -1) { perror("socket"); exit(1); return sockfd; You should also implement the program udp_echo_clnt.c and the corresponding server udp_echo_srv.c. In what follows, use these two programs as starting points. 3. Use TELNET or SSH to login at a dierent machine than the one you are using at the moment and start udp_echo_srv.c. Then try to contact it with your client. Use the program snoka presented in assignment 1 to monitor the trac. A snoka session should be handed in. 4. Modify udp_echo_clnt.c so that you can easily change the size (measured in bytes) of the data transmitted. (We suggest that you read the size from the terminal when starting the client program.) Then try to nd the upper limit for a single packet. What happens when a packet is transmitted that is larger than the upper limit? What determines the upper limit? The C code of the modied udp_echo_clnt.c together with the corresponding server, header, and denition les should be handed in. We also want thorough answers to the above questions based on facts from various executions and snoka sessions. 5. Simple fetch: In assignment 1 you made a program fetch that fetches les from a predened directory and saves them in the local directory. In this exercise you should make a client-server pair (fetch.c and fetchserver.c that uses fetch.h and fetch_def.c) that fetches a le from a remote machine. It should work like: prompt> fetch avari.msi.vxu.se 5350 rfc1350.txt bytes read and saved where avari.msi.vxu.se is the remote machine, 5350 is the port that fetchserver is listening to, and rfc1350.txt is the le to fetch. The maximum data size in each packet must not exceed 512 bytes. This exercise is just a preparation for the last exercise. However, we recommend it as a starting point. 6. Your program should be able to send any le. That includes large and small les and both text and binary les, e.g., images. Modify your program to handle this problem and describe the changes you have to make. 7. Describe (in text and simple pictures) what happens in fetch when using timeouts and retransmissions if an acknowledgement (ACK) is delayed for a period of time long enough for a single retransmission to occur. 8. fetch with error notication : Add timeouts and retransmissions to the fetch server according to the description given earlier in this text. Be careful, this is rather tricky. We strongly suggest that you start with a single acknowledged data packet. The C code of fetch.c, fetchserver.c, fetch.h, and fetch_def.c should be handed in together with a snoka session showing the resulting packet exchange between the client and the server in a case where only a single data packet is transmitted. 18

20 Handing in Some points to consider before you hand in your solutions: Make sure your fetch program can send both text les and binary les of arbitrary length, i.e., larger than 512 bytes. Verify that the le that was sent contains the exact same content as the original le. Use the Unix command cmp to do this. Preferably the fetch program will read from a directory relative to the directory from which the program was started (data/"), and not an absolute path ("/home/user/data/"). Please include the names of all group members in the . Package the les in a well-known archive format (e.g., zip, gz). What to hand in 1. Exercise 4: udp_echo_clnt.c, udp_echo_srv.c, udp.h, and udp_def.c 2. Exercise 8: fetch.c, fetchserver.c, fetch.h, and fetch_def.c 3. A document containing the snoka session from exercises 3 and 7, and the answers from excersises 4, 6 and 7. 19

Datasäkerhet och integritet

Datasäkerhet och integritet Chapter 4 module A Networking Concepts OSI-modellen TCP/IP This module is a refresher on networking concepts, which are important in information security A Simple Home Network 2 Unshielded Twisted Pair

Läs mer

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas The Distributed Application Debugger is a debugging tool for parallel programs Targets the MPI platform Runs remotley even on private

Läs mer

Support Manual HoistLocatel Electronic Locks

Support Manual HoistLocatel Electronic Locks Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing

Läs mer

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

Isolda Purchase - EDI

Isolda Purchase - EDI Isolda Purchase - EDI Document v 1.0 1 Table of Contents Table of Contents... 2 1 Introduction... 3 1.1 What is EDI?... 4 1.2 Sending and receiving documents... 4 1.3 File format... 4 1.3.1 XML (language

Läs mer

Problem som kan uppkomma vid registrering av ansökan

Problem som kan uppkomma vid registrering av ansökan Problem som kan uppkomma vid registrering av ansökan Om du har problem med din ansökan och inte kommer vidare kan det bero på det som anges nedan - kolla gärna igenom detta i första hand. Problem vid registrering

Läs mer

Styrteknik: Binära tal, talsystem och koder D3:1

Styrteknik: Binära tal, talsystem och koder D3:1 Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder

Läs mer

Schenker Privpak AB Telefon 033-178300 VAT Nr. SE556124398001 Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr 033-257475 Säte: Borås

Schenker Privpak AB Telefon 033-178300 VAT Nr. SE556124398001 Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr 033-257475 Säte: Borås Schenker Privpak AB Interface documentation for web service packageservices.asmx 2010-10-21 Version: 1.2.2 Doc. no.: I04304 Sida 2 av 14 Revision history Datum Version Sign. Kommentar 2010-02-18 1.0.0

Läs mer

Writing with context. Att skriva med sammanhang

Writing with context. Att skriva med sammanhang Writing with context Att skriva med sammanhang What makes a piece of writing easy and interesting to read? Discuss in pairs and write down one word (in English or Swedish) to express your opinion http://korta.nu/sust(answer

Läs mer

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås Schenker Privpak AB Interface documentation for web service packageservices.asmx 2012-09-01 Version: 1.0.0 Doc. no.: I04304b Sida 2 av 7 Revision history Datum Version Sign. Kommentar 2012-09-01 1.0.0

Läs mer

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR Kontrollera vilka kurser du vill söka under utbytet. Fyll i Basis for nomination for exchange studies i samråd med din lärare. För att läraren ska kunna göra en korrekt

Läs mer

6 th Grade English October 6-10, 2014

6 th Grade English October 6-10, 2014 6 th Grade English October 6-10, 2014 Understand the content and structure of a short story. Imagine an important event or challenge in the future. Plan, draft, revise and edit a short story. Writing Focus

Läs mer

Preschool Kindergarten

Preschool Kindergarten Preschool Kindergarten Objectives CCSS Reading: Foundational Skills RF.K.1.D: Recognize and name all upper- and lowercase letters of the alphabet. RF.K.3.A: Demonstrate basic knowledge of one-toone letter-sound

Läs mer

Module 1: Functions, Limits, Continuity

Module 1: Functions, Limits, Continuity Department of mathematics SF1625 Calculus 1 Year 2015/2016 Module 1: Functions, Limits, Continuity This module includes Chapter P and 1 from Calculus by Adams and Essex and is taught in three lectures,

Läs mer

2.1 Installation of driver using Internet Installation of driver from disk... 3

2.1 Installation of driver using Internet Installation of driver from disk... 3 &RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP

Läs mer

Isometries of the plane

Isometries of the plane Isometries of the plane Mikael Forsberg August 23, 2011 Abstract Här följer del av ett dokument om Tesselering som jag skrivit för en annan kurs. Denna del handlar om isometrier och innehåller bevis för

Läs mer

http://marvel.com/games/play/31/create_your_own_superhero http://www.heromachine.com/

http://marvel.com/games/play/31/create_your_own_superhero http://www.heromachine.com/ Name: Year 9 w. 4-7 The leading comic book publisher, Marvel Comics, is starting a new comic, which it hopes will become as popular as its classics Spiderman, Superman and The Incredible Hulk. Your job

Läs mer

Recitation 4. 2-D arrays. Exceptions

Recitation 4. 2-D arrays. Exceptions Recitation 4. 2-D arrays. Exceptions Animal[] v= new Animal[3]; 2 declaration of array v Create array of 3 elements v null a6 Assign value of new-exp to v Assign and refer to elements as usual: v[0]= new

Läs mer

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Guldplätering kan aldrig helt stoppa genomträngningen av vätgas, men den får processen att gå långsammare. En tjock guldplätering

Läs mer

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE SVENSK STANDARD SS-ISO/IEC 26300:2008 Fastställd/Approved: 2008-06-17 Publicerad/Published: 2008-08-04 Utgåva/Edition: 1 Språk/Language: engelska/english ICS: 35.240.30 Information technology Open Document

Läs mer

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Användarhandledning inloggning Logga in Gå till denna webbsida för att logga in: http://csportal.u4a.se/

Läs mer

Övning 5 ETS052 Datorkommuniktion Routing och Networking

Övning 5 ETS052 Datorkommuniktion Routing och Networking Övning 5 TS5 Datorkommuniktion - 4 Routing och Networking October 7, 4 Uppgift. Rita hur ett paket som skickas ut i nätet nedan från nod, med flooding, sprider sig genom nätet om hop count = 3. Solution.

Läs mer

Webbregistrering pa kurs och termin

Webbregistrering pa kurs och termin Webbregistrering pa kurs och termin 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en länk till Studieöversiktssidan. På den sidan

Läs mer

Övning 4 EITF25 & EITF Protokoll. October 29, 2016

Övning 4 EITF25 & EITF Protokoll. October 29, 2016 - 2016 Protokoll October 29, 2016 1 Uppgift 1. Nedan finns en Ethernet II-ram där Preamble, SFD och CRC är borttagna. Ramen är beskriven i hexadecimalt format. Svara på följande frågor genom att studera

Läs mer

Support for Artist Residencies

Support for Artist Residencies 1. Basic information 1.1. Name of the Artist-in-Residence centre 0/100 1.2. Name of the Residency Programme (if any) 0/100 1.3. Give a short description in English of the activities that the support is

Läs mer

Module 6: Integrals and applications

Module 6: Integrals and applications Department of Mathematics SF65 Calculus Year 5/6 Module 6: Integrals and applications Sections 6. and 6.5 and Chapter 7 in Calculus by Adams and Essex. Three lectures, two tutorials and one seminar. Important

Läs mer

INSTALLATION INSTRUCTIONS

INSTALLATION INSTRUCTIONS INSTALLATION - REEIVER INSTALLATION INSTRUTIONS RT0 RF WIRELESS ROOM THERMOSTAT AND REEIVER MOUNTING OF WALL MOUTING PLATE - Unscrew the screws under the - Pack contains... Installation - Receiver... Mounting

Läs mer

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng Materialplanering och styrning på grundnivå Provmoment: Ladokkod: Tentamen ges för: Skriftlig tentamen TI6612 Af3-Ma, Al3, Log3,IBE3 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles

Läs mer

FANNY AHLFORS AUTHORIZED ACCOUNTING CONSULTANT,

FANNY AHLFORS AUTHORIZED ACCOUNTING CONSULTANT, FANNY AHLFORS AUTHORIZED ACCOUNTING CONSULTANT, SWEDEN HOW TO CREATE BLOG CONTENT www.pwc.se How to create blog content Fanny Ahlfors Authorized Accounting Consultant 5 Inbound Methodology Attract Convert

Läs mer

Quick-guide to Min ansökan

Quick-guide to Min ansökan Version 2015-05-12 Quick-guide to Min ansökan Before filling in the application To be able to fill in an application you need to create a user account (instructions on p. 3). If you have already created

Läs mer

Chapter 2: Random Variables

Chapter 2: Random Variables Chapter 2: Random Variables Experiment: Procedure + Observations Observation is an outcome Assign a number to each outcome: Random variable 1 Three ways to get an rv: Random Variables The rv is the observation

Läs mer

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Make a speech. How to make the perfect speech. söndag 6 oktober 13 Make a speech How to make the perfect speech FOPPA FOPPA Finding FOPPA Finding Organizing FOPPA Finding Organizing Phrasing FOPPA Finding Organizing Phrasing Preparing FOPPA Finding Organizing Phrasing

Läs mer

Webbreg öppen: 26/ /

Webbreg öppen: 26/ / Webbregistrering pa kurs, period 2 HT 2015. Webbreg öppen: 26/10 2015 5/11 2015 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en

Läs mer

Workplan Food. Spring term 2016 Year 7. Name:

Workplan Food. Spring term 2016 Year 7. Name: Workplan Food Spring term 2016 Year 7 Name: During the time we work with this workplan you will also be getting some tests in English. You cannot practice for these tests. Compulsory o Read My Canadian

Läs mer

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson Kravhantering På Riktigt, 16 maj 2018 Anna Fallqvist Eriksson Agilista, Go See Talents linkedin.com/in/anfaer/

Läs mer

This exam consists of four problems. The maximum sum of points is 20. The marks 3, 4 and 5 require a minimum

This exam consists of four problems. The maximum sum of points is 20. The marks 3, 4 and 5 require a minimum Examiner Linus Carlsson 016-01-07 3 hours In English Exam (TEN) Probability theory and statistical inference MAA137 Aids: Collection of Formulas, Concepts and Tables Pocket calculator This exam consists

Läs mer

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167 GU / Chalmers Campus Lindholmen Tentamen Programutveckling 2016-01-13 LEU 482 / TIG167 Examinator: Henrik Sandklef (0700-909363) Tid för tentamen: 2016-01-13, 08.30 12.30 Ansvarig lärare: Henrik Sandklef,

Läs mer

Application Note SW

Application Note SW TWINSAFE DIAGNOSTIK TwinSAFE är Beckhoffs safety-lösning. En översikt över hur TwinSAFE är implementerat, såväl fysiskt som logiskt, finns på hemsidan: http://www.beckhoff.se/english/highlights/fsoe/default.htm?id=35572043381

Läs mer

Lehigh Valley Hospital Schuylkill Portal User Q&A

Lehigh Valley Hospital Schuylkill Portal User Q&A Lehigh Valley Hospital Schuylkill Portal User Q&A 1. How do I get assistance if I have difficulty accessing the portal or navigating the portal? 2. How do I save information on the portal for my personal

Läs mer

Övning 3 ETS052 Datorkommuniktion IP, TCP och

Övning 3 ETS052 Datorkommuniktion IP, TCP och Övning 3 ETS052 Datorkommuniktion - 2015 IP, TCP och 802.11 September 22, 2015 Uppgift 1. Bestäm klassen på följande IPv4-adresser: 1.1 1.2 1.3 1.4 1.5 208.34.54.12 238.34.2.1 114.34.2.8 129.14.6.8 241.34.2.8

Läs mer

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05 Om oss Vi på Binz är glada att du är intresserad av vårt support-system för begravningsbilar. Sedan mer än 75 år tillverkar vi specialfordon i Lorch för de flesta olika användningsändamål, och detta enligt

Läs mer

Installation Instructions

Installation Instructions Installation Instructions (Cat. No. 1794-IE8 Series B) This module mounts on a 1794 terminal base unit. 1. Rotate keyswitch (1) on terminal base unit (2) clockwise to position 3 as required for this type

Läs mer

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15 DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION 120607 08:15-13: 15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition En ordbok: studentenshemspråk engelska Betygsgräns:

Läs mer

Integritetspolicy på svenska Integrity policy in English... 5

Integritetspolicy på svenska Integrity policy in English... 5 Innehållsförteckning / Table of content Integritetspolicy på svenska... 2 In Vino Veritas... 2 Vilka vi är... 2 Vilka personuppgifter vi samlar in och varför vi samlar in dem... 2 Namninsamlingen... 2

Läs mer

Boiler with heatpump / Värmepumpsberedare

Boiler with heatpump / Värmepumpsberedare Boiler with heatpump / Värmepumpsberedare QUICK START GUIDE / SNABBSTART GUIDE More information and instruction videos on our homepage www.indol.se Mer information och instruktionsvideos på vår hemsida

Läs mer

Installation av F13 Bråvalla

Installation av F13 Bråvalla Website: http://www.rbdesign.se Installation av F13 Bråvalla RBDESIGN FREEWARE - ESCK Norrköping-Bråvalla 1. Ladda ner och packa upp filerna i en mapp som du har skapat på ett lättöverskådligt ställe utanför

Läs mer

Schenker Privpak AB Telefon 033-178300 VAT Nr. SE556124398001 Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr 033-257475 Säte: Borås

Schenker Privpak AB Telefon 033-178300 VAT Nr. SE556124398001 Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr 033-257475 Säte: Borås Schenker Privpak AB Interface documentation for Parcel Search 2011-10-18 Version: 1 Doc. no.: I04306 Sida 2 av 5 Revision history Datum Version Sign. Kommentar 2011-10-18 1.0.0 PD First public version.

Läs mer

Questionnaire for visa applicants Appendix A

Questionnaire for visa applicants Appendix A Questionnaire for visa applicants Appendix A Business Conference visit 1 Personal particulars Surname Date of birth (yr, mth, day) Given names (in full) 2 Your stay in Sweden A. Who took the initiative

Läs mer

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007 A library project, not a web project New Communication Channels in Libraries Budapest Nov 19, 2007 Daniel Andersson, daniel@biblioteket.se 1 Daniel Andersson Project manager and CDO at, Stockholm Public

Läs mer

1. Unpack content of zip-file to temporary folder and double click Setup

1. Unpack content of zip-file to temporary folder and double click Setup Instruktioner Dokumentnummer/Document Number Titel/Title Sida/Page 13626-1 BM800 Data Interface - Installation Instructions 1/8 Utfärdare/Originator Godkänd av/approved by Gäller från/effective date Mats

Läs mer

12.6 Heat equation, Wave equation

12.6 Heat equation, Wave equation 12.6 Heat equation, 12.2-3 Wave equation Eugenia Malinnikova, NTNU September 26, 2017 1 Heat equation in higher dimensions The heat equation in higher dimensions (two or three) is u t ( = c 2 2 ) u x 2

Läs mer

Alias 1.0 Rollbaserad inloggning

Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Magnus Bergqvist Tekniskt Säljstöd Magnus.Bergqvist@msb.se 072-502 09 56 Alias 1.0 Rollbaserad inloggning Funktionen Förutsättningar Funktionen

Läs mer

Föreläsning 4 IS1300 Inbyggda system

Föreläsning 4 IS1300 Inbyggda system Föreläsning 4 IS1300 Inbyggda system Programutveckling Exempel PingPong Idé Tillståndsdiagram State machine Skapa projekt Testning av programvara Peripheral Library till STM32 Programmeringsuppgiften RS232

Läs mer

Adding active and blended learning to an introductory mechanics course

Adding active and blended learning to an introductory mechanics course Adding active and blended learning to an introductory mechanics course Ulf Gran Chalmers, Physics Background Mechanics 1 for Engineering Physics and Engineering Mathematics (SP2/3, 7.5 hp) 200+ students

Läs mer

1.1 Invoicing Requirements

1.1 Invoicing Requirements 1.1 Invoicing Requirements Document name The document should clearly state INVOICE, DOWNPAYMENT REQUEST or CREDIT NOTE. Invoice lines and credit lines cannot be sent in the same document. Invoicing currency.

Läs mer

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright BO 1 VHDL Basics Outline Component model Code model Entity Architecture Identifiers and objects Operations for relations Bengt Oelmann -- copyright 2002 1 Component model Model for describing components

Läs mer

EXPERT SURVEY OF THE NEWS MEDIA

EXPERT SURVEY OF THE NEWS MEDIA EXPERT SURVEY OF THE NEWS MEDIA THE SHORENSTEIN CENTER ON THE PRESS, POLITICS & PUBLIC POLICY JOHN F. KENNEDY SCHOOL OF GOVERNMENT, HARVARD UNIVERSITY, CAMBRIDGE, MA 0238 PIPPA_NORRIS@HARVARD.EDU. FAX:

Läs mer

Chapter 1 : Who do you think you are?

Chapter 1 : Who do you think you are? Arbetslag: Gamma Klass: 9A Veckor: 34-39 År: 2019 Chapter 1 : Who do you think you are?. Syfte Förstå och tolka innehållet i talad engelska och i olika slags texter. Formulera sig och kommunicera i tal

Läs mer

Libers språklåda i engelska Grab n go lessons

Libers språklåda i engelska Grab n go lessons Libers språklåda i engelska 7-9 - Grab n go lessons PROVLEKTION Libers språklåda i engelska Grab n go lessons (47-90988-9) Författarna och Liber AB Får kopieras 1 Two stories in one Förberedelser Kopiera

Läs mer

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik SIGNALBEHANDLING I MULTIMEDIA, EITA50, LP4, 209 Inlämningsuppgift av 2, Assignment out of 2 Inlämningstid: Lämnas in senast kl

Läs mer

Övning 5 EITF25 & EITF Routing och Networking. December 5, 2017

Övning 5 EITF25 & EITF Routing och Networking. December 5, 2017 - 207 Routing och Networking December 5, 207 Uppgift. Rita hur ett paket som skickas ut i nätet nedan från nod, med flooding, sprider sig genom nätet om hop count = 3. Solution. When flooding is deployed,

Läs mer

F ξ (x) = f(y, x)dydx = 1. We say that a random variable ξ has a distribution F (x), if. F (x) =

F ξ (x) = f(y, x)dydx = 1. We say that a random variable ξ has a distribution F (x), if. F (x) = Problems for the Basic Course in Probability (Fall 00) Discrete Probability. Die A has 4 red and white faces, whereas die B has red and 4 white faces. A fair coin is flipped once. If it lands on heads,

Läs mer

Health café. Self help groups. Learning café. Focus on support to people with chronic diseases and their families

Health café. Self help groups. Learning café. Focus on support to people with chronic diseases and their families Health café Resources Meeting places Live library Storytellers Self help groups Heart s house Volunteers Health coaches Learning café Recovery Health café project Focus on support to people with chronic

Läs mer

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p) UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant

Läs mer

Quick Start Guide Snabbguide

Quick Start Guide Snabbguide Quick Start Guide Snabbguide C Dictionary Quick Start Thank you for choosing C Dictionary and C-Pen as your translation solution. C Dictionary with its C-Pen connection will make translation easy and enable

Läs mer

Översättning av galleriet. Hjälp till den som vill...

Översättning av galleriet. Hjälp till den som vill... Hjälp till den som vill... $txt['aeva_title'] = 'Galleri'; $txt['aeva_admin'] = 'Admin'; $txt['aeva_add_title'] = 'Titel'; $txt['aeva_add_desc'] = 'Beskrivning'; $txt['aeva_add_file'] = 'Fil att ladda

Läs mer

The Finite Element Method, FHL064

The Finite Element Method, FHL064 The Finite Element Method, FHL064 Division of Solid Mechanics Course program, vt2, 20 Course description The finite element method (FEM) is a numerical method able to solve differential equations, i.e.

Läs mer

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM Rastercell Digital Rastrering Hybridraster, Rastervinkel, Rotation av digitala bilder, AM/FM rastrering Sasan Gooran (VT 2007) Önskat mått * 2* rastertätheten = inläsningsupplösning originalets mått 2

Läs mer

A metadata registry for Japanese construction field

A metadata registry for Japanese construction field A metadata registry for Japanese construction field LCDM Forum, Japan October 25 th -27 th - 2006 TAKEYA, Isobe LCDM Forum Secretariat Document No. GEC-2005-002 LCDM Forum, Japan LCDM Forum, Japan Non-profit

Läs mer

Får endast utföras av behörig personal. May only be carried out by authorized electrician

Får endast utföras av behörig personal. May only be carried out by authorized electrician Instruktion för DMIS Instruction for DMIS FLE400FC, FLE850MP, W3400H, W4400H/W4600H (-980/1287) W3850H/W31100H, W4850/W41100H (-1220/636) Clarus Control 471 1530-75 2016.05.04 Får endast utföras av behörig

Läs mer

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09 EXTENAL ASSESSENT SAPLE TASKS SWEDISH BEAKTHOUGH LSPSWEB/0Y09 Asset Languages External Assessment Sample Tasks Breakthrough Stage Listening and eading Swedish Contents Page Introduction 2 Listening Sample

Läs mer

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2.

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2. Kursvärdering - sammanställning Kurs: 2AD510 Objektorienterad programmering, 5p Antal reg: 75 Program: 2AD512 Objektorienterad programmering DV1, 4p Antal svar: 17 Period: Period 2 H04 Svarsfrekvens: 22%

Läs mer

Very formal, recipient has a special title that must be used in place of their name

Very formal, recipient has a special title that must be used in place of their name - Opening English Swedish Dear Mr. President, Bäste herr ordförande, Very formal, recipient has a special title that must be used in place of their name Dear Sir, Formal, male recipient, name unknown Dear

Läs mer

- den bredaste guiden om Mallorca på svenska! -

- den bredaste guiden om Mallorca på svenska! - - den bredaste guiden om Mallorca på svenska! - Driver du företag, har en affärsrörelse på Mallorca eller relaterad till Mallorca och vill nå ut till våra läsare? Då har du möjlighet att annonsera på Mallorcaguide.se

Läs mer

LARS. Ett e-bokningssystem för skoldatorer.

LARS. Ett e-bokningssystem för skoldatorer. LARS Ett e-bokningssystem för skoldatorer. Därför behöver vi LARS Boka dator i förväg. Underlätta för studenter att hitta ledig dator. Rapportera datorer som är sönder. Samordna med schemaläggarnas system,

Läs mer

State Examinations Commission

State Examinations Commission State Examinations Commission Marking schemes published by the State Examinations Commission are not intended to be standalone documents. They are an essential resource for examiners who receive training

Läs mer

Algoritmer och Komplexitet ht 08. Övning 6. NP-problem

Algoritmer och Komplexitet ht 08. Övning 6. NP-problem Algoritmer och Komplexitet ht 08. Övning 6 NP-problem Frekvensallokering Inom mobiltelefonin behöver man lösa frekvensallokeringsproblemet som lyder på följande sätt. Det finns ett antal sändare utplacerade.

Läs mer

SVENSK STANDARD SS :2010

SVENSK STANDARD SS :2010 SVENSK STANDARD SS 8760009:2010 Fastställd/Approved: 2010-03-22 Publicerad/Published: 2010-04-27 Utgåva/Edition: 2 Språk/Language: svenska/swedish ICS: 11.140 Sjukvårdstextil Sortering av undertrikå vid

Läs mer

INTERAKTIVA UTBILDNINGAR. UPPDRAG: Trafikutbildning åt Örebro kommun. KUND: Agresso Unit4

INTERAKTIVA UTBILDNINGAR. UPPDRAG: Trafikutbildning åt Örebro kommun. KUND: Agresso Unit4 ANTON IVANOV portfolio illustrationer 2000-2008 INTERATIVA UTBILDNINGAR UPPDRAG: Trafikutbildning åt Örebro kommun. UND: Agresso Unit4 2 ANTON IVANOV 2008 INTERATIVA UTBILDNINGAR UPPDRAG: Arbetsmiljöutbildning

Läs mer

WhatsApp finns för dessa plattformar:

WhatsApp finns för dessa plattformar: WhatsApp finns för dessa plattformar: Hur funkar det? WhatsApp Messenger is a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger

Läs mer

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols.

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols. Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols. ExcelLoad simulates the maximum forces that may appear during a transport no matter if the

Läs mer

Sri Lanka Association for Artificial Intelligence

Sri Lanka Association for Artificial Intelligence Sri Lanka Association for Artificial Intelligence First Sinhala Chatbot in action Budditha Hettige Department of Statistics and Computer Science, Faculty of Applied Science, University of Sri Jayewardenepura,

Läs mer

Kurskod: TAMS11 Provkod: TENB 28 August 2014, 08:00-12:00. English Version

Kurskod: TAMS11 Provkod: TENB 28 August 2014, 08:00-12:00. English Version Kurskod: TAMS11 Provkod: TENB 28 August 2014, 08:00-12:00 Examinator/Examiner: Xiangfeng Yang (Tel: 070 2234765) a. You are permitted to bring: a calculator; formel -och tabellsamling i matematisk statistik

Läs mer

OFFERT Innovativ Upphandling av Innovativ Teknik

OFFERT Innovativ Upphandling av Innovativ Teknik wes ee AB Org nr: 556315-5679 Phone: +46-76-1120808 +46-493-67074 www.wesee.eu lars@wesee.eu Det här dokumentet finns på www.wesee.eu/2015/n2015-1453-if.pdf Ref 1: www.wesee.eu/2015/description.pdf Till

Läs mer

CVUSD Online Education. Summer School 2010

CVUSD Online Education. Summer School 2010 CVUSD Online Education Summer School 2010 A New Frontier for Education This is an exciting time for CVUSD First opportunity for the Online US History course and second time for the Online Health course

Läs mer

Avancerad SSL-programmering I

Avancerad SSL-programmering I Tekn.dr. Göran Pulkkis Överlärare i Datateknik Avancerad SSL-programmering I 25.1.2012 1 Innehåll SSL-sessioner Förnyad SSL-handskakning Blockerad/oblockerad in/uthantering 25.1.2012 2 SSL-sessioner Session

Läs mer

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg Swedish adaptation of ISO TC 211 Quality principles The subject How to use international standards Linguistic differences Cultural differences Historical differences Conditions ISO 19100 series will become

Läs mer

Förändrade förväntningar

Förändrade förväntningar Förändrade förväntningar Deloitte Ca 200 000 medarbetare 150 länder 700 kontor Omsättning cirka 31,3 Mdr USD Spetskompetens av världsklass och djup lokal expertis för att hjälpa klienter med de insikter

Läs mer

PORTSECURITY IN SÖLVESBORG

PORTSECURITY IN SÖLVESBORG PORTSECURITY IN SÖLVESBORG Kontaktlista i skyddsfrågor / List of contacts in security matters Skyddschef/PFSO Tord Berg Phone: +46 456 422 44. Mobile: +46 705 82 32 11 Fax: +46 456 104 37. E-mail: tord.berg@sbgport.com

Läs mer

Hur fattar samhället beslut när forskarna är oeniga?

Hur fattar samhället beslut när forskarna är oeniga? Hur fattar samhället beslut när forskarna är oeniga? Martin Peterson m.peterson@tue.nl www.martinpeterson.org Oenighet om vad? 1.Hårda vetenskapliga fakta? ( X observerades vid tid t ) 1.Den vetenskapliga

Läs mer

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers.

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers. MÄLARDALENS HÖGSKOLA Akademin för utbildning, kultur och kommunikation Avdelningen för tillämpad matematik Examinator: Erik Darpö TENTAMEN I MATEMATIK MAA150 Vektoralgebra TEN1 Datum: 9januari2015 Skrivtid:

Läs mer

How to format the different elements of a page in the CMS :

How to format the different elements of a page in the CMS : How to format the different elements of a page in the CMS : 1. Typing text When typing text we have 2 possible formats to start a new line: Enter - > is a simple line break. In a paragraph you simply want

Läs mer

Methods to increase work-related activities within the curricula. S Nyberg and Pr U Edlund KTH SoTL 2017

Methods to increase work-related activities within the curricula. S Nyberg and Pr U Edlund KTH SoTL 2017 Methods to increase work-related activities within the curricula S Nyberg and Pr U Edlund KTH SoTL 2017 Aim of the project Increase Work-related Learning Inspire theachers Motivate students Understanding

Läs mer

Day 1: European Cooperation Day 2017

Day 1: European Cooperation Day 2017 Draft agenda for the Annual Event 2017 and European Cooperation Day 2017 Mariehamn, Åland 20-21.9.2017 Day 1: European Cooperation Day 2017 Open for the general public and projects Programme at Alandica

Läs mer

SWESIAQ Swedish Chapter of International Society of Indoor Air Quality and Climate

SWESIAQ Swedish Chapter of International Society of Indoor Air Quality and Climate Swedish Chapter of International Society of Indoor Air Quality and Climate Aneta Wierzbicka Swedish Chapter of International Society of Indoor Air Quality and Climate Independent and non-profit Swedish

Läs mer

x 2 2(x + 2), f(x) = by utilizing the guidance given by asymptotes and stationary points. γ : 8xy x 2 y 3 = 12 x + 3

x 2 2(x + 2), f(x) = by utilizing the guidance given by asymptotes and stationary points. γ : 8xy x 2 y 3 = 12 x + 3 MÄLARDALEN UNIVERSITY School of Education, Culture and Communication Department of Applied Mathematics Examiner: Lars-Göran Larsson EXAMINATION IN MATHEMATICS MAA151 Single Variable Calculus, TEN2 Date:

Läs mer

Taking Flight! Migrating to SAS 9.2!

Taking Flight! Migrating to SAS 9.2! Taking Flight! Migrating to SAS 9.2! Joel Orr, System Engineering Division June 1, 2011 Agenda Introduction Benefits of Migration Possible Migration Scenarios To Do List Potential Problems Resources Introduction

Läs mer

The Swedish National Patient Overview (NPO)

The Swedish National Patient Overview (NPO) The Swedish National Patient Overview (NPO) Background and status 2009 Tieto Corporation Christer Bergh Manager of Healthcare Sweden Tieto, Healthcare & Welfare christer.bergh@tieto.com Agenda Background

Läs mer

Solutions to exam in SF1811 Optimization, June 3, 2014

Solutions to exam in SF1811 Optimization, June 3, 2014 Solutions to exam in SF1811 Optimization, June 3, 14 1.(a) The considered problem may be modelled as a minimum-cost network flow problem with six nodes F1, F, K1, K, K3, K4, here called 1,,3,4,5,6, and

Läs mer

Unit course plan English class 8C

Unit course plan English class 8C Hanna Rüngen Wallner Unit course plan English class 8C Spring term 2018-01-11 w.2-8 forgery safe robbery burglar crime scene Mål och syfte med arbetsområdet Utveckla sin förmåga att: - kommunicera i tal

Läs mer