Presentation is loading. Please wait.

Presentation is loading. Please wait.

HomePlug 1.0 MAC (c) 2013 R. Newman University of Florida.

Similar presentations


Presentation on theme: "HomePlug 1.0 MAC (c) 2013 R. Newman University of Florida."— Presentation transcript:

1 HomePlug 1.0 MAC (c) 2013 R. Newman University of Florida

2 What is HomePlug 1.0? Broadband PLC for home networking Open industry standard –4 manufacturers (including Intellon) Developed in 2000 by Homeplug Powerline Alliance (HPA) –Consortium of chip designers, OEMs, PLC users –Products shipped in 2001 First ethernet class PLC, most widely available –11 Mbps coded PHY data rate –0ver 10 million units shipped Comprises –PHY – modulation, coupling, FEC, etc. –MAC – medium access, ARQ, etc. –Bridging – to other PLC networks or to 803.3/11/etc.

3 HomePlug 1.0 MAC Overview Frame Transport Frame length = 46-1500 bytes/frame IEEE 802.3 frames encapsulated IEEE 802.3 48-bit addressing used Bridging between PLC and other networks Reliable Frame Delivery Rate adaptive PHY Channel estimation and tone map generation Stop&Wait ARQ for unicast frames “Partial ACK” for multicast frames Segmentation to limit time exposed on wire

4 HP 1.0 MAC Overview (con’t) Quality of Service 4 priority levels for differentiated service Priority signaling slots enforce priority access Segmentation bounds delay Bursting for contention-free access Privacy 56-bit key DES encryption in CBC mode Password-based key derivation supported Management Registered ethertype for management data

5 HP1.0 MAC CSMA/CA Virtual Carrier Sense - length in FC 4 levels of priority for differentiated service Advanced contention resolution Variable tone map, including code rate selection Packets of ~0.5ms to ~2ms Packet bursting to avoid contention Stop&Wait ARQ 56-bit DES in CBC mode for privacy Bridging function

6 HP1.0 PHY PDU Preamble = 38.4 usec Set pattern of 7.5 special symbols Allows AGI, synchronization by receiver Detection used for PCS Frame Control (FC) = 33.6 usec. (4 symbols) Heavily coded Uses BPSK (low rate) modulation Very robust Very few (25) information bits FC holds info for PHY Tone Map Index- for demodulation of body Frame duration (how long to demodulate )

7 HP1.0 PHY Frame Format Detect delimiter from preamble, correct FC SOF FC indicates symbol count, tone map Pad Frame Body to PHY Tx block boundary EOF FC delimits end of data frame

8 HP1.0 Delimiters Delimiter Preamble + frame control = 72.0 usec FC holds 25 bits of information 1 bit – contention control (CC) 3 bits – delimiter type (DT) 13 bits – variant field (depends on DT) 8 bits – frame control check sequence (FCCS) CC bit restricts next access If set, only frames at same or higher priority allowed to contend FCCS checks frame control 8-bit CRC

9 HP1.0 Delimiter Type 000 = SOF, no response expected (mcast/bcast) 001 = SOF, response expected 010 = EOF, no response expected 011 = EOF, response expected 100 = ACK (frame received w/o errors) 101 = NACK/FAIL Variable field has Response Type (RT) RT=0 – NACK if address recognized but errors RT=1 – FAIL if frame error-free but receiver does not currently have resources to receive 110-111 = Reserved

10 HP1.0 SOF Variant Field 8 bits Frame Length (FL) In multiples of 20 symbols Interpreted by PHY as PHY Transmit Blocks 0x00 = 20 symbols 0x07 = 160 symbols 0x08-0xFF = reserved 5 bits Tone Map Index (TMI) 0x00 = ROBO (only 40-symbol PTBs allowed) 0x01-0x0F = negotiated tone map 0x10-0x1F = reserved

11 HP1.0 EOF Variant Field 2 bits Channel Access Priority (CAP) 11 = highest, 00 = lowest Used for bursting 1 bit Invalid Must be set to 0 or FC is invalid 10 bits Reserved Set to 0 on transmit, ignored on receive

12 HP1.0 ACK Variant Field 2 bits Channel Access Priority (CAP) 11 = highest, 00 = lowest Used for bursting 11 bits Received Frame Check Sequence (RFCS) Last 11 bits of CRC-16 of frame being acknowledged If RFCS does not match, treated as collision

13 HP1.0 NACK/FAIL Variant Field 2 bits Channel Access Priority (CAP) For NACK, copied from valid EOF, else segt ctl 1 bit Response Type (RT) RT=0 NACK RT=1 FAIL 10 bits Received Frame Check Sequence (RFCS) Only used by FAIL – set to 0 by NACK Last 10 bits of CRC-16 of frame being acknowledged If RFCS does not match, treated as collision

14 HP1.0 Medium Access Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) Maintain view of medium state Don’t send when busy or if unsure Use slotted contention window to avoid collisions Recover from collisions by backoff process Priority-based access Four priority levels CA3>CA2>CA1>CA0 (30.72 us per slot)

15 HP1.0 CSMA/CA Medium states when frame sent or detected during contention Carrier Sense PCS by SYNC detection (SOF, EOF, ACK, NACK/FAIL) VCS by delimiter type and fields

16 HP1.0 CSMA/CA (con’t) Medium states when preempted in PRSs but no frame detected Priority Slots (PRSs) Two slots (PRS0, PRS1), 30.72 usec per slot Assert “1” bits in CAP – shortened inverted preamble Receive others’ “ORed” bits if “assert” 0 in a PRS Defer if “1” detected

17 HP1.0 CSMA/CA (con’t) Medium states when collision detected but no frame detected Collisions Inferred from absence of expected response or Frame Control errors

18 HP1.0 Interframe Space (IFS) End of Frame Gap (EFG) 1.5 usec between end of frame body and EOF Contention IFS (CIFS) 35.9usec between end of last transmission and PRS0 Response IFS (RIFS) 26.0usec between end of a transmission and start of its expected response (ACK, NACK/FAIL) Delimiter indicates whether response is expected If none expected, CIFS is used Extended IFS (EIFS) Used when station is unsure of medium state Maximum busy time possible EIFS = 3*delim + EFG + 2*PRS + CIFS + RIFS + Max frame size * symbol time

19 HP1.0 CIFS and RIFS

20 HP1.0 Collision Avoidance Priority Resolution Only frames of highest priority contend Priority resolution slots enforce priority strictly Contention Period 35 usec slots to start transmission/detect sync Initial number of slots depends on priority level Randomly select a slot in initial contention window Listen to earlier slots – defer if detect transmission Resume countdown next available contention period Random Backoff Invoked if collision detected

21 HP1.0 Random Backoff Procedure Goal is to estimate number of contenders Adjust contention window used to minimize time until successful transmission Avoid collisions Avoid extended idle times Use information available Collisions Deferrals CA3 & CA2CA1 & CA0 BPC=0CW=7, DC=0CW=7, DC=0 BPC=1CW=15, DC=1CW=15, DC=1 BPC=2CW=15, DC=3CW=31, DC=3 BPC=3CW=31, DC=15CW=63, DC=15

22 HP1.0 Random Backoff Procedure Counters Used BPC – Backoff Procedure Event Counter TC – Transmit Counter – # times transmitted BC – Backoff Counter – countdown to Tx DC – Deferral Counter – # times deferred CW – Contention Window – range for BC Collision_Retries – when not in ROBO NACK_Retries – when not in ROBO FAIL_Retries Collision_ROBO_Retries – when in ROBO NACK_ROBO_Retries – when in ROBO

23 HP1.0 Random Backoff Procedure 1.Initialize counters to 0, go to step 2 2.Determine medium state – If Idle, transmit – If Busy, wait – If PRS0 or PRS1, resolve priority, go to step 3 3.If priority contention lost, go to step 2

24 HP1.0 Random Backoff Procedure 1.If priority contention won, then may contend If BPC=0 or BC=0 or DC=0 Set CW to CW[BPC,priority] Set DC to DC[BPC,priority] Increment BPC Set BC = Random(CW) On each contention slot when BC>0, If empty, decrement BC If medium becomes busy, go to step 2 If BC = 0, transmit, then go to step 5

25 HP1.0 Random Backoff Procedure 1.After transmitting a frame a.If no response expected, or if receive ACK with valid RFCS, then done. b.If collision inferred, then increment proper collision counter, and - If robo retry max reached, discard frame, - else if regular retry max reached, switch to ROBO, - else try again – go to step 2

26 HP1.0 Random Backoff Procedure 1.After transmitting a frame (con't) a.If valid NACK received, then increment proper NACK counter, and Reset BPC to 0 - If NACK robo retry max reached, discard frame, - else if NACK regular retry max reached, switch to ROBO, - else try again – go to step 2

27 HP1.0 Random Backoff Procedure 1.After transmitting a frame (con't) a.If valid FAIL received with valid RFCS, then increment FAIL counter, and Reset BPC to 0 - If FAIL retry max reached, discard frame, - else wait for FAIL_DELAY then try again – go to step 2

28 HP1.0 Random Backoff Procedure Key points: 1.Very conservative in avoiding collisions 2.Uses collisions to estimate number of contenders, like 802.3 and 802.11 3.Also uses number of deferrals to estimate number of contenders 4.Eschewed the theoretically more efficient binary countdown approach to use more robust (against confusion) unary approach

29 HP1.0 MAC Data Frame Format Data frame has SOF, payload, EOF Block pad (B-PAD) zero-fills last PHY Tx Block Frame Check Sequence (FCS) – 16-bit CRC EOF followed by end-of-frame gap (EFG) Immediate response delimiter

30 HP1.0 Frame Header Frame Header is channel adapted Only intended receiver demodulates it 48-bit DA and SA IEEE 802.3 MAC addresses 40-bit Segment Control Holds length of actual data along with flags, bursting info, CAP

31 HP1.0 Segment Control Field 3 bits Protocol Version Number (=1) 2 bits reserved 1 bit Multicast Flag (MCF) (=1 for mcast/bcast) 2 bits Channel Access Priority (CAP) 15 bits Segment Length (SL) Length in bytes of Frame Body Not including Segment Header, E-Pad, or ICV 1 bit Last Segment Flag (LSF) Set if last (or only) segment in Service Block 6 bits Segment Count (SC) Incremented with each new segment of a Service Block 10 bits Sequence Number (SN) Incremented with each new Service Block sent

32 HP1.0 Segmentation

33 3 bits Protocol Version Number (=1) 2 bits reserved 1 bit Multicast Flag (MCF) (=1 for mcast/bcast) 2 bits Channel Access Priority (CAP) 15 bits Segment Length (SL) Length in bytes of Frame Body Not including Segment Header, E-Pad, or ICV 1 bit Last Segment Flag (LSF) Set if last (or only) segment in Service Block 6 bits Segment Count (SC) Incremented with each new segment of a Service Block 10 bits Sequence Number (SN) Incremented with each new Service Block sent

34 HP1.0 Service Block 9 bytes Encryption Control (EC) 1 byte Encryption Key Select (EKS) 8 bytes Initialization Vector (IV) IV=0 means encryption is bypassed 4 bytes Integrity Check Value (ICV) 32-bit CRC of bytes following Encryption Control through E-PAD before encryption EC and ICV are present in every Service Block

35 HP1.0 Service Block Fields 4 Bytes IEEE 802.1Q VLAN Tag (copied from MSDU) Present iff present in MSDU frame Variable length MAC Management Information Indicated by ethertype 0x887B in first two bytes MAC Control byte indicates # MAC data entries Type/Length/Value (TLV) encoded on MAC Entries 2 Bytes Type (copied from data frame) Present only if Service Block carries MSDU Variable length Frame Data (copied from data frame) Present only if Service Block carries MSDU Variable length Encryption Pad (E-PAD) Pads encrypted bits to a multiple of 64 bits Present even if encryption is bypassed

36 HP1.0 MAC Management Entries Channel estimation request/response Tone Map Index (TMI) Tone map bit map of valid tones, FEC rate, Modulation method Bridged addresses, etc. Replace bridge address Allows reconstruction of original MSDU with SA, DA Set/confirm network encryption key EKS, 64-bit NEK Multicast with response Holds MAC multicast address DA in Frame Header indicates STA to respond Request Parameters and Statistics Vendor specific Start with OUI

37 HP1.0 MAC Parameters and Statistics Transmit Counters ACK NACK FAIL Contention loss Collisions Tx latency counter for all priorities CA0-CA3 Receive Counters Bytes per 40-symbol packet SNMP Compatible Stored in MIBs

38 HP1.0 Tone Maps Tone Map is stale if Expires (30 second lifetime) Transmitter forced to go to ROBO New link Limits on how often TMs requested Avoid too much computation at receiver Avoid too much network traffic Request Channel Estimation MME Always sent using ROBO modulation Channel Estimation Response Within 1 second Must change the TMI May be sent unsolicited

39 HP1.0 Privacy/Key Management DES using CBC mode (64 bit blocks) Data encrypted with Network Encryption Key (NEK) NEK may be generated from password Specifies method: PBKDF1 from PKCS#5v2.0 Valid password is 4-24 printable ASCII chars EKS = 0x01 in this case NEK may be sent to a new STA over network Set Key MME must be encrypted “Default key” or password of new STA may be entered on STA already in network, used to encrypt MME EKS for Set Key MME is 0x00 in this case

40 HP1.0 Logical Networks

41 HP1.0 Field Tests vs. 802.11b 2700 Sq. ft., 10 year-old residence interior walls hollow (not concrete) two laptop computers with both interfaces Network Configurations ad hoc network very short distances with line of sight modified Infrastructure mode Laptop-2 through the Ethernet to base station base station talking to Laptop-1 fixed location of base station (and Laptop-2) moved Laptop-1 to various locations

42 HP1.0 Field Test Scenarios Scenario-1: FTP – Transmit Buffer Size: 4096 Bytes Receive Buffer Size: 4096 Bytes File transfer size: 40 Mbytes Scenario-2: TCP – Buffer Length: 4096 Bytes Number of Buffers Sent: 5000 Total data exchange: 20 Mbytes

43 Field Tests Results vs. 802.11b Trans. Location Receiver Location Tx to Rx Distance 802.11b (Mbps) Powerline (Mbps) WSFTPTTCPWSFTPTTCP Laptop-1Laptop-22 ft3.24.94.25.2 Study Room Dinning Room 233.64.74.55.3 Home OfficeKitchen~352.54.14.04.5 KitchenHome Office~352.41.63.1 Bedroom CHome Office~70No Conn. 1.91.8 Home OfficeBedroom C~70No Conn. 4.13.9 Pool AreaHome Office~60No Conn. 2.01.6 Home OfficePool Area~60No Conn. 2.42.8


Download ppt "HomePlug 1.0 MAC (c) 2013 R. Newman University of Florida."

Similar presentations


Ads by Google