네트워크 시작하기

Jaca·2022년 7월 25일
0

OSI 7 계층

네트워크의 가장 기초.
현재 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반이다.

구분계층데이터(PDU)
하위(Data Flow)피지컬Bits
하위(Data Flow)데이터링크Frames
하위(Data Flow)네트워크Packets
하위(Data Flow)트랜스포트Segments
상위(Application)세션Data
상위(Application)프레젠테이션Data
상위(Application)애플리케이션Data

1-4 계층과 5-7계층의 구분은 계층의 역할과 목표에 따른 것이다.

Data Flow는 데이터를 상대방에게 잘 전달하기 위한 목표를,
Application은 프로토콜을 개발할 때 하위 계층을 고려하지 않고 데이터를 표현하는데 초점을 맞춘다.

1 계층(Physical)

1계층은 전기 신호를 전달하는 것에 초점이 맞춰져 있다.
주요 장비로 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭이 있다.

전기 신호를 잘 전달하는 것이 목표이기에, 1계층에 전기 신호가 들어오면 이 신호를 재생성하여 내보낸다.

1계층 장비는 주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송한다.

2계층은 전기 신호를 우리가 알아볼 수 있는 데이터 형태로 처리한다.
1계층과 달리 주소 정보를 정의하고 정확한 주소를 통신이 되도록 하는 데 초점이 맞춰져 있다.
2계층은 출발지와 도착지 주소를 확인하고 위치를 검사후에 데이터를 처리한다.

주소 체계가 생긴 다는 것은 동시에 여러 명과 통신할 수 있다는 것이므로,
받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업을 수행하고 이를 Flow Control이라고 한다.

2계층의 장비는 NIC와 스위치이다.
NIC에는 고유 MAC 주소가 있다.
입력되는 전기 신호를 데이터 형태로 만들고 도착지 MAC 주소를 확인한 후 자신에게 들어오는 전기 신호가 맞는지 확인한다.

스위치는 단말이 어떤 MAC 주소를 가지고 있는지, 연결된 포트는 어느 것인지 알아내고 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩한다.

3 계층(Network)

3계층에서는 IP 주소와 같은 논리적 주소가 정의된다.
데이터 통신을 할 때 두 가지 주소가 사용되는데 2계층의 물리적 MAC 주소와 3계층의 논리적인 IP 주소이다.
3계층을 이해할 수 있는 장비나 단말은 네트워크 주소를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크로의 경로를 지정할 수 있다.

3계층에서 동작하는 장비는 라우터이다.
라우터는 IP 주소를 사용해 최적의 경로를 차자주고 해당 경로로 패킷을 전송하는 역할을 한다.

4 계층(Transport)

위에서 나눈 하위 계층과 상위 계층중 하위 4개의 게층은 데이터를 잘 쪼개 주고 받는 역할을 중점적으로 고려하고 네트워크 애플리케이션에서 하위 4계층의 역할을 별로 고민하지 않도록 도와준다.
애플리케이션에서는 하위 4개 계층으로 내려보내기만 하면 이 데이터를 쪼개 목적지까지 잘 전달한다.
하위 계층인 1,2,3 계층은 신호와 데이터를 올바른 위치로 보내고 실제 신호를 잘 만들어 보내는 데 집중한다.

4계층은 실제 데이터들이 정상적으로 잘 보내졌는지 확인하는 역할을 한다.

4계층의 장비는 로드 밸런서와 방화벽이 있다.
이 장비들은 4계층에서 볼 수 있는 애플리케이션 구분자와 시퀀스, ACK 번호 정보를 이용해 부하를 분산하거나 보안 정책을 수립할 때 패킷을 통과, 차단하는 기능을 수행한다.

5 계층(Session)

5계층은 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 하고, 에러로 중단된 통신에 대한 에러 복구와 재전송도 수행한다.

6 계층(Presentation)

6계층은 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행한다.
이를 통해 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어준다.

7 계층(Applicaiton)

7계층은 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행한다.
네트워크 소프트웨어의 UI 부분이나 사용자 입출력 부분을 정의하는 것이 애플리케이션 계층의 역할이다.

인캡슐레이션, 디캡슐레이션

상위 계층에서 하위 계층으로 데이터를 보내고 하위 계층에서 상위 계층으로 데이터를 받는 과정을 인캡슐레이션, 디캡슐레이션이라고 한다.

현대 네트워크는 대부분 패킷 기반 네트워크이며, 데이터를 패킷 단위로 쪼개 보내는 기법이다.
이를 통해 하나의 통신의 회선 전체를 점유하지 않고 동시에 여러 단말이 통신하도록 한다.

데이터를 패킷으로 쪼개고 네트워크를 이용해 전송하고 받는 쪽에서는 패킷을 조합하여 다시 큰 데이터 형태로 결합하여 사용한다.

인캡슐레이션이란 데이터를 하위 4계층으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는 과정이다.
네트워크 상황을 고려해 적절한 크기로 데이터를 쪼개고 4계층부터 네트워크 전송을 위한 정보를 헤더에 붙여넣는다.

디캡슐레이션 과정에서는 위와 반대로 전기 신호를 데이터 형태로 만들어 2계층으로 올려보낸다.
2계층에서는 송신자가 작성한 2계층 헤더에 포함된 정보를 확인하고 2계층 헤더를 벗겨내고, 3계층으로 올려보낸다.

위와 같은 과정은 2가지 정보 흐름을 나타낸다.

  • 인캡슐레이션, 디캡슐레이션 과정을 통해 데이터가 전송되는 과정
  • 각 계층 헤더를 이용해 송신자 계층과 수신자 계층 간의 논리적 통신 과정

실제로 데이터는 상위 계층에서 하위 계층으로 인캡슐레이션되면서 내려오고 랜 카드에서 전기 형태로 변환되어 목적지로 전달된다.
이 전기 신호를 받은 목적지에서는 데이터 형태로 변환해 상위 계층으로 올려주고 이 패킷을 조합해 데이터 형태로 만든다.
결국 주고받는 데이터 흐름은 상위 > 하위 계층, 다시 하위 > 상위 계층이다.

각 계층에서 인캡슐레이션 과정에서 수행한 헤더 정보는 상대방이 각 계층에서 확인해야 할 정보이다.
만약 4계층에서 헤더를 추가 했다면, 데이터를 받는 상대방의 4계층에서 확인할 정보이다.
이 헤더 정보에는 각 계층에서 반드시 포함되어야하 할 정보가 있다.

  1. 현재 계층에서 정의하는 정보
  2. 상위 프로토콜 지시자
profile
I am me

0개의 댓글