용어의 이해
네트워크는 전송 매체를 매개로 서로 연결되어 데이터를 교환하는 시스템의 모음이며, 시스템과 전송 매체의 연결 지점에 대한 규격을 인터페이스라 한다.
또한 시스템이 데이터를 교환할 때는 임의의 통신 규칙을 따르는데, 이를 프로토콜이라 한다.
프르토콜의 기능과 같이 서로 다른 시스템을 상호 연동해 동작 시키려면 연동 형식의 통일이 필요하고, 이 통일을 표준화라 한다.
OSI 7계층 모델
국제 표준화 단체인 ISO에서는 OSI 7계층 모델을 제안하여 네트워크에 연결된 시스템이 갖추어야 할 기능을 상세히 정의하고 있다.
이에 따르면 네트워크에 연결된 호스트들은 7개 계층(물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층)으로 모듈화 된 통신 기능을 갖추어야 한다.
인터네트워킹
네트워크와 네트워크의 연결을 인터네트워킹이라 하며, 인터네트워킹 기능을 수행하는 시스템을 일반적으로 게이트웨이라 부른다.
게이트웨이는 기능에 따라 종류가 다양하지만 리피터, 브리지, 라우터 등이 가장 일반적인 구분 방식이다.
리피터는 물리 계층의 기능을 지원하며, 브리지는 리피터 기능에 데이터 링크 계층의 기능이 추가된 것으로 물리 계층에서 발생한 오류를 해결해준다.
라우터는 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원한다.
데이터 단위
네트워크 프로토콜을 사용해 데이터를 교환할 때는 먼저 데이터를 특정 형태로 규격화하는 작업이 필요하다.
계층에 상관없이 사용할 때는 통칭하여 PDU라 부른다.
특별히 네트워크 계층에서는 패킷, 데이터 링크 계층에서는 프레임이라는 용어가 사용된다.
주소의 표현
시스템을 설계할 때는 기능이나 목적과 함께 고유의 구분자를 부여하는데, 디지털화된 컴퓨터에서는 숫자로 된 주소로 표현할 수 밖에 없다.
그러나 이러한 주소 표현 방식은 일반 사용자에게 불편하므로 보통은 외우기 쉬운 기호 형식의 이름을 추가로 사용한다.
주소와 이름은 일대일관계가 이루어지며, 이들을 연결하는 기능이 필요하다.
구분자는 유일성, 확장성, 편리성, 함축성이라는 네 가지 특징을 갖는다.
IP 주소
IP주소는 네트워크 계층의 기능을 수행하는 IP 프로토콜이 호스트를 구분하기 위하여 사용하는 주소 체계이다.
임의의 호스트를 인터넷에 연결하려면 반드시 IP 주소를 할당받아야 한다.
IP 주소는 32비트의 이진 숫자로 구성되는데, 보통 8비트씩 네 부분으로 나누어 십진수로 표현한다.
IP 주소는 유일성을 보장하기 위해서 국제 표준화 기구가 전체 주소를 관리하고 할당하기 때문에 중복 주소의 사용을 원천적으로 차단한다.
DNS 서비스
인터넷에서 호스트와 연결하려면 해당 호스트의 IP 주소를 알아야 한다.
그런데 숫자로 된 IP 주소는 기억하기 힘들어서 의미 파악이 쉬운 문자로 된 호스트 이름을 사용하는 것이 일반적이다.
FTP, 텔넷과 같은 네트워크 응용 프로그램은 실행 과정에서 사용자로부터 호스트 이름을 명령어 인수로 입력받는다.
따라서 가장 먼저 수행할 작업은 DNS라는 이름과 주소 변환 기능을 이용해서 IP 주소를 얻는 것이다.
다양한 주소의 종류
네트워크에서 사용하는 주소는 이를 사용하는 응용 프로그램에 따라 다양하다.
OSI 7 계층 모델의 각 계층에서도 목적에 따라 여러 형태의 주소가 사용된다.
MAC 주소는 계층 2의 MAC 계층에서 사용하며, 일반적으로 LAN 카드에 내장되어 있다.
물리 계층을 통해 데이터를 전송할 때는 MAC 주소를 이용해서 호스트를 구분한다.
IP 주소는 네트워크 계층의 기능을 수행하는 IP 프로토콜에서 사용되며, IP 패킷이 지나가는 경로를 결정하는 라우팅의 기준이 된다.
포트 주소는 전송 계층에서 사용하며, 호스트에서 실행되는 프로세스를 구분해준다.
메일 주소는 응용 계층의 메일 시스템에서 사용자를 구분하려고 사용한다.
모듈화
일반적으로 복잡하고 큰 시스템의 기능은 특정 단위의 모듈로 나누어 설계한다.
시스템을 기능 별로 모듈화하려면 시스템 구조가 단순해져서 전체 시스템을 이해하기 쉽다.
또한 각 단위 모듈이 독립적인 기능을 수행하기 때문에 고장이나 업그레이드 등의 상황에 손쉽게 대처할 수 있다.
주소의 표현
여러 호스트가 연결된 환경에서 특정 호스트끼리 통신하려면 상대방을 구분할 수 있는 방법이 필요하다.
시스템을 구분하여 지칭하기 위해서 이름을 부여하는 것을 주소 체계라 한다.
일반적으로 호스트에 주소를 하나씩 부여하지만, 다수의 호스트를 묶어 그룹 주소로 표기하기도 한다.
일대다 통신의 대표적인 표기 방법에는 네트워크에 연결된 모든 호스트에 데이터를 전송할 수 있는 브로드캐스팅과 특정 사용자를 그룹으로 묶어서 지칭하는 멀티캐스팅이 있다.
오류 제어
네트워크에서는 데이터 송수신 과정에서 오류가 발생할 수 있다.
전송 오류에는 데이터가 깨져서 도착하는 데이터 변형 오류와 데이터가 도착하지 못하는 데이터 분실 오류가 있다.
오류가 발생하는 1차 원인은 물리 계층의 전송 매체에 의한 물리적인 오류이다.
데이터가 변형되거나 분실되는 오류를 해결하려면 먼저 오류가 발생한 사실을 인지해야 한다.
네트워크에서 전송 오류를 해결하는 방법은 송신 호스트가 원래 데이터를 재전송하는 것이다.
흐름 제어
전송 매체에서 물리적인 오류가 없었는데도 데이터를 분실하는 경우가 있는데, 이는 송수신 호스트 사이의 데이터 전송/처리 속도 차이 때문에 발생하기도 한다.
수신 호스트의 버퍼 처리속도보다 송신 호스트가 데이터를 전송하는 속도가 더 빠르면 논리적인 데이터 분실 오류가 발생할 수 있다.
이 문제를 해결하려면 송신 호스트의 전송 속도를 조절하는 흐름 제어 기능이 필요하다.
서비스 프리미티브
프로토콜은 계층 구조로 이루어져 있고, 하위 계층이 상위 계층에 서비스를 제공하는 방식으로 동작한다.
이러한 서비스는 프리미티브 형태고 구현되며, 연결형 서비스에서 자주 사용하는 프리미티브의 종류에는 CONNECT, DATA, DISCONNECT가 있다.
통신 프로토콜에서 서비스 프리미티브를 올바르게 수행하려면 각 프리미티브가 Request, Indication, Response, Confirm이라는 네 가지 기능을 포함하도록 설계해야 한다.
클라이언트가 서버에 전달하는 요청은 Request와 Indication으로 구현되고, 서버의 응답은 Response와 Confrim으로 구현된다.
OSI 참조 모델
네트워크에 연결된 컴퓨터들이 데이터를 주고 받으려면 서로 연동할 수 있게 표준화된 인터페이스를 지원해야 한다.
국제 표준화 기구인 ISO가 확립한 OSI 7계층 모델은 개방화된 데이터 통신 환경에 적합한 계층적 구현 모델의 표준이다.
연결된 두 호스트가 각각 7개 계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능하다.
전송 데이터는 송신 호스트의 응용 계층에서 시작해 하위 계층으로 순차적으로 전달되어, 최종적으로 물리 계층이 수신 호스트에 전달해준다.
수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 응용 계층까지 보내준다.
TCP/IP 모델
인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP 프로토콜을 사용하는 네트워크 이다.
인터넷에 연결된 컴퓨터의 네트워크 구현 모델에서는 전송 계층까지의 기능을 시스템 공간인 운영체제 내부에 구현한다.
TCP와 UDP는 시스템 운영체제인 커널 내부에 구현되므로, 소켓 인터페이스라는 전송 계층의 프리미트브를 사용자 프로그램에서 호출하는 방식으로 사용한다.
세션 계층부터 응용 계층까지의 기능은 사용자 프로그램으로 구현된다.
ARP/RARP
TCP/IP 모델에서 사용하는 주소는 데이터 링크 계층의 MAC 주소, 네트워크 계층의 IP 주소, 전송 계층의 포트 번호이다.
계층 2 프로토콜을 이용해 데이터를 전송하려면 목적지 호스트의 MAC 주소가 필요하다.
일반적으로 송신 호스트는 자신의 IP 주소와 MAC 주소는 쉽게 얻을 수 있지만, 수신자의 MAC 주소를 얻으려면 몇 단계의 처리과정이 필요하다.
사용자로부터 입력된 상대방 호스트의 IP 주소를 이용해 MAC 주소를 구하는 기능이 필요한데, ARP가 이 기능을 담당한다.
하드디스크가 없는 시스템은 LAN 카드에 내장된 자신의 MAC 주소는 알지만 파일 시스템이 존재하지 않으므로 IP 주소를 알 수 없다.
이 문제를 해결하기 위하여 MAC 주소를 IP 주소로 변환하는 RARP가 필요하다.
ICMP
데이터 전송 프로토콜인 IP가 동작하는 과정에서는 전송 오류가 발생할 수 있다.
오류가 발생하면 반드시 송신자에게 회신하여 복구 작업을 할 수 있게 해야 하는데, 이 작업은 ICMP가 담당한다.
ICMP 프로토콜은 오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며, IP 패킷에 캡슐화 되어 전송되지만 IP와 같은 계층으로 취급된다.
교환 시스템
교환 시스템은 데이터를 최종 목적지까지 올바른 경로로 중개하는 교환 기능을 제공한다.
회선 교환 방식은 고정 대역으로 할당된 연결을 설정하여 데이터 전송을 시작한다.
따라서 회선에 할당된 고정 크기의 안정적인 전송률로 데이터를 전송할 수 있다.
패킷 교환 방식은 데이터를 미리 패킷 단위로 나누어 전송하므로 패킷을 기준으로 교환 작업이 이루어진다.
패킷 교환 방식은 데이터 전송을 위한 전용 대역을 따로 할당하지 않기 때문에 가변 크기의 전송률을 지원한다.
가상 회선
가상 회선 방식은 연결형 서비스를 지원하는 기능으로, 연결을 통해 전송되는 모든 패킷의 경로가 동일하다.
가상 회선 방식은 패킷 교환 방식을 기반으로 하므로 데이터의 전송 단위가 패킷 단위로 이루어지는 반면, 회선 교환 방식은 패킷 기능을 지원하지 않는다.
데이터그램
패킷 교환 방식에서 비연결형 서비스를 이용해 패킷을 독립적으로 전송하는 것을 데이터그램 방식이라 한다.
데이터그램 방식은 패킷을 송신하기 전에 연결을 설정하는 과정이 없으므로, 미리 고정적인 경로를 할당하지 않는다.
따라서 전송되는 패킷들이 독립적인 경로로 전달된다.
프레임 릴레이
신뢰도가 높은 네트워크 환경을 고려해 전송 오류 제어 기능을 효율적으로 처리함으로써 고속 데이터 전송을 지원하는 기술이 프레임 릴레이이다.
프레임 릴레이 방식은 오류 제어, 흐름 제어 과정에서 응답 프레임의 전송 횟수를 줄여 데이터 프레임의 전송 효율을 높여준다.
네트워크 구분
호스트 사이의 연결 거리를 기준으로 네트워크를 LAN, MAN, WAN으로 구분할 수 있다.
연결 거리는 데이터의 전송 지연에 많은 영향을 미치므로 네트워크를 설계할 때 중요한 고려 사항이 된다.
LAN은 단일 건물이나 학교 같은 소규모 지역에 위치하는 호스트로 구성된 네트워크, WAN은 국가 이상의 넓은 지역을 지원하는 네트워크, MAN은 중간 크기인 도시 규모의 네트워크를 의미한다.
LAN
LAN 환경에서 가장 많이 사용하는 네트워크 연결 형태는 버스형과 링형이다.
버스형은 공유 버스 하나에 여러 호스트를 직접 연결한다.
임의의 호스트가 전송한 데이터는 물리적으로 네트워크에 연결된 모든 호스트에 전송되므로 브로드캐스팅 방식이다.
링형은 전송 호스트의 연결이 순환 구조인 링 형태이다.
데이터는 시계나 반시계 방향으로 전송되며, 특정 호스트에서 전송한 데이터는 반드시 링을 한 바퀴 돌아 송신 호스트로 되돌아온다.
따라서 네트워크에 연결된 모든 호스트가 전송 데이터를 수신하는 브로드캐스팅 방식을 지원한다.
인터네트워킹
라우팅 장비는 네트워크 내부에서 패킷 교환 기능을 수행하는데, 둘 이상의 서로 다른 네트워크를 연결하는 기능을 인터네트워킹이라 한다.
네트워크를 연결하는 장비는 역할이 어느 계층에 속하느냐에 따라 종류가 달라진다.
일반적으로 하위 3개 계층인 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 수행하며, 네트워크 계층까지의 기능을 수행하는 장비는 라우터이다.
트랜스페런트 브리지
트랜스페런트 브리지는 라우팅 기능을 사용자에게 투명하게 보여준다.
사용자는 전송하는 프레임의 주소부에 라우팅에 관한 정보를 추가하지 않아도 되며, 필요한 라우팅 과정은 브리지가 자동으로 수행한다.
트랜스패런트 브리지가 제대로 동작하려면 라우팅 테이블 정보가 정확해야 한다.
네트워크의 동작 과정에서 라우팅 정보를 얻는 방식을 역방향 학습 알고리즘이라 한다.
IP 인터네트워킹
인터넷 환경에서 IP 프로토콜을 사용해 IP 인터네트워킹을 지원하려면 여러 네트워크 인터페이스를 거쳐 패킷을 전달할 수 있어야 한다.
패킷을 올바르게 중개하기 위해 라우터들은 IP 프로토콜까지의 계층 기능을 지원하고, 송수신 호스트는 TCP/IP 응용 프로그램을 이용해 통신한다.
라우터에는 양쪽 MAC 계층의 차이를 해결하는 기능이 필요하다.
또한 라우터를 거치는 동안에 패킷이 특정 MAC 계층에서 전송하기에 너무 크면 패킷의 분할과 병합 과정이 이루어진다.
자율 시스템
자율 시스템은 다수의 라우터로 구성할 수 있으며, 라우터들은 공통의 라우팅 프로토콜을 사용해 정보를 교환한다.
자율 시스템은 동일한 라우팅 특성에 의해 동작하는 논리적인 단일 구성체라 볼 수 있다.
자율 시스템 내부에서 라우팅 정보를 교환하는 용도로 사용하는 공통 프로토콜을 내부 라우팅 프로토콜이라 하고, 자율 시스템들 간에 사용하는 라우팅 프로토콜은 외부 라우팅 프로토콜이라 한다.
서비스 품질(QoS)
네트워크에서 품질은 보통 데이터를 어느 정도로 신뢰성 있게 전송하는지를 의미한다.
즉, 전송 과정에서의 데이터 분실, 전송 지연, 지연 값의 일관성(지터) 등을 기준으로 전송 품질을 판단할 수 있다.
인터넷 환경에서 전송 서비스 문제를 다루는 QoS는 중요한 고려 대상 중 하나이다.
전송과 교환
송신 호스트가 수신 호스트에 데이터를 전달하려면 전송과 교환 과정을 거쳐야 한다.
교환은 전달 경로가 둘 이상일 때 라우터에서 데이터를 어느 방향으로 전달할지를 선택하는 기능으로, 데이터를 올바른 경로로 전달할 수 있도록 해준다.
전송은 물리 매체에 의하여 일대일로 직접 연결된 두 시스템 간의 신뢰성 있는 데이터 전송을 보장하기 위한 것이다.
전송에는 라우팅 개념이 포함되지 않는다.
점대점 방식
점대점 방식 네트워크에서는 교환 호스트가 송수신 호스트의 중간에 위치한다.
호스트는 전송 매체를 이용해 일대일로 직접 연결되므로, 모든 호스트가 점대점 연결을 통해 네트워크를 확장한다.
점대점 방식은 전체 연결 개수가 많아지면 성능 면에서 유리하지만 전송 매체의 길이가 증가해 비용도 많이 든다.
반대로 연결 개수가 적어지면 전송 매체를 더 많이 공유해 네트워크 혼잡도가 증가한다.
브로드캐스팅 방식
브로드캐스팅 방식은 특정 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전달된다는 특징이 있다.
LAN에서는 데이터를 목적지 호스트까지 얼마나 효율적으로 전달할 수 있는지 중요한 잣대가 된다.
이를 지원하는 브로드캐스팅 방식은 네트워크의 모든 호스트를 하나의 전송 매체로 연결하므로, 중개 기능을 수행하는 교환 호스트가 필요 없다.
멀티캐스팅
송신 호스트를 기준으로, 수신 호스트 하나와 연결되면 유니포인트이고, 다수의 수신 호스트와 연결되면 멀티포인트가 된다.
송신 호스트가 한 번의 전송으로 수신 호스트 하나에만 데이터를 전송할 수 있으면 유니캐스팅이고, 다수의 수신 호스트에 전송할 수 있으면 멀티캐스팅이다.
멀티캐스팅을 구현하려면 멀티캐스트 그룹을 생성하고 관리하는 기능이 반드시 필요하다.
또 멀티캐스트 데이터를 중개하는 라우터에서 멀티캐스트 그룹 주소를 인식하고, 다수의 수신 호스트에 중개하는 등의 멀티캐스트 트래픽에 대한 처리 기능도 구현되어야 한다.
수신 호스트의 응답 프레임
수신 호스트는 송신 호스트가 전송한 데이터 프레임의 일부가 깨지는 프레임 변형 오류를 확인하면 송신 호스트에 응답 프레임을 전송해 원래의 데이터 프레임을 재전송하도록 요구할 수 있다.
수신 호스트가 전송하는 응답 프레임의 종류는 두 가지 이다.
하나는 데이터 프레임이 정상적으로 도착했을 때 회신하는 긍정 응답 프레임이고 다른 하나는 데이터 프레임이 깨졌을 때 회신하는 부정 응답 프레임이다.
송신 호스트의 재전송 기능은 수신 호스트의 부정 응답 프레임 회신에 의해 이루어진다.
송신 호스트의 타임아웃 기능
송신 호스트가 전송한 데이터가 프레임이 수신 호스트에 도착하지 못하는 프레임 분실 오류가 발생하면 수신 호스트는 이 사실을 인지할 수 없다.
따라서 오류 복구 과정은 송신 호스트의 주도로 이루어져야 한다.
송신 호스트는 데이터 프레임을 전송한 후에 일정 시간 이내에 수신 호스트로부터 긍정 응답 프레임 회신이 없으면 타임아웃 기능을 동작시켜 데이터 프레임을 재전송한다.
순서 번호 기능
수신 호스트가 보낸 긍정 응답 프레임을 분실하면 데이터 프레임이 제대로 도착했어도 송신 호스트가 이를 인지할 수 없다.
따라서 송신 호스트가 타임아웃 기능에 의해 원래의 프레임을 재전송함으로써 수신 호스트가 데이터 프레임을 중복 수신하는 결과를 초래한다.
이럴 때 수신 호스트가 중복 데이터 프레임을 가려내려면 각 프레임 내부에 순서 번호를 기록해야 한다.
흐름 제어
오류 제어와 함께 데이터 링크 계층에서 제공하는 주요 기능은 전송 데이터 프레임의 속도를 조절하는 것이다.
송신 호스트는 수신 호스트가 감당할 수 있을 정도의 전송 속도를 유지하면서 데이터 프레임을 전송해야 하는데, 이러한 기능을 흐름 제어라 한다.
흐름 제어의 기본 원리는 수신 호스트가 다음에 수신할 프레임의 전송 시점을 송신 호스트에 통지하는 방식이다.
프레임
데이터 링크 계층에서는 전송 데이터를 프레임이라는 작은 단위로 나누어 처리한다.
전송 프레임에는 상위 계층에서 보낸 전송 데이터의 오류를 확인하기 위한 체크섬, 송수신 호스트의 주소, 기타 프로토콜에서 사용하는 제어 코드 같은 정보가 포함된다.
프레임을 전송받은 수신 호스트는 먼저 체크섬을 확인해 전송 중에 프레임 변형 오류가 발생했는지 확인해야 한다.
오류가 발생하면 부정 응답 프레임을 회신하여, 송신 호스트가 원래의 데이터를 재전송하도록 요구함으로써 복구 과정을 시작해야 한다.
문자 프레임
문자 프레임은 프레임의 내용이 문자로 구성되므로 문자 데이터를 전송할 때 사용한다.
하나의 프레임 단위를 구분하기 위해 프레임의 앞뒤에 ASCII 코드의 특수문자를 이용한다.
즉, 각 프레임의 시작 위치에 DLE,STX 문자를 추가하고, 끝나는 위치에는 DLE, ETX를 추가해 프레임의 다른 정보와 구분할 수 있도록 한다.
문자 스터핑은 문자 프레임 내부의 전송 데이터에 DLE 문자가 포함되면서 발생하는 혼란을 예방하는 방법이다.
비트 프레임
비트 프레임 방식은 임의의 비트 패턴 데이터를 지원하는데, 프레임의 시작과 긑 위치에 플래그라는 특수하게 정의된 비트 패턴(01111110)을 사용해 프레임 단위를 구분한다.
비트 프레임 방식에서는 송신 호스트가 전송하고자 하는 데이터의 내용 중에 값이 1인 패턴이 연속해서 5번 발생하면 강제로 0을 추가해 전송한다.
이는 플래그 패턴에서 1이 연속해 6개가 나오므로 원천적으로 데이터 내용에 플래그 패턴이 나나타는 것을 차단하기 위함이다.
이와 같은 기능을 비트 스터핑이라 한다.
다항 코드
CRC라고도 알려진 다항코드 방식은 버스트 에러 형태의 오류를 검출하는 확률이 높은 것으로 알려져 있다.
송신 호스트가 전송할 데이터가 m비트의 M(x)라면 데이터 전송 과정에서 n+1비트의 생성 다항식 G(x)를 사용해 오류 검출 코드를 생성함으로써 오류 제어 기능을 수행한다.
송신 호스트는 전송 데이터 M(x)를 생성 다항식 G(x)로 나누어 체크섬 정보를 얻는다.
나누기 연산 과정에서는 전송 데이터 뒤에 나머지를 보관할 n 비트의 공간을 확보하고, 이 자리를 모두 0으로 채운 후에 나누기 연산을 수행한다.
연산에서 얻은 나머지 값을 체크섬이라 정의하며, 체크섬을 전송 데이터의 뒤에 추가해 수신 호스트에 전송해야 한다.
MAC 계층
WAN 환경에서와 달리 LAN 환경에서는 데이터 링크 계층의 기능을 LLC 계층과 MAC 계층으로 나누어 처리한다.
즉, OSI 7계층 모델에서 정의한 데이터 링크 계층의 기본 기능은 주로 LLC 계층에서 다루고, 물리적인 전송 선로의 특징과 매체 간의 연결 방식에 따른 제어 부분은 MAC 계층에서 처리한다.
MAC 계층은 전송 선로의 물리적인 특성을 반영하므로 LAN의 종류에 따라 특성이 구분된다.
LAN 환경을 위한 MAC 계층은 종류가 다양한데, 공유 버스 방식을 지원하는 이더넷과 링 구조를 지원하는 토큰 링 방식이 대표적이다.
IEEE 802 시리즈
국제 표준화 단체인 IEEE에서 데이터 링크 계층과 관련된 다양한 LAN 표준안 연구 결과를 IEEE 802 시리즈로 발표하였다.
IEEE 802.1은 관련 표준안 전체를 소개하고 인터페이스 프리미티브에 대한 정의를 다루며, IEEE 802.2는 데이터 링크 계층의 상위 부분인 LLC 프로토콜의 정의를 다룬다.
IEEE 802.3 표준안부터 개별적인 MAC 계층에 대한 내용을 다루는데, IEEE 802.3은 CSMA/CD 방식, IEEE 802.4는 토큰 버스 방식, IEEE 802.5는 토큰 링 방식에 관한 내용을 규정한다.
이더넷
IEEE 802.3은 1-persistent CSMA/CD 방식의 LAN 환경에 관해 규정한 표준안이며, 공유 버스로 연결한 호스트 간의 데이터 전송에 관한 사항을 다룬다.
이덧네으로 알려지는 CSMA/CD 방식은 공유 버스 구조를 지원한다.
데이터를 전송하기 전에 공유 버스의 신호를 가지해 충돌을 예방하고, 전송 과정에서 발생할 수 있는 충돌에도 대처해야 한다.
이더넷 프레임
상위 계층인 LLC에서 내려온 프레임을 상대 호스트에 전송하려면 MAC 계층에서 정의된 프레임 구조에 맞게 포장해야 한다.
MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것을 MAC 프레임이라 하며, 이더넷 프로토콜에서는 이더넷 프레임이라 한다.
MAC 프레임은 LLC 계층에서 보낸 모든 정보를 전송 데이터로 취급하며, 데이터 앞에는 헤더가, 뒤에는 트레일러가 위치한다.
허브와 스위치
CSMA/CD 방식은 허브라는 박스 형태의 장비에 잭을 사용해 호스트를 연결하기 때문에 LAN 케이블의 구성이 간단하다.
허브 구조에서는 호스트를 연결하는 다수의 포트를 지원하므로, 각 호스트는 외형상 스타형 구조처럼 연결된다.
그러나 내부의 동작 원리는 버스형 구조를 지원하기 때문에 임의의 호스트에서 전송한 프레임을 허브에 연결된 모든 호스트에 전달한다.
스위치 허브는 일반 허브와 형태가 동일하지만, 성능 면에서 장점이 있다.
허브에 스위치 기능이 있어 임의의 호스트로부터 수신한 프레임을 모든 호스트에 전송하지 않고, 해당 프레임의 목적지로 지정한 호스트에만 전송한다.
따라서 이들 사이에 프레임 전송이 진행 중이어도 다른 호스트끼리 프레임을 전송할 수 있다.
토큰 버스
IEEE 802.3 표준안의 문제점은 네트워크 트래픽이 심할 때 특정 호스트가 오랫동안 프레임을 전송하지 못할 염려가 있다는 점과 프레임의 우선순위가 규정되어 있지 않아 프레임의 중요도를 표현하기 어렵다는 점이다.
이러한 문제점을 해결하려면 호스트가 순서를 정해 차례대로 프레임을 전송하는 기능이 필요한데, 논리적으로 링 구조를 지원하는 토큰 버스 방식이 이를 지원한다.
LLC 계층에서 내려온 LLC 프레임을 물리 계층을 통해 수신 호스트에 전달하려면 토큰 버스 프로토콜에서 정의한 프레임에 맞게 토큰 버스 프레임을 만들어야 한다.
토큰 링
토큰 링 구조에서는 점대점으로 연결한 호스트가 순환 구조 형태로 LAN을 구성한다.
링 주위에는 항상 토큰이라 불리는 제어 프레임이 일정한 방향으로 순환한다.
데이터 프레임을 전송하고자 하는 호스트는 먼저 토큰을 획득해야 하고, 토큰을 확보한 호스트만 데이터 프레임을 전송할 수 있다.
모니터 기능
토큰 링에 연결된 호스트 중에는 다른 호스트와 구별되는 특별한 기능을 수행하는 관리 호스트가 존재하는데, 이를 모니터라 부른다.
모니터로 지정된 호스트는 네트워크 관리와 관련된 기능을 수행하는데, 주로 네트워크의 정상 동작을 방해하는 예기치 않은 오류를 복구한다.
예를 들어, 현재 데이터 프레임을 전송하는 호스트가 없는데도 링에 토큰 프레임이 없어지는 오류가 발생할 수 있다.
이때는 모니터 호스트에서 토큰 프레임을 새로 생성해 다른 호스트가 데이터 프레임을 정상적으로 전송할 수 있도록 해주어야 한다.
데이터 링크 계층의 역할
데이터 링크 계층은 물리적인 전송 매체에 의해 일대일로 직접 연결된 호스트 사이의 오류 제어와 흐름 제어 기능을 제공한다.
송신 호스트에서 전송한 프레임은 점대점으로 직접 연결된 수신 호스트에 라우팅 과정 없이 전달된다.
하나의 호스트가 다수의 호스트와 연결된 비대칭 형태의 구조를 멀티 드롭 방식이라 한다.
멀티 드롭에서는 하나의 물리 매체를 여러 호스트가 공유하므로, 임의의 호스트에서 전송한 프레임은 물리적으로 다른 모든 호스트에 전달된다.
멀티 드롭을 지원하려면 여러 수신 호스트 중에서 프렝미의 목적지 호스트를 지칭하기 위한 주소 개념이 필요하다.
프레임의 종류
데이터 링크 계층에서 전송 오류를 해결하는 과정에서 사용하는 프레임에는 정보 프레임, 긍정 응답 프레임, 부정 응답 프레임이 있다.
정보 프레임은 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용한다.
정보 프레임을 수신한 호스트는 맨 먼저 프레임의 내용이 깨졋는지 확인해야 한다.
프레임 변형 오류가 발생하지 않으면 송신 호스트에 해당 프레임을 올바르게 수신했다는 의미로 긍정 응답 프레임을 회산한다.
정보 프레임의 전송 과정에서 프레임 변형 오류가 발생하면 수신 호스트는 송신 호스트에 부정 응답 프레임을 회신한다.
슬라이딩 윈도우 프로토콜
슬라이딩 윈도우 프로토콜은 두 호스트 간의 프레임 전송을 위한 일반적인 통신 프로토콜로, 오류 제어와 흐름 제어 기능을 함께 지원한다.
정보 프레임을 전송하는 송신 호스트는 보내려는 데이터뿐 아니라 프레임의 순서 번호, 오류 검출 코드 등을 프레임에 표기한 후에 정해진 순서 번호에 따라 순차적으로 송신한다.
송신 호스트는 송신한 정보 프레임을 자신의 내부 버퍼에 유지해야 하며, 이를 송신 윈도우라 한다.
수신 호스트는 수신한 정보 프레임을 보관하기 위해 내부 버퍼인 수신 윈도우를 유지할 수 있다.
연속형 전송
각각의 정보 프레임에 대하여 긍정 응답 프레임을 받지 않고도 여러 정보 프레임을 연속적으로 전송하는 기능을 연속형 전송이라 한다.
전송된 정보 프레임을 위한 ACK 프레임의 회신이 이루어지지 않은 상태에서 다음 프레임을 전송하는 방식은 전송 오류의 발생 가능성이 적은 환경에서는 상당히 효율적이다.
연속형 전송 방식의 오류를 해결하는 방법에는 고백 N 방식과 선택적 재전송 방식이 있다.
피기배킹
양방향 전송 기능을 갖는 채널 방식에서는 송신 호스트와 수신 호스트의 구분 없이 양방향으로 동시에 정보 프레임과 응답 프레임을 교차하여 전송할 수 있다.
이때 정보 프레임의 구조를 적당히 조정해 재정의 하면 정보 프레임을 전송하면서 응답 기능까지 함께 수행할 수 있다.
이런 방식으로 프로토콜을 작성하면 응답 프레임의 전송 횟수를 줄이는 효과가 있어 전송 효유릉ㄹ 높일 수 있는데, 이를 피기배킹이라 한다.
HDLC 프로토콜
HDLC 프로토콜은 컴퓨터가 일대일 혹은 일대다로 연결된 환겨에서 데이터의 송수신 기능을 제공한다.
데이터 통신을 위해 연결된 호스트들은 주국과 종국으로 구분되고, 다시 이들의 기능을 모두 지닌 혼합국으로 정의된다.
주국에서 전송되는 메시지를 명령이라 하며, 이에 대한 종국의 회신을 응답이라 한다.
네트워크 계층의 역할
네트워크 계층의 기본 기능은 송수신 호스트 사이의 패킷 전달 경로를 선택하는 라우팅이다.
네트워크의 구성 형태에 대한 정보는 라우팅 테이블에 봐관되며, 이 정보를 이용해 송수신 호스트 사이의 패킷 전달 경로를 선택하는 과정을 라우팅이라 한다.
네트워크 계층의 또 다른 기능으로 네트워크의 특정 지역에 트래픽이 몰리는 현상을 다루는 혼잡 제어와 라우터 사이의 패킷 중계 과정에서 다루는 패킷의 분할과 병합이 있다.
HELLO/ECHO 패킷
라우터의 초기화 과정에서 가장 먼저 할 일은 이웃 라우터의 경로 정보를 파악하는 것이다.
각 라우터는 이웃에 연결된 라우터에 초기화를 위한 HELLO 패킷을 전송해 경로 정보를 얻는다.
라우터 사이의 전송 지연 시간을 측정하기 위해서는 ECHO 패킷을 전송하는데, ECHO 패킷을 수신한 호스트는 송신 호스트에 즉각 회신하도록 설계되어 있다.
혼잡 제어
네트워크에 존재하는 전송 패킷의 수가 많아질 수록 네트워크의 성능은 자연스럽게 감소한다.
이와 같은 성능 감소 현상이 급격하게 약화되는 현상을 혼잡이라 하고, 혼잡 문제를 해결하기 위한 방안을 혼잡 제어라 한다.
흐름 제어는 송신 호스트와 수신 호스트 사이의 논리적인 점대점 전송 속도를 다룬다.
반면, 혼잡 제어는 더 넓은 관점에서 호스트와 라우터를 포함한 서브넷에서 네트워크의 전송 능력 문제를 다룬다.
트래픽 성형
송신 호스트가 전송하는 패킷의 발생 빈도가 네트워크에서 예측할 수 있는 전송률로 이루어지게 하는 기능이 필요한데, 이를 트래픽 성형이라 한다.
송신 호스트가 사전에 약속한 트래픽보다 과도한 양의 패킷을 전송하면 네트워크에서 적절히 통제해야 한다.
이와 같은 트래픽 성형과 관련된 알고리즘 중에서 유명한 것이 리키 버킷이다.
송신 호스트와 네트워크 사이에는 송신 호스트가 협상에서 제시한 전송 특성을 반영하는 적절한 크기의 깔때기가 위치한다.
깔때기의 출구 크기는 협상 결과를 의미하므로 크기가 고정되어 있다.
따라서 송신 호스트가 협상 값보다 많은 양의 패킷을 전송해도 깔때기 크기 이상의 패킷이 네트워크에 유입될 수 없다.
ECN 패킷
라우터는 자신의 출력 선로 방향으로 전송되는 트래픽의 양을 모니터 할 수 있으므로 출력 선로의 사용 정도가 한계치를 초과하면 주의 표시를 해둔다.
혼잡 지역에 위치한 라우터는 입력 선로로 들어온 패킷의 주의 표시된 출력 선로로 라우팅 되는 경우에 패킷의 송신 호스트에 ECN 패킷을 전송한다.
ECN 패킷을 수신한 송신 호스트는 데이터 패킷이 전송되는 경로에서 혼잡이 발생할 가능성이 있음을 인지하였으므로 전송 패킷의 양을 줄여야 한다.
거리 벡터 라우팅 프로토콜
거리 벡터 라우팅 프로토콜은 라우터가 자신과 직접 연결된 이웃 라우터와 라우팅 정보를 교환하는 방식이다.
정보를 교환하는 라우터는 거리 벡터 라우팅 프로토콜을 사용하는 호스트나 라우터들이다.
교환 정보는 각각의 라우터에서 전체 네트워크에 소속되는 개별 네트워크까지 패킷을 전송하는 데 걸리는 거리 정보이다.
거리 벡터 알고리즘을 구현하려면 라우터가 링크 백터, 거리 백터, 다음 홉 백터 라는 세가지 정보를 관리해야 한다.
RIP 프로토콜은 거리 백터 방식을 사용하는 내부 라우팅 프로토콜 중에서 가장 간단하게 구현된 것이다.
링크 상태 라우팅 프로토콜
링크 상태 라우팅 프로토콜은 라우터 간의 정보 교환 원리가 거리 백터 방식과 반대이다.
개별 라우터가 이웃 라우터까지의 거리 정보를 구한 후, 이를 네트워크에 연결된 모든 라우터에 통보한다.
거리 백터 라우팅 프로토콜에서는 각 라우터가 상당한 양의 정보 전송을 요구받고, 특히 링크 상태가 많이 변하면 동작 과정에서 시간이 많이 소욜될 수 있다.
링크 상태 알고리즘은 이와 같은 단점을 극복하려고 고안된 방식이다.
링크 상태 방식을 사용하는 라우팅 프로토콜에는 TCP/IP 기반의 인터넷에서 사용하는 OSPF가 있다.
경로 백터 프로토콜
거리 백터 방식을 사용하는 RIP 프로토콜이나 링크 상태 방식을 사용하는 OSPF 프로토콜은 내부 라우팅 용도로 개발되었다.
외부 라우팅 프로토콜에서 사용하는 경로 백터 프로토콜은 경로에 관한 거리 정보 값이 필요 없느 ㄴ방식이다.
단순히 해당 라우터에서 어느 네트워크가 연결 가능한지에 대한 정보만 제공한다.
이는 근거리의 경로 정보를 관리하는 내부 라우팅 프로토콜이 효율의 문제를 고려하지만, 원거리의 경로 정보를 관리하는 외부 라우팅 프로토콜은 경로의 존재 유무에 초점을 맞추기 때문이다.
BGP는 외부 라우팅 프로토콜로, 인터넷에 많이 사용된다.
IP 프로토콜
인터넷 환경에서 네트워크 계층의 데이터 전송 프로토콜로 이용되는 IP는 호스트 주소 표기, 패킷 분할에 관한 기능을 지원하지만, 단대단 형식의 오류 제어나 흐름 제어 기능은 제공하지 않는다.
IP 프로토콜에서 라우터 간의 패킷을 중개할 때는 Best Effort라는 원칙에 따라 전송하는데, 이 방식은 전송 패킷이 수신 호스트에 100% 도착하는 것을 보장하지 않는다.
따라서 IP 프로토콜에서 제공하지 않는 전송 오류 문제를 상위 계층에서 고려해야 한다.
IP 패킷의 분할
다양한 유형의 네트워크를 통해 패킷을 중개하려면, IP 프로토콜이 패킷을 각 네트워크에서 처리하기 편한 크기로 분할해야 한다.
데이터 링크 계층(계층2) 프로토콜의 프레임은 크기가 프로토콜마다 다르다.
따라서 상위 계층에서 내려온 데이터를 계층 2의 프레임 틀에 담을 수 있도록 IP 프로토콜에서 분할 과정을 거친 후에 전송하고, 수신 측에서는 이를 다시 합치는 병합 작업을 수행한다.
IP 프로토콜의 분할 기능은 전송 경로에 위치한 라우터에 의해 수행된다.
DHCP 프로토콜
특정 네트워크를 관리하는 네트워크 관리자는 개별 호스트들에 수동으로 고정 IP 주소를 할당할 수 있다.
그러나 IP 주소 부족 등의 사유로 DHCP를 사용하여 자동으로 할당할 수 도 있다.
자동으로 할당 가능한 IP 주소는 DHCP 서버가 관리하는 풀에 저장되어 관리되며, 클라이언트로부터 IP 주소 요청이 오면 풀에서 하나의 IP 주소를 할당한다.
이후 사용이 끝나면 다시 IP 주소 풀로 반환되어 다른 호스트가 사용할 수 있다.
DHCP 메시지는 UDP 데이터 그램에 캡슐화 되어 전송되며, 클라이언트의 포트 번호는 68, DHCP 서버의 포트번호는 67이다.
IPv6 프로토콜
32비트의 주소 공간을 지원하는 현재의 IP 프로토콜은 최대 2^32개의 호스트를 수용할 수 있다.
호스트의 주소 공간을 대폭 확장한 IPv6은 주소를 표시하는 공간이 128비트로 확장되어 호스트를 최대 2^128개 까지 지원할 수 있다.
IPv6 헤더는 불필요한 필드가 제외되거나 확장 헤더 형식으로 변경되었다.
이는 기존의 IP 프로토콜에서 과도하게 수행하는 오류 제어와 같은 오버헤드를 줄여 프로토콜의 전송 효율을 높이기 위함이다.
IP 터널링
이동 호스트에는 고유 IP 주소인 홈 주소 HA가 할당되고, 이 주소는 호스트 위치가 바뀌어도 변하지 않는다.
이동 호스트가 네트워크에 있는 다른 호스트와 통신할 때 홈 주소를 사용한다.
COA는 이동 호스트가 위치를 변경할 때 새로 이동한 지역에서 일시적으로 할당된 IP 주소이다.
따라서 호스트가 이동할 때마다 새로운 COA가 할당되고 기존 COA는 회수되는 과정이 반복된다.
홈 에이전트와 이동 에이전트 사이에 설정되는 터널은 원 IP 패킷을 목적지까지 전송하기 위한 중간 단계의 새로운 경로이다.
따라서 송신 호스트와 수신 호스트 사이에서 동작하는 IP 프로토콜과는 별도로 추가적인 IP 프로토콜을 사용해 패킷을 중개해야 한다.
ARP 프로토콜
네트워크 환경에서 임의의 호스트가 다른 호스트에 데이터를 전송하려면 수신 호스트의 IP 주소 뿐 아니라 MAC 주소도 알아야 한다.
송신 호스트의 MAC 주소는 자신의 LAN 카드에 내장되므로 이 값을 읽으면 된다.
문제의 수신 호스트의 MAC 주소인데, 수신 호스트의 IP 주소를 매개변수로 하여 ARP 프로토콜을 통해 수신 호스트의 MAC 주소를 얻어야 한다.
IP 주소로부터 MAC 주소를 얻는 기능은 ARP를 통해 이루어 진다.
RARP 프로토콜
RARP는 ARP와 반대로 MAC 주소를 이용해 IP 주소를 제공한다.
디스크가 존재하지 않는 시스템이나 X윈도우 터미널 등에서는 자신의 LAN 카드 정보를 읽어 MAC 주소를 얻을 수 있지만, 파일 시스템이 없으므로 IP 주소를 보관할 방법이 없다.
이런 경우 자신의 MAC 주소와 IP 주소의 매핑 값을 보관하는 서버 호스트로부터 IP 주소를 얻어야 한다.
보통 네트워크에는 RARP의 기능을 전담으로 수행하는 서버가 하나 이상 존재한다.
따라서 모든 호스트가 RARP 변환 요청을 받아도 해당 정보를 보관하고 있는 RARP 서버만 응답을 수행한다.
ICMP 프로토콜
ICMP는 인터넷 환경에서 오류에 관한 처리를 지원한다.
IP 프로토콜은 데이터 전송 과정에서 패킷 폐기 등의 오류가 발생해도 이를 보고하는 기능이 없다.
따라서 이를 대체 지원하기 위해 네트워크 계층 프로토콜인 ICMP는 오류가 발생한 IP 패킷에 대하여 그 원인을 송신 호스트에 전달한다.
TCP/IP 기반의 통신망에서 전송 과정에 문제가 발생하면 라우터에 의해 ICMP 메시지가 자동으로 발생한다.
IGMP 프로토콜
멀티캐스트 라우팅에서는 다수의 호스트를 논리적인 하나의 단위로 관리하기 위한 그룹 관리 기능이 필요하다.
그룹 관리의 주요 기능에는 그룹의 생성, 제거, 전송 호스트의 그룹 참가,탈퇴 등이 있다.
IGMP는 임의의 호스트가 멀티캐스트 주소로 정의된 멀티캐스트 그룹에 가입하거나 탈퇴할 때 사용하는 프로토콜이다.
또한 멀티캐스트 그룹에 가입한 호스트와 라우터 사이에 멤버 정보를 교환하는 용도로도 사용된다.
'휴지통 > 학부' 카테고리의 다른 글
데이터 전송의 기초 (0) | 2021.10.05 |
---|---|
네트워크 기술 (0) | 2021.09.29 |
네트워크 모델 (0) | 2021.09.27 |
컴퓨터 하드웨어 (0) | 2021.09.14 |
머신러닝 기초 지식 (0) | 2021.09.09 |