네트워크 트래픽 흐름이란 무엇입니까?
네트워크 트래픽 흐름(흐름)은 컴퓨터 네트워크에서 트래픽에 대한 대략적인 이해를 구축하고 트래픽의 측정 및/또는 처리를 위한 편리한 단위를 제공하는 데 유용합니다.
흐름은 주소,볼륨 및 트래픽 유형에 대한 세부 정보와 함께 호스트가 네트워크에서 말하는 것을 이해하기 위해 측정 할 수 있습니다. 이 네트워크 뷰는 문제 해결,보안 사고 감지,계획 및 청구
에 유용 할 수 있지만 흐름은 정확히 무엇이며 어떻게 정의됩니까?
이 질문은 대답하기가 사소한 것처럼 들리지만,더 깊이 파고 들면 흐름을 흥미롭게 만들고 궁극적으로 정의하기 어려운 뉘앙스와 코너 케이스를 찾을 수 있습니다.
배경
흐름을 진정으로 이해하려면 몇 가지 배경으로 시작해야합니다.
네트워크는 회로 전환으로 시작되었습니다. 호스트가 다른 호스트와 통신하기를 원할 때 네트워크가 회로를 설정하도록 요청했습니다. 정보 흐름이 끝난 후 회로가 파괴되었습니다.
그림 1-예 회로 전환 네트워크
회로 전환 네트워크는 전화 네트워크에서 자신의 유산을 가지고있다. 그들은 가난한 확장 성 및 낮은 용량 활용을 포함하여 많은 단점을 가지고 있습니다.
궁극적으로 인터넷 패킷 전환 네트워크가 된 것을 구축하기 위해서는 대안이 필요했습니다. 메시지는 개별적으로 주소가 지정되고 네트워크를 통해 패킷으로 전송되는 가변 크기의 조각으로 잘립니다.
그림 2-예제 패킷 전환 네트워크
수신 호스트는 패킷의 페이로드를 메시지로 다시 조립합니다. 참고:패킷에는 흐름 제어와 같은 제어 정보가 포함될 수 있으며 경로는 대칭 일 필요는 없습니다.
회로 전환 네트워크에서 흐름을 정의하는 것은 회로가 흐름이고 설정 및 해제(회로=흐름)프로토콜을 따르기 때문에 쉽습니다.
그림 1 의 회로 전환 네트워크에서 관찰 지점에 있다고 잠시 상상해보십시오.:
그림 3-회로 전환 네트워크 확대
호스트 3&4 와 호스트 5&6 사이의 두 흐름이 관찰됩니다. 회로 전환 네트워크에서 흐름을 관찰 하는 것은 상대적으로 쉽게 네트워크 회로 설정에 관련 된,그래서 그들의 상태 및 끝점을 알고 있기 때문에.
이제 그림 2 의 패킷 전환 네트워크에서 관찰 지점에 있다고 상상해보십시오.:
그림 4-패킷 전환 네트워크 확대
갑자기 상황이 덜 명확합니다. 호스트 6 으로 향하는 호스트 5 에서 들어오는 패킷이 있습니다. 우리가 일정 기간 동안 관찰한다고 가정하면 더 많은 패킷이 도착하고 출발하는 것을 볼 수 있습니다. 패킷 전환 네트워크에서 흐름을 관찰하는 데는 시간이 걸리고 패킷 정보를 기록하고 분석해야 합니다.
첫 번째(순진한)흐름 정의 시도
패킷 전환 네트워크에 대한 지식을 사용하여’흐름이란 무엇인가’에 대한 첫 번째 시도는 다음과 같을 수 있습니다:
흐름은 두 호스트 사이에 정보를 전달하는 패킷 시퀀스입니다
이 정의는 다음과 같습니다:
그림 5-흐름을 정의하는 첫 번째 시도
그러나 문제가 있습니다. 호스트 간에 두 가지 이상의 통신 유형이 발생하면 어떻게 됩니까? 패킷이 동일한 흐름의 일부입니까? 직관적으로 우리는 그들이 다른 세션,심지어 완전히 다른 프로토콜입니다,아니 말한다.
를 정의하는 두 번째 시도 패킷 헤더의 프로토콜 정보를 공통 속성으로 사용하여 패킷을 흐름으로 식별하는 것은 어떻습니까? 이렇게 하면 서로 다른 유형의 연결이 서로 다른 흐름으로 분리됩니다.
네트워크상의 패킷 중 상당수는 계층 3 프로토콜일 가능성이 높습니다. 이 패키지에는 디버깅 심볼이 들어 있습니다.
우리는 패킷 헤더에서 5 매개 변수를 사용합니다; 일반적으로 패킷을 플로우에 매핑하는 공통 속성으로 5-튜플이라고 합니다.
그림 6-예제 5-튜플
시도 2:
흐름은 패킷이 공통 속성을 갖는 두 호스트 사이에 정보를 전달하는 패킷 시퀀스입니다.
- 흐름의 모든 패킷은 동일한 5-튜플을 공유합니다.
우리의 시나리오는 이제 다음과 같습니다:
그림 7-흐름을 정의하는 두 번째 시도
당신이 말하는 완벽한. 인생은 좋다. 우리는 흐름에 대한 정의를 가지고 있습니다,더 이상 볼 것이 없습니다…하지만 잠깐,패킷의 방향은 어떻습니까?
세 번째 시도-양방향
5-튜플은 단방향(단방향)입니다. 기본적으로 한 방향으로 이동하는 패킷만 일치합니다.
클라이언트/서버 동작을 결정하고 왕복 시간을 계산하는 기능뿐만 아니라 스캔과 같은 보안 사고의 탐지를 향상시키는 기능을 포함하여 흐름을 단방향과 반대로 양방향으로 간주하는 좋은 이유가 있습니다.여기서 패킷은 호스트 간에 앞뒤로 반송됩니다.:
그림 8-간단한 데이터 교환의 래더 다이어그램
우리는 고전적인 데이터 교환 3 방향 핸드 셰이크를 참조하십시오. 네트워크의 관측 지점에서 단방향 흐름 분석은 그림에 따라 방향당 하나씩 두 개의 개별 흐름을 볼 수 있습니다 9:
단방향 유량 측정의 문제점은 흐름에 대한 몇 가지 중요한 메타데이터를 캡처할 기회를 놓친다는 것입니다. 물론 각 단방향 흐름은 해당 방향으로 바이트 및 패킷에 대한 방향성 메타 데이터를 저장할 수 있습니다. 여기에는 패킷 간 타이밍이 포함될 수 있습니다(그림 9 의 레이블이 지정된 점 참조). 그러나 우리는 양방향에서 트래픽 매개 변수를 측정해야 메타 데이터를 수집 할 수있는 기회를 놓친다.
그림에서 양방향 관찰 고려 10:
그림 10-단순 관측에 대한 양방향 관측의 사다리
이제 관측에 대한 3 방향 핸드셰이크(포인트 에프 1,비 1,에프 2)를 관찰하고 측정할 수 있으며 응답 시간과 같은 다른 메트릭을 살펴볼 수 있습니다.
양방향 흐름의 경우 두 개의 5-튜플이 필요하며 두 번째 튜플은 튜플 순서를 뒤집습니다. 다음은 순방향 및 역방향 5 튜플의 예입니다:
그림 11-5 튜플 반전
오른쪽,너무 어렵지 않았다. 그러나 잠깐,더 많은 관심이 필요한 작은 세부 사항이 숨어 있습니다. 우리는 어떻게 흐름의 앞으로 방향이 무엇인지 알 수 있습니까? 우리는 관찰 된 첫 번째 패킷을 기반으로 방향을 결정합니다.이 패킷은 클라이언트에서 서버 방향으로 이동하는 것으로 가정되지만 패킷이 순서가 맞지 않거나 관찰이 일부 방법을 시작할 수 있으므로 100%신뢰할 수는 없습니다 흐름. 우리는 이 방법에 사용하고,그러나 우리가 완벽하지 않다 결과를 볼 때 기억할 필요가 있을 것이다.
다른 방법은 전송 프로토콜 필드를 검사하는 것입니다. 패킷이 플로우에서 첫 번째 패킷이라는 것을 나타내는 합리적인 지표입니다.
흐름에 대한 정의는 다음과 같습니다.
흐름은 패킷이 공통 속성을 갖는 두 호스트 사이에 정보를 전달하는 패킷 시퀀스입니다:
- 흐름의 모든 패킷은 동일한 5-튜플 또는 전치 된 5-튜플을 공유합니다.
이 시점까지 우리는 전송 프로토콜이 전송 프로토콜이라고 가정했습니다. 다른 전송 프로토콜은 어떻습니까?
두 번째 가장 일반적인 전송 프로토콜에 대 한 확실 한 선택입니다. 아래 예에 따라 소스 및 대상 포트 번호와 동일한 모델에 쉽게 맞습니다:
그림 12-스트림 제어 전송 프로토콜은 포트 번호를 사용하여 5 튜플과 함께 작동하는 또 다른 전송 프로토콜입니다.
그러나 다른 프로토콜은 어떻습니까?
보안 페이로드를 캡슐화하는 것은 소스/대상 포트 번호를 포함하지 않는 프로토콜이므로 프로토콜의 페이로드를 이해하는 것이 실용적이지 않기 때문에 3 튜플로 다시 전환해야합니다.
그림 13-양방향 3-튜플
흐름에 대한 정의는 다음과 같습니다.
):
흐름의 모든 패킷은 동일한 5-튜플 또는 전치된 5-튜플
공유 그렇지 않으면:
흐름의 모든 패킷은 동일한 3-튜플 또는 전치된 3-튜플
그러나 고려해야 할 또 다른 요소가 있습니다.
다섯 번째 시도–흐름 만료
흐름은 일정 시간 동안 만 존재합니다. 동일한 5 튜플(또는 3 튜플)이 동일한 호스트 간의 다른 흐름에 대해 다른 시점에서 재사용 될 수 있습니다.
한 호스트가 다른 호스트와 많은 새 연결을 시작하는 두 호스트를 고려하십시오. 일반적으로 이전 할당에서 1 씩 증가합니다. 이러한 임시 포트에 대해 49152~65535 범위를 할당하여 16384 개의 포트를 제공합니다. 시간이 지남에 따라 소스 포트는 범위를 통해 롤백되고 원래 소스 포트는 재사용되며,이 흐름은 원래 흐름과 동일한 5 튜플을 갖습니다. 이 문제를 제시,이 같은 흐름이 아니기 때문에!
이 문제를 해결하려면 지정된 시간 이상 패킷이 보이지 않는 곳에서 만료되는 흐름이 필요합니다. 여기서 우리는 다시 간다:
흐름은 패킷이 공통 속성을 갖는 두 호스트 사이에 정보를 전달하는 패킷 시퀀스입니다.:
흐름 내의 모든 패킷은 동일한 5-튜플 또는 전치된 5-튜플을 공유한다
그렇지 않으면:
흐름 내의 모든 패킷은 동일한 3-튜플 또는 전치된 3-튜플을 공유한다
- 모든 패킷 간 시간은 임의의 흐름 만료 시간 초과 값보다 작다
여섯 번째 시도-임의 매개 변수
때때로 흐름을 식별하기 위해 다른 매개 변수를 원할 수도 있고 네트워크의 하드웨어/소프트웨어 유형에 따라 강제 될 수도 있습니다.
예를 들어 시스코 라우터에서 흐름은 표준 5 튜플에 서비스 유형 및 입력 하위 인터페이스를 추가하는 7 튜플로 식별됩니다. 또한 소스 또는 대상 맥 주소와 같은 레이어-2 필드,흐름 키로 이해 될 수있는 상황이있을 수 있습니다(그들은 단지 로컬로 유의하지만).
흐름 식별을위한 공통 속성으로 사용될 수있는 다른 매개 변수가 있습니다;그것은 궁극적으로 결정 및 장비의 기능에 대한 운영자에 달려있다. 이를 바탕으로 우리는 정의를 더욱 구체화합니다:
흐름은 패킷이 공통 속성을 갖는 두 호스트 사이에 정보를 전달하는 패킷 시퀀스입니다.
흐름 내의 모든 패킷들은 동일한 5-튜플 또는 전치된 5-튜플을 공유한다
그렇지 않으면:
흐름 내의 모든 패킷들은 동일한 3-튜플 또는 전치된 3-튜플을 공유한다
- 모든 패킷 간 시간은 임의의 흐름 만료 시간 초과 값보다 작다
- 서비스 약관,인터페이스 등을 포함하여 임의의 파라미터를 흐름 키로 사용할 수 있다.
모든 것을 마무리
우리는 모든 것을 포괄하는 단일 흐름 정의를 생성하는 것이 어려운 문제라는 것을 보여주었습니다. 흐름 정의는 사용자 요구 사항과 흐름을 측정하는 네트워킹 장비의 기능에 따라 구현에 따라 다릅니다.
이 블로그 게시물의 2 부에서는 플로우에 대한 추가 고려 사항에 대해 설명합니다..또한,암호화,비아이피 패킷과 같은 다른 시스템에서 흐름을 측정하고 사용하는 방법도 포함된다.
참조: https://www.eecs.yorku.ca/course_archive/2015-16/W/3214/CSE3214_01_PacketCircuitSwitching_2016_posted_part2.pdf
일부 관련 논문은https://www.researchgate.net/profile/Brian_Trammell/publication/245587221_Bidirectional_Flow_Measurement_IPFIX_and_Security_Analysis/links/0f3175331dd3b49103000000/Bidirectional-Flow-Measurement-IPFIX-and-Security-Analysis.pdf및https://is.muni.cz/th/hilnn/cse2009.pdf
를 참조하십시오.: https://tools.ietf.org/html/rfc5103
표준화에 대한 자세한 내용은 다음을 참조하십시오: https://datatracker.ietf.org/wg/quic/about/
참조:https://www.cisco.com/en/US/tech/tk812/technologies_white_paper09186a008022bde8.shtml
Leave a Reply