TCP/IP 4계층 모델

sliver gun·2026년 9월 26일

1. TCP/IP 4계층 모델

OSI 7계층 모델과 비교했을 때 TCP/IP 4계층 모델은 비교적 압축적으로 표현된 느낌이다. 이 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합이며 프로토콜의 네트워킹 범위에 따라 4계층으로 나누었다. 각 계층은 변경된다해도 다른 계층이 영향 받지 않게 설계된 것이 특징이다.

위와 같이 컴퓨터끼리 실제로 네트워킹을 가장 빠르고 효율적으로 처리할 수 있는 구조로 4계층으로 나뉜 TCP/IP 4계층 구조의 각 계층을 알아볼 것이다.

애플리케이션 계층

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

OSI 7계층 기준 애플리케이션 계층, 프레젠테이션 계층, 세션 계층을 통합한 계층인만큼 실질적으로 사람에게 서비스를 제공하는 층으로 보면 된다.

  • FTP : 장치와 장치간 파일 전송에 쓰이는 표준 통신 프로토콜
  • SSH : 보안되지 않은 네트워크에서 네트워크 서비스를 안전히 운영하기 위한 암호화 네트워크 프로토콜
  • HTTP : 웹 브라우저와 웹 서버가 인터넷에서 서로 데이터를 주고받기 위해 사용하는 표준 프로토콜
  • SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
  • DNS : 도메인과 IP 주소를 매핑해주는 서버

전송 계층

송신자와 수신자를 연결하는 통신 서비스를 제공한다. 애플리케이션과 인터넷 계층 사이의 데이터를 중계하는 역할을 한다. 대표적으로 TCP와 UDP가 있는데 TCP는 가상회선 패킷 교환 방식을 쓰고 UDP는 데이터그램 패킷 교환 방식을 쓴다.

가상회선 패킷 교환 방식은 송신 호스트에서 수신 호스트로 보낼 때 가상회선 식별자를 통해 패킷을 순서대로 보내는 방식이다.

데이터그램 패킷 교환 방식은 각 패킷이 독립적으로 이동하며 최적의 경로를 선택해 간다. 즉, 패킷의 도착 순서가 다를 수 있다.

인터넷 계층

장치로부터 받은 패킷을 지정된 목적지로 전송하기 위해 사용되는 계층. 일단 패킷을 던지듯 전송하기에 상대방이 잘 도착했는지 확인하지 않는다.

링크 계층

전선, 광섬유, 무선 등으로 데이터를 실질적으로 전달하고 장치간 신호를 주고받는 프로토콜을 정하는 계층이다. 물리 계층과 데이터 링크 계층으로 나누기도 하는데 물리 계층은 0과 1로 이루어진 데이터를 보내는 계층이고 데이터 링크 계층은 '이더넷 프레임(택배상자)'을 통해 에러 확인, 흐름 제어 등을 담당한다.


2. TCP 연결 성립 및 해제 과정

TCP는 신뢰성을 가지는 프로토콜이다. 이 신뢰성을 확보할 때 3-way handshake라는 작업을 한다.

데이터를 주고받기 전에 클라이언트와 서버가 서로 연결을 맺을 준비가 되었는지 확인하는 과정으로 3번의 패킷을 주고받기에 3-way handshake라고 한다.

  1. SYN 단계
    클라이언트가 서버에게 "연결하고 싶다"는 의미로 SYN(Synchronize) 패킷을 보낸다.
    이때 클라이언트 자신의 ISN을 함께 담아서 보낸다.

  2. SYN + ACK 단계
    서버는 클라이언트의 SYN을 받고 나서, 두 가지 의미를 담아 응답한다.

    • 클라이언트의 요청을 잘 받았다는 ACK(Acknowledge)
    • 서버도 연결을 시작하겠다는 SYN

    이 두 가지를 한 번에 묶어서 SYN + ACK 패킷으로 보낸다.

  3. ACK 단계
    클라이언트는 서버의 SYN + ACK를 받고, 마지막으로 서버에게 ACK를 보낸다.
    이때 승인번호는 서버의 ISN에 1을 더한 값을 보낸다.

TCP를 연결할 때는 3번 주고 받았다면, 해제할 때는 4번 주고 받는 4-way handshake 과정이 발생한다.

  1. FIN 단계
    클라이언트가 "더 이상 보낼 데이터가 없다"라고 FIN(Finish) 세그먼트를 보낸다.
    클라이언트는 FIN을 보낸 직후 FIN_WAIT_1 상태로 들어가 서버의 응답을 기다린다.

  2. ACK 단계
    서버는 클라이언트의 FIN을 받았다는 의미로 ACK를 보낸다. 서버는 이때 CLOSE_WAIT 상태에 들어간다.
    클라이언트는 서버의 ACK를 받으면 FIN_WAIT_2 상태로 넘어가서, 이제 서버가 FIN을 보내주기를 기다린다.

  3. FIN 단계
    서버도 남은 데이터 전송을 마치고 나면, 일정 시간 뒤에 클라이언트에게 자신의 FIN 세그먼트를 보낸다.

  4. ACK 단계
    클라이언트는 서버의 FIN을 받고 TIME_WAIT 상태로 들어가면서, 마지막으로 서버에게 ACK를 보낸다.
    서버는 이 ACK를 받으면 CLOSED 상태가 되어 연결이 종료된다.
    클라이언트는 TIME_WAIT 상태로 어느정도 대기한 뒤에 완전히 종료하는데, 이 때 대기하는 이유는 지연 패킷을 대비하기 위함과 두 장치가 모두 연결이 닫혔는지 확인이 필요하기 때문이다.


3. 유선 LAN과 무선 LAN

이더넷 IEEE802.3
유선 LAN을 이루는 이더넷이 따르는 프로토콜이며 전이중화 통신을 쓴다.

전이중화 통신
통신할 때 양쪽 장치가 동시에 송수신할 수 있는 방식
이전에는 CSMA/CD라는 반이중화 통신을 썼다. 만약 데이터를 보낸 후 충돌이 발생하면 재전송하는 방식이다.

트위스트 페어 케이블

하나의 케이블같지만 8개의 구리선을 꼬아 묶은 케이블이다.
UTP 케이블과 RJ-45 커넥터로 이루어져있다.

광섬유 케이블
레이저를 이용해 통신하기에 엄청난 속도를 자랑한다.

무선 LAN(IEEE802.11)
무선 LAN은 수신과 송신을 같은 채널을 쓰기에 반이중화 통신을 사용한다.
주로 2.4GHz, 5GHz 대역을 써서 구축한다. 와이파이와 블루투스 등이 그 예시이며, BSS라는 기본 서비스 집합과 ESS라는 연결된 BSS그룹으로 묶을 수 있다.

반이중화 통신
전이중화 통신과는 다르게 동시에 통신이 불가능하고 서로 단방향 통신만 가능하다.
CSMA/CD가 그 예시이다.

이더넷 프레임
데이터 링크 계층이 전달받은 데이터의 에러를 검출하고 캡슐화하는데에 쓰이는 구조

  • Preamble : 이더넷 프레임의 시작을 알린다.
  • SFD : 다음 바이트부터 MAC 주소가 시작됨을 알린다.
  • DMAC, SMAC : 수신, 송신 MAC 주소
  • EtherType: 데이터 계층 위의 계층인 IP 프로토콜을 정의
  • Payload: 전달받은 데이터
  • CRC: 에러 확인 비트

0개의 댓글