[Windows Socket]TCP/IP 프로토콜 구조
TCP/IP 프로토콜 구조
(1) 호스트 : 최종 사용자로써 응용 프로그램을 수행하는 주체가 되며, 인터넷에 연결된 PC, 노트북, 휴대전화 등이 여기에 속한다.
(2) 라우터 : 호스트에서 생성된 데이터를 여러 네트워크를 거쳐 전송함으로써 서로 다른 네트워크에 속한 호스트 간에 데이터를 교환할 수 있게 하는 장비이다.
(3) 통신 프로토콜 : 호스트와 라우터, 라우터와 라우터, 호스트와 호스트가 통신하기위해 정해진 절차와 방법이다.
(4) ① ~ ④ : 상호 약속한 프로토콜을 이용해 통신을 수행
(5) TCP/IP 프로토콜 : 인터넷에서 사용하는 핵심 프로토콜인 TCP와 IP를 비롯한 각종 프로토콜을 총칭하는 말이다.
TCP/IP 프로토콜은 위 그림과 같이 일반적으로 운영체제의 일부로 구현되며, 응용 프로그램은 운영체제가 제공하는 TCP/IP 프로토콜의 서비스를 사용해 통신하다.
프로토콜 계층
위의 그림은 프로토콜을 기능별로 나누어 계층을 이룬것이다.
(1) 네트워크 접근 계층 : 물리적 네트워크를 통한 실제 데이터 송수신을 담당한다.
- 물리적인 신호를 처리해 데이터를 송수신하는 네트워크 하드웨어
- 운영체제가 제공하는 장치 드라이버
- 흔히 사용하는 이더넷(Ethernet)에서는 48비트 물리 주소를 사용
(2) 인터넷 계층 : 네트워크 접근 계층의 도움을 받아 데이터를 목적지 호스트까지 전달하는 역할을 한다.
- IP 주소(호스트 식별 번호) 사용
- 라우팅 : 데이터를 목적지까지 전달하는 일련의 작업
(3) 전송 계층 : 최종 통신 목적지(호스트에 실행하고 있는 프로세스)를 지정하고 오류 없이 데이터를 전송하는 역할을 한다.
- 인터넷 계층의 IP가 제공하는 전송 서비스는 신뢰성이 없어 데이터 손실이 발생할 수 있는데, 전송 계층은 손실된 데이터가 목적지에 전달되는 일을 방지한다.
- 포트 번호 : 프로세스를 식별하는 번호
- 전송 계층에 해당하는 TCP/IP 프로토콜은 TCP와 UDP가 있다.
- TCP와 UDP의 특징
TCP |
UDP |
연결형(connection-oriented) 프로토콜
|
비연결형(connectionless) 프로토콜
|
신뢰성 있는 데이터 전송
|
신뢰성 없는 데이터 전송
|
일대일 통신(unicast) |
일대일 통신(unicast), 일대다 통신(broadcast, multicast) |
바이트 스트림(byte-streadm) 서비스
|
데이터 그램(datagram) 서비스
|
(4) 응용 계층 : 전송 계층을 기반으로 한 다수의 프로토콜과 이 프로토콜을 사용하는 응용 프로그램을 포괄한다.
- Telnet, FTP, HTTP, SMTP 등이 있다.