NetworkJun 16, 2025

TCP/IP 4 layer model

TCP/IP 4 layer model

TCP/IP 4 계층 모델

인터넷 프로토콜 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고 받는 데 쓰이는 프로토콜의 집합이다. 이를 TCP/IP 4계층 모델 혹은 OSI 7계층 모델로 설명하기도 한다. TCP/IP 4계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성된다.



목차



계층 구조

TCP/IP 4계층 모델은 4개의 계층으로 구성되어 있으며 OSI 7계층 모델과 많이 비교된다. TCP/IP 4계층 모델과 달리 OSI 7계층 모델은 Application 계층을 3개로 구분하고 Link 계층을 Data Link 계층과 Physical 계층으로 구분하며 Internet 계층을 Network 계층으로 부른다는 점에서 차이가 있다. 이 계층들은 특정 계층이 변경 되었을 때 다른 계층에 영향을 주지 않도록 설계되어 있다. 예를 들어 전송 계층에서 선택한 프로토콜이 TCP에서 UDP로 변경되더라도 다른 계층에 영향을 주지 않는다.


Application 계층

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

  • FTP(File Transfer Protocol): 파일 전송 프로토콜로, 파일을 서버와 클라이언트 간에 전송하는 데 사용된다.
  • SSH(Secure Shell): 보안 셸 프로토콜로, 원격 시스템에 안전하게 접속하고 명령을 실행하는 데 사용된다.
  • HTTP(Hypertext Transfer Protocol): 하이퍼텍스트 전송 프로토콜로, 웹 페이지를 요청하고 전송하는 데 사용된다.
  • SMTP(Simple Mail Transfer Protocol): 간단한 메일 전송 프로토콜로, 이메일을 전송하는 데 사용된다.
  • DNS(Domain Name System): 도메인 이름 시스템으로, 도메인 이름을 IP 주소로 변환하는 데 사용된다.

Transport 계층

Transport 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층이다. 연결 지향 데이터 스트림 지원, 신뢰성 있는 데이터 전송, 흐름 제어, 오류 제어 등의 기능을 제공한다. Application 계층과 Internet 계층 사이의 데이터가 전달될 때 중계 역할을 한다. 대표적으로 TCP와 UDP가 있다.

  • TCP(Transmission Control Protocol): 연결 지향 프로토콜로, 데이터의 신뢰성 있는 전송을 보장한다. packet 사이의 순서를 보장하고 수신 여부를 확인하며 '가상회선 packet 교환 방식'을 사용한다. - 가상회선 packet 교환 방식: 각 packet에 가상회선 식별자가 포함되며 모든 packet이 동일한 경로를 통해 전송된다. 모든 packet을 전송하면 가상회선이 해제되고 packet들은 전송된 순서대로 도착하는 특징이 있다.

  • UDP(User Datagram Protocol): 비연결 지향 프로토콜로, 데이터의 신뢰성 있는 전송을 보장하지 않는다. 순서 보장과 수신 여부 확인을 하지 않고 빠른 송수신을 위해 '데이터그램 packet 교환 방식'을 사용한다. - 데이터그램 packet 교환 방식: 각 packet은 독립적으로 전송되며, 최적의 경로를 선택하여 전송된다. 하나의 메시지에서 분할된 여러개의 packet이 서로 다른 경로를 통해 전송될 수 있으며, 도착 순서가 보장되지 않는다.


TCP 연결 과정(3-way handshake)

TCP는 신뢰성을 보장하기 위해 '3-way handshake' 과정을 거쳐 연결을 설정한다.

  1. SYN(Synchronize): 클라이언트는 서버에 클라이언트의 ISN(Initial Sequence Number)을 포함한 SYN packet을 보낸다. ISN은 새로운 TCP 연결의 첫 번째 packet에 할당된 임의의 시퀀스 번호이며 이는 장치마다 다를 수 있다.
  2. SYN-ACK(Synchronize-Acknowledge): 서버는 클라이언트의 SYN packet을 수신하고, 자신의 ISN을 포함한 SYN-ACK packet을 클라이언트에게 보낸다. 이때 ACK 번호는 클라이언트의 ISN + 1이 된다.
  3. ACK(Acknowledge): 클라이언트는 서버의 SYN-ACK packet을 수신하고, 서버의 ISN + 1을 ACK 번호로 하는 ACK packet을 서버에게 보낸다. 이제 TCP 연결이 설정되었으며, 데이터 전송이 가능해진다.

TCP는 이 과정으로 인해 신뢰성이 있는 프로토콜이라고 하며 UDP는 이 과정이 없기 때문에 신뢰성이 없는 프로토콜이라고 한다.


TCP 연결 해제 과정(4-way handshake)

TCP 연결을 해제할 때는 '4-way handshake' 과정을 거친다.

  1. 클라이언트는 서버에게 연결을 종료하고 싶다는 FIN packet을 보낸다. 클라이언트는 FIN_WAIT_1 상태로 전환되고 서버의 응답을 기다린다.
  2. 서버는 클라이언트의 FIN packet을 수신하고, ACK packet을 클라이언트에게 보낸다. 서버는 CLOSE_WAIT 상태로 전환된다. 클라이언트가 ACK packet을 수신하면 FIN_WAIT_2 상태로 전환된다.
  3. 서버는 ACK packet을 클라이언트에게 보낸 후, 일정 시간이 지나면 FIN packet을 클라이언트에게 보낸다. 서버는 LAST_ACK 상태로 전환된다.
  4. 클라이언트는 서버의 FIN packet을 수신하고, ACK packet을 서버에게 보낸다. 클라이언트는 TIME_WAIT 상태로 전환된다. 서버는 ACK packet을 수신하면 CLOSED 상태로 전환된다. 클라이언트는 일정 시간 후 CLOSED 상태로 전환된다.

이 과정을 통해 TCP 연결이 안전하게 종료된다.


TIME_WAIT 상태가 존재하는 이유

  1. 클라이언트가 마지막 ACK packet을 서버에게 보낸 후, 서버가 ACK packet을 수신하지 못할 경우를 대비한다. 이 경우 클라이언트는 서버가 ACK packet을 수신했는지 확인하기 위해 일정 시간 동안 TIME_WAIT 상태를 유지한다.
  2. 이전 연결에서 사용된 시퀀스 번호가 새로운 연결에서 재사용되는 것을 방지한다. 소켓을 바로 삭제하고 새로운 소켓을 생성했을 때, 이전 연결에서 보낸 packet이 오랜 시간 지연돼서 도착한 경우 새로 연결된 소켓의 packet으로 인식될 수 있다. TIME_WAIT 상태를 유지하며 소켓을 늦게 삭제함으로써 이러한 문제를 방지한다.

Internet 계층

Internet 계층은 네트워크 간의 데이터 전송을 담당하는 계층이다. 이 계층은 packet을 목적지까지 전달하기 위해 라우팅과 주소 지정 기능을 제공한다. 대표적으로 IP, ARP, ICMP 등이 있다. 상대방이 packet을 제대로 수신했는지 보장하지 않는 비연결 지향 프로토콜이다.

  • IP(Internet Protocol): 인터넷 프로토콜로, packet을 목적지까지 전달하는 데 사용된다. IP 주소를 사용하여 packet의 출발지와 목적지를 식별한다.
  • ARP(Address Resolution Protocol): 주소 결정 프로토콜로, IP 주소를 MAC 주소로 변환하는 데 사용된다. 로컬 네트워크에서 IP 주소를 사용하여 장치를 찾는 데 필요하다.
  • ICMP(Internet Control Message Protocol): 인터넷 제어 메시지 프로토콜로, 네트워크 상태를 모니터링하고 오류 메시지를 전송하는 데 사용된다. 예를 들어 ping 명령은 ICMP Echo Request와 Echo Reply 메시지를 사용하여 네트워크 연결을 확인한다.

Link 계층은 전선, 광섬유, 무선 등 물리적인 매체를 통해 데이터를 전송하며 장치 간에 신호를 주고 받는 '규칙'을 정의하는 계층이다. 이를 물리 계층과 데이터 링크 계층으로 나누기도 한다. 물리 계층은 유무선 LAN을 통해 0과 1로 이루어진 데이터를 전송하는 계층이다. 데이터 링크 계층은 '이더넷 프레임'을 통해 오류 확인, 흐름 제어, 접근 제어 등의 기능을 제공하는 계층이다.

유선 LAN 유선 LAN을 이루는 이더넷은 IEEE 802.3 프로토콜을 따르며 전이중화 통신을 지원한다.

  • 전이중화 통신(Full Duplex Communication): 양쪽 장치가 동시에 송수신할 수 있는 방식이다. 송신로와 수신로로 나누어져있으며, 현대의 고속 이더넷은 이 방식을 기반으로 통신하고 있다.

  • CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

    : 전이중화 통신이 사용되기 이전에 사용되던 방식으로, 다수의 장치가 동일한 통신 매체를 공유할 때 충돌을 감지하고 해결하는 프로토콜이다. 장치가 데이터를 전송하기 전에 매체가 사용 중인지 확인하고, 충돌이 발생하면 재전송을 시도한다.


유선 LAN에 사용되는 케이블

  • UTP(Unshielded Twisted Pair): 가장 일반적으로 사용되는 케이블로, 4쌍의 꼬인 선으로 구성되어 있다. 외부 간섭에 강하고 설치가 용이하다.
  • STP(Shielded Twisted Pair): UTP 케이블에 추가적인 차폐를 제공하여 외부 간섭을 더욱 줄인다. 주로 노이즈가 많은 환경에서 사용된다.
  • Coaxial Cable: 중앙 도체와 절연체, 외부 차폐로 구성된 케이블로, 주로 케이블 TV나 인터넷 서비스에 사용된다. 신호 손실이 적고 긴 거리에서도 안정적인 전송이 가능하다.
  • Fiber Optic Cable: 광섬유 케이블로, 빛을 이용하여 데이터를 전송한다. 높은 대역폭과 긴 전송 거리를 제공하며, 전자기 간섭에 강하다. 주로 장거리 통신이나 고속 인터넷 서비스에 사용된다. 가격이 비싸고 외부 충격에 약한 단점이 있다.

무선 LAN과 주파수 무선 LAN(Wireless LAN)은 무선 신호 전달 방식을 이용하여 데이터를 전송하는 네트워크이다. 비유도 매체인 공기에 주파수를 쏘아 무선 통신망을 구축하며 주로 2.4GHz와 5GHz 대역을 사용한다. 2.4GHz 대역은 넓은 범위에서 사용할 수 있으며 벽을 통과하는 능력이 좋지만, 속도가 느리고 간섭이 많다. 5GHz 대역은 사용할 수 있는 채널이 많고 동시에 사용할 수 있는 장치가 많으며 속도가 빨라 비교적 깨끗한 전파 환경을 제공하지만, 범위가 좁고 벽을 통과하는 능력이 떨어진다.

  • Wi-fi(Wireless Fidelity): 무선 LAN의 표준으로, IEEE 802.11 프로토콜을 기반으로 한다. Wi-Fi는 AP(Access Point)를 통해 장치들이 무선으로 네트워크에 연결될 수 있도록 한다. 흔히 이것을 공유기라고 부르며 이를 통해 유선 LAN에 흐르는 인터넷 신호를 무선으로 전송한다. 무선 LAN을 이용한 기술로는 Wi-fi 이외에 Bluetooth, Zigbee, NFC 등이 있다.

  • BSS(Basic Service Set): 무선 LAN에서 AP와 연결된 장치들의 집합을 의미한다. BSS는 AP를 중심으로 연결된 장치들로 구성되며, AP는 BSS의 중심 역할을 한다. BSS는 SSID(Service Set Identifier)를 통해 식별된다. 실제 공유기 단말 하나에 매치된다고 볼 수 있다.

  • ESS(Extended Service Set): 여러 개의 BSS가 연결되어 하나의 네트워크를 형성하는 것을 의미한다. ESS는 AP를 통해 서로 다른 BSS 간에 통신할 수 있도록 하며, 이를 통해 더 넓은 범위의 무선 네트워크를 구축할 수 있다. ESS는 동일한 SSID를 공유하는 여러 BSS로 구성된다. 예를 들어 대학교 캠퍼스에서 동일한 SSID를 사용하는 여러 AP가 존재하는 경우를 생각할 수 있다. 이 경우 각 AP는 서로 다른 BSS를 형성하지만, 동일한 SSID를 사용하여 ESS를 구성한다.


이더넷 프레임 이더넷 프레임은 데이터 링크 계층에서 사용되는 데이터 전송 단위이다. Preamble, SFD, DMAC, SMAC, EtherType, Payload, CRC로 구성된다.

  • Preamble: 프레임의 시작을 알리는 7바이트의 시퀀스이다. 수신 장치가 프레임의 시작을 인식할 수 있도록 도와준다.
  • SFD(Start Frame Delimiter): 프레임의 시작을 나타내는 1바이트의 시퀀스이다. Preamble 다음에 위치하며, 프레임의 시작을 명확히 구분한다.
  • DMAC(Destination MAC Address): 목적지 MAC 주소로, 프레임이 전송될 대상 장치의 MAC 주소를 포함한다. 6바이트 길이의 주소이다.
  • SMAC(Source MAC Address): 출발지 MAC 주소로, 프레임을 전송하는 장치의 MAC 주소를 포함한다. 6바이트 길이의 주소이다. - MAC 주소(Medium Access Control Address): 네트워크 인터페이스 카드(NIC)에 할당된 고유한 식별자로, 48비트(6바이트) 길이이다. MAC 주소는 16진수로 표현되며, 일반적으로 12자리의 16진수 숫자로 나타낸다. 예를 들어, 00:1A:2B:3C:4D:5E와 같은 형식으로 표시된다.
  • EtherType: 이더넷 프레임의 유형을 나타내는 필드로, 프레임의 페이로드가 어떤 프로토콜을 사용하는지를 2바이트로 표시한다. 예를 들어 IPv4는 0x0800, IPv6는 0x86DD로 표시된다.
  • Payload: 실제 데이터가 포함되는 부분으로, 전송할 데이터의 크기에 따라 가변적이다. 최대 1500바이트까지 허용된다.
  • CRC(Cyclic Redundancy Check): 순환 중복 검사로, 프레임의 무결성을 확인하기 위한 4바이트의 체크섬이다. 프레임이 전송 중에 손상되었는지 확인하는 데 사용된다.

계층 간 데이터 송수신 과정

TCP/IP 4계층 모델에서 데이터가 송수신되는 과정은 다음과 같다.

  1. Application 계층
    • 데이터가 생성된다.
    • 예를 들어, 웹 브라우저에서 HTTP 요청을 생성한다.
  2. Transport 계층
    • 데이터가 TCP 또는 UDP 세그먼트로 캡슐화된다.
    • TCP의 경우, 데이터는 세그먼트로 나뉘고, UDP의 경우 데이터그램으로 나뉜다.
    • 이때, 송신자와 수신자의 포트 번호가 포함된 헤더가 추가된다.
  3. Internet 계층
    • IP 프로토콜에 의해 라우팅 정보가 추가되며 packet으로 캡슐화된다.
    • IP 주소가 포함된 헤더가 추가되어 packet이 목적지까지 전달될 수 있도록 한다.
  4. Link 계층
    • packet이 이더넷 프레임으로 캡슐화된다.
    • MAC 주소가 포함된 헤더가 추가되어 물리적인 네트워크를 통해 전송될 수 있도록 한다.
  5. 물리 계층
    • 이더넷 프레임이 전기 신호, 광 신호 또는 무선 신호로 변환되어 전송된다.
  6. 수신 측에서는 이 과정을 역순으로 수행하여 데이터를 복원한다.
    1. 물리 계층에서 신호를 수신한다.
    2. Link 계층에서 이더넷 프레임을 해제한다.
    3. Internet 계층에서 IP packet을 해제한다.
    4. Transport 계층에서 TCP 또는 UDP 세그먼트를 해제한다.
    5. Application 계층에서 데이터를 복원하여 응용 프로그램에 전달한다.

이러한 계층 구조는 각 계층이 독립적으로 동작할 수 있도록 하여, 네트워크 프로토콜의 유연성과 확장성을 제공한다.



PDU

네트워크의 각 계층에서 전송되는 데이터 단위를 PDU(Protocol Data Unit)라고 한다. PDU는 각 계층에서 처리되는 데이터의 형태를 나타내며, 계층에 따라 다르게 정의된다. 제어 관련 정보들이 포함된 헤더와 실제 데이터(payload)로 구성된다.

  • Application 계층: 메시지(Message)
    • 응용 프로그램에서 처리되는 데이터 단위로, HTTP 요청, 이메일 메시지 등이 이에 해당한다.
  • Transport 계층: 세그먼트(Segment) 또는 데이터그램(Datagram)
    • TCP 프로토콜을 사용하는 경우 세그먼트라고 하며, UDP 프로토콜을 사용하는 경우 데이터그램이라고 한다.
    • 헤더에는 송신자와 수신자의 포트 번호, 시퀀스 번호 등이 포함된다.
  • Internet 계층: 패킷(Packet)
    • IP 프로토콜에 의해 캡슐화된 데이터 단위로, 헤더에는 송신자와 수신자의 IP 주소, 프로토콜 정보 등이 포함된다.
  • Link 계층: 프레임(Frame)
    • 물리적인 네트워크를 통해 전송되는 데이터 단위로, 헤더에는 송신자와 수신자의 MAC 주소, EtherType 등이 포함된다.
    • 이더넷 프레임이 대표적인 예이다.

이러한 PDU는 각 계층에서 데이터가 어떻게 처리되고 전송되는지를 이해하는 데 중요한 역할을 한다. 대표적으로 HTTP request, response에서 사용되는 header와 body를 생각할 수 있다.

Share this post

N