TCP IP
기술노트
🌐 TCP & IP
TCP/IP는 인터넷에서 컴퓨터들이 서로 통신하는 데 사용되는 핵심적인 통신 프로토콜의 모음입니다. 인터넷 프로토콜 스위트(Internet Protocol Suite)라고도 불리며, TCP와 IP가 가장 중요한 역할을 하기 때문에 보통 TCP/IP로 통칭됩니다.
📍 IP (Internet Protocol)
IP는 데이터 조각(패킷, Packet)들이 목적지까지 정확하게 찾아갈 수 있도록 경로를 지정하고 주소를 부여하는 역할을 합니다. 각 컴퓨터는 IP 주소라는 고유한 주소를 가지며, 이 주소를 통해 서로를 식별합니다.
- 역할 : 데이터 패킷의 주소 지정 및 경로 설정 (Routing)
- 특징 : 비연결형(Connectionless), 비신뢰성(Unreliable). 패킷이 순서대로 도착하거나, 중간에 유실되지 않음을 보장하지 않습니다. (편지를 보내는 것과 비슷)
🤝 TCP (Transmission Control Protocol)
TCP는 IP 위에서 동작하며, 데이터가 신뢰성 있게, 순서대로, 오류 없이 전달되도록 보장하는 역할을 합니다. IP가 데이터의 주소와 경로를 담당한다면, TCP는 데이터 전송의 품질을 책임집니다.
- 역할 : 신뢰성 있는 데이터 전송 보장
- 특징 :
> * 연결형 (Connection-oriented) : 데이터를 보내기 전에 상대방과 '3-way-handshake'라는 과정을 통해 연결을 설정합니다. > * 흐름 제어 (Flow Control) : 수신 측이 감당할 수 있는 만큼만 데이터를 보냅니다. > * 혼잡 제어 (Congestion Control) : 네트워크가 혼잡할 때 데이터 전송량을 조절합니다. > * 오류 제어 (Error Control) : 데이터가 중간에 유실되면 재전송을 요청합니다.
💡 개발자 핵심 Point
- 우리가 매일 사용하는 웹(HTTP), 이메일(SMTP), 파일 전송(FTP) 등 대부분의 인터넷 서비스는 신뢰성이 중요한 TCP 위에서 동작합니다.
- 반면, 실시간 스트리밍이나 온라인 게임처럼 약간의 데이터 손실이 있더라도 속도가 더 중요한 서비스는 UDP(User Datagram Protocol)를 사용하기도 합니다. UDP는 TCP의 복잡한 제어 기능이 없는, 더 빠르고 간단한 프로토콜입니다.
- 네트워크 프로그래밍을 하거나 통신 문제를 해결할 때, TCP/IP의 계층적 구조와 각 프로토콜의 역할을 이해하는 것은 매우 중요합니다.