Introduction to RAW-Sockets Jens Heuschkel, Tobias Hofmann, Thorsten Hollstein, Joel Kuepper

Total Page:16

File Type:pdf, Size:1020Kb

Introduction to RAW-Sockets Jens Heuschkel, Tobias Hofmann, Thorsten Hollstein, Joel Kuepper Introduction to RAW-sockets Jens Heuschkel, Tobias Hofmann, Thorsten Hollstein, Joel Kuepper 16.05.2017 Technical Report No. TUD-CS-2017-0111 Technische Universität Darmstadt Telecooperation Report No. TR-19, The Technical Reports Series of the TK Research Division, TU Darmstadt ISSN 1864-0516 http://www.tk.informatik.tu-darmstadt.de/de/publications/ Introduction to RAW-sockets by Heuschkel, Jens Hofmann, Tobias Hollstein, Thorsten Kuepper, Joel May 17, 2017 Abstract This document is intended to give an introduction into the programming with RAW-sockets and the related PACKET-sockets. RAW-sockets are an additional type of Internet socket available in addition to the well known DATAGRAM- and STREAM-sockets. They do allow the user to see and manipulate the information used for transmitting the data instead of hiding these details, like it is the case with the usually used STREAM- or DATAGRAM sockets. To give the reader an introduction into the subject we will first give an overview about the different APIs provided by Windows, Linux and Unix (FreeBSD, Mac OS X) and additional libraries that can be used OS-independent. In the next section we show general problems that have to be addressed by the programmer when working with RAW-sockets. We will then provide an introduction into the steps necessary to use the APIs or libraries, which functionality the different concepts provide to the programmer and what they provide to simplify using RAW and PACKET-sockets. This section includes examples of how to use the different functions provided by the APIs. Finally in the additional material we will give some complete examples that show the concepts and can be used as a basis to write own programs. The examples are programmed in C++ and we assume that the reader has basic programming skills and networking knowledge to be able to understand the listings and content of this document. 1 Contents 1 Introduction 8 1.1 RAW-sockets..................................................8 1.2 PACKET-sockets and Data Link Layer APIs................................9 2 Implementations for different Operating Systems 10 2.1 Windows.................................................... 10 2.1.1 Winsock-API.............................................. 10 2.1.2 winpcap................................................. 10 2.2 Linux...................................................... 10 2.2.1 RAW-sockets.............................................. 10 2.2.2 PACKET-sockets............................................ 11 2.3 Unix (FreeBSD, Mac OS X).......................................... 11 2.3.1 RAW-sockets.............................................. 11 2.3.2 Berkeley Packet Filter (BPF)..................................... 12 2.4 OS independent................................................. 12 2.4.1 pcap................................................... 12 2.4.2 libnet.................................................. 12 3 Programming with the APIs 13 3.1 General..................................................... 13 3.1.1 Byte Order............................................... 13 3.1.2 Checksum................................................ 13 3.1.3 Type-Casting.............................................. 14 Linux.................................................. 14 3.1.4 Header-Positions............................................ 14 3.2 RAW-sockets.................................................. 15 3.2.1 socket() ............................................... 15 Unix................................................... 16 3.2.2 setsockopt() ............................................ 16 Unix................................................... 17 3.2.3 getsockopt() ............................................ 17 Unix................................................... 18 3.2.4 bind() ................................................. 18 Unix................................................... 18 3.2.5 getsockname() ........................................... 19 Unix................................................... 19 3.2.6 connect() ............................................... 19 Unix................................................... 19 3.2.7 Read................................................... 19 read() ................................................. 20 recv() ................................................. 20 recvfrom() .............................................. 20 flags and errors for the recv()- and recvfrom()-functions................... 21 Unix................................................... 22 3.2.8 Write.................................................. 22 write() ................................................ 22 send() ................................................. 22 sendto() ............................................... 23 Flags and errnos for the send() and sendto() functions.................... 23 Unix................................................... 24 3.2.9 close() ................................................ 24 Unix................................................... 25 3.2.10 inet_ntop() ............................................. 25 Unix................................................... 25 3.2.11 inet_pton() ............................................. 25 Unix................................................... 26 3.2.12 Data Types .............................................. 26 3.2.13 Layer 4................................................. 28 2 Unix................................................... 28 Read................................................... 28 Write.................................................. 30 3.2.14 Layer 3................................................. 30 Read................................................... 32 Write.................................................. 32 3.2.15 Layer 2 - PACKET-sockets...................................... 36 Promiscuous Mode........................................... 36 MAC-Address.............................................. 36 Read................................................... 36 Write.................................................. 38 3.3 Berkeley Packet Filter (BPF)......................................... 40 3.3.1 BPF Header.............................................. 41 3.3.2 Buffer Modes.............................................. 41 3.3.3 IOCTLS................................................. 41 3.3.4 SYSCTL Variables........................................... 42 3.3.5 Filter Maschine............................................. 42 3.3.6 Read................................................... 42 3.3.7 Write.................................................. 44 3.4 Winsock-API.................................................. 44 3.4.1 Preparations and Usage........................................ 46 4 Programming with the libraries 47 4.1 Libnet...................................................... 47 4.1.1 Preparations.............................................. 47 4.1.2 Process of packet creation....................................... 47 Library initialization.......................................... 47 Packet building............................................. 49 Packet write.............................................. 49 Packet destruction........................................... 49 4.1.3 Functions................................................ 51 Library initialization.......................................... 51 Build Functions............................................. 51 Write.................................................. 54 Destruction............................................... 54 Other functions............................................. 55 4.2 libpcap...................................................... 58 4.2.1 Preparation............................................... 58 4.2.2 Process of packet capturing...................................... 58 Interface Selection........................................... 58 Initialize libpcap session........................................ 58 Define Filters.............................................. 58 Initiate Sniffing process........................................ 59 Identification of the header size................................ 59 Casting............................................. 60 Byte order............................................ 60 Close libpcap session.......................................... 60 4.2.3 Functions................................................ 60 Interface Selection........................................... 60 Initialize libpcap session........................................ 62 Define Filters.............................................. 62 Initiate Sniffing process........................................ 63 Close Session.............................................. 65 Other functions............................................. 65 4.3 libpcap in Windows.............................................. 65 4.3.1 Installation and Preparation...................................... 66 4.3.2 Process of packet capturing...................................... 66 4.3.3 Functions................................................ 66 5 Literature 67 3 A Appendix: Listings 69 A.1 rfc1071 checksum cpp............................................. 69 A.2 win socket cpp................................................. 70 A.3 libnet tcp c................................................... 72 A.4 sendpack c.................................................... 75 A.5 dump c..................................................... 76 B Appendix:
Recommended publications
  • What Is the Difference Between San and Nas and How Can I Use Them in My Qlikview Environment?
    WHAT IS THE DIFFERENCE BETWEEN SAN AND NAS AND HOW CAN I USE THEM IN MY QLIKVIEW ENVIRONMENT? QlikView Technical Brief February 2012 qlikview.com This document will highlight some of the conceptual differences between the terms SAN and NAS and describe how they fit into a QlikView Server environment by suggesting some recommended implementations. It will also describe the definition of DAS (Direct-Attached Storage) and how it applies in SAN configurations. Using SAN and NAS in the QlikView Environment | Page 2 Table of Contents Definitions 4 SAN - Storage Area Network 4 Host adapters 4 Typical architecture 5 NAS - Network Attached Storage 7 Typical architecture 7 DAS - Direct-Attached Storage 8 Using SAN/NAS and QlikView Server 8 QlikView Server and Distribution Service cluster inter-communication 8 QlikView Server file storage conformity 9 QlikView file types explained 9 A note on the usage of .shared files 10 Considerations 10 Conclusions 11 Some suggestions 12 QlikView Server Configurations 12 QlikView Server cluster utilizing a virtual Windows based NAS using a SAN 12 QlikView Server cluster utilizing a physical NAS using a SAN 13 Single QlikView Server using a SAN as local storage 14 QlikView Server using a pure Windows based NAS as local storage 14 Using SAN and NAS in the QlikView Environment | Page 3 Definitions It is important to differentiate between the two terms SAN and NAS. Also, the term DAS will be involved to nuance the usage of a SAN. SAN - STORAGE AREA NETWORK A typical definition of a SAN could be; “SANs primarily are used to make storage devices (such as disk arrays, tape libraries, and optical jukeboxes) accessible to servers so that the devices appear as locally attached to the operating system.” (Wikipedia.org) SANs are often used in larger virtualization scenarios or where larger areas of high-speed access storage space is required.
    [Show full text]
  • Libioth (Slides)
    libioth The definitive API for the Internet of Threads Renzo Davoli – Michael Goldweber "niversit$ o% Bolo&na '(taly) – *avier "niver#it$ (Cin!innati, "SA) ,irt-alS.-are Micro/ernel DevRoo0 1 © 2021 Davoli-Goldweber libioth. CC-BY-SA 4.0 (nternet of Thread# (IoTh) service1.company.com → 2001:1:2::1 service2.company.com → 2001:1:2::2 host.company.com→11.12.13.14 processes service3.company.com → 2001:1:2::3 2 © 2021 Davoli-Goldweber libioth. CC-BY-SA 4.0 IoTh vs Iold What is an end-node o% the (nternet4 (t depends on what is identified b$ an (P addre##. ● (nternet o% 1hreads – (oTh – 7roce##e#8threads are a-tonomou# nodes of the (nternet ● (nternet o% 9e&ac$ Devi!es 'in brie% (-old in this presentation) – (nternet o% :ost# – Internet of ;etwork Controller#. – (nternet o% ;a0e#5a!e# 2 © 2021 Davoli-Goldweber libioth. CC-BY-SA 4.0 7,M – IoTh - </ernel 4 © 2021 Davoli-Goldweber libioth. CC-BY-SA 4.0 7,M – IoTh - </ernel ● icro/ernel, Internet o% Threads, Partial Virtual a!hines have the co00on goal to create independent code units i05lementing services ● 1hey are all against monolithic i05lementation# ● 1he challenge o% this talk is to !reate !ontacts, e>5loit paralleli#0#+ that allow to share res-lts, A7I, code. = © 2021 Davoli-Goldweber libioth. CC-BY-SA 4.0 Network Sta!/ ● API to application layer TCP-IP stack TCP UDP IPv4 IPv6 ICMP(v4,v6) ● API (NPI) to data-link – (e.g. libioth uses VDE: libvdeplug) ? © 2021 Davoli-Goldweber libioth. CC-BY-SA 4.0 IoTh & </ernel User process User process TCP-IP stack TCP UDP TCP/IP stack process IPv4 IPv6 ICMP(v4,v6) TCP-IP stack TCP UDP IPv4 IPv6 ICMP(v4,v6) Data-link network server Data-link network server @ © 2021 Davoli-Goldweber libioth.
    [Show full text]
  • Design and Implementation Considerations for Storage Area Networks
    Designing and Implementing a SAN 1 Running head: DESIGNING AND IMPLEMENTING A SAN Considerations for the Design and Implementation of a Storage Area Network (SAN) Al Spraker 15 July 2006 Designing and Implementing a SAN 2 Abstract With the ever-increasing need for businesses and organizations to maintain and manage large amounts of data, storage issues have become a concern and an investment priority. Organizations and business must have a good understanding of the features and characteristics of network storage in order to design and implement a network storage system that addresses their present and future needs. This paper will define and compare the storage area networks (SAN) with network-attached storage (NAS) as well as a historical perspective of directly-attached storage (DAS). Some of the benefits associated with establishing a network storage system will also be identified. This paper will identify some of the general characteristics of SAN architecture and protocols, such as Fibre Channel and iSCSI. Another area addressed will be management software issues and its critical role as part of successful SAN deployment. Not only must data be reliable and available at all times, data must also be kept confidential and protected. While the data is being transmitted over the network, security is also a concern that must be addressed. Designing and Implementing a SAN 3 Considerations for the Design and Implementation of a Storage Area Network (SAN) Today’s enterprises are using more complex, sophisticated, and resource-intensive software that generates massive amounts of data. The demand for businesses to maintain and manage large amounts of data has elevated storage issues to a level of significant priority.
    [Show full text]
  • Improving Networking
    IMPERIAL COLLEGE LONDON FINALYEARPROJECT JUNE 14, 2010 Improving Networking by moving the network stack to userspace Author: Matthew WHITWORTH Supervisor: Dr. Naranker DULAY 2 Abstract In our modern, networked world the software, protocols and algorithms involved in communication are among some of the most critical parts of an operating system. The core communication software in most modern systems is the network stack, but its basic monolithic design and functioning has remained unchanged for decades. Here we present an adaptable user-space network stack, as an addition to my operating system Whitix. The ideas and concepts presented in this report, however, are applicable to any mainstream operating system. We show how re-imagining the whole architecture of networking in a modern operating system offers numerous benefits for stack-application interactivity, protocol extensibility, and improvements in network throughput and latency. 3 4 Acknowledgements I would like to thank Naranker Dulay for supervising me during the course of this project. His time spent offering constructive feedback about the progress of the project is very much appreciated. I would also like to thank my family and friends for their support, and also anybody who has contributed to Whitix in the past or offered encouragement with the project. 5 6 Contents 1 Introduction 11 1.1 Motivation.................................... 11 1.1.1 Adaptability and interactivity.................... 11 1.1.2 Multiprocessor systems and locking................ 12 1.1.3 Cache performance.......................... 14 1.2 Whitix....................................... 14 1.3 Outline...................................... 15 2 Hardware and the LDL 17 2.1 Architectural overview............................. 17 2.2 Network drivers................................. 18 2.2.1 Driver and device setup.......................
    [Show full text]
  • Linux Journal | System Administration Special Issue | 2009
    Cfengine VNC Billix Zenoss Thin Clients MySQL Heartbeat ™ SPECIAL SYSTEM ADMINISTRATION ISSUE Since 1994: The Original Magazine of the Linux Community 2009 | Supplement Issue | www.linuxjournal.com MAY THE SOURCE BE WITH YOU Billix: the Sysadmin Toolkit for Your Pocket Authentication with Fedora Directory Server Remote Desktop Administration with OpenSSH or VNC Manage Configuration Files with Cfengine Setting Up a PXE Boot Server Network Monitoring with Zenoss SPECIAL SYSTEM CONTENTS ADMINISTRATION ISSUE 5 SPECIAL_ISSUE.TAR.GZ 26 PXE MAGIC: FLEXIBLE System Administration: Instant NETWORK BOOTING WITH Gratification Edition MENUS Shawn Powers What if you never had to carry around an install or rescue CD 6 CFENGINE FOR again? Set up a PXE boot server ENTERPRISE with menus and put them all on CONFIGURATION the network. MANAGEMENT Kyle Rankin How to use cfengine to manage configuration files across large 30 CREATING VPNS WITH 17 ZENOSS numbers of machines. IPSEC AND SSL/TLS Scott Lackey The two most common and current techniques for creating VPNs. 10 SECURED REMOTE Rami Rosen Linux Journal DESKTOP/APPLICATION SESSIONS 34 MYSQL 5 STORED 2009 Lineup Different ways to control a Linux PROCEDURES: RELIC OR system over a network. REVOLUTION? JANUARY Mick Bauer Do MySQL 5 Stored Procedures Security produce tiers of joy or sorrow? FEBRUARY Guy Harrison Web Development 38 GETTING STARTED WITH MARCH Desktop HEARTBEAT Availability in a heartbeat. APRIL Daniel Bartholomew System Administration 14 BILLIX: A SYSADMIN’S MAY SWISS ARMY KNIFE 42 FEDORA DIRECTORY Cool Projects SERVER: THE EVOLUTION Build a toolbox in your pocket by JUNE installing Billix on that spare USB key.
    [Show full text]
  • Network Layer
    Network Layer Rick Graziani Thanks to Brad Smith for his contributions Spring 2018 Next week in CE 151 • Sign up for Piazza (piazza.com) • Sunday - First lab due. - First lab section is half of the lab grade. - 85 points for the lab - 85 points for attending first lab section - VM Problems • Tuesday - Link layer lecture • Thursday - Read “End-to-End Argument” paper - IPv4/layer exercise - IPv4 quiz… review orange slides Today • Too many slides, but will go fast over some and slower on others • Evolution of TCP/IP - Overview Evoluon of TCP/IP (Overview) Internet Background • The ARPAnet was the first packet-switched network (1969) • It’s success led to the Internet • The ARPAnet architecture - Homogeneous (same) switches • Interface Message Processors (IMPs) – Honeywell 316/516 minicomputers (maps to "physical, data link and network layers") - Heterogeneous (different) hosts - The Network Control Protocol or Program (NCP) implemented conservative error, flow, and congestion control (early TCP) • Stop and wait • Hop by hop Evoluon of TCP/IP (Overview) • NCP provided the transport layer: - ARPANet Host-to-Host Protocol (AHHP) - Initial Connection Protocol (ICP) • Move from smart network to smart hosts … “End-to-end Principle” (Work done by Paul Baran and Donald Davies in the 1960s) • Reliable delivery a host-host issue • TCP split into TCP/IP (Early 1980s) - Internet Protocol (IP) • Best-effort routing • Internet level addressing - Transmission Control Protocol (TCP) • New, end-to-end error, flow, and congestion control Internet Background
    [Show full text]
  • Post Sockets - a Modern Systems Network API Mihail Yanev (2065983) April 23, 2018
    Post Sockets - A Modern Systems Network API Mihail Yanev (2065983) April 23, 2018 ABSTRACT In addition to providing native solutions for problems, es- The Berkeley Sockets API has been the de-facto standard tablishing optimal connection with a Remote point or struc- systems API for networking. However, designed more than tured data communication, we have identified that a com- three decades ago, it is not a good match for the networking mon issue with many of the previously provided networking applications today. We have identified three different sets of solutions has been leaving the products vulnerable to code problems in the Sockets API. In this paper, we present an injections and/or buffer overflow attacks. The root cause implementation of Post Sockets - a modern API, proposed by for such problems has mostly proved to be poor memory Trammell et al. that solves the identified limitations. This or resource management. For this reason, we have decided paper can be used for basis of evaluation of the maturity of to use the Rust programming language to implement the Post Sockets and if successful to promote its introduction as new API. Rust is a programming language, that provides a replacement API to Berkeley Sockets. data integrity and memory safety guarantees. It uses region based memory, freeing the programmer from the responsibil- ity of manually managing the heap resources. This in turn 1. INTRODUCTION eliminates the possibility of leaving the code vulnerable to Over the years, writing networked applications has be- resource management errors, as this is handled by the lan- come increasingly difficult.
    [Show full text]
  • Programmer's Guide
    Programmer’s Guide Release 18.02.2 June 15, 2018 CONTENTS 1 Introduction 1 1.1 Documentation Roadmap...............................1 1.2 Related Publications..................................2 2 Overview 3 2.1 Development Environment..............................3 2.2 Environment Abstraction Layer............................4 2.3 Core Components...................................4 2.4 Ethernet* Poll Mode Driver Architecture.......................6 2.5 Packet Forwarding Algorithm Support........................6 2.6 librte_net........................................6 3 Environment Abstraction Layer7 3.1 EAL in a Linux-userland Execution Environment..................7 3.2 Memory Segments and Memory Zones (memzone)................ 11 3.3 Multiple pthread.................................... 12 3.4 Malloc.......................................... 14 4 Service Cores 19 4.1 Service Core Initialization............................... 19 4.2 Enabling Services on Cores............................. 19 4.3 Service Core Statistics................................ 20 5 Ring Library 21 5.1 References for Ring Implementation in FreeBSD*................. 22 5.2 Lockless Ring Buffer in Linux*............................ 22 5.3 Additional Features.................................. 22 5.4 Use Cases....................................... 22 5.5 Anatomy of a Ring Buffer............................... 22 5.6 References....................................... 31 6 Mempool Library 33 6.1 Cookies......................................... 33 6.2 Stats.........................................
    [Show full text]
  • Detecting Packet Injection a Guide to Observing Packet Spoofing by Isps
    Detecting Packet Injection A GUidE TO OBSERVING PACKET SPOOFING BY ISPs By Seth Schoen [email protected] ELECTRONIC FRONTIER FOUNDATION eff.org Version .0 November 28, 2007 Detecting Packet Injection: A Guide To Observing Packet Spoofing by ISPs Introduction Certain Internet service providers have begun to interfere with their users’ communications by injecting forged or spoofed packets – data that appears to come from the other end but was actually generated by an Internet service provider (ISP) in the middle. This spoofing is one means (although not the only means) of blocking, jamming, or degrading users’ ability to use particular applications, services, or protocols. One important means of holding ISPs account- able for this interference is the ability of some subscribers to detect and document it reliably. We have to learn what ISPs are doing before we can try to do something about it. Internet users can often detect interference by comparing data sent at one end with data received at the other end of a connection. Techniques like these were used by EFF and the Associated Press to produce clear evidence that Comcast was deliberately interfering with file sharing applications; they have also been used to document censorship by the Great Firewall of China.1 In each of these cases, an in- termediary was caught injecting TCP reset packets that caused a communication to hang up – even though the communicating parties actually wanted to continue talking to one another. In this document, we describe how to use a network analyzer like Wireshark to run an experi- ment with a friend and detect behavior like this.
    [Show full text]
  • Security Monitoring for Network Protocols and Applications Vinh Hoa La
    Security monitoring for network protocols and applications Vinh Hoa La To cite this version: Vinh Hoa La. Security monitoring for network protocols and applications. Networking and Internet Architecture [cs.NI]. Université Paris-Saclay, 2016. English. NNT : 2016SACLL006. tel-01782396 HAL Id: tel-01782396 https://tel.archives-ouvertes.fr/tel-01782396 Submitted on 2 May 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. 1176$&// 7+(6('('2&725$7 '( /¶81,9(56,7(3$5,66$&/$< 35(3$5(($ 7(/(&2068'3$5,6 e&2/('2&725$/(1 6FLHQFHVHW7HFKQRORJLHVGHO ,QIRUPDWLRQHWGHOD&RPPXQLFDWLRQ 67,& 6SpFLDOLWpGHGRFWRUDW,QIRUPDWLTXH 3DU 09LQK+RD/D 6HFXULW\0RQLWRULQJIRU1HWZRUN3URWRFROVDQG $SSOLFDWLRQV 7KqVHSUpVHQWpHHWVRXWHQXHj(YU\OHRFWREUH &RPSRVLWLRQGX-XU\ 0)DULG1$,7$%'(66(/$03URIHVVHXU8QLYHUVLWp3DULV'HVFDUWHV 3DULV9 5DSSRUWHXU 00DUFHOR',$6'($025,0'LUHFWHXUGHUHFKHUFKH&156/,3830&5DSSRUWHXU 03DWULFN6(1$&3URIHVVHXU(1$&±7RXORXVH([DPLQDWHXU 0PH)DWLKD=$,',0DvWUHGH&RQIpUHQFHV+'58QLYHUVLWp3DULV6XG([DPLQDWULFH 0$GULHQ%(&8+HDGRI5HVHDUFK 7HFKQRORJ\$LUEXV'6&\EHUVHFXULW\([DPLQDWHXU 0:LVVDP0$//28/,'U,QJpQLHXUGHUHFKHUFKH0RQWLPDJH([DPLQDWHXU 0PH$QD5RVD&$9$//,3URIHVVHXU7HOHFRP6XG3DULV'LUHFWHXUGHWKqVH Titre : Monitorage des Aspects Sécuritaires pour les Protocoles de Réseaux et Applications. Mots clés : sécurité, détection d'intrusion, surveillance de sécurité, supervision de réseaux Résumé : La sécurité informatique, aussi applications.
    [Show full text]
  • Efficient Pc-Fpga Communication Over Gigabit Ethernet
    EFFICIENT PC-FPGA COMMUNICATION OVER GIGABIT ETHERNET Nikolaos Alachiotis, Simon A. Berger, Alexandros Stamatakis∗ The Exelixis Lab Department of Computer Science Technische Universit¨at M¨unchen email: {alachiot,bergers,stamatak}@in.tum.de ABSTRACT As FPGAs become more powerful in terms of available reconfigurable hardware resources, they are increasingly used As FPGAs become larger and more powerful, they are in- as accelerator devices, for instance because of their inherent creasingly used as accelerator devices for compute-intensive ability to process more data in parallel. A common trend is functions. Input/Output (I/O) speeds can become a bottle- to connect a FPGA-based board to a general purpose proces- neck and directly affect the performance of a reconfigurable sor, usually a personal computer (PC), for offloading com- accelerator since the chip will idle when there are no data putationally intensive parts or functions of an application to available. While PCI Express represents the currently fastest the FPGA. Function offloading to the FPGA can thus sig- and most expensive solution to connect a FPGA to a general nificantly speed up the execution of scientific codes for in- purpose CPU, there exist several applications with I/O re- stance. To exploit the full acceleration potential of a recon- quirements for which Gigabit Ethernet is sufficient. figurable architecture, the time the FPGA idles because it is To this end, we present the design of an efficient UDP/IP waiting for an I/O operation should be minimized. core for PC-FPGA communication that has been designed to occupy a minimum amount of hardware resources on the The fastest and most expensive interconnect technology FPGA.
    [Show full text]
  • Low Cost SAN
    Low Cost SAN Date: 25/04/2009 Revision History Version No. Date Prepared by Significant Changes 1. 25/04/2009 Krishna Kumar (NEC HCL ST) 1 Objective The objective of this document is to provide making of Low Cost SAN using FOSS tools. We have tried to set up a SAN which has following features: • Low cost and easily affordable • Ensured Scalability • High Reliability • Easily Manageable • High Performance • Ensured Security • High availability 2 Definitions, Acronyms and Abbreviations This section provides a list of all definitions, acronyms and terms required to properly interpret this document as well as to understand SAN terms and terminology. Abbreviation Description AoE ATA over Ethernet, a open storage protocol ATA Advance Technology Attachment Targets End Point of communication ( normally refers to server side ) Initiators A host that requests access to storage device ( client end ) RHCS Red Hat Clustering Suite Heartbeat A signal periodically sent out by a hardware component in order to inform another component that it is working normally ISCSI Internet Small Computer System Interface SATA Serial ATA, a newer version of ATA interface GFS Global File System, a cluster aware filesystem for Linux SAN Storage Area Networking LVM Logical Volume Manager RAID Redundant Array of Inexpensive disks DRBD Distributed Replicated Block Device NBD Network Block Device ENBD Enhanced Network Block Device GNBD Global Network Block Device HA High Availability, a clustering solution for Linux which provides reliability, availability and serviceability FOSS Free Open Source Software DFS Distributed File System for Windows LVS Linux Virtual Server 3 References This section tells all the references and urls used to prepare this document.
    [Show full text]