TCP/IP, OSI 7 Layer

·2023년 2월 10일
0

개발 지식

목록 보기
23/96
post-thumbnail

네트워크

사용자 혹은 데이터가 어떤 곳에서 다른 곳으로 이동할 수 있도록 만든 통로이다. 오늘날까지 네트워크 통신이 사용되면서, 통신 환경을 체계화하기 위해 각 회사마다 다양한 모델들을 구축하였으나, 지금까지 자주 언급되는 것이 바로 TCP/IP 4 LayerOSI 7 Layer 이다. 두 모델을 살펴보면서, 해당 모델들이 어떤 구성을 가지는지 살펴보자.

OSI 7 Layer

Open System Interconnection 의 약자로 ISO (국제 표준화 기구) 에서 컴퓨터 네트워크 통신을 7개의 계층으로 나누어 설명한 모델이다.

1계층, 물리층 (Physical)

어떤 하나의 장치에서 다른 장치에 기계어를 전기적 신호로 바꿔서 전송매체(와이어)에 전송하는 과정을 말한다. 통신을 연결하기 위해, pc to pc 혹은 pc 와 라우터를 전선을 통해 연결하게 된다면 해당 전선에서 사용되는 전류 등의 전기적, 물리적 사항들을 정의한 계층이다.

이 계층에서는 단지 데이터를 전달만 할 뿐 전송하려는 데이터가 무엇이며, 어떤 에러가 있는지 등은 신경 쓰지 않는다. 단지 데이터의 전기적인 신호로 변환해서 주고 받는 기능만 정의한다. 해당 계층의 전송하는 단위는 PDU 비트이다. 단, 우리가 흔히 아는 bit 보다는 0과 1로 구성된 전기의 신호 흐름으로 이해하는 것이 좋다.

관련 장비
통신 케이블, 허브
PDU
비트

물리적인 연결을 통해, 인접한 장치 간 신뢰성 있는 데이터 전송을 담당하는 계층이다. 오류를 감지하거나 데이터를 재전송하는 기능을 통해 안전한 정보의 전달이 수행되도록 도와주는 역할을 한다. 3계층에서 받은 정보를 받아 패킷을 프레임으로 구성하여 1계층에 전송한다.

이 계층에서는 최종 IP주소를 ARP를 통해 MAC address 를 찾아 데이터를 보낸다.

관련 장비
브리지, 스위치
PDU
프레임

MAC address
네트워크 통신이 가능한 장치마다 가지고 있는 고유한 컴퓨터의 물리적 주소 정확히는 장치 안의 LAN 카드에 MAC address 값이 존재한다.

3계층, 네트워크 (Network)

라우팅 과정 전반이 3계층의 주 역할이다. 라우팅 알고리즘을 통해 최적의 경로를 선택하고 수신측을 찾을 때 까지 헤더의 IP 주소를 통해 이곳 저곳의 라우터를 이동하는 과정이 진행된다. 이 때 전송되는 데이터는 패킷 단위로 분할 되어 전송이 된 후 다시 합쳐진다. 2계층이 노드 간 데이터의 안전한 전송을 관리한다면, 3계층은 보내지는 패킷들이 홉바이홉으로 라우터를 이동하여 최종 IP 주소까지 성공적으로 보내지는 것을 담당한다.

관련 장비
라우터, L3스위치
PDU
패킷

4계층, 전송 (Transport)

3계층의 라우팅 과정을 통해, 전세계의 컴퓨터는 요청에 따른 데이터를 가져올 수 있는 환경이 마련되었다. 이제는 데이터를 보내고 받았을 때, PC안에서 일어나는 일이다. 우리는 컴퓨터로 단순히 하나의 일만 하지 않는다. 여러 데이터가 온 경우, 이를 어떤 프로세스에 줘야 하는지 알아야 한다. 이 데이터가 카톡을 위한 건지, 노션을 위한 건지 등을 확인하기 위해서 말이다.

4계층에서는 이를 위해, 포트 번호라는 것을 사용한다. 포트번호란 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값이다. 4계층에서는 데이터 이러한 포트번호를 붙여서 보내게 된다.

이렇게 포트번호를 사용하여 도착지 컴퓨터의 최종 프로세스까지 데이터가 올바르게 도달하도록 돕는 것을 4계층의 주요 업무이다.

일반적으로는 TCP 를 사용하여, 시퀀스 넘버 처리를 통해 순서와 중복, 손실 등이 없도록 보장하나, 특정 서비스에 한하여 UDP 프로토콜을 사용하기도 한다. 참고로 UDP 를 사용하는 경우에는 해당 계층에서는 신뢰성 있는 데이터 전송을 보장할 수 없기에, 오류나 재전송 등의 문제는 어플리케이션에서 처리해야 한다.

TCP, UDP 대한 세부 내용은 이 곳 을 참고 하면 좋다.

관련 장비
게이트웨이, L4 스위치
PDU
세그먼트

5계층, 세션 (Session)

세션은 클라이언트와 서버 간 네트워크 연결이 지속되며 유지되는 상태를 말한다. 이러한 통신 세션을 구성하는 계층으로, 네트워크 상 양 끝단의 연결을 지속시키는 계층이다. 통신 장치간 상호작용을 설정하고 유지하며 동기화를 진행한다. 전이중 Full Duplex , 반이중 Half Duplex , 동시 송수신 Duplex 방식의 통신과 함께 체크 포인팅과 종료, 다시 시작 과정을 수행한다.

전이중 통신 Full Duplex
두 대의 단말기가 데이터를 송수신하기 위해 동시에 각각 독립된 회선을 사용하는 방식을 말한다.
대표적으로 전화망이 있다.

반이중 통신 Half Duplex
한 쪽이 송신하는 동안 다른 쪽에서 수신하는 통신 방식으로, 마스터 슬레이브 방식의 통신 방식을 띄고 있다. 필요한 경우에는 전송 방향이 교체되기도 한다. 대표적으로 센서 네트워크가 있다.

6계층, 표현 (Presention)

송신 측과 수신 측 사이에서 데이터의 형식을 지정해준다. 7계층으로 전달 받거나, 혹은 전송하는 데이터의 인코딩, 디코딩, 암호화 등이 이루어지는 계층이다. 에를 들자면 해당 데이터가 TEXT 인지, JSON 인지, GIF 인지, JPG 인지를 구분하는 것이 6계층 표현 계층의 몫이다.

7계층, 응용 (Application)

사용자와 바로 연결되어 있으며 응용 소프트웨어를 도와주는 계층이다. 사용자로부터 데이터 정보를 입력받아 6계층에게 보내거나, 6계층이 전송한 데이터를 사용자에게 전달한다. UI 부분 이나 파일 입출력 등의 업무가 여기서 처리된다.

전체적인 흐름

송신 → 수신, 헤더 추가 및 캡슐화

송신 호스트는 각 계층에서는 맡은 역할에 따라 프로토콜을 처리하고, 상위 계층으로부터 받은 데이터에 헤더라는 정보를 붙여 하위 계층으로 넘긴다. 헤더에는 수신 호스트의 해당 계층에서 데이터를 처리할 때 필요한 정보들이 담겨져 있다. 송신 호스트의 각 계층을 지날 때마다 해당 계층의 프로토콜을 처리하고 데이터에 헤더를 점점 추가되어지는 과정을 캡슐화 라고 한다.

수신 → 송신, 헤더 제거와 역캡슐화

수신 호스트의 각 계층에서는 하위 계층으로부터 받은 데이터에 포함된 헤더 부분의 정보를 사용하여, 해당 계층의 프로토콜을 처리한 후 헤더 부분을 제거하여 데이터를 상위 계층으로 넘긴다. 각 계층은 직전 계층에서 보낸 헤더만을 읽고 사용할 수 있으며, 데이터가 하위 계층에서 상위 계층으로 넘어갈 때마다 헤더가 제거 되어 최종 계층에서는 보낸 데이터만 남게 된다. 수신 호스트에서 각 계층을 지날 떄마다 프로토콜을 처리하고 데이터의 헤더가 삭제되는 과정을 역캡슐화라고 한다.

TCP/IP 4 Layer

OSI 7 계층은 통신 자체를 어떠한 방식으로 나타내야 하는지 표준 안내를 정의하기 위해 나타난 반면, TCP/IP 4 계층의 경우 보다 실용적이고 특정 프로토콜 구현에 초점을 맞추기 위해 나타났다. 실제로 Transport layer 에서 대부분 TCP 프로토콜을 사용하는 경우가 많고 실제 구현 사례가 정의되어 있어 많이 사용되는 모델은 OSI 7 계층 보다 TCP/IP 4계층이었다. 해당 계층을 메일 서비스를 구현한다고 생각하고 접근해보자.

1계층, 네트워크 엑세스 (Network Access)

이 계층은 OSI 7 계층의 1,2 계층의 작업과정을 담당한다. 이 계층은 장치 간에, 물리적인 전기 신호를 통해 데이터를 전송하는 역할을 한다. 누군가에 의해 보내진 메일이 해당 PC에 도착하는 경우, 전선을 통해 해당 데이터를 물리적인 전기 신호로 변경하여 해당 PC에 보내지게 된다.

2계층, 인터넷 (Internet)

이 계층은 OSI 7 계층의 3 계층의 작업과정을 담당한다. 이 계층은 데이터의 라우팅 및 전달을 제공한다. 송신 PC에서 떠난 메일 데이터는 ISP 에 의해 네트워크 상으로 데이터가 전달되고, IP 주소를 기반으로 도달해야 하는 곳을 찾아 라우터 이곳 저곳을 이동하게 된다.

3계층, 전송 (Transport)

이 계층은 OSI 7 계층의 4 계층의 작업과정을 담당한다. 해당 계층에서는 포트 번호를 통해 프로세스 마다 필요한 데이터가 순서대로 안정적으로 전달되도록 보장하는 역할을 한다. 이 때 TCP 프로토콜을 사용하여, 패킷을 나누고, 시리얼 넘버를 통해 순서를 매기고, 전송 중에 손실되거나 손상된 패킷을 재전송하는 역할을 담당한다.

4계층, 응용 (Application)

이 계층은 OSI 7계층의 5,6,7 계층의 작업과정을 담당한다. 메일 서비스에 비유하자면, 메일을 작성하고 전송하기 위한 사용자 친화적인 인터페이스가 제공되는 것이 해당 계층이 처리해야하는 업무라고 할 수 있다. 즉 실제 개발가 작업하는 서버 혹은 클라이언트의 작업이 이 계층에 영향을 미친다고 할 수 있다.

전체적인 흐름

OSI 7계층에서 다뤘던 캡슐화와 역캡슐화가 진행이 된다.

  1. 송신 측 클라이언트의 응용 계층에서 어느 웹페이지를 보고 싶다는 HTTP 요청을 보낸다.
  2. 전송 계층에서 응용 계층이 보낸 데이터를 받아, 패킷별로 나누어, 시리얼 넘버와 포트넘버를 붙여 인터넷 계층에 전송한다.
  3. 인터넷 계층에서 데이터의 IP 패킷을 추가하여 네트워크 엑세스 계층에 보낸다.
  4. 네트워크 엑세스 계층에서 ARP 등을 활용하여 MAC 주소를 찾아 이더넷 프레임을 추가하고 최종 목적지에 데이터를 보낸다.
  5. 수신 측 서버는 데이터를 받아드리며 추가했던 데이터들과는 반대로 이를 제거하면서 어플리케이션 계층까지 도달한다.
  6. 송신 측 클라이언트가 발신한 HTTP 리퀘스트에 대한 응답 값을 수신하게 된다.

참고
정보보안과 해킹 기초 강좌 5강 - OSI 7계층 (Information Security Basic Tutorial #5)
쉽게 이해하는 네트워크 8.인터넷의 TCP/IP 데이터 전송 과정(ft. 캡슐화와 역캡슐화)
[네트워크] OSI 7Layer / 7계층 개념 및 역할, 구조까지 한번에 알아보기
[네트워크] OSI 7 계층 (OSI 7 Layer)
OSI 7 계층
[10분 테코톡] 🔮 히히의 OSI 7 Layer
[NW] 🌐 TCP / IP 4계층🗼 - 핵심 총정리

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글