[코비] 2.2 TCP/IP 4계층 모델

최정윤·2023년 8월 8일
0

코비

목록 보기
5/38

2.2.1 계층 구조

TCP/IP 4계층이란?

  • 장치들이 인터넷 상에서 데이터를 주고받을 때 쓰는 독립적인 프로토콜의 집합.
  • 주로 TCP, IP 프로토콜을 주로 사용하기 때문에 TCP/IP라는 이름을 가지게 되었다.

어플리케이션 계층 : 메세지

  • FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이다.

전송 계층: TCP(세그먼트), UDP(데이터그램)

  • TCP, UDP가 대표적이며, 애플리케이션 계층에서 받은 메시지를 기반으로 세그먼트 또는 데이터그램으로 쪼갠 후 전송하는 계층

인터넷 계층: 패킷

  • IP, ICMP, ARP가 대표적이며 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터그램을 패킷화하여 목적지로 전송하는 계층

링크 계층 : 데이터링크 계층(프레임), 물리 계층(비트)

  • 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간의 신호를 주고받는 규칙을 정의하는 계층

2.2.2 PDU

  • 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때의 단위를 PDU(Protocol Data Unit)이라고한다. 제어 관련 정보를 포함한 헤더, 데이터를 의미하는 페이로드로 구성되어 있다.

✅ OSI 7계층

OSI 7계층이란?

  • OSI 7계층의 경우 국제 표준화 기구인 ISO에서 네트워크 통신을 체계적으로 정립한 표준 모델로 실제로 사용되진 않고 참조 모델로만 활용한다. 실제 인터넷에서 사용되고 있는 계층은 TCP/IP 4계층이다.
  • 계층이란?
    • 각 계층은 각기 맡은 역할을 수행하고, 상호 독립적이고, 계층 사이에는 정해진 정보만을 전달한다.
  • 나눈 이유
    • 새로운 프로토콜 정의가 쉬움
    • 특정 통신 기능 또는 서비스 수정 용이함
    • 전체 시스템 이해가 쉬워짐

물리계층

인접한 두 장비 간에 디지털 비트를 물리적인 신호로 변환하고 전송하는 방법과 물리적인 매체의 접속 규격 정의.

  • 물리 계층의 표준을 이용하여 장비 연결 시 상호간 비트 송/수신, 해석 가능
  • 접속 규격
    • UTP 케이블
      • 주로, 구내 배선용으로 사용되는 무 차폐 이중와선 케이블
      • 미국 EIA/TIA 568에 규격화됨.
      • 여러 종류(카테고리)로써 구분시켜, 케이블 성능을 정함.
    • 광케이블
      • 광섬유를 보호 피복에 넣어 다양한 외부 환경에 견디도록 한 형태
    • T1
      • PCM 방식을 이용한 T1 다중화 반송시스템

데이터링크 계층

네트워크를 구성하는 각 링크 상에서 데이터를 전송하는 방법을 정의하는 계층

  • 두 포인트 간의 신뢰성 있는 전송을 보장하기 위한 계층이다.
  • 데이터링크층에서의 데이터를 프레임이라고 한다.
  • 데이터링크 계층은 2개의 층으로 나누어 구분한다.
    • MAC 계층
      • 물리적인 부분이며, 매체 간의 연결 방식을 제어한다. 물리 계층과 연결되어 있다.
    • LLC 계층
      • 논리적인 부분이며, 프레임을 생성한다. 네트워크 계층과 연결되어 있다.
  • MAC
    • 각 노드에 대한 물리적 주소

데이터 링크 계층의 기능

  • 프레임 생성 기능
    • 데이터를 캡슐화시켜 프레임 단위로 생성 후 앞에는 헤더, 뒤에는 트레일러를 추가한다.
      • 헤더: 목적지, 출발지 주소 및 데이터 내용 정의
      • 트레일러: 비트 에러를 감지하는 부분
  • 접근제어
    • 여러 장치가 동일한 링크를 공유할 때 충돌이 발생하지 않도록 조정
      • ENQ/ACK
      • Polling
  • 흐름제어
    • 링크의 데이터 처리 능력 이상으로 비트가 유입되지 않도록 조절
      • Stop & Wait
      • Sliding Window
  • 오류제어
    • 비트에 대한 오류 검출과 복구
    • 전진오류수정(FEC) 방식과 후진오류수정(BEC) 방식이 있다.
    • 전진 오류 수정
      • 수신 측에서 오류를 스스로 검출/복원할 수 있는 방법으로 송신 시 오류 복구를 위한 잉여 비트를 추가하여 전송하는 방식
        • 해밍 코드
        • 상승 코드
    • 전송된 데이터에 오류가 발생된 경우, 송신 측에 오류 사실을 알려 재전송으로 복원하는 방식
      • 오류 검출
        • 피리티 검사
        • CRC
        • 체크섬
    • 오류 복구
      • 프레임이 손상되어 재전송 되는 과정을 ARQ라고 한다.
      • Stop & Wait ARQ
      • Go Back n ARQ
      • Selective Repeat ARQ
      • Adaptive ARQ

프로토콜

  • 유선 LAN: 이더넷
  • 무선 LAN: WIFI
  • 전용 회선: PPP
  • 이외에도 HDLC, TokenRing등이 존재한다.

네트워크 계층

IP를 지정하고 라우터로 경로를 선택해 네트워크를 통해 패킷을 전달하는 계층이다

  • 네트워크 계층의 데이터를 데이터그램이라고 한다.

IP

TCP/IP 기반의 인터넷 망을 통하여 데이터그램의 전달을 담당하는 프로토콜이다.

  • 주요 기능
    • IP 패킷의 라우팅 대상이 됨
    • IP 주소 지정
  • 특징
    • 신뢰성, 흐름제어 기능이 없다.
    • 비연결성 데이터그램 방식
    • 패킷의 완전한 전달을 보장하지 않음 (신뢰성 X)
  • IP 주소 체계
    • IPv4
    • IPv6 -> IPv4의 주소 고갈 문제, 멀티미디어서비스 대응 미약 등.
  • IPv4의 고갈 문제
    • 32비트 주소체계의 한계로 IPv4 주소가 점점 고갈되어 간다.
    • 해결방법
      • DHCP
        • 네트워크상에서 동적으로 IP 주소 및 기타 구성정보 등을 부여/관리하는 프로토콜
      • NAT
        • 1개의 실제 공인 IP 주소에, 다량의 가상 사설 IP 주소를 할당 및 매핑하는, 1:1 또는 1:(다수) 주소 변환방식

ARP/RARP

  • ARP
    IP 주소를 이용해 상대방의 MAC 주소를 알아오는 프로토콜이다.
    • ARP 요청 : 특정 IP주소에 대한 MAC주소를 브로드캐스트로 전송한다.
    • ARP 응답 : 요청한 MAC주소 정보를 유니캐스트로 전송한다.
    • ARP 테이블에 각 노드의 ARP 정보를 저장한다.
  • RARP
    MAC 주소에 해당하는 IP주소를 알아노는 프로토콜이다.
  • GARP
    송신 IP와 수신 IP가 같은 ARP요청으로, 자신의 존재를 알리는 목적으로 사용한다. 주로 IP충돌감지, ARP 테이블 갱신 용도로 사용한다.

라우팅 프로토콜

  • RIP
  • OSPF
  • BGP

전송 계층

서로 다른 호스트에서 동작하는 프로세스 간의 데이터를 통신하는 방법을 정의하는 계층.

  • 전송 계층에서의 데이터 단위를 세그먼트라고 한다.
  • 네트워크가 아닌 호스트 내에 구동된 프로세스 사이의
  • 프로세스 간의 구분은 포트 번호를 사용한다.
  • 투명한 전송
    • 상위, 또는 하위 계층에서 사용하는 제어방법 및 그 내용에 관계없이 정보가 세션계층 - 전송계층 - 네트워크 계층 간에 내용이 바뀜 없이 투명하게 전송된다.
  • 다중화/역다중화 지원
    • 소켓 : 컴퓨터 네트워크 사이에 있는 프로세스 간 통신의 종착점.
    • 다중화(Sender)
      • 여러 소켓으로부터 데이터를 수집하여 헤더를 붙여 전송하는 것
    • 역다중화(Receiver)
      • 수신된 세그먼트를 헤더 정보를 이용하여 올바른 소켓에 전달하는 것
  • 전송 계층의 프로토콜로는 TCP/UDP가 있으며, 이는 다른 포스트에서 정리하도록 하겠다.

세션 계층

프로세스 간 세션의 시작, 종료 및 관리 절차를 정의하는 계층.

  • 세션 : 네트워크 상에서 종단 간 일회용 논리적 연결(SVC, TCP세션 등)
  • 세션 계층에서 송수신되는 데이터를 메세지 혹은 스트림이라고 부른다.
  • 주로 TCP
  • 세션 계층의 주요 기능
    • 세션의 설정, 관리, 해제
    • 대화 관리
      • 토큰을 사용함으로써 대화를 관리한다.
      • 토큰 : 서비스의 실행을 기동하는 권리를 표현하는 것.
    • 다중화
      • 효율을 높이기 위해 여러 세션들을 묶어 1개의 같은 전송계층 접속을 사용할 수 있다.
      • 또한, 1개 세션이 속도 등을 위해 다수의 전송계층 접속을 할 수도 있다.
    • 대화 단위별 그룹화(동기화)
      • 점검점, 동기점 등을 삽입함으로써 메세지를 대화 단위로 그룹하 하며, 중간에 에러 발생시 중단단 대화 단위부터 전송을 다시 시작한다.

표현 계층

응용 계층 간 교환되는 데이터의 의미를 동일하게 해석하도록 표현하는 규칙을 정의하는 계층.

  • 응용 계층의 다양한 표현 양식(Syntax)을 공통의 형식으로 변환
  • 암호화
  • 압축
  • 코드 변환(ASCII, EBCDIC, binary 등), 파일 변환, 문장 촉소화 등의 기능 수행

응용 계층

최종 사용자 서비스를 위한 데이터 교환 규칙을 정의하는 계층. 서비스 종류에 따라 다양하게 존재하기도 하고, 필요에 따라 직접 정의할 수도 있다.

대표적인 프로토콜

  • FTP : 파일 전송
  • SMTP : 메일 전송
  • HTTP : 웹 문서 전송
  • DNS : 도메인 이름을 IP 주소로 변환.

✅ 캡슐화/비캡슐화

데이터 송수신시, 각 계층에서 계층의 특징들이 담긴 헤더들이 붙는 과정(캡슐화)과 이 캡슐을 제거하는 과정(비캡슐화)를 말한다.

캡슐화


1. 애플리케이션계층에서 데이터가 전송 계층으로 전달된다.
2. 전송 계층에서는 TCP헤더가 추가된 후 인터넷 계층으로 전달된다.
3. 인터넷 계층에서 IP헤더가 추가된 후, 링크 계층으로 전달된다.
4. 링크계층에서는 프레임 헤더와 프레임 트레일러를 추가한 후 물리계층으로 전송이 진행된다.

비캡슐화


1. 캡슐화된 데이터를 받게 되면 링크계층에서 프레임헤더, 프레임 트레일러를 제거 후 인터넷 계층으로 전달
2. 인터넷 계층에서 패킷에서 IP헤더 제거 후 전송계층으로 전달
3. 전송 계층에서도 TCP헤더를 제거 후 애플리케이션 계층으로 전달
4. 최종적으로 애플리케이션에서 데이터(메세지)를 수신.

[참고자료]

profile
개발 기록장

1개의 댓글

comment-user-thumbnail
2023년 8월 8일

정보 감사합니다.

답글 달기