OSI 7 Layer , TCP/IP 4 Layer

이수동·2022년 5월 23일
14
post-thumbnail

🧐 주제 선정의 이유

컴퓨터 네트워크에 대해 제대로 이해하기 위해
네트워크의 기본 구조를 나타내는
OSI 7 계층에 대한 공부가
먼저라는 생각이 들었다.

해당 주제에 한번 제대로 정리를 해보면
이해가 더 잘될것 같아 주제를 선정했다.



👶 탄생의 이유

OSI 7계층이란?

국제표준화기구(ISO)가 1977년에 정의한 국제 통신 표준 규약이며,
네트워크의 기본 구조를 7계층으로 나눠 표준화한 통신 규약으로
현재 모든 통신의 기반이 되는 내용이다.



왜 OSI 7계층으로 나눴을까?

단계를 나눔으로써 통신이 일어나는 과정을
단계별로 파악할 수 있게 된다.

나눈 7단계 중 특정 한 곳에 통신 오류가 발생하면,
다른 부분을 건드리지 않고
오류가 발생한 단계만 고치면 된다.



TCP/IP 4계층이란?

현재 인터넷에서 컴퓨터들이
데이터를 주고 받는데 사용되는 프로토콜이다.

인터넷 개발 이후 계속 표준화가 되어 신뢰성이 매우 우수하며,
OSI 7계층 대신 실질적으로 쓰이는 프로토콜이다.



OSI 7계층, TCP/IP의 구성 차이

OSI 7 계층 : 장비 개발과 통신 자체를 어떻게 표준으로 잡을지 사용된다.
TCP/IP 4 계층 : 실질적인 통신을 할 때 사용된다.



💪 계층 별 역할

Layer 1 : Physical Layer (물리 계층)

해당 계층에서는 전기적, 기계적, 기능적인 특성을 이용하여
통신 케이블로 데이터를 전송하게 된다.

해당 계층의 통신 단위는 비트이기에
모든 파일과 프로그램은 1과 0으로만
통신이 이루어진다.



해당 단계에서는 단지 데이터만 전달할 뿐,
전송하려는 데이터가 무엇인지, 어떤 에러가 있는지 등에는
전혀 신경쓰지 않는다.

말 그대로 데이터를 전달하기만 한다.
Ex) 통신 케이블, 리피터, 허브

해결하려 한 문제 : 옆에 있는 컴퓨터와의 연결



통신의 과정 (1계층)

데이터 전달 시

  • 데이터를 전송하는 곳에서는 0과 1로 나열된 데이터를 먼저 아날로그 신호로 바꿔 전송
  • 전체적인 과정 : 인코딩 ⇒ 데이터 전달

데이터 수신 시

  • 데이터를 수신받는 곳에서는 들어온 아날로그 신호를 0과 1로 나열된 데이터로 해석
  • 전체적인 과정 : 데이터 수신 ⇒ 아날로그 신호를 디코딩


1계층의 기술만으로는
여러개의 컴퓨터가 통신을 할 수가 없다.

만약 다른 컴퓨터와 통신을 하고 싶다면
연결을 원하는 컴퓨터와 케이블을 연결해야 한다.

그러면 특정 컴퓨터와 연결하고 싶은 컴퓨터가 4대라면
4개의 케이블을 연결해야 한다.
⇒ 매우 비효율적이다.



그렇기에 같은 네트워크에 존재하는 여러 대의 컴퓨터가
통신을 할 수 있게 하는 계층이 2계층이다.
Ex) 브리지, 스위치

2계층은 안전하게 정보의 전달을 도와주는
조력자 역할을 하며
MAC 주소를 가지고 통신을 한다.

  • MAC 주소 : 컴퓨터간 데이터를 전송하기 위해 있는 컴퓨터의 물리적 주소


해당 계층의 전송 단위는 프레임이라고 하며
데이터 링크 계층은 Point to Point간
신뢰성있는 전송을 보장하는 계층이다.

물리 계층에서 발생할 수 있는 오류를 찾고,
수정하는데 필요한 기능적, 절차적 수단을 제공한다.

해결하려 한 문제 : 같은 네트워크 상의 여러개의 컴퓨터와의 연결



통신의 과정 (1계층 + 2계층)

데이터 전달 시

  • 프레이밍(Framing)을 통해 물리적 주소인 MAC 주소를 부여한다.
  • 1계층에서의 통신 과정 반복
  • 전체적인 과정 : MAC 주소 추가 ⇒ 인코딩 ⇒ 데이터 전달

데이터 수신 시

  • 1계층에서의 통신 과정 반복
  • 프레이밍(Framing)을 통해 추가된 물리적 주소인 MAC 주소를 제거한다.
  • 전체적인 과정 : 데이터 수신 ⇒ 아날로그 신호를 디코딩 ⇒ MAC 주소 제거


Layer 3 : Network Layer (네트워크 계층)

데이터를 목적지까지
가장 안전하게 빠르게 전달하는 기능이며
라우팅이라고 불린다.

데이터를 연결하는 다른 네트워크를 통해 전달함으로써
인터넷을 가능하게 하는 주요 계층이다.



해당 단계의 프로토콜의 종류도 다양하고,
라우팅하는 기술도 다양하다.
Ex) 라우터

해당 계층의 주 역할 : 경로를 선택하고 → 주소를 정하고 → 경로에 따라 패킷을 전달

IP 계층

  • IP 패킷의 전달 및 라우팅을 담당하는 계층
    • 패킷 : IP주소 + 데이터
  • IP 계층에서는 하위 계층의 하드웨어적인 특성과 다르게 독립적인 역할을 수행한다.
  • 주요 프로토콜
    • IP : 패킷의 전달을 담당
    • ICMP : 패킷 전달 에러의 보고 및 진단
    • 라우팅 프로토콜 : 네트워킹을 위한 경로를 찾아주는 역할

IP 프로토콜

  • TCP/IP 기반의 인터넷 망을 활용하여 데이터를 전달하는 프로토콜
  • IP 주소 지정 및 IP 패킷의 라우팅 대상
  • 신뢰성, 흐름제어 기능이 전혀 없다
    • 신뢰성 확보를 위해 TCP와 같은 상위 트랜스포트 계층에 의존한다.
  • 주요 특징
    • 비연결성 데이터그램 방식으로 전달된다.
    • 패킷의 완전한 전달을 보장하지 않는다.
    • IP 패킷 헤더 내 수신 및 발신 주소를 포함한다.
    • 최상위 바이트(MSB)를 먼저 보내는 순서로 IP 헤더 내 바이트가 전달됨

해결하려 한 문제 : 다른 네트워크에 존재하는 여러개의 컴퓨터와의 연결, 즉 인터넷 상 모든 컴퓨터와의 연결



통신의 과정 (1~2계층 + 3계층)

데이터 전달 시

  • 데이터에 IP주소를 합쳐 패킷의 형태로 생성
  • 1~2계층에서의 통신 과정 반복
  • 전체적인 과정 : IP주소 추가 ⇒ MAC 주소 추가 ⇒ 인코딩 ⇒ 데이터 전달

데이터 수신 시

  • 1~2계층에서의 통신 과정 반복
  • IP주소를 제거한 후, 데이터를 수신 받음
  • 전체적인 과정 : 데이터 수신 ⇒ 아날로그 신호를 디코딩 ⇒ MAC 주소 제거 ⇒ IP주소 제거


Layer 4 : Transport Layer (전송 계층)

통신을 활성화하기 위한 계층이며
TCP/UDP 프로토콜로 이뤄져있고,
포트를 열어 프로그램들의 전송을 가능하게 한다.

특정 데이터가 도착하면 4계층에서는 데이터를 하나로 합쳐 5계층에 전송한다.
오류제어 및 흐름제어를 담당하며,
전송 계층은 양 끝단에
사용자들이 신뢰성있는 데이터를 주고받게 해준다.



이에 대한 장점으로
상위 계층들이 데이터 전달의 유효성이나 효율성을
신경쓰지 않아도 된다.

TCP 프로토콜 (Transmission Control Protocol)의 특징

  1. 신뢰성 (Reliable)
  • IP와 대조되며, 패킷 손실, 중복, 순서바뀜 등이 없도록 보장을 한다.
  • 그렇기에 IP 계층의 신뢰성이 없는 서비스에 TCP를 활용하여 신뢰성을 제공한다.
  1. 연결지향적 (Connection-oriented)
  • 비연결성인 UDP와 대조되며, 느슨한 연결을 갖는다.

UDP 프로토콜 (User Datagram Protocol)의 특징

  1. 비연결성, 비신뢰성
  • 메세지가 제대로 도착했는지 확인하지 않음
  • 메세지의 순서를 보장하지 않음
  • 흐름제어를 하지 않음
  • 오류제어가 거의 없음
  1. 실시간 응용 및 멀티캐스팅 가능
  • 빠른 요청과 응답이 필요한 실시간 응용에 매우 적합
  • 여러 다수 지점에 전송 가능
  1. 단순한 헤더
  • 고정크기의 8바이트만 사용

해결하려 한 문제 : 포트 번호를 활용하여 특정 컴퓨터의 프로세스에 원하는 데이터를 전달



통신의 과정 (1~3계층 + 4계층)

데이터 전달 시

  • 목적지 프로세스의 포트 번호를 추가
  • 1~3계층에서의 통신 과정 반복
  • 전체적인 과정 : Port번호 추가 ⇒ IP주소 추가 ⇒ MAC 주소 추가 ⇒ 인코딩 ⇒ 데이터 전달

데이터 수신 시

  • 1~3계층에서의 통신 과정 반복
  • 목적지 프로세스의 포트 번호를 제거
  • 전체적인 과정 : 데이터 수신 ⇒ 아날로그 신호를 디코딩 ⇒ MAC 주소 제거 ⇒ IP주소 제거 ⇒ Port번호 제거


Layer 5: Session Layer (세션 계층)

데이터가 통신하기 위한
논리적인 연결을 담당하는 계층

해당 계층에는
세션 설정, 유지, 종료, 복구의 기능이 존재한다.

세션 복구는 매우 유용한 기능이며,
특정 데이터를 전송하는 도중 네트워크가 끊기게 되면,
끊겼던 구간에서 다시 데이터 전송을 가능케 하는 기능이다.

Ex) 200MB를 20MB마다 체크포인트를 설정한 경우

  • 67MB을 전송하다가 연결이 끊김
  • 다시 연결 후, 처음부터 다시 시작하는 것이 아닌, 60MB부터 세션을 재개한다.


Layer 6: Presentation Layer (표현 계층)

데이터의
변환, 압축, 암호화가 이루어지는 계층이며,
MIME 인코딩, 암호화와 같은 동작이 이루어진다.



Layer 7: Application Layer (응용 계층)

응용 서비스를 사용하여
응용 서비스를 수행하는 계층이다.

HTTP, FTP, SMTP, POP3, IMAP, Telnet과 같은 프로토콜이 존재한다.

HTTP 프로토콜

  • 웹 상에서
    서버와 클라이언트의 데이터 전송을
    담당하는 프로토콜이다.


통신의 과정 (1~4계층 + (5계층 + 6계층 + 7계층))

데이터 전달 시

  • 특정 데이터에 대해 선택한 응용 서비스에 필요한 추가 정보를 추가함
  • 1~4계층에서의 통신 과정 반복
  • 전체적인 과정 : 응용 서비스에 필요한 데이터 추가 ⇒ Port번호 추가 ⇒ IP주소 추가 ⇒ MAC 주소 추가 ⇒ 인코딩 ⇒ 데이터 전달

데이터 수신 시

  • 1~4계층에서의 통신 과정 반복
  • 특정 데이터에 대해 선택한 응용 서비스에 필요한 추가 정보를 제거함
  • 전체적인 과정 : 데이터 수신 ⇒ 아날로그 신호를 디코딩 ⇒ MAC 주소 제거 ⇒ IP주소 제거 ⇒ Port번호 제거 ⇒ 응용 서비스에 필요한 데이터 제거


전체 통신의 과정 요약 (TCP/IP 4계층 기준)

데이터 전달 시

1. 특정 데이터에 대해 선택한 응용 서비스에 필요한 추가 정보를 추가함
2. 목적지 프로세스의 포트 번호를 추가
3. 데이터에 IP주소를 합쳐 패킷의 형태로 생성
4. 프레이밍(Framing)을 통해 물리적 주소인 MAC 주소를 부여
5. 데이터를 전송하는 곳에서는 0과 1로 나열된 데이터를 먼저 아날로그 신호로 바꿔 전송

데이터 수신 시

1. 데이터를 수신받는 곳에서는 들어온 아날로그 신호를 0과 1로 나열된 데이터로 해석
2. 프레이밍(Framing)을 통해 추가된 물리적 주소인 MAC 주소를 제거
3. 패킷의 형태에서 IP주소를 제거
4. 목적지 프로세스의 포트 번호를 제거
5. 특정 데이터에 대해 선택한 응용 서비스에 필요한 추가 정보를 제거함


😓 느낀점

네트워크의 구조에 대해
제대로 알아볼 수 있었다.

해당 구조를 생각하기 위해
많은 시간과 노력이
투자되었음을 느낄 수 있었다.



참고한 자료

profile
기록을 통한 성장하기 🧐

2개의 댓글

comment-user-thumbnail
2022년 5월 26일

수동님 벨로그 글 퀄리티가 점점 좋아지네요 👍🏻👍🏻

1개의 답글