[network] OSI 7계층에 대해 알아보자

개발하는 곰댕이·2021년 4월 22일
0

Netwhat

목록 보기
6/6

1. OSI 7계층은 뭘까?

  • OSI 7계층은 네트워크 통신이 일어나는 과정을 7단계로 나눠서 보기쉽게 만들어놓은 것을 말하는 것이고, 이렇게 나눠놓음으로 인해 통신이 일어나는 과정을 한눈에 알아보기 쉽고, 유지보수도 상대적으로 쉬워지게 되었습니다!

2. 각 계층이 어떤 역할을 하는걸까?

2.1 물리계층(Physical Layer)

  • 물리계층에서는 신호를 전기적, 물리적으로 전송되는 역할을 하는 부분을 물리계층이라고 부르고 해당 계층에서 사용되는 기기는 케이블, 허브 등이 있습니다.
    사실 자세히 들여다 보면 우리가 보내는 데이터들은 모두 0과 1로 이루어져있는 비트열입니다. 이 데이터를 전기적 신호로 변환하여 보내는게 물리 계층이 하는 역할이죠.
    이때 사용되는 기기가 랜카드입니다!

  • 우연히 유튜브를 보다가 찾은 영상이 있는데 이 영상을 보면 좀 더 도움이 될 것 같아요!
    광섬유 케이블, 작동하는 방법은?

  • 데이터 링크 계층은 노드 대 노드 즉, 내가 보낸 데이터가 거쳐가는 많은 곳 중에서 바로 앞에 있는 곳과 연결하는 역할을 하는 계층입니다.

  • 데이트 링크계층에서는 물리 계층에서 들어온 데이터를 3계층인 네트워크 계층으로 보낼 때 필요없는 데이터를 빼거나 물리 계층을 통해서 다음 노드로 보낼때 필요한 정보를 붙이는 역할을 합니다.
    이렇게 만들어진 데이터 묶음을 프레임(Frame)이라고 하죠.

    간단하게 그림으로 보도록 합시다!

    더 많은 과정이 있겠지만 우선 이런 식으로 우리가 데이터를 목적지로 보낸다고 해봅시다.
    그러면 데이터 링크 계층은 내 컴퓨터에서 라우터까지의 길을 데이터와 같이 묶어주고 그 다음은 라우터와 라우터, 라우터와 목적지의 순서대로 데이터 링크 계층이 사용됩니다.
    이 길은 MAC address(물리적주소)를 통해서 알 수 있기에 데이터를 보낼 때 다음 노드(네트워크 기기)의 MAC 주소를 데이터와 묶어주고, 받을때는 필요없어진 MAC 주소를 제외하고 3계층으로 보내게 됩니다.

    저는 이 강의를 보고 많이 이해가 된 것 같아요.
    4강 네트워크 9장 데이터링크층 개요

  • 데이터 링크 계층에서는 물리계층에서 하지 않았던 오류에 대한 제어를 하게 됩니다.

    • 흐름제어 (Flow Control)
      수신측에서 송신측 발송 데이타의 양이나 속도를 제한해서 데이터의 흐름이 원활하게 해 주는 방법입니다.
    • 에러제어 (Error Control)
      데이터 전송중에 발생하는 손실, 잡음, 감쇠 등의 오류를 해결하기 위한 방법입니다.

2.3 네트워크 계층(Network Layer)

이전 2 계층에서 다음 노드의 MAC주소를 통해서 데이터를 보낸다고 했는데 그럼 그 MAC 주소는 어디서 받는 걸 까??

  • 바로 네트워크 계층에서 목적지까지 최적의 길을 찾은 뒤 2계층에서 프레임을 짜게됩니다.
    한 마디로 네트워크 계층은 목적지까지의 최적의 길을 찾아주는 계층입니다! 이렇게 최적의 길을 찾는 과정을 라우팅이라고 하고, 3계층에서 만들어진 데이터 묶음은 패킷(Packet)이라고 부르게 됩니다.

  • 네트워크 계층에서 제공되는 서비스는 연결형 서비스비연결형 서비스 로 나뉘어 지는데 연결형 서비스는 데이터의 전송 경로를 미리 정해서 최적의 경로로 보내는 방법 을 말하는 것이고 대표적으로 TCP가 있습니다.
    비연결형 서비스는 전송 경로를 정하지 않고 패킷단위로 데이터를 전송하는 것을 말합니다.
    비연결형 서비스는 각 패킷이 도착하는 순서가 일정하지 않고, 패킷이 분실될 가능성도 있기에 데이터의 신뢰성을 보장하지 않습니다.
    대표적인 예로는 UDP가 있고, 이러한 비연결형 서비스는 통신속도가 중요한 실시간서비스 같은 부분에서 사용됩니다.

2.4 전송 계층(Transport Layer)

  • 이전 단계들로 이제 우리는 내 컴퓨터에서 목적지까지는 갈 수 있게 되었습니다!
    그럼 이제 컴퓨터 내에서 어떤 프로세스로 들어가야하는지 알아야 하고 구분을 짓는 방법은 포트번호를 이용합니다.
  • 전송 계층에서는 프로세스의 구분 이외에도 오류검출 및 처리, 복구등을 하게되는데 데이터링크계층에서 사용했던 흐름제어, 오류제어 이외에도 다른 계층에서 요구한 데이터에 따라서 분할, 병합을 통해 다른 계층과 통신하게 됩니다.
  • 전송 계층을 통해 만들어진 데이터의 묶음을 세그먼트(Segment)라고 합니다.

2.5 세션 계층(Session Layer)

  • 세션 계층에서는 크게 말하면 동기화 작업과 송, 수신측의 연결 상태를 담당하는 계층입니다.

    만약 동기화 없이 데이터 덩어리를 통째로 보내게 된다면 오류가 났을 때 모든 데이터를 다시 보내야하는 상황이 발생하기 때문에 데이터를 쪼개고 각각 쪼갠 데이터 사이에 동기점을 설정해 오류가 났을 시 해당 동기점을 이용해서 복구해서 좀 더 효율적으로 데이터를 관리하는 겁니다.

    세션계층에서 사용되는 대화방식은 반이중 방식, 전이중 방식 등으로 어떤 데이터 전송방식을 이용할건지 결정하게 된다고 합니다.

2.6 표현 계층(Presentation Layer)

  • 표현계층에서는 송, 수신측간의 데이터 타입을 변환해주고, 압축이나 암호화가 필요하다면 해당 작업을 해 주는 역할을 합니다.
    간단하게 말하면 ascii코드를 사용하느냐, 혹은 이미지는 어떤 형식을 사용하느냐에 따라서 알맞은 상태로 변환해주는 역할을 하는 계층입니다.

2.7 응용 계층(Application Layer)

  • 응용 계층은 사용자측에서 가장 가까운 계층이며 현재 사용중인 프로세스와 OSI환경이 직접적으로 접속하게 되는 계층입니다.
    내가 만약 email을 전송한다고 하면 그에 맞에 OSI 환경을 만들고, 파일을 전송한다고 하면 그에 맞게 환경을 세팅하게 되는거죠.

3. 통신이 되는 과정을 한눈에 알아보자

  • 통신을 할 때는 이러한 7개의 계층을 통해서 통신을 하게 되는데 각 계층마다 헤더를 하나씩 붙여나가면서 데이터를 만들게 됩니다.
    예를들어 응용계층에서는 AH(Application Header)와 같이 해당 계층에서 사용되는 정보들을 붙이게 됩니다. 이런 식으로 각 계층을 지나면서 필요한 정보들을 만들게 되고, 이러한 정보들을 물리계층을 통해서 전달하게 되는 방식이죠.

데이터 링크 계층에서는 DT(Data-Link Trailer) 혹은 FCS (Frame Check Sequence)라고 불리는 녀석을 붙이는데 프레임의 끝 부분에 수신측의 에러검출을 돕기 위해 삽입하는 필드라고 합니다.

참고링크

0개의 댓글