데이터를 주고받는 근본적인 기술부터 이해하자
모든 서버는 네트워크를 사용하여 데이터를 제공(전송)한다.
- 일반적으로 서버에서 무선 LAN은 사용하지 않는다.
LAN(랜)이란 Local Area Network의 약자로 LAN케이블을 유용하여 데이터를 전송하는 ‘유선 LAN’과 전파를 이용하여 데이터를 전송하는 ‘무선 LAN’으로 나눌 수 있다. 아무리 고속의 무선 LAN이라 할지라도 속도와 품진 면에서 유선LAN을 따라오려면 아직 멀었기 때문에 유선LAN을 주로 사용한다.
- 하위 계층부터 순서대로 이해하면 알기 쉽다.
OSI 참조 모델을 기초로 하여 하위 계층(물리 계층)부터 상위 계층(전송 계층)을 순서대로 이해하면 쉽다. 각 계층에 대한 설명은 크게 ‘기술 파트’와 ‘기기 파트’로 구성할 수 있다. 기술 파트에서는 해당 계층의 포인트가 되는 기술적인 요소나 대표적인 프로토콜(통신 규약)을 설명한다. 기기파트에서는 해당 계층에서 작동하는 네트워크 기기나 그 네트워크 기기가 갖고 있는 대표적인 기능에 대해 설명한다.
예를 들어 3계층(네트워크 계층)에 대해 기술 파트에서는 3계층의 대표적인 프로토콜인 ‘IP’와 ‘ARP’, 기술적 요소로서 ‘IP 주소’를 다루고, 기기 파트에서는 제 3계층에서 작동하는 네트워크 기기인 ‘라우터’와 그 핵심을 담당하는 기능인 ‘라우팅’을 다룬다.
OSI참조 모델과 프로토콜
프로토콜이란 통신규약
네트워크를 학습할 때 가장 먼저 이해해야 하는 개념은 바로 OSI 참조 모델이다. OSI 참조 모델은 국제표준화기구(ISO)가 컴퓨터의 통신 기능을 계층 구조로 나누어 정리한 모델로 ‘통신할 때의 규칙의 모음’이라 할 수 있다.네트워크에서는 이러한 규칙을 ‘프로토콜’이라고 부른다. 대표적으로 URL을 입력할때 맨앞에 입력하는 http는 HyperText Transfer Protocol의 약자로 웹 서버와 웹 클라이언트에서 데이터를 송수신할 때 사용하는 통신 규칙, 즉 통신 프로토콜이다.
사용하는 프로토콜은 극히 일부
OSI 참조 모델에서는 프로토콜을 물리 계층(제 1계층), 데이터링크 계층(제 2계층), 네트워크 계층(제 3계층), 전송 계층(제 4계층), 세션 계층(제 5계층), 표현 계층(제 6계층), 응용 계층(제 7계층), 이와 같이 7개의 계층 구조(레이어)로 나누고 있다. 각각의 계층은 전혀 다른 역할을 가지고 있으며 따로따로 작동하도록 되어 있다. 그렇게 함으로써 계층과 계층이 서로 영향을 받지 않으며 계층별로 분리된 트러블슈팅이 가능해진다.
OSI 참조 모델은 많은 프로토콜로 구성되어 있지만 실제 네트워크에서 사용하는 프로토콜은 극히 일부로, 상당히 한정되어 있다. 제 1계층과 제 2계층은 ‘이더넷’, 제 3계층은 ‘IP’, ‘ICMP’, ‘ARP’, 제 4계층은 ‘TCP’, ‘UDP’, 그리고 제 5 계층 부터 제 7계층은 ‘애플리케이션 프로토콜’을 사용한다. 이와 같이 실제로 사용하고 있는 프로토콜만을 위주로 이해하면 네트워크의 기초를 마스터하기에는 충분하다고 볼 수 있다.
각 계층의 역할을 간단히 살펴보면
- 응용 계층(제 7계층) → 애플리케이션별로 서비스를 제공하는 방법을 규정
- 표현 계층(제 6계층) → 애플리케이션 데이터를 통신에 적합한 형태로 변환하는 방법을 규정
- 세션 계층(제 5계층) → 데이터를 흘려보내는 논리적인 통신로(커넥션)의 확립과 연결 끊기에 대해 규정
- 전송 계층(제 4계층) → 데이터를 통신 상대에게 확실하게 전달하는 방법을 규정
- 네트워크 계층(제 3계층) → 동일 또는 다른 네트워크 기기와 연결하기 위한 주소와 경로의 선택방법을 규정
- 데이터링크 계층(제 2계층) → 직접 연결된 기기 사이에 논리적인 전송로(데이터링크)를 확립하는 방법을 규정
- 물리 계층(제 1계층) → 네트워크 케이블의 재질이나 커넥터 형식, 핀의 나열 방법 등 물리적인 요소를 모두 규정
프로토콜의 역할
프로토콜의 최대 역할을 캡슐화와 역캡슐화
프로토콜이 가지고 있는 역할 중에서 가장 중요한 것은 ‘캡슐화’와 ‘역캡슐화’ 이다. 네트워크 통신에서는 OSI 참조 모델의 계층을 넘어설 때마다 데이터를 캡슐에 넣고 꺼낸다. 캡슐에 넣는 처리를 캡슐화, 캡슐에서 꺼내는 처리를 역캡슐화 라고 한다. 러시아 전통 인형 마트료시카를 생각하면 이해하기 쉽다.
송신 측은 캡슐화, 수신 측은 역캡슐화를 수행한다
서버가 클라이언트에게 요청에 대한 응답(데이터)을 보낸다고 가정해보자. 서버는 상위 계층에서 하위 계층으로 캡슐화 처리를 하여 전송용 데이터를 만든다. 먼저 서버 애플리케이션으로 만든 애플리케이션 데이터를 그 상태로 전송 계층에 전달한다. 전송 계층은 받은 애플리케이션 데이터를 TCP/UDP 캡슐(세그먼트)에 넣어 네트워크 계층으로 전달한다. 네트워크 계층은 받은 세그먼트를 IP 캡슐(패킷)에 넣어 데이터링크 계층으로 전달한다. 데이터링크 계층은 받은 패킷을 이더넷 캡슐(프레임)에 넣어 물리 계층으로 전달한다. 물리 계층은 받은 프레임을 신호로 보내기 좋은 비트로 변환한 후 전기 신호나 광 신호로 만들어 보낸다.
이와 반대로 데이터를 수신하는 클라이언트 측이 실행하는 처리가 역캡슐화이다. 클라이언트는 하위 계층에서 상위 계층으로 역캡슐화 처리를 하여 원래의 애플리케이션 데이터로 되돌려 간다. 먼저 물리 계층에서 전기 신호나 광 신호를 받으면 비트로 변환한 후 프레임으로 만들어 데이터링크 계층으로 전달한다. 데이터링크 계층은 받은 프레임에서 패킷을 꺼내 네트워크 계층으로 전달한다. 네트워크 계층은 받은 패킷에서 세그먼트를 꺼내 전송 계층으로 전달한다. 전송 계층은 받은 세그먼트에서 데이터를 꺼내 원래의 애플리케이션 데이터를 클라이언트 애플리케이션에게 전달한다.
1, 2 계층의 핵심, 이더넷에 대해 알아보자
이더넷과 MAC주소
프레임을 만드는 건 이더넷
제 1계층과 제 2계층에서 필수불가결한 규격이 바로 ‘이더넷’ 이다. 유선 네트워크의 경우 거의 대부분이 이더넷을 사용하고 있다고 해도 과언이 아니다.이더넷은 제 3계층(네트워크 계층)으로부터 받은 데이터(패킷)에 프레임의 처음을 나타내는 ‘프리앰블(Preamble)’과 수신자와 송신자를 나타내는 ‘헤더’, 비트 오류 체크에 사용하는 ‘FCS(Frame Check Sequence)’를 추가하여 프레임을 만든다
MAC 주소로 컴퓨터를 식별한다
이더넷은 ‘MAC 주소’라는 48비트로 된 식별자를 사용하여 컴퓨터를 식별한다. MAC 주소는 ‘12:34:56:78:90:AB’와 같이 8비트마다 하이픈이나 콜론으로 구분하여 12진수로 표기한다. 상위 24비트와 하위 24비트는 각각 다른 뜻은 가진다. 상위 24비트는 전기 및 전자관계 기술자 단체인 미국전지전자학회(IEEE)가 기기의 제조업체별로 할당한 제조업체 코드이다. 이를 OUI(Organizationally Unique Idnetifier)라고 하는데 이 부분을 보면 기기의 제조업체를 알 수 있다. 하위 24비트는 제조업체 내부에서 기기별로 고유한 값으로 할당한 코드이다. MAC 주소는 IEEE가 고유한 값으로 관리하고 있는 상위 24비트와 각 제조업체가 고유하게 관리하고 있는 하위 24비트를 조합한 값으로 정의한다. 그렇게 때문에 각 NIC(Network Interface Controller)에 할당되어 있는 MAC 주소는 전 세계에서 하나밖에 없는 고유한 값이 된다.
컴퓨터가 데이터를 송신할 때에는 자신의 MAC 주소를 ‘출발지 MAC 주소’로, 데이터를 보낼 상대방의 MAC 주소를 ‘목적지 MAC 주소’로 하여 헤더에 넣음으로써 프레임을 만든다.
스위칭
이더넷 네트워크는 스위치를 중심으로 구축한다
이더넷은 ‘스위치’라는 네트워크 기기를 중심으로 하여 컴퓨터를 배치해 가는 ‘스타형 토폴로지’라는 연결 형태를 채택하고 있다. 유선 네트워크의 경우 컴퓨터는 LAN케이블을 경유하여 스위치에 연결되어 있다고 생각하면 좋다.
이더넷의 케이블이 이른바 LAN 케이블이다. 우리가 잘 아는 노트북이나 데스크탑의 뒤에 꽂는 그 규격이다.
이것이 바로 스위치. 가격이 궁금해 찾아보니 어마무시하게 비싸다…
MAC 주소 테이블을 사용하여 스위칭
스위치는 프레임이 들어온 LAN 포트 번호와 그 프레임의 출발지 MAC 주소를 테이블로 만들어 일정 기간동안 기억해 둔다. 이로써 불필요한 프레임 전송을 막고 이더넷 네트워크의 통신 효율을 향상시킬 수 있다.
스위치는 다음과 같이 작동한다.
- 만일 A라는 MAC주소를 가진 컴퓨터가 데이터를 보낸다면 스위치는 A와 해당 컴퓨터가 연결된 스위치 포트를 기록한다.
- 이어서 스위치는 목적지의 MAC 주소가 자신이 가진 MAC 주소 테이블에 있는지 확인한다. 있다면, 그 정보를 바탕으로 프레임을 전송한다. 없다면, 모든 포트에게 프레임의 복사본을 전송한다. 이 때 해당하는 컴퓨터만 프레임을 수취하고 그 외의 컴퓨터는 프레임을 파기한다.
- 이후 프레임이 들어올 때 마다 MAC 주소 테이블의 정보를 생성 또는 갱신한다. 더 이상 사용하지 않느 정보는 일정 시간이 경과하면 삭제한다.
스위치가 수행하는 프레임 전송을 ‘스위칭’이라고 하며 스위치가 스위칭에서 사용하는 LAN 포트 번호와 출발지 MAC 주소의 테이블을 ‘MAC 주소 테이블’이라고 한다.
꿀팁
한 대의 스위치를 논리적으로 분할할 수 있으며 이 기능을 ‘VLAN(Virtual LAN)’이라고 한다. VLAN을 사용하면 한 대의 스위치에 다른 네트워크를 공존시킬 수 있다고 한다.