본문 바로가기
  • 꾸준히 앞으로
정리 log/용어 · 개념

[네트워크] OSI 참조 모델, TCP/IP 모델

by lijly 2020. 5. 18.

 

 

 

OSI 참조 모델

OSI(Open System Interconnection) 참조 모델은 다른 시스템 간의 원활한 통신을 위해
ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)이다.

각 계층은 다른 계층에 대해 알 필요가 없이 자신의 계층에서 캡슐화 은닉(숨기기)가 가능하다.

 

TCP/IP 모델

TCP/IP(Transmission Control Protocol/Internet Protocol) 모델은 우리가 범용적으로 사용하는 TCP 프로토콜과 IP 프로토콜을 OSI 7계층 형식에 맞추어 더 추상화(혹은 간략화) 시킨 모델이다.

인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜이다.

  • 1960년대 말 ARPA에서 개발하여 ARPANET(1972)에서 사용하기 시작
  • Unix의 기본 프로토콜로 사용 → 현재 인터넷 범용 프로토콜로 사용

다음과 같은 기능을 수행하는 프로토콜이 결합된 것이다.

TCP

  • 신뢰성 있는 연결형 서비스 제공
  • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
  • 스트림(Stream) 전송 기능 제공
  • 헤더(Header) : Source/Destination Port Number, Sequence Number, Acknowledgement Number, Checksum 등 포함

IP

  • 데이터그램을 기반으로 하는 비연결형 서비스 제공
  • 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공
  • 헤더(Header)의 길이 = 20Byte ~ 60Byte
  • 헤더(Header) : Version, Header Length, Total Packet Length, Header Checksum, Source IP Address, Destination IP Address 등 포함

 

데이터 전송 과정 (TCP/IP Model, OSI Layer 7 Model)

 

1. Application Layer

Application Layer : UI 제공

사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공

  • 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스 제공
🚁
ex. http 전송 프로토콜을 이용하여 도착지에 데이터를 보내겠다 요청
→ 요청과 동시에 표현 계층으로 이동

Presentation Layer : 데이터 가공/처리

응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고,
세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 한다.

  • 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층
  • 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷) 변환, 문맥 관리 기능
🚁
ex. Application Layer의 데이터 → 암호화 / binary 데이터 → JPG, PNG 등

Session Layer : 데이터의 무결성이나 신뢰성 확인

송 · 수신 측 간의 관련성을 유지하고 대화 제어를 담당한다

  • 대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능
  • 송 · 수신 측 간의 대화 동기를 위해 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신 상태를 체크하며, 이 때의 체크점을 동기점(Synchronization Point)라고 한다.

 

2. Transport Layer

Transport Layer : 서비스 구분 및 데이터 전송 방식 담당

논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써
종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 한다.

  • 하위 3계층과 상위 3계층의 인터페이스 담당
  • 종단 시스템(End-to-End)간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
  • 주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어 수행
  • 주소 : Port
🚁
ex. TCP
통신하기 쉽게 HTTP 메시지를 패킷으로 분해
→ 분해된 데이터를 판별하기 위해 일련번호 부여
→ 인터넷 계층으로 데이터 전달

 

3. Internet Layer

Network Layer : 네트워크 연결 관리 및 데이터 교환, 중계 기능

  • 네트워크 연결을 설정, 유지, 해제하는 기능을 한다.
  • 경로 설정(Routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행
  • 주소 : IP
🚁
데이터를 받은 인터넷 레이어에서 IP 프로토콜을 통해 라우터들을 이동하며 목적지로 전달
  • 더 자세히(데이터 생성 과정)
    1. TCP segment에 IP 헤더를 추가하고, IP routing을 한다.
      • IP routing이란 목적지 IP 주소(destination IP)로 가기 위한 다음 장비의 IP 주소(next hop IP)를 찾는 과정을 말한다.
      • IP routing을 하면 그 결과물로 next hop IP와 해당 IP로 패킷 전송할 때 사용하는 인터페이스(transmit interface, 혹은 NIC)를 알게 된다.
    1. ARP(Address Resolution Protocol)를 사용해서 next hop IP의 MAC 주소를 찾는다. 그리고 Ethernet 헤더를 패킷에 추가한다. Ethernet 헤더까지 붙으면 호스트의 패킷은 완성이다.
    1. transmit NIC의 드라이버를 호출한다.
    1. 드라이버는 NIC 제조사가 정의한 드라이버-NIC 통신 규약에 따라 패킷 전송 요청한다.
    1. NIC는 패킷 전송 요청을 받고, 메인 메모리에 있는 패킷을 자신의 메모리로 복사하고, 네트워크 선으로 전송한다.
      • 이때 Ethernet 표준에 따라 IFG(Inter-Frame Gap), preamble, 그리고 CRC를 패킷에 추가한다.
        • IFG, preamble은 패킷의 시작을 판단하기 위해 사용(네트워킹 용어로는 framing)
        • CRC는 데이터 보호를 위해 사용(TCP, IP checksum과 같은 용도이다)
    1. 패킷 전송은 Ethernet의 물리적 속도, 그리고 Ethernet flow control에 따라 전송할 수 있는 상황일 때 시작된다. 회의장에서 발언권을 얻고 말하는 것과 비슷하다.
    🤫
    NIC(Network Interface Card, 네트워크 인터페이스 카드)란?
    컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치로, 정보 전송 시 케이블을 통해 전송될 수 있도록 정보 형태를 변경한다.

    이더넷 카드(LAN 카드) 혹은 네트워크 어댑터 라고도 한다.
    데이터 전송 시 TCP/IP 네트워크 스택의 각 레이어 별 동작 과정

     

 

4. Network Access Layer

클라우드를 사용했을 경우 개발자들이 신경쓰지 않아도 되는 부분이며, 점점 시대가 갈수록 중요성이 떨어지는 부분이다. 일반적인 기업에서의 전산팀이 바로 이 6, 7계층을 담당하게된다.

Data Link Layer : 물리적 매체에 패킷 데이터를 싣고 보냄

두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 한다.

네트워크 계층에서 정보를 받아 주소와 제어 정보를 헤더와 테일에 추가한다.

  • 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능
  • 프레임의 시작과 끝을 구분하기 위한 프레임 동기화 기능
  • 오류의 검출과 회복을 위한 오류 제어 기능
  • 프레임의 순서적 전송을 위한 순서 제어 기능
  • 주소 : Mac

Physical Layer : 실제 물리적인 영역

전송에 필요한 두 장치간의 실제 접속과 절단 등 기계적, 전기적 기능적, 절차적 특성에 대한 규칙을 정의한다.

 

TCP/IP 캡슐화(Encapsulation)

송신 측 입장에서 데이터 생성 과정

각각의 레이어를 거치면서 데이터의 양은 계속 많아진다.
상위 계층으로부터 받은 데이터는 관여하지 않고, 각 계층에서의 추가 데이터만 계속 더해진다.

 

TCP/IP 역캡슐화(Decapsulation)

수신 측 입장에서 데이터 생성 과정

  • PDU(Protocol Data Unit, 프로토콜 데이터 단위) : 동일 계층간에 교환되는 정보의 단위
  • SDU(ServiceDateUnit, 서비스 데이터 단위) : 서비스 접근점(SAP)을 통해 상, 하위 계층기리 주고받는 정보의 단위
  • SAP(서비스 접근점) : 상위 계층이 자신의 하위 계층으로부터 서비스를 제공받는 점(Point)

 

OSI 7 계층 vs. TCP/IP 모델

  • OSI 7 계층에서는 Presentation 계층에서 캡슐화를 하지 않고, Compression을 한다.
  • OSI 7 계층은 장비 개발과 통신 자체를 어떻게 표준으로 잡을지 사용되는 반면에 실질적인 통신 자체는 TCP/IP 프로토콜을 사용한다.
  • TCP/IP 모델은 OSI 모델보다 먼저 개발되었고, 서로 정확하게 일치하지 않는다.

 

 

 


⍞ Reference

  • 도서 : 2020 시나공 정보처리기사 필기, 길벗

 

 

 

댓글