인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP프로토콜을 사용하는 네트워크이다. 인터넷에 연결하고자 하는 호스트는 반드시 IP 프로토콜을 지원해야 하며, 전송 계층은 TCP나 UDP를 사용한다.
구현 환경
인터넷에 연결된 컴퓨터의 네트워크 구현 모델에서는 전송 계층까지의 기능을 시스템 공간인 운영체제 내부에 구현한다. 즉, 인터넷 환경에서 사용하는 TCP/IP와 하위 계층의 기능을 담당하는 ALN 카드 드라이버 루틴은 운영체제 영역에 속한다. TCP/IP를 이용하려면 사용자 공간에서 네트워크 응용 기능에 지원하는 프로그램을 작성해야 한다.
시스템 공간
TCP와 UDP는 시스템 운영 체제인 커널 내부에 구현되므로 일반 사용자가 이 기능을 직접 이용할 수는 없다. 대신 소켓 인터페이스라는 전송 계층의 프리미티브를 이용해야하는데, 소켓은 운영체제에서 시스템 콜 기능으로 구현되므로 사용자 플그램에서 이를 호출하는 방식으로 사용한다. TCP는 연결형 서비스를 제공한다. UDP는 비연결형 서비스를 제공한다.
인터넷에서 네트워크 계층은 IP로 구현되며, 네트워크 계층은 전송 패킷의 올바른 경로 선택 기능을 제공한다. 네트워크 계층 아래의 계층들은 LAN 카드와 LAN 카드를 구동하는 드라이버 루틴에 의해 구현된다.
사용자 공간
세션 계층부터 응용 계층까지의 기능은 사용자 프로그램으로 구현된다. 프로그래밍 환경에서 전송 계층의 기능을 제공하는 소켓 시스템 콜을 호출해 TCP와 UDP 기능을 사용할 수 있다. 소켓 시스템은 유닉스, 리눅스, 윈도우즈 운영체제 등 인터넷에 접속 가능한 모든 호스트에서 제공한다.
프로그램에서 소켓을 사용할 때는 소켓마다 부여되는 고유 주소인 포트 번호를 관리해야 한다. 일반 네트워크 프로그램은 포트 하나를 할당해 사용하므로 포트 번호와 사용자 프로그램이 일대일로 대응된다. 응용 환경에 따라서는 포트 번호를 여러 개 할당할 수도 있다. 응용 프로그램을 설계할 때는 포트 할당에 주의해야 하지만, 일반 사용자는 프로그램 하나에 포트 하나를 사용한다고 가정해도 큰 문제가 없다. 이너넷 응용 프로그램의 고유 주소는 IP 주소와 포트 번호의 조합으로 구성된다.
상위 계층은 사용자 프로그램 공간에서 구현된다. 네트워크 응용 프로그램으로는 텔넷, FTP, 웹 브라우저 등이 있는데, 모두 TCP와 UDP를 사용해 네트워크에 연결한다.
프로토콜
인터넷에서 데이터 전송은 계층 4의 TCP와 UDP 계층 3의 IP에 의해 이루어진다. TCP/IP 모델에서는 사용자 데이터의 전송이 TCP, UDP, IP에 의해 이루어지지만, 이들이 올바르게 동작하려면 더 많은 프로토콜이 필요하다. 특히 주소 문제를 해결하기 위한 ARP/RARP와 오류 문제를 해결하기 위한 ICMP는 TCP/IP모델의 동작에서 매우 중요한 역할을 한다.
TCP/IP계층 구조
맨 위의 응용 프로그램은 TCP, UDP를 사용해 데이터 송수신 기능을 수행하지만, 네트워크 계층의 IP프로토콜을 직접 사용하기도 한다. ICMP와 ARP/RARP는 네트워크 계층에 소속되어 IP의 동작을 도와준다.
네트워크 계층의 IP는 사용자 데이터를 전송하는 프로토콜이다. IP의 동작 과정에서 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 ICMP를 사용한다. ICMP는 IP프로토콜과 같은 계층으로 간주할 수 있지만, ICMP에서 발생하는 ICMP 메시지는 IP패킷에 캡슐화 되어 전송된다.
ARP와 RARP
TCP/IP모델에서 사용하는 주소는 데이터 링크 계층의 MAC 주소, 네트워크 계층의 IP주소, 전송 계층의 포트 번호이다. 포트 번호는 사용자 프로그램 환경에서 사용되므로, 번호 할당과 관리가 다른 계층 프로토콜의 동작에 크게 영향을 미치지 않는다.
IP주소와 MAC 주소는 프로토콜의 동작 특성상 몇 가지 고려할 사항이 있다. 예를들어 계층 2 프로토콜을 이용해 데이터를 전송하려면 목적지 호스트의 MAC 주소가 필요하다. 일반적으로 송신 호스트는 자신의 IP 주소와 MAC 주소는 쉽게 얻을 수 있지만, 수신자의 주소를 얻으려면 몇 단계의 처리 과정이 필요하다. 먼저 상대방 호스트의 IP주소는 응용 프로그램의 사용자로부터 입력되지만 MAC주소 정보는 어디서도 얻을 수 없다. 따라서 사용자로부터 입력된 호스트 IP주소를 이용해 MAC 주소를 구하는 기능이 필요한데 ARP가 이 기능을 담당한다.
호스트의 IP 주소는 컴퓨터 설정 작업의 초기화 과정에서 특정 파일에 보관된다. 그러나 하드디스크가 없는 시스템은 LAN 카드에 내장된 자신의 MAC 주소는 알지만, 파일 시스템이 존재하지 않으므로 IP주소를 알 수 없다. 이 문제를 해결하기 위해 MAC 주소를 IP 주소로 변환하는 RARP가 필요하다.
ICMP
데이터 전송 프로토콜인 IP가 동작하는 과정에서 전송 오류가 발생할 수 있다. 오류가 발생하면 반드시 송신자에게 회신해 복구 작업을 하게 해야하는데, 이 작업은 ICMP가 담당한다. ICMP 프로토콜은 오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며, IP 패킷에 캡슐화 되어 전송되지만 IP와 같은 계층으로 취급된다.
Reference
쉽게 배우는 데이터 통신과 컴퓨터 네트워크
'CS > Network' 카테고리의 다른 글
[Chapter 3] 네트워크 기술(인터네트워킹) (0) | 2025.02.09 |
---|---|
[Chapter 3] 네트워크 기술(교환 시스템) (0) | 2025.02.09 |
[Chapter 2] 네트워크 모델(OSI 참조 모델) (0) | 2025.02.07 |
[Chapter 2] 네트워크 모델(계층 구조의 개념) (0) | 2025.02.07 |
[Chapter 1] 네트워크의 기초 용어와 기능(주소 정보의 관리) (0) | 2025.02.06 |