TCP/IP 란?

TCP/IP는 네트워크 프로토콜 중 하나로, 인터넷에서 데이터를 전송하는 데 사용됩니다. TCP는 전송 제어 프로토콜(TCP, Transmission Control Protocol)의 약자이며, IP는 인터넷 프로토콜(IP, Internet Protocol)의 약자입니다. TCP는 신뢰성이 높은 연결 지향적인 프로토콜이며, IP는 비신뢰성이 높은 비연결적인 프로토콜입니다. 이 둘을 결합하여 TCP/IP라는 프로토콜 스택을 구성하고, 데이터 통신에 사용됩니다.

TCP/IP는 다음과 같은 계층 구조를 가지고 있습니다.

  • 응용 계층(Application Layer): HTTP, FTP, SMTP 등의 프로토콜을 사용하여 응용 프로그램과 통신합니다.
  • 전송 계층(Transport Layer): TCP, UDP 등의 프로토콜을 사용하여 데이터의 전송을 관리합니다.
  • 인터넷 계층(Internet Layer): IP 프로토콜을 사용하여 다른 네트워크와의 통신을 관리합니다.
  • 네트워크 액세스 계층(Network Access Layer): 이더넷, 와이파이 등의 네트워크 기술을 사용하여 물리적인 데이터 전송을 관리합니다.

Python을 사용하여 간단한 TCP/IP 클라이언트 코드를 작성해보겠습니다.

import socket

HOST = '127.0.0.1' # 서버 IP 주소
PORT = 12345 # 서버 포트 번호

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT)) # 서버에 연결
    s.sendall(b'Hello, world') # 데이터 전송
    data = s.recv(1024) # 데이터 수신
print('Received', repr(data)) # 수신된 데이터 출력

위 코드는 localhost(127.0.0.1)의 12345번 포트로 연결하여 "Hello, world"라는 데이터를 전송하고, 서버로부터 수신된 데이터를 출력하는 코드입니다.

실제 클라이언트/서버 프로그램을 작성할 때는 보다 복잡한 코드가 필요하며, 다양한 예외 처리 등을 고려해야 합니다.