
TCP/IP(Transmission Control Protocol / Internet Protocol)
- 인터넷에 연결된 서로 다른 기종의 컴퓨터 간에 데이터 송/수신이 가능하도록 도와주는 표준 프로토콜
- TCP 프로토콜과 IP 프로토콜의 결합적 의미로서 TCP가 IP보다 상위층에 존재
- 접속형 서비스, 전이중 전송 서비스, 신뢰성 서비스를 제공
- 네트워크 환경에 따라 여러 개의 프로토콜을 허용
- TCP 프로토콜의 기본 헤더 크기는 20byte이고 60byte까지 확장 가능
- OSI 표준 프로토콜과 가까운 네트워크 구조를 가진다.

TCP(Transmission Control Protocol)
- OSI 7계층의 전송 계층의 역할을 수행
- 서비스 처리를 위해 Multiplexing과 De-Multiplexing을 이용한다.
- 전이중 서비스와 스트림 데이터 서비스를 제공
IP(Internet Protocol)
- OSI 7계층의 네트워크 계층에 해당하며 비신뢰성 서비스를 제공
- 신뢰성이 부족한 비연결형 서비스를 제공하기 때문에 상위 프로토콜에서 이러한 단점을 보완해야 한다.
TCP/IP의 구조
링크계층(Link Layer)
인터넷 계층(Internet Layer)
- 주소 지정, 경로 설정을 제공
- 네트워크 계층
- 프로토콜 종류 : IP, ICMP, IGMP, ARP, RARP 등
🔸 IP(Internet Protocol)
- 비연결형 및 비신뢰성 전송 서비스를 제공
- 라우팅과 단편화 기능을 수행
- 데이터그램이라는 데이터 전송 형식을 가진다.
- 각 데이터그램이 독립적으로 처리되고 목적지까지 다른 경로를 통해 전송될 수 있어 데이터그램은 전송 순서와 도착 순서가 다를 수 있다.
- 비연결성이기 때문에 송신지가 여러 개인 데이터 그램을 보내면서 순서가 뒤바뀌어 도달할 수 있으며 IP 프로토콜의 헤더 길이는 최소 20~60byte이다.
🔸 ICMP(Internet Control Message Protocol)
- IP 프로토콜에서는 오류 보고와 수정을 위한 메커니즘이 없기 때문에 이를 보완하기 위해 설계된 프로토콜
- 메시지는 크게 오류 보고(Error-Reporting)메시지와 질의(Auery) 메시지로 나눌 수 있다.
- 메시지 형식은 8바이트의 헤더와 가변 길이의 데이터 영역으로 분리된다.
- 에코 메시지는 호스트가 정상적으로 동작하는 지를 결정하는데 사용할 수 있다.
🔸 IGMP(Internet Group Management Protocol)
- 시작지 호스트에서 여러 목적지 호스트로 데이터를 전송할 때 사용되는 프로토콜
- 멀티캐스트 그룹에 가입한 네워크 내의 호스트를 관리
🔸 ARP(Address Resolution Protocol)
- 논리 주소(IP 주소)를 물리 주소(MAC 주소)로 변환하는 프로토콜
- 네트워크에서 두 호스트가 성공적으로 통신하기 위하여 각 하드웨어의 물리적인 주소 문제를 해결해 줄 수 있다.
🔸 RARP(Reverse Address Resolution Protocol)
- 호스트의 물리 주소(MAC 주소)로부터 논리 주소(IP 주소)를 구하는 프로토콜
- IP 호스트가 자신의 물리 네트워크 주소(MAC)는 알지만 IP 주소를 모르는 경우, 서버에게 IP 주소를 요청하기 위해 사용한다.
전송 계층(Transport Layer)
- 호스트 간 신뢰성 있는 통신을 제공
- 프로토콜 종류 : TCP, UDP
🔸 TCP(Transmission Control Protocol)
- 신뢰성 있는 연결 지향형 전달 서비스를 제공
- 순서 제어, 에러 제어, 흐름 제어 기능을 제공
- 전이중 서비스와 스트림 데이터 서비스를 제공
- 메시지를 캡슐화와 역캡슐화한다.
- 서비스 처리를 위해 다중화와 역다중화를 이용
🔸 UDP(User Datagram Protocol)
- 비연결형 및 비신뢰성 전송 서비스를 제공
- 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다.
- 수신된 데이터의 순서 재조정 기능을 지원하지 않는다.
- 복구 기능을 제공하지 않는다
🔸 응용 계층(Application Layer)
- 응용 프로그램 간의 데이터 송/수신을 제공
- 프로토콜 종류 : FTP, SMTP, SNMP, Telent 등