P4 : Programming Protocol-Independent Packet Processors

Slides:



Advertisements
Similar presentations
컴퓨터와 인터넷.
Advertisements

ABAP Programming 정보자동화그룹 ERP팀 김 아 람 SW.
Chapter 2 정보시스템 아키텍처 (IS Architecture)
Ubiquitous Computing Lab NS-3 Basic 박성진
Mar OSEK/VDK Woo Dong Kyun.
Oozie Web API 기능 테스트 이승엽.
Chapter 7 ARP and RARP.
1. 개발 시스템 개요.
Network Lab. Young-Chul Hwang
Operating Systems Overview
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
Internet Control Message Protocol (ICMP)
제 7장 정적 라우팅 프로토콜.
7장 : 캐시와 메모리.
Load Balancing L4와 L7은 어떻게 동작할까?.
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Routing Protocol - Router의 주 목적 중 하나는 Routing
Chapter 8 교환 (Switching).
Chapter 8 교환 (Switching).
제 15 장 점 대 점 프로토콜 15.1 천이상태 15.2 PPP 계층 15.3 링크 제어 프로토콜 15.4 인증
11 장 LAN 기본 개념과 Ethernet LAN
Carlos Guimar˜aes1, Daniel Corujo2, Rui L. Aguiar3
컴퓨터 공학 전공 이상신 컴퓨터 공학 전공 성주형 멀티미디어 공학 전공 박성재
Chapter 21 Network Layer: ARP, ICMP (IGMP).
IPTV 정책 관련 의견 -혁신 & 공정경쟁 한국인터넷기업협회.
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
Chapter 2. Finite Automata Exercises
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
WinCE Device Driver 실습 #2
Chapter 10. 파일 시스템 인터페이스(File System Interface)
임베디드 소프트웨어 설계.
Chapter 4 The Von Neumann Model.
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
자바 5.0 프로그래밍.
파이프라이닝.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
DSU Nanumi FTP - Network Programming 염대영
LCD Controller Colorbar
22 장 전송층(Transport Layer)
ACL(Access Control List)
21 장 전송층(Transport Layer)
논리회로 설계 및 실험 5주차.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Advances in Optical Technology & FI
시스템 분석 및 설계 글로컬 IT 학과 김정기.
XML-II (eXtensible Markup Language) DTD/DOM
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
UNIT 25 SPI 로봇 SW 교육원 조용수.
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
Chapter 26 IP over ATM.
ATM - 다양한 종류의 Service 가능 - LAN 과 WAN 에 모두 적합하다. - 전세계적으로 인정된 표준
Ping Test.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
Chapter 27 Mobile IP.
Introduction to JSP & Servlet
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
UNIT 25 SPI 로봇 SW 교육원 조용수.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Network Lab. Young-Chul Hwang
Dynamic Graph Query Primitives for SDN-based Cloud Network Management Ramya Raghavendra, Jorge Lobo, Kang-Won Lee 2012 HotSDN 정보통신공학과.
 6장. SQL 쿼리.
Docker Study 6~7.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
바꾸기 mutation: 값이 아니라 물건으로 생각하기
Presentation transcript:

P4 : Programming Protocol-Independent Packet Processors 컴퓨터공학과 이지운 2016.05.11

개요 P4:Programming Protocol-Independent Packet Processors 요약 Openflow P4 Language Finishing Q&A

P4:Programming Protocol-Independent Packet Processors 요약 OpenFlow is simple Multiple Stages of heterogeneous table Still not enough (e.g., VXLAN, NVGRE, STT, …) Future SDN Switches? Configurable Packet parser Not tied to a specific header format Flexible match+action table Mutiple tables (in series and/or parallel) Able to match on all defined fileds General packet-processing primitives copy, add, remove and modify For both header fields and meta-data New Geneation of Switch ASCISs Intel FlexPipe RMT [SIGCOMM’13] Cisco Doppler But, Programming these chips is HARD Custom, vendor-specific interfaces Low-level, akin to microcode programming Need a Higher-Level Interface! thress Goals! Reconfigurability Procotol Independence Target independence

P4:Programming Protocol-Independent Packet Processors 요약 (2) Conclusion OpenFlow 1.x Vendor-agnostic API But, only for fixed-function switches Alternate future Reconfigurability Procotol Independence Target independence P4 Language : proposal

Chapter 1 OpenFlow

OpenFlow SDN을 구현하기 위해 처음으로 제정된 표준 인터페이스 OpenFlow 스위치, OpenFlow 컨 트롤러로 구성되며, 흐름(flow) 정보를 제어하여 패킷의 전달 경로 및 방식을 결정

OpenFlow History

OpenFlow 동작 방식 OpenFlow 스위치 내부에는 패킷 전달 경로와 방식에 대한 정보를 가지고 있는 FlowTable이라 는 것이 존재 패킷이 발생하면 제일 먼저 FlowTable이 해당 패킷에 대한 정보를 가지고 있는지 확인 패킷에 대한 정보가 존재하면 그에 맞춰 패킷을 처리하고, 정보가 존재하지 않으면 해당 패 킷에 대한 제어 정보를 OpenFlow 컨트롤러에 요청 스위치로부터 제어 정보를 요청받은 OpenFlow 컨트롤러는 내부에 존재하는 패킷 제어 정보 를 확인하고, 해당 결과를 OpenFlow 스위치에 전달 OpenFlow 컨트롤러 내의 패킷 제어 정보는 외부의 프로그램에서 API를 통해 입력할 수 있음 OpenFlow 스위치는 컨트롤러로부터 전달 받은 제어 정보를 FlowTable에 저장하고, 이후 동일 한 패킷이 발생하면 FlowTable에 있는 정보를 활용하여 패킷을 전달

OpenFlow 패킷 제어 정보 (1) OpenFlow에서 패킷을 제어하는 정보는 FlowTable에 저장되어 있으며, 다음 그림과 같이 Header Fields, Counters, Actions로 구성된다. 헤더 필드(header fields)에는 스위치 포트, 이더넷 및 프로토콜 정보, 출발지(source)/목적지(destination)의 MAC·IP·포트·우선순위가 저장 헤더 필드 정보와 패킷의 정보의 일치 여부에 따라, 발생한 패킷이 FlowTable에 존재하는지 결정

OpenFlow 패킷 제어 정보 (2) 액션(actions)은 패킷 정보가 헤더 필드 정보와 일치할 때 어떻게 패킷을 처리할지에 대한 정보를 담고 있으 며, 처리 방식은 다음 3가지가 있음 스위치에 정의되어 있는 경로에 따라 패킷 전달 정해진 하나의 포트 또는 여러 개의 포트로 패킷 전달(전달 경로 변경) 패킷이 더 이상 전달되지 못하도록 차단(drop) 카운터(counters)는 FlowTable에 제어 정보가 등록된 순간부터 현재까지의 시간을 측정하는 용도로 사용 FlowTable에 등록된 제어 정보는 영구적으로 저장하거나 정해진 시간 동안만 유지할 수 있는데, 카운터는 후 자의 경우 생명 주기(life cycle) 관리에 사용

Chapter 2 P4 Language

P4 Language Packet forward dataplanes 의 프로그래밍을 허용할 수 있도록 설계 되었으며, 파이썬과는 달리 네트워 크 데이터 전송에 최적화 되어 있는 특정 언어 특히 Packet forwarding applications 을 목표로 하고 있으며, 3가지 목표를 충족시키도록 설계되어 있음

P4’s 3 Goals Target Independence Program without knowledge of switch details Rely on complier to configure target switch Protocol Independence Configure a packet parser Match-actions not tied to any specific network protocols Define a set of type match-action table Reconfigurability Change parsing and processing in the field

P4 Language Configuration achieved with a program language describing parsing and control Flow tables populated with Classic Openflow (1.x) Complier maps parser and tables to specialized hardware or software

Match-Action Forwarding Abstraction (OpenFlow 1.x)

P4 Configuration abstractions (1) Header Ordered list of fields with name and width Parser State machine traversing the packet to extract header fields Action Function Custom functions made of primitive actions (add_field, remove_header, longest prefix, range, etc... ) Control Flow Table application order, conditionals, functions Stateful memories Counter, meters and registers which persist across packets

P4 Configuration abstractions (2)

P4 Configuration abstractions (3) Flow of Control from one table to the next Collection of Functions, conditions, and tables

P4 Complier Parser Programmable parser :translate to state machine Fixed parser : verify the description is consistent Control program Target-independent : table graph of dependencies Target-dependent : Mapping to switch resource Rule Translation Verify that rules agree with the table types Translate the rules to the physical tables

P4 Compling to taget switches Software switches Directly map the table graph to switch tables Use data structure for exact/prefix/ternary match H/W Swtiches with RAM and TCAM RAM : Hash table for tables with exact match TCAM : for tables with wildcards in the match Switches with parallel table Analyze table graph for possible concurrency

P4 Compling to taget switches Software switches Directly map the table graph to switch tables Use data structure for exact/prefix/ternary match H/W Swtiches with RAM and TCAM RAM : Hash table for tables with exact match TCAM : for tables with wildcards in the match Switches with parallel table Analyze table graph for possible concurrency Applying actions at the end of pipeline Use meta-data to perform actins at the end

Summary (1)

Summary (2)

Finishing

Q&A