ITTC High-Performance Networking The University of Kansas EECS 881 Packet Switch I/O Processing

Size: px
Start display at page:

Download "ITTC High-Performance Networking The University of Kansas EECS 881 Packet Switch I/O Processing"

Transcription

1 High-Performance Networking The University of Kansas EECS 881 Packet Switch I/O Processing James P.G. Sterbenz Department of Electrical Engineering & Computer Science Information Technology & Telecommunications Research Center The University of Kansas 04 November 2010 rev James P.G. Sterbenz

2 Packet Switch I/O Processing Outline IO.1 Overview IO.2 IP Lookup IO.3 Packet Classification IO.4 Output Scheduling 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-2

3 Packet Switch I/O Processing Outline application application session session transport transport network network network network link link link link end system node network node end system link node network IO.1. Overview IO.2. IP lookup IO.3. Packet classification IO.4. Packet scheduling 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-3

4 Ideal Network Network Node Principle CPU R = network CPU M app M app end system D = 0 end system Network Node Principle Network nodes must support high-bandwidth low-latency, endto-end flows, as well as their aggregation. High-speed network nodes should provide a scalable number or high-bandwidth, low delay interconnections. 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-4 S-II

5 Ideal Switch Architecture Bandwidth, Latency, Ports Infinite bandwidth Zero latency Unlimited number of ports n = R = D = 0 Store-and-Forward & Queueing Delay Minimisation S-II.3 Store-and-forward delays should be avoided, and per packet queueing should be minimised. In the ideal case, nodes should pipeline and cut through packet with zero per packet delays. 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-5

6 Switch Packet Processing Throughput Packet processing rate critical packet processing must sustain at least average rate critical path must sustain peak line rate for min size packets Packet Processing Rate S-II.4p The packet processing rate (packets per second) is a key throughput measure of a switch. Packet processing software and shared parallel hardware resources must be able to sustain the average packet processing rate. Functions in the serial critical path must be designed for the worst case packet processing rate of the path to avoid queueing and blocking of subsequent packets. 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-6

7 Packet Switch I/O Processing IP Lookup IO.1 Overview IO.2 IP Lookup IO.3 Packet Classification IO.4 Packet Scheduling 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-7

8 Fast Datagram Switches Overview Fast datagram switch IP router fast packet switch core typical of modern high-performance routers 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-8

9 Fast Datagram Switches Architecture Fast packet switch core Input processing IP lookup packet classification Output processing packet scheduling fair queueing prefixes link prefixes link input processing header update input processor input processor classify management routing and signalling switch fabric control switch fabric output processing output scheduling output scheduling link link 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-9

10 Fast Datagram Switches Architecture: Shared Forwarding Fast packet switch core Input processing packet classification must be performed at input Shared forwarding engines flexible allocation, but uses switch fabric ports and bandwidth Output processing packet scheduling fair queueing link link input processing forwarding engines input processor headers input processor headers prefixes routing and signalling header processing switch fabric control switch fabric prefixes header processing output processing output scheduling output scheduling link link 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-10

11 Fast Datagram Switches Example 5.6 IP Packets 04 hl TOS length 06 class flow label identification flags TTL protocol header checksum source address destination address options [variable length] frag offset 20B payload length next header hop lim source address destination address data [variable length] 40B extension header(s) [variable length] data [variable length] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-11

12 Fast Datagram Switches IPv4 Address Assignment IP addresses not randomly assigned to hosts why? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-12

13 Fast Datagram Switches IPv4 Address Assignment IP addresses not randomly assigned to hosts every table would have to contain every Internet host billions of entries and would require exact match lookup ISP A X ISP B X X X Tier1 X B A A A November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-13

14 Fast Datagram Switches IPv4 Address Hierarchy IP addresses assigned hierarchically address aggregation dramatically improves scalability forwarding table only needs to contain network address routing advertisements only contain network address prefix ISP A X Tier1 X A B ISP B X November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-14

15 Fast Datagram Switches IPv4 Class-Based Addressing Hierarchy 128 networks 16M hosts A 0 net host 16K networks 64K hosts B 10 net host 2M networks 256 hosts C 110 net host D 1110 multicast address E 1111 reserved Divide IP address into 3 level hierarchy class, network address, host address byte aligned simple IP address lookup (3 major cases) class D for multicast addresses Lecture NR 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-15

16 Fast Datagram Switches IPv4 Subnets 16K networks 64 subnets 1024 hosts B 10 net subnet host Subnets [RFC 0950 / STD 0005] originally way to divide address class within organisation example: 6b subnet to class B subnet mask Hosts in subnet share upper IP address bits natural to cluster similar IP addresses efficient IP routing to subnet switched layer 2 LAN with no layer 3 routing Lecture LL 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-16

17 Fast Datagram Switches IPv4 Class-Based Addressing Problems Principle behind division A: very large network providers B: large organisations C: LANs Reality: rigid structure doesn t match all organisations perfectly doesn t match many organisations well especially class B: three bears problem Inefficient partitioning of address space large fraction of unusable addresses imminent exhaustion of IP address space led to 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-17

18 Fast Datagram Switches IPv4 Classless Addressing (CIDR) CIDR: classless interdomain routing [RFC 1519] eliminate assignment of IP address blocks by class b 7 b 6. b 5 b 4. b 3 b 2. b 1 b 0 /x x-bit prefix = arbitrary number of network bits example: /23 Service providers get variable IP block based on need from RIR (or NIR) Significant improvement in IP address use at the cost of significant increase in complexity of IP lookup how? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-18

19 Fast Datagram Switches IPv4 Classless Addressing (CIDR) CIDR: classless interdomain routing [RFC 1519] eliminate assignment of IP address blocks by class b 7 b 6. b 5 b 4. b 3 b 2. b 1 b 0 /x x-bit prefix = arbitrary number of network bits example: /23 Service providers get variable IP block based on need from RIR (or NIR) Significant improvement in IP address use at the cost of significant increase in complexity of IP lookup IP lookup is longest prefix match 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-19

20 IP Address Lookup Longest Prefix Match prefix p out f state * 00* 001* 0001* 0101* 101* 10100* 11* 111* Longest prefix match most specific subnet Critical parameters worst case lookup time how long as a function of n entries? hop count checksum fix payload p out payload 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-20

21 payload IP Address Lookup Longest Prefix Match prefix p out f state * 00* 001* 0001* 0101* 101* 10100* 11* 111* hop count checksum fix p out Longest prefix match most specific subnet Critical parameters worst case lookup time brute force: O (log 2 n ) n hundred thousands to millions memory required forwarding table update time insert and sort payload 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-21

22 Packet Switch I/O Processing Packet Processing Challenges Target performance is very challenging Large number of flows: O (1M) determines amount of hardware needed memory for per flow state processing for flow-parallelism High data rate: 40Gb/s (OC-768) determines packet interarrival time minimum TCP/IP packet size = 40B 40Gb/s 8ns processing budget for lookup determines required packet processing rate 8ns interarrival 125Mpkt/s [pps] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-22

23 Packet Switch I/O Processing Lookup and Classification Strategies Lookup strategies? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-23

24 Packet Switch I/O Processing Lookup and Classification Strategies Two (related) dimensions: Implementation technology software hardware assisted software hardware Algorithmic technique exhaustive search decision tree decomposition tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-24

25 Software Packet Switch I/O Processing Implementation Technology algorithms that minimise instruction count data structures that minimise memory accesses increasingly implemented in NPU: network processor 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-25

26 Software Packet Switch I/O Processing Implementation Technology algorithms that minimise instruction count data structures that minimise memory accesses increasingly implemented in NPU: network processor Hardware assisted software circuitry that assists software implementation specialised instructions in NPU (e.g. trie traversal) 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-26

27 Software Packet Switch I/O Processing Implementation Technology algorithms that minimise instruction count data structures that minimise memory accesses increasingly implemented in NPU: network processor Hardware assisted software circuitry that assists software implementation specialised instructions in NPU (e.g. trie traversal) Custom hardware functional blocks that store and manipulate IP prefixes memories that minimise access time 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-27

28 Lookup and Classification Algorithmic Techniques: Exhaustive Search Exhaustive search brute force search through all filters advantages and disadvantages? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-28

29 Lookup and Classification Algorithmic Techniques: Exhaustive Search Exhaustive search brute force search through all filters + simple search algorithm although insertion/deletion may be complicated if filters sorted + potentially simple data structures + O(N) memory requirements for N filters but no sharing across filters; possible to do better 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-29

30 Lookup and Classification Algorithmic Techniques: Exhaustive Search Exhaustive search brute force search through all filters + simple search algorithm although insertion/deletion may be complicated if filters sorted + potentially simple data structures + O (N ) memory requirements for N filters but no sharing across filters; possible to do better poor performance for linear search O (N ) memory accesses if unsorted O (log N ) but requires sorting 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-30

31 Lookup and Classification Algorithmic Techniques: Exhaustive Search Exhaustive search brute force search through all filters + simple search algorithm although insertion/deletion may be complicated if filters sorted + potentially simple data structures + O (N ) memory requirements for N filters but no sharing across filters; possible to do better poor performance for linear search O (N ) memory accesses if unsorted O (log N ) but requires sorting better performance costs hardware, memory, processing e.g. massive parallelism: generally not practical e.g. special purpose hardware 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-31

32 Lookup and Classification Hardware Exhaustive Search Conventional memory: read, write comparison done in software by processor unacceptably slow for exhaustive search over large N SRAM: faster and less dense (6 CMOS transistors/bit) DRAM: slower and more dense (1 MOS transistor/bit) Alternative? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-32

33 Lookup and Classification Hardware Exhaustive Search Conventional memory: read, write comparison done in software by processor unacceptably slow for exhaustive search over large N SRAM: faster and less dense (~6 CMOS transistors/bit) DRAM: slower and more dense (1 MOS transistor/bit) Alternative: build comparison circuits into memory search multiple locations in parallel based on content field content-addressable memory 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-33

34 Lookup and Classification Hardware Exhaustive Search: TCAMs TCAM: ternary content addressable memory three states/bit: 1, 0, X (don t care) don t care for low-order LPM bits in IP lookup don t care for irrelevant fields in classification filters read, write, match operations Advantages and disadvantages? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-34

35 Lookup and Classification Hardware Exhaustive Search: TCAMs TCAM: ternary content addressable memory three states/bit: 1, 0, X (don t care) don t care for low-order LPM bits in IP lookup don t care for irrelevant fields in classification filters read, write, match operations Relatively complex typically 16 transistors; fewer possible implications? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-35

36 Lookup and Classification Hardware Exhaustive Search: TCAMs TCAM: ternary content addressable memory three states/bit: 1, 0, X (don t care) don t care for low-order LPM bits in IP lookup don t care for irrelevant fields in classification filters read, write, match operations Relatively complex typically 16 transistors; fewer possible significantly less dense than SRAM significantly higher cost than SRAM 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-36

37 Lookup and Classification Hardware Exhaustive Search: TCAMs TCAM: ternary content addressable memory three states/bit: 1, 0, X (don t care) don t care for low-order LPM bits in IP lookup don t care for irrelevant fields in classification filters read, write, match operations Relatively complex typically 16 transistors; fewer possible significantly less dense than SRAM significantly higher cost than SRAM significantly higher cost than SRAM + Extreme performance: O (1) memory access 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-37

38 IP Address Lookup Hardware Exhaustive Search: TCAMs prefix p out f state * 00XXXX 001XXX 0001XX 0101XX 101XXX 10100X 11XXXX 111XXX priority mux LPM for IP lookup Simultaneous match lookup time constant O (1) Classification later hop count checksum fix payload p out payload 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-38

39 IP Address Lookup Hardware-Assisted Memory Lookup payload short prefix table 0 i p out / index 0 long prefix table p out Multistage lookup [Gupta, Lin, McKeown 1998] conventional SRAM worst case lookup time O (s) number of stages block 2 p -1 p out payload 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-39

40 Decision tree IP Address Lookup Decision-Tree Search data structure in which leaves contain filters or their subsets 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-40

41 Decision tree IP Address Lookup Decision-Tree Search: Trie data structure in which leaves contain filters or their subsets Trie (from retrie val) or prefix tree tree data structure fanout is number of symbols in alphabet {0,1} for IP longest prefix matching and binary classifiers each level contains a successive symbol (bit) flag indicates terminal string represented by 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-41

42 Decision tree IP Address Lookup Decision-Tree Search: Trie data structure in which leaves contain filters or their subsets Trie (from retrie val) or prefix tree tree data structure Typically implemented in software or NPU data structure and instruction assist (IBM NP4GS3) advantages and disadvantages? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-42

43 Decision tree IP Address Lookup Decision-Tree Search: Trie data structure in which leaves contain filters or their subsets Trie (from retrie val) or prefix tree tree data structure Typically implemented in software or NPU data structure and instruction assist IBM NP4GS3 data structure and lookup functional unit generally more space efficient than hardware serial algorithm: linear traversal from root to branch efficiency based on breadth of trie 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-43

44 Decision tree IP Address Lookup Decision-Tree Search: Trie data structure in which leaves contain filters or their subsets Trie (from retrie val) or prefix tree tree data structure fanout is number of symbols in alphabet {0,1} for IP longest prefix matching and binary classifiers each level contains a successive symbol (bit) flag indicates terminal string represented by * Typically implemented in software or NPU data structure and instruction assist (IBM NP4GS3) 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-44

45 IP Address Lookup Address Space Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* a 0 1 d c e f 01 g 01 h 01 i b November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-45

46 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* a d c e f g h i b 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-46

47 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* 0* a 0 1 d 1* c e f g h i b 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-47

48 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* 0* a 0 1 d 1* c e f g h i b 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-48

49 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* a d c e b 011* 100* f g h i 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-49

50 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* 0* a d c e 1110* 1100* 1101* 1111* f 01 g 01 h 01 i b 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-50

51 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie Lookup time O (a ) worst case a = number of address bits a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* 0* a d c e 01 f g h i b 01000* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-51

52 IP Address Lookup IP Lookup Example Example IP address space [RBD2001] 5 bits of address shown organised as full trie do we need to store the entire trie? a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* 0* a d c e 01 f g h i b 01000* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-52

53 IP Address Lookup Trie Lookup Trie only containing nodes for prefixes node contains egress port (e.g. a, b, ) does not need to store prefix itself navigation algorithm keeps track of prefix depth in trie gives number of bits optimisation? a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* a 0 1 0* * c e * 100* 1100 f g h 1111 i b 1100* 1101* 1110* 1111* 01000* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-53 d

54 IP Address Lookup Trie Lookup Trie only containing nodes for prefixes node contains egress port (e.g. a, b, ) does not need to store prefix itself navigation algorithm keeps track of prefix depth in trie gives number of bits optimisation: remove unneeded nodes a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* a 0 1 0* 1* c 011* b 1100* 1101* 1110* 1111* 01000* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-54 e 100* d f g h i

55 IP Address Lookup Path-Compressed Trie Lookup Path-compressed trie remove nodes at which no decision taken reduces number of lookup algorithm steps at the cost of storing prefixes in some nodes storing bit number to inspect at each level a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* b 01000* 3 a 0 1 d 2 0* c e 1* 011* 100* f g h i 1100* 1101* 1110* 1111* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-55

56 IP Address Lookup Path-Compressed Trie Lookup Path-compressed trie remove nodes at which no decision taken reduces number of lookup algorithm steps possible to further reduce the depth of trie? a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* b 01000* 3 a 0 1 d 2 0* c e 1* 011* 100* f g h i 1100* 1101* 1110* 1111* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-56

57 Multibi trie IP Address Lookup Multibit Trie Lookup increase breadth of trie: mutliple bits/level reduces number of lookup algorithm steps at the expense of more memory fixed or variable stride (# bits/level) a 0* b 01000* c 011* d 1* e 100* f 1100* g 1101* h 1110* i 1111* a a d d 0* c c e f g h i 0* * 011* 100* 1* 1100* 1101* 1110* 1111* 01000* b 0* 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-57

58 Packet Switch I/O Processing Hardware vs. Software Input and Output processing tradeoff custom hardware generally faster at potentially higher cost and lower density network processor software more flexible Hardware vs. Software Implementation of Input S-1Ch and Output Processing In determining the appropriate implementation of input and output processing, trade the cost and feasibility of hardware against the complexity and feasibility of network processor software. 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-58

59 Packet Switch I/O Processing IO.3 Packet Classification IO.1 Overview IO.2 IP Lookup IO.3 Packet Classification IO.4 Packet Scheduling 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-59

60 Packet Switch I/O Processing Packet Classification Packet classification determines how packet treated QoS or diffserv policy based routing security and DoS protection (e.g. firewalls) layer 4 and 7 switching active network processing 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-60

61 Packet Switch I/O Processing Classification Challenges Packet classification must be done before queueing to meet most stringent delay class Classification at line speed requires delay bound for minimum interarrival time (40 B) delay bound for worst case classification time e.g. deepest branch of decision tree Bound Packet Classification Time S-II.4c Packets that must be classified to potentially receive delay bounded service must be classified before any queueing at the input. The classification operation must have delay bounds that meet the most stringent service class. 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-61

62 Packet Classification Multidimensional Aspect TOS src adr payload source address R 0 R 1 Multidimensional classification policies may be hierarchal or overlap precedence rules needed More complex than longest prefix match Hardware and software implementation tradeoffs 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-62 T O S R 2 R 5 R 4 R 3

63 Packet Classification Filter Characteristics O (1000) O (10 000) filters / router and growing Typical filter parameters protocol: TCP, UDP, *, ICMP, IGMP, EIGRP, GRE, IPIP, ports corresponding to apps (e.g. 80 for HTTP): or ranges, e.g. high port numbers > 1024 difficult to convert to prefixes source and destination IP addresses specific addresses or prefixes higher layer protocol fields (HTTP, RTP, etc.) 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-63

64 Packet Classification Example Filter Set Example filter set [Taylor 2005] Filter source address [8 bit] destination address [8 bit] protocol <name> destination port [8 bit] Action flow ID [4 bit] priority tag [4 bit] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-64

65 Packet Classification Example Filter Set Filter Action Src Addr Dest Addr Protocol Dest Port FlowID Priority TCP [03:15] [01:01] [00:15] UDP [05:05] ICMP [00:15] [03:15] TCP [03:15] UDP [03:15] [00:15] UDP [06:06] November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-65

66 Software Packet Classification Classification Technology algorithms that minimise instruction count data structures that minimise memory accesses Custom hardware functional blocks that store and manipulate classifiers memories that minimise access time Tradeoffs similar to lookup 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-66

67 Exhaustive search Packet Classification Taxonomy of Algorithms complete search of all filters 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-67

68 Exhaustive search Packet Classification Taxonomy of Algorithms complete search of all filters Decomposition decompose into multiple field searches combine results 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-68

69 Exhaustive search Packet Classification Taxonomy of Algorithms complete search of all filters Decomposition decompose into multiple field searches combine results Decision tree construct decision tree from filter set search by traversing decision tree 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-69

70 Packet Classification Taxonomy of Algorithms Exhaustive search complete search of all filters Decomposition decompose into multiple field searches combine results Decision tree construct decision tree from filter set search by traversing decision tree Tuple space partition filter set by number of bits search for exact matches in partitions 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-70

71 Packet Classification Selected Techniques Exhaustive search (considered seminal in [Taylor 2005]) linear search (impractical) TCAM [Spitznagel 2003] Decomposition parallel bit vectors [Lakshman & Stiliadis 1998] crossproducting [Srinivasan 1998] recursive flow classification [Gupta & McKeown 1999] Decision tree grid-of-tries [Srinivasan 1998] hierarchical intelligent cuttings [Gupta & Mckeown 1999] Tuple space tuple space [Srinivasan 1999] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-71

72 Packet Classification Exhaustive Search Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-72

73 Packet Classification Exhaustive Search: Linear Search Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-73

74 Linear search Packet Classification Exhaustive Search: Linear Search impractical for address lookup (1 dimension) even less practical for multidimensional classification 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-74

75 Packet Classification TCAM Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-75

76 Packet Classification TCAM TCAM: ternary content addressable memory advantage? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-76

77 Packet Classification TCAM TCAM: ternary content addressable memory hardware based parallel match: O (1) time steps capable of matching prefixes (don t care in low order bits) problem for classification? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-77

78 Packet Classification TCAM TCAM: ternary content addressable memory hardware based parallel match: O (1) time steps capable of matching prefixes (don t care in low order bits) but not arbitrary ranges (e.g. port field) Ranges must be converted to prefixes 2(w 1) prefixes required for w -bit fields with ranges expansion factor of 7 entries/filter needed [Taylor 2005] hardware implementation of ranges [Spitzangel 2003] Additional problem? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-78

79 Packet Classification TCAM TCAM: ternary content addressable memory hardware based parallel match: O (1) time steps capable of matching prefixes (don t care in low order bits) but not arbitrary ranges (e.g. port field) Ranges must be converted to prefixes 2(w 1) prefixes required for w -bit fields with ranges expansion factor of 7 entries/filter needed [Taylor 2005] hardware implementation of ranges [Spitzangel 2003] Long search key for multidimensional classification requires O (d ) larger TCAM for d classification fields 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-79

80 Packet Classification Decomposition Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-80

81 Packet Classification Decomposition: Parallel BV Exhaustive search (considered seminal in [Taylor 2005]) linear search (impractical) TCAM Decomposition parallel bit vectors (parallel BV) crossproducting recursive flow classification Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-81

82 Packet Classification Parallel BV Overview Parallel bit vectors [Lakshman & Stiliadis 1998] d filter fields mapped into d -dimensional space each dimension divided into intervals max of 2N +1 < 2 b intervals for N filters with b -bit filter field sort filters by priority assign a N -bit vector to each interval for N filters bit vectors initialised to 0 bit set to 1 indicates match for a filter data structure to locate interval for given point for each dim. see [Taylor 2005 Tbl. IV and Fig. 16] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-82

83 Filter Address Port a 1010 [02:02] b 1100 [05:05] c 0101 [08:08] d [06:06] e 111 [00:15] f 001 [09:15] g 00 [00:04] h 0 [00:03] i 0110 [00:15] j 1 [07:15] k 0 [11:11] Packet Classification Parallel BV Example [Taylor 2005] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-83

84 Parallel BV search Packet Classification Parallel BV Search search d data structures independent and parallelisable bitwise AND of d bit vectors MSB (most significant bit) is filter match 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-84

85 Packet Classification Parallel BV Performance Parallel BV performance search time O (log N ) problem? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-85

86 Packet Classification Parallel BV Performance Parallel BV performance search time O (log N ) memory requirement O (N 2 ) optimisations to improve possible [Lakshman & Stiliadis 1998] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-86

87 Packet Classification Decomposition: Crossproducting Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-87

88 Observation: Packet Classification Crossproducting Overview number unique filter fields significantly less than number of filters Crossproduct precompute best match for all combinations of filter fields 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-88

89 Packet Classification Crossproducting Algorithm Crossproduct algorithm [Srinivasan 1989] separate and construct table for each of d fields 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-89

90 Packet Classification Crossproducting Filter Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP example from [Taylor 2005] k [00:15] November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-90

91 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-91 01

92 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-92 02

93 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-93 03

94 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-94 04

95 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO

96 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO

97 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO

98 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port 08

99 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] 09

100 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] 10

101 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] [05:15] 11

102 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] [05:15] [00:15] 12

103 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] [05:15] [00:15] Protocol 13

104 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] [05:15] [00:15] Protocol TCP 14

105 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] [05:15] [00:15] Protocol TCP UDP 15

106 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO Port [00:01] [01:01] [05:15] [00:15] Protocol TCP UDP 16

107 Packet Classification Crossproducting Field Set Example Filter Address Port Protocol a 000 [00:01] TCP b 001 [00:01] TCP c 1101 [01:01] UDP d 10 [05:15] UDP e 001 [05:15] UDP f 111 [00:15] UDP g 000 [05:15] UDP h 10 [00:01] TCP i 001 [01:01] TCP j [00:15] UDP k [00:15] Address Port [00:01] [01:01] [05:15] [00:15] Protocol TCP UDP 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO

108 Packet Classification Crossproducting Algorithm Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-108

109 Packet Classification Crossproducting Field Set Example Address Port Protocol Address Port Protocol Match 000 [00:01] TCP 000 [00:01] TCP a 001 [01:01] UDP 000 [00:01] UDP j 1101 [05:15] 000 [00:01] k [00:15] 000 [01:01] TCP a 000 [01:01] UDP j 000 [01:01] k 000 [05:15] TCP k [00:01] TCP [00:15] k 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-109

110 Packet Classification Crossproducting Algorithm Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations search d field tables (parallelisable) 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-110

111 Packet Classification Crossproducting Field Set Example Address Port Protocol Address Port Protocol Match 000 [00:01] TCP 000 [00:01] TCP a 001 [01:01] UDP 000 [00:01] UDP j 1101 [05:15] 000 [00:01] k [00:15] 000 [01:01] TCP a 000 [01:01] UDP j 000 [01:01] k 000 [05:15] TCP k d [00:01] TCP [00:15] k November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-111

112 Packet Classification Crossproducting Algorithm Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations search d field tables (parallelisable) return partial hash and combine 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-112

113 Packet Classification Crossproducting Field Set Example Address Port Protocol Address Port Protocol Match 000 [00:01] TCP 000 [00:01] TCP a 001 [01:01] UDP 000 [00:01] UDP j 1101 [05:15] 000 [00:01] k [00:15] 000 [01:01] TCP a 000 [01:01] UDP j 000 [01:01] k 000 [05:15] TCP k h ( ) 001 [00:01] TCP [00:15] k November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-113

114 Packet Classification Crossproducting Algorithm Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations search d field tables (parallelisable) return partial hash and combine hash into crossproduct table to get match filter 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-114

115 Packet Classification Crossproducting Field Set Example Address Port Protocol Address Port Protocol Match 000 [00:01] TCP 000 [00:01] TCP a 001 [01:01] UDP 000 [00:01] UDP j 1101 [05:15] 000 [00:01] k [00:15] 000 [01:01] TCP a 000 [01:01] UDP j 000 [01:01] k 000 [05:15] TCP k h ( ) 001 [00:01] TCP [00:15] k 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-115

116 Packet Classification Crossproducting Algorithm Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations search d field tables (parallelisable) return partial hash and combine hash into crossproduct table to get match filter Advantages and disadvantages? 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-116

117 Packet Classification Crossproducting Performance Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations search d field tables (parallelisable) return partial hash and combine hash into crossproduct table to get match filter Performance packet processing rate exponential memory requirements O (n d ) for n filters on-demand scheme creates partial crossproduct table as cache 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-117

118 Packet Classification Crossproducting Algorithm Crossproduct algorithm separate and construct table for each of d fields precompute table with best match for all combinations search d field tables (parallelisable) return partial hash and combine 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-118

119 Packet Classification Decomposition: RFC Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification (RFC) Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-119

120 Packet Classification RFC Overview Recursive flow calculation [Gupta & McKeown 1999] k -bit string specifying set of matching filters memory requirements based on number of regions 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-120

121 Filter Address Port a 1010 [02:02] b 1100 [05:05] c 0101 [08:08] d [06:06] e 111 [00:15] f 001 [09:15] g 00 [00:04] h 0 [00:03] i 0110 [00:15] j 1 [07:15] k 0 [11:11] Packet Classification RFC Example [Taylor 2005] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-121

122 Packet Classification Decision Tree Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification (RFC) Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-122

123 Packet Classification Decision Tree: Grid-of-Tries Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification (RFC) Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-123

124 Packet Classification Grid-of-Tries Overview Grid-of-tries [Srinivasan, Suri, Varghese, Waldvogel 1998] extension of trie search to multiple dimensions based on DAG technique [Decasper, Parulkar, Dittia, Plattner 1998] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-124

125 Packet Classification Decision Tree: HiCuts Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification (RFC) Decision tree grid-of-tries hierarchical intelligent cuttings (HiCuts) Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-125

126 Packet Classification HiCuts Overview Hierarchical intelligent cuttings [Gupta & McKeown 1998] partition d -dimensional filter space hierarchically navigate tree to filter set 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-126

127 Filter Address Port a 1010 [02:02] b 1100 [05:05] c 0101 [08:08] d [06:06] e 111 [00:15] f 001 [09:15] g 00 [00:04] h 0 [00:03] i 0110 [00:15] j 1 [07:15] k 0 [11:11] Packet Classification HiCuts Example [Taylor 2005] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-127

128 Packet Classification HiCuts Example [Taylor 2005] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-128

129 Packet Classification Tuple Space Exhaustive search linear search (impractical) TCAM Decomposition parallel bit vectors crossproducting recursive flow classification (RFC) Decision tree grid-of-tries hierarchical intelligent cuttings Tuple space tuple space 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-129

130 Packet Classification Tuple Space Overview Tuple space [Srinivasan, Suri, Varghese 1999] partitions filter space into tuples number of relevant bits in each filter field ranges coverted using nesting level and range range ID number distinct tuples filters 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-130

131 Packet Classification Tuple Filter Example Filter SrcAdr DestAdr SrcPort DestPort Prot a [02:02] [00:15] TCP b c d e f g h i j [00:15] [00:04] [05:15] [02:02] [00:15] [00:04] [05:15] [02:02] [02:02] [00:04] [05:15] [02:02] [00:15] [00:04] [05:15] [02:02] [00:15] [02:02] UDP TCP UDP UDP TCP UDP TCP UDP TCP k [00:15] [00:15] ICMP l 1110 [02:02] 0:15 Tuple example from [Taylor 2005] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-131

132 Packet Classification Tuple Filter Example Filter SrcAdr DestAdr SrcPort DestPort Prot Tuple a [02:02] [00:15] TCP [,,,, ] b 01 0 [00:15] [00:04] UDP c [00:04] [05:15] TCP d 1100 [05:15] [02:02] UDP e [02:02] [00:15] UDP f 10 1 [00:15] [00:04] TCP g [00:04] [05:15] UDP h 0011 [05:15] [02:02] TCP i [02:02] [00:15] UDP j 10 0 [02:02] [02:02] TCP k [00:15] [00:15] ICMP l 1110 [02:02] 0:15 example from [Taylor 2005] 04 November 2010 KU EECS 881 High-Speed Networking Switch I/O HSN-IO-132

ITTC Science of Communication Networks The University of Kansas EECS 784 Identifiers, Names, and Addressing

ITTC Science of Communication Networks The University of Kansas EECS 784 Identifiers, Names, and Addressing Science of Communication Networks The University of Kansas EECS 784 Identifiers, Names, and Addressing James P.G. Sterbenz Department of Electrical Engineering & Computer Science Information Technology

More information

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results.

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results. Algorithms for Routing Lookups and Packet Classification October 3, 2000 High Level Outline Part I. Routing Lookups - Two lookup algorithms Part II. Packet Classification - One classification algorithm

More information

Network Layer: Control/data plane, addressing, routers

Network Layer: Control/data plane, addressing, routers Network Layer: Control/data plane, addressing, routers CS 352, Lecture 10 http://www.cs.rutgers.edu/~sn624/352-s19 Srinivas Narayana (heavily adapted from slides by Prof. Badri Nath and the textbook authors)

More information

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011 // Bottlenecks Memory, memory, 88 - Switch and Router Design Dr. David Hay Ross 8b dhay@cs.huji.ac.il Source: Nick Mckeown, Isaac Keslassy Packet Processing Examples Address Lookup (IP/Ethernet) Where

More information

Data Structures for Packet Classification

Data Structures for Packet Classification Presenter: Patrick Nicholson Department of Computer Science CS840 Topics in Data Structures Outline 1 The Problem 2 Hardware Solutions 3 Data Structures: 1D 4 Trie-Based Solutions Packet Classification

More information

Survey and Taxonomy of Packet Classification Techniques

Survey and Taxonomy of Packet Classification Techniques Survey and Taxonomy of Packet Classification Techniques DAVID E. TAYLOR Applied Research Laboratory Washington University in Saint Louis Packet classification is an enabling function for a variety of Internet

More information

CS 268: Route Lookup and Packet Classification

CS 268: Route Lookup and Packet Classification Overview CS 268: Route Lookup and Packet Classification Packet Lookup Packet Classification Ion Stoica March 3, 24 istoica@cs.berkeley.edu 2 Lookup Problem Identify the output interface to forward an incoming

More information

Fast Packet Classification Algorithms

Fast Packet Classification Algorithms Fast Packet Classification Algorithms Mrudul Dixit, Anuja Kale, Madhavi Narote, Sneha Talwalkar, and B. V. Barbadekar Abstract A packet classifier possesses a set of rules for classifying packets based

More information

IP Forwarding. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli

IP Forwarding. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli IP Forwarding CSU CS557, Spring 2018 Instructor: Lorenzo De Carli 1 Sources George Varghese, Network Algorithmics, Morgan Kauffmann, December 2004 L. De Carli, Y. Pan, A. Kumar, C. Estan, K. Sankaralingam,

More information

Growth of the Internet Network capacity: A scarce resource Good Service

Growth of the Internet Network capacity: A scarce resource Good Service IP Route Lookups 1 Introduction Growth of the Internet Network capacity: A scarce resource Good Service Large-bandwidth links -> Readily handled (Fiber optic links) High router data throughput -> Readily

More information

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing Network layer: Overview Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing 1 Network Layer Functions Transport packet from sending to receiving hosts Network layer protocols in every

More information

Network layer: Overview. Network Layer Functions

Network layer: Overview. Network Layer Functions Network layer: Overview Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing 1 Network Layer Functions Transport packet from sending to receiving hosts Network layer protocols in every

More information

ECE697AA Lecture 21. Packet Classification

ECE697AA Lecture 21. Packet Classification ECE697AA Lecture 21 Routers: Flow Classification Algorithms Tilman Wolf Department of Electrical and Computer Engineering 11/20/08 Packet Classification What is packet classification? Categorization of

More information

Introduction to Internetworking

Introduction to Internetworking Introduction to Internetworking Stefano Vissicchio UCL Computer Science COMP0023 Internetworking Goal: Connect many networks together into one Internet. Any computer can send to any other computer on any

More information

Lecture 8. Network Layer (cont d) Network Layer 1-1

Lecture 8. Network Layer (cont d) Network Layer 1-1 Lecture 8 Network Layer (cont d) Network Layer 1-1 Agenda The Network Layer (cont d) What is inside a router Internet Protocol (IP) IPv4 fragmentation and addressing IP Address Classes and Subnets Network

More information

Network Layer PREPARED BY AHMED ABDEL-RAOUF

Network Layer PREPARED BY AHMED ABDEL-RAOUF Network Layer PREPARED BY AHMED ABDEL-RAOUF Network layer transport segment from sending to receiving host on sending side encapsulates segments into datagrams on receiving side, delivers segments to transport

More information

Computer Network Fundamentals Spring Week 4 Network Layer Andreas Terzis

Computer Network Fundamentals Spring Week 4 Network Layer Andreas Terzis Computer Network Fundamentals Spring 2008 Week 4 Network Layer Andreas Terzis Outline Internet Protocol Service Model Addressing Original addressing scheme Subnetting CIDR Fragmentation ICMP Address Shortage

More information

IPv4. Christian Grothoff.

IPv4. Christian Grothoff. IPv4 christian@grothoff.org http://grothoff.org/christian/ Sites need to be able to interact in one single, universal space. Tim Berners-Lee 1 The Network Layer Transports datagrams from sending to receiving

More information

CPSC 826 Internetworking. The Network Layer: Routing & Addressing Outline. The Network Layer

CPSC 826 Internetworking. The Network Layer: Routing & Addressing Outline. The Network Layer 1 CPSC 826 Intering The Network Layer: Routing & Addressing Outline The Network Layer Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu November 10, 2004 Network layer

More information

COMP211 Chapter 4 Network Layer: The Data Plane

COMP211 Chapter 4 Network Layer: The Data Plane COMP211 Chapter 4 Network Layer: The Data Plane All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th edition Jim Kurose, Keith Ross

More information

Last Lecture: Network Layer

Last Lecture: Network Layer Last Lecture: Network Layer 1. Design goals and issues 2. Basic Routing Algorithms & Protocols 3. Addressing, Fragmentation and reassembly 4. Internet Routing Protocols and Inter-networking 5. Router design

More information

ECE 158A: Lecture 7. Fall 2015

ECE 158A: Lecture 7. Fall 2015 ECE 158A: Lecture 7 Fall 2015 Outline We have discussed IP shortest path routing Now we have a closer look at the IP addressing mechanism We are still at the networking layer, we will examine: IP Headers

More information

2/22/2008. Outline Computer Networking Lecture 9 IP Protocol. Hop-by-Hop Packet Forwarding in the Internet. Internetworking.

2/22/2008. Outline Computer Networking Lecture 9 IP Protocol. Hop-by-Hop Packet Forwarding in the Internet. Internetworking. Outline 5-44 Computer Networking Lecture 9 Protocol Traditional addressing CIDR addressing Peter Steenkiste Departments of Computer Science and Electrical and Computer Engineering Forwarding examples 5-44

More information

EECS 122: Introduction to Computer Networks Switch and Router Architectures. Today s Lecture

EECS 122: Introduction to Computer Networks Switch and Router Architectures. Today s Lecture EECS : Introduction to Computer Networks Switch and Router Architectures Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley,

More information

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

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2016 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Presentation 2 Security/Privacy Presentations Nov 3 rd, Nov 10 th, Nov 15 th Upload slides to Canvas by midnight

More information

Topics for Today. Network Layer. Readings. Introduction Addressing Address Resolution. Sections 5.1,

Topics for Today. Network Layer. Readings. Introduction Addressing Address Resolution. Sections 5.1, Topics for Today Network Layer Introduction Addressing Address Resolution Readings Sections 5.1, 5.6.1-5.6.2 1 Network Layer: Introduction A network-wide concern! Transport layer Between two end hosts

More information

Scalable Packet Classification for IPv6 by Using Limited TCAMs

Scalable Packet Classification for IPv6 by Using Limited TCAMs Scalable Packet Classification for IPv6 by Using Limited TCAMs Chia-Tai Chan 1, Pi-Chung Wang 1,Shuo-ChengHu 2, Chung-Liang Lee 1,and Rong-Chang Chen 3 1 Telecommunication Laboratories, Chunghwa Telecom

More information

CS244a: An Introduction to Computer Networks

CS244a: An Introduction to Computer Networks CS244a: An Introduction to Computer Networks Handout 4: Layer 3 and the Internet Protocol (IP) Nick McKeown Professor of Electrical Engineering and Computer Science, Stanford University nickm@stanford.edu

More information

Recursive Flow Classification: An Algorithm for Packet Classification on Multiple Fields

Recursive Flow Classification: An Algorithm for Packet Classification on Multiple Fields 5 CHAPTER 4 Recursive Flow Classification: An Algorithm for Packet Classification on Multiple Fields Introduction Chapters 2 and 3 described algorithms for routing lookups. In this chapter and the next

More information

internet technologies and standards

internet technologies and standards Institute of Telecommunications Warsaw University of Technology 2017 internet technologies and standards Piotr Gajowniczek Andrzej Bąk Michał Jarociński Network Layer The majority of slides presented in

More information

15-744: Computer Networking. Routers

15-744: Computer Networking. Routers 15-744: Computer Networking outers Forwarding and outers Forwarding IP lookup High-speed router architecture eadings [McK97] A Fast Switched Backplane for a Gigabit Switched outer Optional [D+97] Small

More information

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 12

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 12 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 12 1 Chapter 4: outline 4.1 introduction 4.2 virtual circuit and datagram networks 4.3 what

More information

CSC 4900 Computer Networks: Network Layer

CSC 4900 Computer Networks: Network Layer CSC 4900 Computer Networks: Network Layer Professor Henry Carter Fall 2017 Chapter 4: Network Layer 4. 1 Introduction 4.2 What s inside a router 4.3 IP: Internet Protocol Datagram format 4.4 Generalized

More information

Forwarding and Routers : Computer Networking. Original IP Route Lookup. Outline

Forwarding and Routers : Computer Networking. Original IP Route Lookup. Outline Forwarding and Routers 15-744: Computer Networking L-9 Router Algorithms IP lookup Longest prefix matching Classification Flow monitoring Readings [EVF3] Bitmap Algorithms for Active Flows on High Speed

More information

Tree-Based Minimization of TCAM Entries for Packet Classification

Tree-Based Minimization of TCAM Entries for Packet Classification Tree-Based Minimization of TCAM Entries for Packet Classification YanSunandMinSikKim School of Electrical Engineering and Computer Science Washington State University Pullman, Washington 99164-2752, U.S.A.

More information

Generic Architecture. EECS 122: Introduction to Computer Networks Switch and Router Architectures. Shared Memory (1 st Generation) Today s Lecture

Generic Architecture. EECS 122: Introduction to Computer Networks Switch and Router Architectures. Shared Memory (1 st Generation) Today s Lecture Generic Architecture EECS : Introduction to Computer Networks Switch and Router Architectures Computer Science Division Department of Electrical Engineering and Computer Sciences University of California,

More information

RMIT University. Data Communication and Net-Centric Computing COSC 1111/2061. Lecture 2. Internetworking IPv4, IPv6

RMIT University. Data Communication and Net-Centric Computing COSC 1111/2061. Lecture 2. Internetworking IPv4, IPv6 RMIT University Data Communication and Net-Centric Computing COSC 1111/2061 Internetworking IPv4, IPv6 Technology Slide 1 Lecture Overview During this lecture, we will understand The principles of Internetworking

More information

COMP/ELEC 429/556 Introduction to Computer Networks

COMP/ELEC 429/556 Introduction to Computer Networks COMP/ELEC 429/556 Introduction to Computer Networks Let s Build a Scalable Global Network - IP Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Network Layer Overview, Router Design, IP Sec 4.1. 4.2 and 4.3 Prof. Lina Battestilli Fall 2017 Chapter 4: Network Layer, Data Plane chapter goals: understand

More information

Lecture 12: Aggregation. CSE 123: Computer Networks Alex C. Snoeren

Lecture 12: Aggregation. CSE 123: Computer Networks Alex C. Snoeren Lecture 12: Aggregation CSE 123: Computer Networks Alex C. Snoeren Lecture 12 Overview Subnetting Classless addressing Route aggregation 2 Class-based Addressing Most significant bits determines class

More information

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Lecture 3. The Network Layer (cont d) Network Layer 1-1 Lecture 3 The Network Layer (cont d) Network Layer 1-1 Agenda The Network Layer (cont d) What is inside a router? Internet Protocol (IP) IPv4 fragmentation and addressing IP Address Classes and Subnets

More information

Network Processors. Nevin Heintze Agere Systems

Network Processors. Nevin Heintze Agere Systems Network Processors Nevin Heintze Agere Systems Network Processors What are the packaging challenges for NPs? Caveat: I know very little about packaging. Network Processors What are the packaging challenges

More information

CSCI Computer Networks Fall 2016

CSCI Computer Networks Fall 2016 source: computer-s-webdesign.com CSCI 4760 - Computer Networks Fall 2016 Instructor: Prof. Roberto Perdisci perdisci@cs.uga.edu These slides are adapted from the textbook slides by J.F. Kurose and K.W.

More information

Hierarchical Routing. Our routing study thus far - idealization all routers identical network flat no true in practice. administrative autonomy

Hierarchical Routing. Our routing study thus far - idealization all routers identical network flat no true in practice. administrative autonomy Hierarchical Routing Our routing study thus far - idealization all routers identical network flat no true in practice scale: with 50 million destinations: can t store all dest s in routing tables! routing

More information

Packet Classification Using Dynamically Generated Decision Trees

Packet Classification Using Dynamically Generated Decision Trees 1 Packet Classification Using Dynamically Generated Decision Trees Yu-Chieh Cheng, Pi-Chung Wang Abstract Binary Search on Levels (BSOL) is a decision-tree algorithm for packet classification with superior

More information

Vorlesung Kommunikationsnetze

Vorlesung Kommunikationsnetze Picture 15 13 Vorlesung Kommunikationsnetze Prof. Dr. H. P. Großmann mit B. Wiegel sowie A. Schmeiser und M. Rabel Sommersemester 2009 Institut für Organisation und Management von Informationssystemen

More information

Towards Effective Packet Classification. J. Li, Y. Qi, and B. Xu Network Security Lab RIIT, Tsinghua University Dec, 2005

Towards Effective Packet Classification. J. Li, Y. Qi, and B. Xu Network Security Lab RIIT, Tsinghua University Dec, 2005 Towards Effective Packet Classification J. Li, Y. Qi, and B. Xu Network Security Lab RIIT, Tsinghua University Dec, 2005 Outline Algorithm Study Understanding Packet Classification Worst-case Complexity

More information

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24 EE 586 Communication and Switching Networks (Fall 2010) Lecture 24 October 25, 2010 1-1 Announcements Midterm 1: Mean = 92.2 Stdev = 8 Still grading your programs (sorry about the delay) Network Layer

More information

The Internet Protocol. IP Addresses Address Resolution Protocol: IP datagram format and forwarding: IP fragmentation and reassembly

The Internet Protocol. IP Addresses Address Resolution Protocol: IP datagram format and forwarding: IP fragmentation and reassembly The Internet Protocol IP Addresses Address Resolution Protocol: IP datagram format and forwarding: IP fragmentation and reassembly IP Addresses IP Addresses are 32 bit. Written in dotted decimal format:

More information

PACKET classification is an enabling function for a variety

PACKET classification is an enabling function for a variety IEEE INFOCOM 5 1 Scalable Packet Classification using Distributed Crossproducting of Field Labels David E. Taylor, Jonathan S. Turner Applied Research Laboratory Washington University in Saint Louis {det3,jst}@arl.wustl.edu

More information

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane This presentation is adapted from slides produced by Jim Kurose and Keith Ross for their book, Computer Networking:

More information

Three Different Designs for Packet Classification

Three Different Designs for Packet Classification Three Different Designs for Packet Classification HATAM ABDOLI Computer Department Bu-Ali Sina University Shahid Fahmideh street, Hamadan IRAN abdoli@basu.ac.ir http://www.profs.basu.ac.ir/abdoli Abstract:

More information

Where we are in the Course

Where we are in the Course Network Layer Where we are in the Course Moving on up to the Network Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Network Layer How to connect different link layer

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane Chapter 4: outline 4.1 Overview of Network layer data plane control plane 4.2 What s inside a router 4.3 IP: Internet Protocol datagram format fragmentation IPv4

More information

Master Course Computer Networks IN2097

Master Course Computer Networks IN2097 Chair for Network Architectures and Services Prof. Carle Department for Computer Science TU München Master Course Computer Networks IN2097 Prof. Dr.-Ing. Georg Carle Christian Grothoff, Ph.D. Chair for

More information

ECE697AA Lecture 20. Forwarding Tables

ECE697AA Lecture 20. Forwarding Tables ECE697AA Lecture 20 Routers: Prefix Lookup Algorithms Tilman Wolf Department of Electrical and Computer Engineering 11/14/08 Forwarding Tables Routing protocols involve a lot of information Path choices,

More information

ITTC High-Performance Networking The University of Kansas EECS 881 Architecture and Topology

ITTC High-Performance Networking The University of Kansas EECS 881 Architecture and Topology High-Performance Networking The University of Kansas EECS 881 Architecture and Topology James P.G. Sterbenz Department of Electrical Engineering & Computer Science Information Technology & Telecommunications

More information

IPv4 addressing, NAT. Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley.

IPv4 addressing, NAT. Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley. IPv4 addressing, NAT http://xkcd.com/195/ Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley Some materials copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights

More information

Communications Software. CSE 123b. CSE 123b. Spring Lecture 2: Internet architecture and. Internetworking. Stefan Savage

Communications Software. CSE 123b. CSE 123b. Spring Lecture 2: Internet architecture and. Internetworking. Stefan Savage CSE 123b CSE 123b Communications Software Spring 2003 Lecture 2: Internet architecture and Internetworking Stefan Savage Some history 1968: DARPANET (precursor to Internet) Bob Taylor, Larry Roberts create

More information

Lecture 3: Packet Forwarding

Lecture 3: Packet Forwarding Lecture 3: Packet Forwarding CSE 222A: Computer Communication Networks Alex C. Snoeren Thanks: Mike Freedman & Amin Vahdat Lecture 3 Overview Paper reviews Packet Forwarding IP Addressing Subnetting/CIDR

More information

DESIGN AND IMPLEMENTATION OF OPTIMIZED PACKET CLASSIFIER

DESIGN AND IMPLEMENTATION OF OPTIMIZED PACKET CLASSIFIER International Journal of Computer Engineering and Applications, Volume VI, Issue II, May 14 www.ijcea.com ISSN 2321 3469 DESIGN AND IMPLEMENTATION OF OPTIMIZED PACKET CLASSIFIER Kiran K C 1, Sunil T D

More information

Lecture 12: Addressing. CSE 123: Computer Networks Alex C. Snoeren

Lecture 12: Addressing. CSE 123: Computer Networks Alex C. Snoeren Lecture 12: Addressing CSE 123: Computer Networks Alex C. Snoeren Lecture 12 Overview IP Addresses Class-based addressing Subnetting Classless addressing Route aggregation 2 Addressing Considerations Fixed

More information

Scalable Packet Classification using Distributed Crossproducting of Field Labels

Scalable Packet Classification using Distributed Crossproducting of Field Labels Scalable Packet Classification using Distributed Crossproducting of Field Labels David E. Taylor, Jonathan S. Turner WUCSE-4-38 June 3, 4 Applied Research Laboratory Department of Computer Science and

More information

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA Weirong Jiang, Viktor K. Prasanna University of Southern California Norio Yamagaki NEC Corporation September 1, 2010 Outline

More information

Homework 1 Solutions:

Homework 1 Solutions: Homework 1 Solutions: If we expand the square in the statistic, we get three terms that have to be summed for each i: (ExpectedFrequency[i]), (2ObservedFrequency[i]) and (ObservedFrequency[i])2 / Expected

More information

Quiz. Segment structure and fields Flow control (rwnd) Timeout interval. Phases transition ssthresh setting Cwnd setting

Quiz. Segment structure and fields Flow control (rwnd) Timeout interval. Phases transition ssthresh setting Cwnd setting Quiz v 10/30/2013 (Wednesday), 20 mins v Midterm question (available on website) v TCP basics Segment structure and fields Flow control (rwnd) Timeout interval v TCP Congestion control Phases transition

More information

A Scalable Approach for Packet Classification Using Rule-Base Partition

A Scalable Approach for Packet Classification Using Rule-Base Partition CNIR Journal, Volume (5), Issue (1), Dec., 2005 A Scalable Approach for Packet Classification Using Rule-Base Partition Mr. S J Wagh 1 and Dr. T. R. Sontakke 2 [1] Assistant Professor in Information Technology,

More information

Communication Networks ( ) / Fall 2013 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

Communication Networks ( ) / Fall 2013 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner Communication Networks (0368-3030) / Fall 2013 The Blavatnik School of Computer Science, Tel-Aviv University Allon Wagner Kurose & Ross, Chapter 4 (5 th ed.) Many slides adapted from: J. Kurose & K. Ross

More information

Department of Computer and IT Engineering University of Kurdistan. Network Layer. By: Dr. Alireza Abdollahpouri

Department of Computer and IT Engineering University of Kurdistan. Network Layer. By: Dr. Alireza Abdollahpouri Department of Computer and IT Engineering University of Kurdistan Network Layer By: Dr. Alireza Abdollahpouri What s the Internet: nuts and bolts view PC server wireless laptop cellular handheld millions

More information

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing Last time Network layer Introduction forwarding vs. routing Virtual circuit vs. datagram details connection setup, teardown VC# switching forwarding tables, longest prefix matching IP: the Internet Protocol

More information

Master Course Computer Networks IN2097

Master Course Computer Networks IN2097 Chair for Network Architectures and Services Prof. Carle Department for Computer Science TU München Chair for Network Architectures and Services Prof. Carle Department for Computer Science TU München Master

More information

Lecture 10: Addressing

Lecture 10: Addressing Lecture 10: Addressing CSE 123: Computer Networks Alex C. Snoeren HW 2 due WEDNESDAY Lecture 10 Overview ICMP The other network-layer protocol IP Addresses Class-based addressing Subnetting Classless addressing

More information

E : Internet Routing

E : Internet Routing E6998-02: Internet Routing Lecture 18 Overlay Networks John Ioannidis AT&T Labs Research ji+ir@cs.columbia.edu Copyright 2002 by John Ioannidis. All Rights Reserved. Announcements Lectures 1-18 are available.

More information

Chapter 4: network layer

Chapter 4: network layer Chapter 4: network layer chapter goals: understand principles behind network layer services: network layer service models forwarding versus routing how a router works routing (path selection) broadcast,

More information

Scalable Packet Classification using Distributed Crossproducting of Field Labels

Scalable Packet Classification using Distributed Crossproducting of Field Labels Washington University in St. Louis Washington University Open Scholarship All Computer Science and Engineering Research Computer Science and Engineering Report Number: WUCSE-24-38 24-6-23 Scalable Packet

More information

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSCE 463/612 Networks and Distributed Processing Spring 2018 CSCE 463/612 Networks and Distributed Processing Spring 2018 Network Layer II Dmitri Loguinov Texas A&M University April 3, 2018 Original slides copyright 1996-2004 J.F Kurose and K.W. Ross 1 Chapter 4:

More information

internet technologies and standards

internet technologies and standards Institute of Telecommunications Warsaw University of Technology 2015 internet technologies and standards Piotr Gajowniczek Andrzej Bąk Michał Jarociński Network Layer The majority of slides presented in

More information

Lecture 4 - Network Layer. Transport Layer. Outline. Introduction. Notes. Notes. Notes. Notes. Networks and Security. Jacob Aae Mikkelsen

Lecture 4 - Network Layer. Transport Layer. Outline. Introduction. Notes. Notes. Notes. Notes. Networks and Security. Jacob Aae Mikkelsen Lecture 4 - Network Layer Networks and Security Jacob Aae Mikkelsen IMADA September 23, 2013 September 23, 2013 1 / 67 Transport Layer Goals understand principles behind network layer services: network

More information

Network Layer. IP Protocol Stack: Key AbstracHons. Best- Effort Global Packet Delivery. Circuit Switching (e.g., Phone Network)

Network Layer. IP Protocol Stack: Key AbstracHons. Best- Effort Global Packet Delivery. Circuit Switching (e.g., Phone Network) IP Protocol Stack Key AbstracHons Network Layer Mike Freedman COS 461 Computer Networks Application Transport Network Link Applications Reliable streams Messages Best-effort global packet delivery Best-effort

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Network Layer IPv4, Format and Addressing,, IPv6 Prof. Lina Battestilli Fall 2017 Chapter 4 Outline Network Layer: Data Plane 4.1 Overview of Network layer

More information

Tutorial 9. SOLUTION Since the number of supported interfaces is different for each subnet, this is a Variable- Length Subnet Masking (VLSM) problem.

Tutorial 9. SOLUTION Since the number of supported interfaces is different for each subnet, this is a Variable- Length Subnet Masking (VLSM) problem. Tutorial 9 1 Router Architecture Consider a router with a switch fabric, 2 input ports (A and B) and 2 output ports (C and D). Suppose the switch fabric operates at 1.5 times the line speed. a. If, for

More information

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview Chapter 4: chapter goals: understand principles behind services service models forwarding versus routing how a router works generalized forwarding instantiation, implementation in the Internet 4- Network

More information

Performance Evaluation and Improvement of Algorithmic Approaches for Packet Classification

Performance Evaluation and Improvement of Algorithmic Approaches for Packet Classification Performance Evaluation and Improvement of Algorithmic Approaches for Packet Classification Yaxuan Qi, Jun Li Research Institute of Information Technology (RIIT) Tsinghua University, Beijing, China, 100084

More information

Master Course Computer Networks IN2097

Master Course Computer Networks IN2097 Chair for Network Architectures and Services Prof. Carle Department for Computer Science TU München Master Course Computer Networks IN2097 Prof. Dr.-Ing. Georg Carle Christian Grothoff, Ph.D. Chair for

More information

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup Yan Sun and Min Sik Kim School of Electrical Engineering and Computer Science Washington State University Pullman, Washington

More information

On using content addressable memory for packet classification

On using content addressable memory for packet classification On using content addressable memory for packet classification David E. Taylor, Edward W. Spitznagel WUCSE-2005-9 3 March 2005 Applied Research Laboratory Department of Computer Science and Engineering

More information

Internetwork Protocols

Internetwork Protocols Internetwork Protocols Background to IP IP, and related protocols Internetworking Terms (1) Communications Network Facility that provides data transfer service An internet Collection of communications

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see

More information

Towards High-performance Flow-level level Packet Processing on Multi-core Network Processors

Towards High-performance Flow-level level Packet Processing on Multi-core Network Processors Towards High-performance Flow-level level Packet Processing on Multi-core Network Processors Yaxuan Qi (presenter), Bo Xu, Fei He, Baohua Yang, Jianming Yu and Jun Li ANCS 2007, Orlando, USA Outline Introduction

More information

CS 43: Computer Networks. 21: The Network Layer & IP November 7, 2018

CS 43: Computer Networks. 21: The Network Layer & IP November 7, 2018 CS 43: Computer Networks 21: The Network Layer & IP November 7, 2018 The Network Layer! Application: the application (e.g., the Web, Email) Transport: end-to-end connections, reliability Network: routing

More information

Router Architecture Overview

Router Architecture Overview Chapter 4: r Introduction (forwarding and routing) r Review of queueing theory r Router design and operation r IP: Internet Protocol m IPv4 (datagram format, addressing, ICMP, NAT) m Ipv6 r Generalized

More information

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 OSI Network Layer Network Fundamentals Chapter 5 Version 4.0 1 Objectives Identify the role of the Network Layer, as it describes communication from one end device to another end device. Examine the most

More information

Information Network Systems The network layer. Stephan Sigg

Information Network Systems The network layer. Stephan Sigg Information Network Systems The network layer Stephan Sigg Tokyo, November 1, 2012 Error-detection and correction Decoding of Reed-Muller codes Assume a second order (16, 11) code for m = 4. The r-th order

More information

Chapter 4: Network Layer

Chapter 4: Network Layer Chapter 4: Introduction (forwarding and routing) Review of queueing theory Routing algorithms Link state, Distance Vector Router design and operation IP: Internet Protocol IPv4 (datagram format, addressing,

More information

Routers. Session 12 INST 346 Technologies, Infrastructure and Architecture

Routers. Session 12 INST 346 Technologies, Infrastructure and Architecture Routers Session 12 INST 346 Technologies, Infrastructure and Architecture Goals for Today Finish up TCP Flow control, timeout selection, close connection Network layer overview Structure of a router Getahead:

More information

Router Design: Table Lookups and Packet Scheduling EECS 122: Lecture 13

Router Design: Table Lookups and Packet Scheduling EECS 122: Lecture 13 Router Design: Table Lookups and Packet Scheduling EECS 122: Lecture 13 Department of Electrical Engineering and Computer Sciences University of California Berkeley Review: Switch Architectures Input Queued

More information

NETWORK LAYER DATA PLANE

NETWORK LAYER DATA PLANE NETWORK LAYER DATA PLANE 1 GOALS Understand principles behind network layer services, focusing on the data plane: Network layer service models Forwarding versus routing How a router works Generalized forwarding

More information

IP - The Internet Protocol

IP - The Internet Protocol IP - The Internet Protocol 1 Orientation IP s current version is Version 4 (IPv4). It is specified in RFC 891. TCP UDP Transport Layer ICMP IP IGMP Network Layer ARP Network Access Link Layer Media 2 IP:

More information

AN EFFICIENT HYBRID ALGORITHM FOR MULTIDIMENSIONAL PACKET CLASSIFICATION

AN EFFICIENT HYBRID ALGORITHM FOR MULTIDIMENSIONAL PACKET CLASSIFICATION AN EFFICIENT HYBRID ALGORITHM FOR MULTIDIMENSIONAL PACKET CLASSIFICATION Yaxuan Qi 1 and Jun Li 1,2 1 Research Institute of Information Technology (RIIT), Tsinghua University, Beijing, China, 100084 2

More information

CS4450. Computer Networks: Architecture and Protocols. Lecture 13 THE Internet Protocol. Spring 2018 Rachit Agarwal

CS4450. Computer Networks: Architecture and Protocols. Lecture 13 THE Internet Protocol. Spring 2018 Rachit Agarwal CS4450 Computer Networks: Architecture and Protocols Lecture 13 THE Internet Protocol Spring 2018 Rachit Agarwal 2 Reflection The events in last few days have left me sad! Such events must be condemned

More information