[네트워크 상식 12] TCP/IP 계층구조에 대해 알아보자
관리자 | 2023-12-13 | 조회 18
[네트워크 상식] TCP/IP 계층구조에 대해 알아보자
[그림 2-9]는 TCP/IP를 사용하는 인터넷 환경에서 관련 프로토콜의 계층 구조를 설명한다. 맨 위의 응용 프로그램은 TCP와 UDP를 사용해 데이터 송수신 기능을 수행하지만, 네트워크 계층의 IP 프로토콜을 직접 사용하기도 한다.
ICMP와 ARP/RARP는 네트워크 계층에 소속되어 IP 동작을 도와주는 기능을 한다.
네트워크 계층의 IP는 사용자 데이터를 전송하는 프로토콜이다. IP의 동작 과정에서 전송 오류가 발생하는 경우를 대비해 오류 정보를 전송하는 목적으로 ICMP(Internet Control Message Protocol)를 사용한다.
ICMP는 IP 프로토콜과 같은 계층으로 간주할 수 있지만, ICMP에서 전송하는 ICMP 메시지는 IP에 캡슐화되어 전송된다.
ARP와 RARP
TCP/IP 모델에서 사용하는 주소는 데이터 링크 계층의 MAC 주소, 네트워크 계층의 IP 주소, 전송 계층의 포트번호다. 포트 번호는 사용자 프로그램 환경에서 사용되므로, 번호 할당과 관리가 다른 계층 프로토콜의 동작에 크게 영향을 미치지 않는다.
IP 주소와 MAC 주소는 프로토콜의 동작 특성상 추가로 고려할 사항이 있다. 예를 들어, 계층 2 프로토콜을 이용해 데이터를 전송하려면 목적지 호스트의 MAC 주소가 필요하다. 자신의 IP 주소와 MAC 주소는 쉽게 얻을 수 있지만 수신자의 주소는 다르게 처리된다. 즉, 상대방의 IP 주소는 응용 프로그램 사용자로부터 입력되지만, 상대방 MAC 주소 정보는 어디서도 얻을 수 없다. 따라서 사용자로부터 입력된 IP 주소를 이용해 MAC 주소를 구하는 기능이 필요한데, 이것을 ARP(Address Resolution Protocol)가 담당한다.
일반적으로 호스트의 IP 주소는 하드 디스크의 특정 위치에 보관한다. 하드 디스크가 없는 시스템은 LAN 카드에 내장된 자신의 MAC 주소는 알지만, 자신의 IP 주소는 알 수 없다. 그러므로 MAC 주소를 IP 주소로 변환하는 RARP(Reverse Address Resolution Protocol)가 필요하다.
데이터를 전송하는 프로토콜인 IP가 동작하는 과정에서는 전송 오류가 발생할 수 있다. 오류 발생을 송신자에게 통지하려고 ICMP(Internet Control Message Protocol)를 사용한다. ICMP는 오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며, IP 프로토콜에 캡슐화되어 전송되지만 IP와 같은 계층으로 취급된다.
TCP와 UDP
TCP와 UDP는 시스템 운영체제인 커널(Kernel) 내부에 구현되므로 일반 사용자가 이 기능을 직접 이용할 수는 없다.
대신 소켓(Socket) 인터페이스를 이용해 운영체제가 제공하는 시스템콜 기능을 프로그램에서 호출하는 방식으로 사용한다.
TCP는 연결형 서비스를 제공하고, UDP는 비연결형 서비스를 제공한다.
따라서 TCP는 Host가 보낸 패킷을 상대 Host가 받았는지 확인하므로 1:1 통신으로 연결하고 패킷의 신뢰성은 높지만 속도는 느리다는 특징이 발생하며, UDP는 Host가 보낸 패킷을 상대 Host가 수신했는지 확인을 하지 않는 비연결형이므로 1:N 통신이 가능하고, 속도는 빠르지만 신뢰성은 낮다는 특징이 있다.
통상 인터넷은 TCP/IP 프로토콜을 이용하여 인터넷이 가능하고,
서버/클라이언트 구조에서는 UDP/IP 프로토콜을 사용한다.
참조문헌: 데이터 통신과 컴퓨터 네트워크