Skip to content

Latest commit

 

History

History
255 lines (167 loc) · 14.2 KB

2. TCP IP 4계층 모델.md

File metadata and controls

255 lines (167 loc) · 14.2 KB

TCP/IP 4계층 모델

목차

개요

TCP/IP 4계층 모델을 사용하여 네트워킹 과정을 설명한다.

핵심 용어

  • 인터넷 프로토콜 스위트(internet protocol suite): 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
  • 프로토콜: 컴퓨터 내부에서, 또는 컴퓨터간 데이터의 교환 방식을 정의하는 규칙 체계
  • 패킷: 컴퓨터 네트워크에서 데이터를 전송하는 단위
  • PDU(Protocol Data Unit): 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
  • 이더넷(Ethernet): 컴퓨터 네트워크 기술 중 가장 보편적으로 사용되는 유선 LAN(Local Area Network) 기술 중 하나

TCP/IP 계층 구조

보통 TCP/IP 4계층과 OSI 7계층 두 계층구조를 많이 비교한다.

image
  • 각 계층들은 특정 계층이 변경되었을 때, 다른 계층이 영향 받지 않도록 설계되어있다.

  • TCP/IP 4계층과 OSI 7계층의 차이점

    • TCP/IP 계층은 4개의 계층을 가지고 있다.
    • OSI 계층은 애플리케이션 계층을 3개로 나누고 링크 계층을 2개로 나눠서 표현한다.
    • OSI 계층은 인터넷 계층을 네트워크 계층이라 부른다.

애플리케이션 계층 (Application Layer)

  • 의미: 응용 프로그램이 사용되는 프로토콜 계층으로 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 계층이다.
    • ex) FTP, HTTP, SSH, SMTP, DNS 등

      FTP: 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜

      HTTP: World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 사용하는 프로토콜

      SSH: 보완되지 않은 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜

      SMTP: 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜

전송 계층 (Transport Layer)

  • 의미: 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층

  • 특징

    • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공할 수 있다.
    • 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계역할을 한다.
    • 대표적인 전송 계층: TCP, UDP

TCP와 UDP

TCP UDP
순서 보장 O X
수신 여부 확인 O X
패킷 교환 방식 가상회선 패킷 교환 방식 데이터그램 패킷 교한 방식
사용 예시 HTTP 통신, E-mail, 파일 전송, 메일 전송 등 DNS 조회, 스트리밍 서비스, 실시간 멀티미디어 전송 등
  • TCP의 경우 사용자 간 데이터 교환이 필요하고, 신뢰성이 요구되는 상황에서 주로 사용한다. 반면, UDP는 빠른 연결, 빠른 속도로 전송하고자 하며 실시간성이 보장되어야 하는 상황에서 사용한다.

가상회선 패킷 교환 방식: 각 패킷에 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식

데이터그램 패킷 교환 방식: 패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는데, 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를 수 있는 방식

TCP 연결 및 연결 해제 과정

TCP 연결 과정

TCP는 아래 3-way handshake 작업을 통해 신뢰성을 확보한다.

image
  1. SYN 단계: 클라이언트가 서버에 클라이언트의 ISN을 담아 SYN을 보낸다.
  2. SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다.
  3. ACK 단계: 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK을 서버에 보낸다.

SYN: SYNchronization의 약자, 연결 요청 플래그

ACK: ACKnowledgement의 약자, 응답 플래그

ISN: Initial Sequence Numbers의 약어, 초기 네트워크 연결을 할 때 할당한 32비트 고유 시퀀스 번호

TCP는 위 과정이 있기 때문에 신뢰성이 있는 계층이라고 하며, UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 한다.

TCP 연결 해제 과정

TCP는 아래 4-way handshake 과정을 통해 연결을 해제한다.

image
  1. 클라이언트가 연결을 닫으려고 할 때, FIN으로 설정된 세그먼트를 보낸다. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.
  2. 서버는 클라이언트로 ACK이라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트는 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다.
  3. 서버는 ACK을 보내고 일정 시간 이후 클라이언트에 FIN이라는 세그먼트를 보낸다.
  4. 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 된다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원 연결이 해제된다.

TIME_WAIT: 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태로 OS마다 시간은 조금씩 다를 수 있다.

  • TIME_WAIT의 이유

    1. 지연 패킷이 발생할 경우를 대비하기 위함

      → 패킷이 뒤늦게 도달하고 이를 처리하지 못하면 데이터 무결성 문제가 발생한다.

    2. 두 장치가 연결이 닫혔는지 확인하기 위함

    데이터 무결성(Data integrity): 데이터의 정확성과 일관성을 유지하고 보증하는 것

인터넷 계층 (Internet Layer)

  • 의미: 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층

    • ex) IP, ARP, ICMP 등
  • 특징

    • 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형적인 특징이 있다.

링크 계층 (Link Layer)

  • 의미: 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층

  • 물리 계층과 데이터 링크 계층으로 나누기도 한다.

    • 물리 계층: 유선 LAN과 무선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층

    • 데이터 링크 계층: '이더넷 프레임'을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층

유선 LAN

  • IEEE802.3 프로토콜 사용

  • 전이중화 통신 사용

    전이중화 통신: 양쪽 장치가 동시에 송수신할 수 있는 방식이다. 송신로와 수신로로 나눠서 데이터를 주고받으며, 현대의 고속 이더넷은 이 방식을 기반으로 통신한다.

  • 유선 LAN 케이블

    • 트위스트 페어 케이블: 여덟개의 구리선을 두 개씩 꼬아서 묶은 케이블. 구리선을 실드 처리하지 않고 덮은 UTP와 실드 처리하고 덮은 STP로 나뉘는데, 흔히 쓰이는 케이블은 UTP이다.

    • 광섬유 케이블: 광섬유로 만든 케이블. 레이저를 이용하여 통신하기 때문에 구리선과는 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능하다.

무선 LAN

  • IEEE802.11 프로토콜 사용

  • 반이중화 통신 사용

    반이중화 통신: 양쪽 장치가 서로 통신할 수 있지만, 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식이다. ex) CSMA/CA

    CSMA/CA: 반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식을 사용한다.

  • 무선 LAN(WLAN, Wireless Local Area Network) 주파수

    • 주파수 대역은 2.4GHz 대역 또는 5GHz 대역 중 하나를 사용한다.

    • wifi: 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술로, 이를 사용하기 위해선 무선 접속 장치(AP, Access Point)가 있어야 한다. 무선 LAN을 이용한 기술은 와이파이 뿐만 아니라 지그비, 블루투스 등이 있다.

    • BSS(Basic Service Set): 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신 가능한 구조를 말한다.

    • ESS(Extended Service Set): 하나 이상의 연결된 BSS 그룹을 말한다. 장거리 무선 통신을 제공하며, BSS보다 더 많은 가용성과 이동성을 지원한다.

      • BSS와 ESS

        image

이더넷 프레임

  • OSI 7계층 중 데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고 캡슐화한다.

  • 이더넷 프레임 구조

    image
    • Preamble: 이더넷 프레임이 시작임을 알린다
    • SFD(Start Frame Delimiter): 다음 바이트부터 MAC 주소 필스가 시작됨을 알린다
    • DMAC, SMAC: 수신, 송신 MAC 주소를 말한다
    • EtherType: 데이터 계층 위의 계층인 IP 프로토콜을 정의한다. ex) IPv4, IPv6
    • Payload: 전달받은 데이터
    • CRC: 에러 확인 비트

    MAC: 각 장치에 존재하는 LAN 카드의 식별번호. 6byte(48bit)로 구성된다.

계층 간 데이터 송수신 과정

데이터는 캡슐화 과정과 비캡슐화 과정을 거쳐 전송된다.

image

캡슐화 과정

  • 의미: 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정

    image
    • 애플리케이션 계층 → 전송 계층: '세그먼트' 또는 '데이터그램'화
    • 전송 계층 → 인터넷 계층: '패킷'화
    • 인터넷 계층 → 링크 계층: '프레임'화

비캡슐화 과정

  • 의미: 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정

    image

HTTP를 통해 웹 서버에 있는 데이터를 요청하면 일어나는 일?

  1. 어플리케이션 계층에서 전송 계층으로 요청 값들이 캡슐화 과정을 거쳐 전달된다.
  2. 다시 링크 계층을 통해 해당 서버와 통신을 한다.
  3. 해당 웹 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송된다.

PDU (Protocol Data Unit)

  • 의미: 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위

  • 특징

    • 제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성되어 있다.

    • 계층마다 부르는 명칭이 다르다.

      • 애플리케이션 계층: 메세지
      • 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
      • 인터넷 계층: 패킷
      • 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)

참고자료