CS
[Network] 가상 근거리 네트워크(VLAN)
VLAN(Virtual Local Area Network)는 하나의 물리적 근거리 네트워크 구조에서 여러 개의 가상 근거리 네트워크들을 정의할 수 있게 한다. 특정 VLAN에 속한 호스트들은 마치 하나의 물리 스위치에 자신들만 서로 연결된 것으로 인식한다. 포트 기반 VLAN에서는 네트워크 관리자가 스위치 포트를 그룹으로 나눈다. 각 그룹은 하나의 VLAN을 구성하며, 한 VLAN의 포트들은 하나의 브로드캐스트 도메인을 형성한다. 위 그림은 16개의 포트를 가진 단일 스위치이다. 포트 2~8은 전기공학과(이하 EE)에 속하고, 포트 9~15는 컴퓨터과학과(이하 CS)에 속한다. 이렇게 학과 마다 각기 다른 네트워크를 구축함으로서 트래픽을 효율적으로 처리할 수 있게 되었다. 그런데 이들은 사실상 하나의 스..
[Network] 링크 계층 스위치
1장에서 가장 먼저 공부했던 접속 네트워크에 속하며 라우터와 어떻게 다른지 감을 잡기 어려웠던 링크 계층 스위치가 드디어 나왔다. 스위치는 투명하다. 이 말은 호스트/라우터는 목적지로 보내는 도중에 자신의 프레임이 스위치에 도착하는걸 알지 못한다는 뜻이다. 스위치의 동작 방식 - 플러그 앤 플레이 1. 전달 및 여과 여과 : 프레임을 인터페이스로 전달할지 또는 폐기(drop)할지 결정함 전달 : 프레임이 전송될 인터페이스를 결정하고 프레임을 해당 인터페이스로 내보냄 스위치의 여과와 전달은 스위치 테이블을 이용한다. 스위치 테이블에는 랜상의 일부 호스트와 라우터에 대한 엔트리가 포함되어있다. 스위치 테이블의 엔트리에는 1) MAC주소, 2) MAC 주소로 가게 하는 스위치 어댑터, 3) 해당 엔트리가 테이..
[Network] 이더넷(Ethernet)
이더넷이란? 이더넷은 전세계에서 가장 널리 쓰이는 네트워크 통신 규격이다. 우리 컴퓨터에 탑재되어있는 네트워크 인터페이스는 대부분 이더넷 규격을 사용한다. 링크계층에서 전송하게되는 링크 계층 프레임 중 하나로 볼 수 있다. 하지만 대부분의 네트워크 규격이 이더넷이므로 링크 계층 프레임 == 이더넷 프레임 이라 생각해도 될 것같다. 이더넷 프레임의 구조 이더넷 프레임은 링크 계층 프레임이므로 네트워크 계층의 데이터그램을 캡슐화 한다. 일반적으로 네트워크 계층에서 IP 프로토콜을 주로 쓰기 때문에 이더넷 프레임이 IP 데이터그램을 캡슐화 한다고 이해하면 된다. 데이터 필드(46~1500 비트) IP 데이터그램을 운반하는 필드이다. 이더넷의 최대 전송단위(MTU, maximum transfer unit)는 1..
[Network] 링크 계층 주소체계와 ARP
링크 계층 주소란(MAC 주소) 호스트나 라우터가 직접 가지고 있지 않고, 호스트나 라우터의 인터페이스(어댑터)가 가지고 있다. 링크 계층 주소는 가장 널리 알려진 용어진 MAC 주소라고 생각하면 된다. (링크 계층 주소 == MAC 주소) MAC 주소는 길이가 6바이트이며 따라서 2^48개의 주소가 존재한다. 흥미로운 점은 세상의 어떤 어댑터도 동일한 값을 갖지 않는다는 점이다. 다양한 나라에서 제조되는 어댑터들이 모두 다른 값을 가질 수 있는 이유는 IEEE(Institute of Electrical and Electronics Engineers)가 MAC 주소 공간을 관리하기 때문이다. 어떤 회사에서 어댑터를 제조하려면 2^24개의 주소로 이루어진 주소 영역을 구매해야 한다. IEEE에서는 MAC주..
[Network] 네트워크 계층 : OpenFlow 프로토콜
오픈 플로우(OpenFlow) 프로토콜 오픈플로우 프로토콜은 TCP상에서 포트번호 6653을 가지고 동작한다. 컨트롤러는 연결 설정을 하려는 스위치에 대하여 TCP 포트 6653을 리스닝하고 있어야 한다. 스위치에 오픈플로우 펌웨어를 삽입한다. 컨트롤러와 스위치간에 전달되는 메시지를 알아보자 컨트롤러 -> 스위치(라우터) 설정 : 컨트롤러가 스위치의 설정 파라미터들을 문의하거나 설정할 수 있도록 한다. 상태 수정 : 컨트롤러가 스위치 플로우 테이블의 엔트리를 추가/제거 또는 수정하거나 스위치 포트의 특성을 설정하기 위해 사용된다. 상태 읽기 : 컨트롤러가 스위치 플로우 테이블과 포트로부터 통계 정보와 카운터 값을 얻기 위해 사용한다. 패킷 전송 : 컨트롤러가 제어하는 스위치의 지정된 포트에서 특정 패킷을..
[Network] 네트워크 계층 : SDN(Software-Defined Networking)
SDN 제어평면에서의 패킷 포워딩은 목적지 기반 포워딩이 아닌 일반적인 포워딩을 사용한다. 즉 출발지/목적지의 IP주소만 가지고 패킷을 알맞게 포워딩하는것이 아니다. 네트워크 계층, 링크 계층에서의 출발지/목적지 주소에 이어서 트랜스포트, 네트워크, 링크 계층에 있는 패킷 헤더의 많은 다른 값에 기반해서 포워딩이 이루어진다. SDN 구조의 네가지 특징 플로우 기반 포워딩 : SDN으로 제어되는 패킷 스위치(라우터, 링크계층 스위치)에서 패킷 포워딩은 세그먼트, 데이터그램, 링크 프레임의 헤더의 다양한 값을 가지고 포워딩을 한다. (OpenFlow 1.0그림의 11가지 헤더 참고) 이러한 패킷 포워딩 규칙은 각 스위치의 플로우 테이블에 기록된다. 그래서 SDN 제어평면 에서는 모든 네트워크 스위치들의 플로..
[Network] 네트워크 계층 : 라우터(Router)
라우터 내부에는 무엇이 있을까? 입력 포트 : 입력 포트의 맨 왼쪽 상자와 출력 포트의 맨 오른쪽 상자로서, 라우터로 들어오는 입력 링크의 물리 계층 기능을 수행한다. 가장 중요한 검색기능은 입력 포트의 가장 오른쪽 상자에서 수행한다. 여기서 포워딩 테이블을 참조하여 도착된 패킷이, 스위칭 구조를 통해 전달되는 라우터 출력 포트를 결정한다. '포트'라는 의미는 물리적인 입출력 라우터 인터페이스(전선)를 의미한다. 애플리케이션과 트랜스포트 계층 사이에서의 소켓과 관련된 포트와는 완전히 다른 의미이다. 스위치 구조 : 라우터의 입력 포트와 출력 포트를 연결한다. 출력 포트 : 스위칭 구조로부터 수신한 패킷을 저장하고 필요한 링크 계층(헤더 확인) 및 물리적 계층 기능(패킷 전송)을 수행해서 출력 링크로 패킷..
[Network] 네트워크 계층 : 개요와 서비스 모델
위 그림은 H1 호스트와 H2 사이를 이루는 간단한 네트워크를 보여 준다. H1에서 H2로 정보를 보낸다고 가정하고, 호스트와 중계 라우터에서 네트워크 계층의 역할을 생각해 보자. H1 네트워크 계층은 H1의 트랜스포트 계층으로부터 세그먼트를 받아 각 세그먼트를 데이터그램으로 캡슐화하고, 인접한 라우터 R1에게 데이터그램을 보낸다. 수신 호스트 H2의 네트워크 계층은, 세그먼트를 추출하여 H2의 트랜스포트 계층으로 전달한다. 각 라우터의 데이터 평면 역할은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것이다. 네트워크 제어 평면의 근본적 역할은 데이터그램이 송신 호스트에서 목적지 호스트까지 잘 전달되게끔 로컬과 퍼 라우터 포워딩을 조정하는 것이다. 포워딩과 라우팅 개념 아래는 네트워크 계층의 중요한 ..
[Database] 개념적 데이터 모델
개념적 데이터 모델은 개체와 속성 그리고 개체간의 관계를 이용하여 현실세계에 존재하는 데이터를 추상화하여 개념적 구조로 표현하는 방법이다. 대표적으로 ER 모델(Entity-Relationship model, ER model)이 있다. 개체(Entity) '사람과 사물 같이 유형의 정보를 가지고 현실세계에 물리적으로 존재하는 실체' 혹은 '개념, 사건 등과 같이 무형의 정보를 가지고 추상적/개념적으로 존재하는 실체' 를 말한다. 예를 들어 서점을 운영하는데 필요한 회원과 도서는 물리적으로 존재하는 개체에 해당되며, 대학 운영에 중요 데이터를 가지고 있는 강의, 과목, 수강 등은 추상적으로 존재하는 개체라고 할 수 있다. 개체는 발생시점에 따라 기본 개체, 중심 개체, 행위 개체로 구분할 수 있다. 기본 ..
[Network] 트랜스포트 계층 : 흐름제어, TCP 연결
흐름제어 수신 호스트는 여러 작업을 하기 때문에 자신에게 들어오는 메시지를 바로바로 읽지 못한다. 이 점을 인지하지 못하고 송신 호스트가 계속해서 메시지를 보내게 된다면 수신 버퍼가 가득차게 되어 오버플로우가 일어나게 된다. TCP는 수신 버퍼의 오버플로우를 방지하기 위해서 수신호스트가 메시지를 읽는 속도와 송신 호스트가 메시지를 보내는 속도를 일치시키는 작업을 하게 된다. 이를 '흐름제어'라고 한다. TCP는 송신 호스트가 수신 윈도우 라는 세그먼트 변수를 유지하여 흐름제어를 제공한다. 파일 전송 환경에서 수신 윈도우를 알아보자. TCP 연결 상에서 A호스트가 B호스트에서 큰 파일을 전송한다고 가정해보자. B호스트는 이 TCP 연결에 수신 버퍼를 할당한다. 이를 RcvBuffer 라고 한다. B호스트는..