Topics on Computer Networks Seminar(4/14) Network Working Group Request for Comments: 3450 Category: Experimental Asynchronous Layered Coding(ALC) Protocol Instantiation Apr. 14. 2010 Database and Information Systems Lab at HUFS Hwayoung Choe(hychoe@dislab.hufs.ac.kr) Contents Introduction • • • Delivery service models Scalability Environmental Requirements & Considerations Architecture Definition • • • • • LCT building block Multiple rate congestion control building block FEC building block Session Description Packet authentication building block Functionality Definition • • • • • Packet format used by ALC Detailed Example of Packet format used by ALC Header-Extension Fields Sender Operation Receiver Operation 2 Abstract Asynchronous Layered Coding(ALC) Protocol massively scalable reliable content delivery protocol LCT + FEC + Multiple-rate Control FLUTE (File Delivery over Unidirectional Transport) LCT building block : session & channel management WEBRC building block : Network congestion control FEC building block : Forward error control FLUTE(RFC 3926) LCT Building Block(RFC 3451) ALC Protocol (RFC 3450) WEBRC Building Block(RFC 3738) FEC Building Block(RFC 3452) Packet Authentication Building Block 3 Introduction • • • Delivery service models Scalability Environmental Requirements & Considerations 4 Delivery service models Push service model 파일 및 특정 컨텐츠 전송 할 경우 수신자는 자신의 수신속도에 적합한 채널은 선택, 세션에 참가 수신 종료 후에도 대기 >> 다음 파일 에 대한 연결 및 정보 제공 받음 (세션유 지) On-demand content delivery model 여러 수신자가 요구하는 컨텐츠를 충분한 시간 동안 반복해서 패킷 전송 수신 종료 후 세션 leave Software update service model Other service models 5 Scalability ALC Protocol Scalability 어떠한 손실도 없이 기존 IP에서 확장 네트워크에 우호적임 Feature 각 세션의 leave & join에 따라 전송속도의 변화가 없음 피드백 패킷이 요구되지 않음 대부분의 패킷은 세션에서 수신자로 전송되는 과정에서 혼잡 발생 - 세션은 링크를 공유함으로써 경쟁적인 flow를 공평하게 함 6 Architecture Definition • • • • • LCT building block Multiple rate congestion control building block FEC building block Session Description Packet authentication building block 7 LCT building block ALC Protocol에서 세션의 관리 기능 제공 TSI(Transport Session Identifier) 각각의 파일 Object 구분 CCI(Congestion Control Information) Receiver IP주소와 UDP port로 세션 내의 채널을 식별 TOI(Transport Object ID) 세션 내의 수신자에게 전달할 기본적인 정보의 내용과 특징 LCT 헤더와 확장 헤더의 형식들을 정의 사용여부 및 Congestion Control Block 정보를 포함 Extension Header 부가 정보 및 FEC 관련 정보를 추가 8 Multiple rate congestion control building block Multiple rate congestion control building block LCT Header의 CCI(Congestion Control Information) 필드 안에 정의 송신자는 세션 안에 다수의 채널을 사용, 각각 다른 속도로 패킷 전송 모든 수신자의 수신률은 각각 독립적으로 결정됨. 9 FEC building block ALC의 확장성과 신뢰성을 제공 ALC 세션 안에서 신뢰적인 컨텐츠 오브젝트 전송을 제공 FEC 코드를 사용해서 독립적으로 인코딩 됨 FEC encoding ID & FEC instance ID LCT Header 내부의 FEC payload ID 코딩 심볼, 복구 심볼 FEC object transmission information(FEC OTI) 파일 object의 총길이, 심볼 사이즈 수신자와 송신자 사이에 파일 전송이 일어나기 전에 수신자에게 반드시 전달 • 수신될 패킷의 형태와 FEC 방식을 알기 위함 10 Session Description 수신자가 ALC 세션에 참가하기 전에 얻어야 하는 Session Description The multiple rate congestion control building block to be used for the session The sender IP address The number of channels in the session The address and port number used for each channel in the session The Transport Session ID(TSI) to be used for the session An indication of whether or not the session carries packets for more than one object If Header Extensions are to be used, the format of these Header Extension. Enough information to determine the packet authentication scheme being used, if it is being used. Session Description 전달 형태 및 방법 RFC2327 RFC3023 RFC2068 RFC2974 : : : : SDP XML Metadata HTML/Mime Header Format 정의된 SAP로 브로드캐스팅 11 Packet authentication building block 특정 공격으로부터 프로토콜을 보호하기 위해 패킷 인증관련 기술 ALC Protocol의 패킷 인증 사용 LCT building block 안에 제공되는 패킷 인증에 대해서는 확장된 헤더 포멧을 사용 각각의 패킷들을 차별화 하지 않아야 함. 12 Functionality Definition • • • • • Packet format used by ALC Detailed Example of Packet format used by ALC Header-Extension Fields Sender Operation Receiver Operation 13 Packet format used by ALC 14 Detailed Example of Packet format used by ALC V C r S O H T R A B 15 HDR_LEN Codepoint(CP) ALC Header Format(1) ALC는 LCT기반의 프로토콜로서 세션관리 기능 수행 LCT에서 정의된 패킷 형식을 그대로 사용 V C r S O H T R A B HDR_LEN Codepoint(CP) LCT version number (V) 4 bits LCT 헤더의 버전 Congestion control flag (C) 2 bits CCI field의 길이를 32bits 단위로 표현 Reserved (r) 2 bits Reserved for future use. Sender는 0으로 설정 Transport Session Identifier flag (S) 1 bit TSI field의 길이 표현 : 32*S + 16*H Transport Object Identifier flag (O) 2 bits TOI filed의 길이 표현 : 32*O + 16*H Half-word flag (H) 1 bit A multiples of a half-word Sender Current Time present flag (T) 1 bit 0일 경우, SCT 필드가 표시되지 않음을 의미 Expected Residual Time present flag (R) 1 bit 0일 경우, ERT필드 사용하지 않는다는 것을 의미(Sender가 설정) Close Session flag (A) 1 bit 1로 설정하여 Session의 종료를 Receiver에게 알림 Close Object flag (B) 1 bit Object의 전송 종료를 1로 설정하여 Receiver에게 알림 LCT Header length (HER_LEN) 8 bits LCT Header의 길이 Codepoint (CP) 8 bits FEC Payload ID의 정보를 확인 할 수 있는 필드 16 ALC Header Format(2) CCI field format C flag – 32, 64, 96, or 128 bits • • • • Multiple Rate Congestion Control 정보 포함 CTSI(Current Time Slot Index) : 8bits CN(Channel Number): 8bit PSN(Packet Sequence Number): 16bits Congestion Control Information(CCI, Length = 32 bits) Transport Session Identifier (TSI, Length = 32 bits) Transport Object Identifier (TOI, Length = 32 bits) TSI - 각 세션의 ID, Sender의 IP 주소와의 쌍으로 구성 TOI - 하나 이상의 컨텐츠 전송시, 컨텐츠 구분 - TOI = 0 , 하나의 파일 전송시 17 ALC Header Format(3) FEC Payload ID FEC Payload ID의 길이와 형태는 FEC building block이 기술된 FEC ENCODING ID에 의해 결정 FEC Payload ID Format SBN(Source Block Number): 32bits • Object의 인코딩 심복의 소스 블록을 지정 • 0 ~ N-1까지의 연속된 숫자 • N : Object 안의 소스 블록의 개수 ESI(Encoding Symbol ID): 32bits 18 Symbol : FEC 코드에 의해 처리되는 데이터의 단위 Encoding Symbol (= source symbol, repair symbol) : Object의 정보를 포함하는 심볼 Header-Extension Fields Extended-size versions of already existing header fields Sender and Receiver authentication information. Header Extension Length(8bits) Header Extension Type(8bits) Variable Length Fixed Length 19 Sender Operation Session Description을 통해서 컨텐츠 오브젝트의 정보를 전달 Sender는 정의한 여러 채널을 통해서 패킷을 순서대로 전송 하나 이상의 컨텐츠 오브젝트가 존재할 경우 Sender는 TOI필드를 사용하여 컨텐츠 오브젝트 구분 같은 컨텐츠는 동일한 TOI, FEC 페이로드 ID 사용 컨텐츠 오브젝트의 모든 전송이 끝날 때까지 패킷 전송 CCI 필드의 정보에 따라서 여러 채널에 적합한 속도로 패킷 전송 세션 내의 모든 패킷에 대해서 동일한 TSI 사용 지정된 시간까지의 완료 확인 패킷 순서번호와 네트워크 대역폭까지 확인 후 전송 전송 Packet Size MTU(maximum Transmission Unit) 고려 20 Receiver Operation Receiver 의 패킷 수신 절차 1. 2. 3. 4. 5. ALC 패킷의 헤더 확인 - 부적합 패킷은 버림 TSI와 함께 IP주소 확인 - Session Description Multiple Rate Congestion Control building block의 CCI 확인 후 처리 하나 이상의 컨텐츠 오브젝트의 패킷 수신할 경우 >> TOI 확인 패킷의 나머지 처리 후, FEC 페이로드 ID와 인코딩 심볼을 사용해서 컨텐츠 오브 젝트를 복원 6. 패킷 인증 사용 – 3단계를 처리하기 전에 패킷 인증을 확인 21 Q&A 22