17
ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

Embed Size (px)

Citation preview

Page 1: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

ECE Department: University of Massachusetts, Amherst

ECE 354

Lab 3: Transmitting and ReceivingEthernet Packets

Page 2: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

2ECE 354

Big Picture Introduction

Transmit and Receive Ethernet packets between two DE2 boards

Implement the 5-layer Internet model Primarily written in C code Use a preexisting SOPC system from the

DE2_NET project

Page 3: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

3ECE 354

Skills to learn

Understanding previously written code Using a peripheral device: DM9000A chip Connect to a device that you did not design:

DM9000A Ethernet chip Internet protocol stack

Page 4: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

4ECE 354

Additional Hardware

Two DE2 boards Ethernet cable

Page 5: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

5ECE 354

The Internet protocol stack –as we will use it

Consists of 5 layers: Application, Transport, Network, Link, and Physical layer; ignore Session and Presentation (OSI)

Page 6: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

6ECE 354

Overview of Lab

Each group should specify the information in Layers 2 through 5 (Link, Network, Transport, and Application)

The payload should be 16 bits selected by 16 switches (switch_pio) on the DE2 board and should be displayed on the LEDs (led_red) of the other DE2 board

Only packets with the correct source MAC, IP, and port addresses should be allowed to update the LEDs

Each group should modify the DM9000A.H file so that the last byte of the MAC address matches their group number

Test protocol compliance by working with another group and using their MAC address as your destination MAC address and your own MAC as the source. This shall fail (or else you need to update it).

Page 7: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

7ECE 354

Overview of DE2_NET project

Important files: hello_led.c, DM9000A.c, and DM9000A.h Three functions to control DM9000A chip

• DM9000_init();• TransmitPacket(TXT, length);• ReceivePacket(RXT, &length);

Copy the DE2_NET from the DE2 CD and use that project in Quartus.

If running two boards on the same computer, make two folders with each holding a copy of the DE2_NET project

Page 8: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

8ECE 354

Layers you will use

Create an Application Layer (5) message (data) by using the sixteen switches on the DE2 board

Encapsulate it into segment at the Transport Layer (4)

Encapsulate the segment in a datagram at the Network Layer (3)

Encapsulate the datagram in a frame at the Link Layer (2)

The frame will be sent over the Physical Layer (1)

Page 9: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

9ECE 354

User Datagram Protocol (UDP) – Layer 4 (Transport Layer)

The Application Data will be encapsulated within a UDP segment

The Segment Header includes the Source Port, Destination Port, Length of Segment, and Checksum

The Source and Destination Port numbers can be determined by the user, but the Length and Checksum will have to be calculated.

Page 10: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

10ECE 354

The Network Layer (3) - IPv4

The Segment from the Transport Layer will be encapsulated within an IPv4 Datagram

Dominant network layer protocol on the internet Data-oriented protocol to be used on a packet

switched network, such as Ethernet Note about Checksums:

• Begin by first setting the checksum field of the header to zero.

• Checksums involve the one’s compliment addition operation. In C take the one’s compliment of a number A by: unsigned int complimentA = ~A

Page 11: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

11ECE 354

IPv4 packet structure

Packet consists of two sections:

The parts of each section that you will use in the is lab are:

Version: IP packet version (4) Header length (between 5 and

15) Total Length (size of datagram)

header and data

Identification: uniquely identifying fragments

Header checksum Source and Destination address Data

Page 12: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

12ECE 354

Link Layer (2) – Ethernet Frame

The Datagram from the Network Layer is encapsulated within an Ethernet Frame

The Destination and Source MAC addresses should be set to uniquely identify each DE2 board

Extra credit will be awarded if you perform CRC Checksum, otherwise set it to a value of zero

Page 13: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

13ECE 354

The Physical Layer (1)

Refers to the network hardware or physical cabling

Provides the means of transmitting raw bits You can also use a loopback (included with kit) to send

packets back your own board

Page 14: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

14ECE 354

What to demonstrate

Display data payload on the red binary LEDs Display the number of packets transmitted on

the seven segment display Only packets with the correct source MAC

address, IP address, and port address should be displayed

Page 15: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

15ECE 354

Where does this project lead?

The next Lab (number 4) will put Lab 2 and Lab 3 together

Implement a reliable system

Page 16: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

16ECE 354

References

The two documents located at DE2_System_v1.6\Datasheets\Ethernet

DE2_System_v1.6\DE2_demonstrations\ DE2_NET project

For detailed description of headers http://en.wikipedia.org/wiki/Internet_protocol_suite

Method of calculating the CRC http://en.wikipedia.org/wiki/Cyclic_redundancy_check

Page 17: ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets

17ECE 354

Comments and/or Questions