혼자하는 네트워크 공부 #1

배석주·2022년 12월 19일
0

네트워크

목록 보기
1/11
post-thumbnail

CHAPTER 1. 네트워크 시작하기

네트워크란?

노드들이 데이터를 공유할 수 있게 하는 디지털 전기 통신망의 하나이다. 즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것 이다.
*노드 : 네트워크에 속한 컴퓨터 또는 통신 장비를 뜻하는 말

프로토콜

규정이나 규약과 관련된 내용을 언급할 때 프로토콜이라는 용어를 사용한다. 네트워크에서도 통신할 때의 규약을 프로토콜이라는 용어를 사용한다.
네트워크에서 노드와 노드가 통신할 때 어떤 노드어느 노드에게 어떤 데이터어떻게 보내는지 작성하기 위한 양식이다.
  • 물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등. 이더넷이 널리 쓰인다.
  • 논리적 측면 : 장치들끼리 통신하기 위한 프로토콜 규격. TCP/IP가 널리 쓰인다.
  • 일반적으로 TCP/IP는 프로토콜이라 부르지 않고 프로토콜 스택이라 부른다. TPC와 IP는 별도 계층에서 동작하는 프로토콜이지만 함께 사용하고 있는데 이런 프로토콜 묶음을 프로토콜 스택이라고 부른다.
    <TCP/IP 프로토콜 스택>

    OSI 7계층

    네트워크에서 통신이 일어나는 과정을 7계층으로 나눈 것을 말한다. 이러한 과정을 7계층으로 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 과정을 단계별로 파악할 수 있다면 7계층 중 특정한 곳에 이상이 생기면 다른 계층을 건들지 않고 이상이 생긴 특정 계층만 고칠 수 있는 장점이 생긴다.
    <OSI 모델과 TCP/IP 모델>
    OSI 7계층은 다시 두 가지 계층으로 나눌 수 있다.
  • 1~4계층 : 데이터 플로 계층(Data FLow Layer) / 하위 계층(Lawer Layer)
  • 5~7계층 : 애플리케이션 계층(Application Layer) / 상위 계층(Upper Layer)
  • <OSI 7계층을 데이터 플로 계층과 애플리케이션 계층으로 구분>

    OSI 7계층별 이해하기

    1계층(피지컬 계층)

    1계층은 물리 계층으로 물리적 연결과 관련된 정보를 정의한다. 주로 전기 신호를 전달하는 데 초점이 맞춰어져 있다.
    1계층에서는 들어온 전기 신호를 그대로 잘 전달하는 것이 목적이므로 전송하거나 받는 데이터가 무엇인지 혹은 어떤 에러가 있는지 등은 신경쓰지 않는다.
    대표적인 장비로는 허브(Hub), 리피터(Repeater), 케이블(Cable) 등이 있다.

    2계층(데이터 링크 계층)

    2계층은 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리한다. 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는 데 초점이 맞추어져 있다. 2계층에서는 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행하며 데이터에 대한 에러를 탐지하거나 고치는 역할을 수행한다.
    2계층에서 동작하는 네트워크 구성 요소는 네트워크 인터페이스 카드(Network Interface Card)와 스위치(Switch)이다. 2계층의 가장 중요한 특징은 MAC 주소라는 주소 체계가 있다는 점이다.
    *MAC 주소 : "IP 주소간의 통신은 사실, 각 라우터 hop에서 일어나는 MAC 주소와 MAC 주소의 통신의 연속적인 과정이다." 즉, LAN에서 통신할 때 사용하는 주소이다.
    -> MAC 주소는 데이터링크 계층에서 사용되고 IP주소는 네트워크 계층에서 사용되는데 데이터링크 계층에서 문제없이 동작해야(이웃노드들 사이에 통신이 되어야) 결국 멀리 있는 노드까지 통신이 가능하다(네트워크 계층).
    *스위치 : 단말이 어떤 MAC 주소인지, 연결된 포트는 어느 것인진 주소 습득 과정에서 데이터를 얻어 이 데이터를 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩 해준다.
    네트워크 인터페이스 카드 동작 방식
    1. 전기 신호를 데이터 형태로 만든다.
    2. 목적지 MAC 주소와 출발지 MAC 주소를 확인한다.
    3. 네트워크 인터페이스 카드의 MAC 주소를 확인한다.
    4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 폐기한다.

    3계층(네트워크 계층)

    3계층에서는 IP 주소와 같은 논리적인 주소가 정의된다. 데이터 통신을 할 때는 두 가지 주소가 사용되는데 2계층의 물리적인 MAC 주소와 3계층의 논리적인 IP 주소이다. IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 나뉜다.
    3계층에서 동작하는 장비는 라우터이다.
    3계층은 다른 네트워크 대역, 즉 멀리 떨어진 곳에 존재하는 네트워크 까지 어떻게 데이터를 전달할지 제어하는 일을 담당한다(서로 다른 LAN대역을 연결).
    *라우터 : IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할.
    *IP 주소 : WAN에서 통신할 때 사용.

    4계층(트랜스포트 계층)

    4계층은 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 한다. 패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 생길 수 있다. 이 문제를 해결하기 위해 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할을 4계층에서 담당한다. 4계층에서 패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신하므로 패킷이 유실되면 재전송을 요청할 수 있고 순서가 바뀌더라도 바로 잡을수 있다.
    패킷에 순서를 명시한 것이 시퀀스 번호(Sequence Number)이고 받는 순서를 나타낸 것이 ACK 번호(Acknowledgement Number)이다.
    4계층에서 동작하는 장비로는 로드 밸런서와 방화벽이 있다.

    5계층(세션 계층)

    5계층은 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 한다.

    6계층(프레젠테이션 계층)

    6계층은 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행한다. MIME 인코딩이나 암호화, 압축, 코드 변환과 같은 동작이 이 계층에서 이루어진다.
    Ex) EBCDI로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것 / 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지 구분.
    *MIME : Multipurpose Internet Mail Extensions의 약자로 간단히 하면 파일 변환을 뜻한다.

    7계층( 애플리케이션 계층)

    7계층은 네트워크 소프트웨어의 UI 부분이나 사용자 입/출력 부분을 정의한다.
    대표적인 프로토콜로는 FTP, SMTP, HTTP, TELNET이 있다.
    통신 패킷들은 위에 나열한 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램이다. 즉, 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.

    인캡슐레이션과 디캡슐레이션

    상위 계층에서 하위 계층으로 데이터를 보내면 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보낸다. 받는 쪽에서는 다시 하위 계층에서 상위 계층으로 데이터를 보낸다. 이렇게 데이터를 보내는 과정을 인캡슐레이션(Encapsulation), 받는 과정을 디캡슐레이션(Decapsulation)이라고 부른다.
    <인캡슐레이션과 디캡슐레이션>
    패킷 네트워크 : 데이터를 패킷이라는 작은 단위로 쪼개 보내는데 이런 기법으로 하나의 통신이 회선 전체를 점유하지 않고 동시에 여러 단말이 통신하도록 해준다.
    *패킷(Packet) : 네트워크 상에서 전달되는 데이터로 전달하는 데이터의 형식화 된 블록
    <인캡슐레이션>
    <디캡슐레이션>
    정리하자면 실제 데이터는 상위 계층 → 하위 계층, 하위 계층 → 상위 계층으로 전달되고 헤더 정보는 각 계층끼리 전달된다.
    데이터를 인캡슐레이션하는 과정에서 헤더에 넣는 정보들이 많아 이해하기 힘들지만 헤더에 두 가지 정보는 반드시 포함되어야 한다.
    1. 현재 계층에서 정의하는 정보
    2. 상위 프로토콜 지시자
    현재 계층에서 정의하는 정보는 앞에서 다루었던 OSI 7계층의 각 계층에서의 목적에 맞는 정보들이 포함된다.
    4계층의 헤더에는 잘 분할하고 잘 조립하도록 데이터에 순서를 정하고 받은 패킷의 순서가 맞는지, 빠진 패킷은 없는지 점검하는 정보가 들어간다.
    3계층의 헤더에는 3계층에서 정의하는 논리적인 주소인 출발지, 도착지 IP 주소가 들어간다.
    2계층의 헤더에는 출발지 MAC 주소와 도착지 MAC 주소가 들어간다.
    출처
    IT 엔지니어를 위한 네트워크 입문을 정리한 포스팅입니다.

    0개의 댓글