TCP/IP 프로토콜
컴퓨터 통신을 위해서는 송수신 컴퓨터 및 라우터 등의 하드웨어뿐만 아니라, 하드웨어에서 동작하는 소프트웨어도 필요하다. 이러한 인터넷 통신 소프트웨어 중 대표적인 것이 바로 TCP/IP 프로토콜을 구현한 프로그램이라고 볼 수 있다.
프로토콜이란 '통신규약 혹은 통신규칙'을 의미한다. 즉, 두 대의 컴퓨터가 서로 통신을 진행하기 위해서는 통신 프로토콜에 따라 동작해야 한다. 프로토콜은 모든 인터넷 장비들이 지켜야 하며, 보통 표준화 기구에서 통신용 프로토콜 표준을 제시한다.
TCP/IP 프로토콜은 인터넷 통신을 위해 사용하고 있는 프로토콜로써, 소프트웨어로 구현되는 컴퓨터, 라우터 등의 인터넷 장비에 탑재된다. TCP/IP 프로토콜은 TCP, IP UDP 등의 여러 가지 프로토콜로 구성되며 이를 전체 통칭하여 TCP/IP 프로토콜 스택이라고도 부른다.
우선 IP 주소는 dotted-decimal notation 표기법에 의해 표현되며, 인터넷 상의 각 컴퓨터에 할당되고 컴퓨터를 구분하는 식별자로 사용된다. 다시 말해서, 전 세계적으로 각 컴퓨터는 고유한 IP 주소를 가진다고 보면 된다. 컴퓨터 이름과 IP 주소는 서로 대응이 되며, DNS서버는 컴퓨터 이름과 IP 주소를 변환시켜준다.
IPv4 주소는 클래스 A, B, C, D, E로 구분된다. 참고로, 클래스 A, B, C는 각 컴퓨터에 할당되는 주소로 보면 되나, 클래스 D, E는 컴퓨터에 할당되지 않는다. 클래스 D 주소는 멀티캐스트라는 특수한 인터넷 서비스에 사용되며, 클래스 E의 경우 추후 사용되기 위해서 예약되어 있다고 보면 된다. IP 주소의 첫 번째 숫자만 보면, 이 주소가 어느 클래스에 할당되어 있는지 쉽게 확인이 가능하다.
인터넷 통신을 하기 위해서는 송신 컴퓨터에서 발생하는 메시지들은 IP 패킷으로 구성되어 인터넷 통신망으로 전송된다. 그리고 최종 수신자 컴퓨터에 전달되는 것으로 보면 되며 IP 패킷은 송신자의 IP 주소와 수신자의 IP 주소를 포함하여 누가 누구에게 보내는지 정보를 나타낸다.
IPv4 주소는 4바이트 크기를 갖지만, IPv6 주소는 16바이트 주소를 갖는다. 이론적으로 보면 IPv4 주소는 총 2의 32제곱 개가 있는 반면에 IPv6의 경우 2의 128 제곱 개의 주소를 보유하고 있다고 보면 된다. 간략하게 보면 IPv6는 IPv4 주소 부족 문제를 해결하기 위해서 개발되었다고 볼 수 있다.
본 프로토콜의 주된 기능은 '인터넷을 통한 사용자 컴퓨터 간 패킷 전달'으로 볼 수 있다. 송신 컴퓨터의 데이터를 인터넷을 통해 수신 컴퓨터에 전달하는 것이다. TCP/IP 프로토콜에 의한 송수신 컴퓨터 간 인터넷 패킷 전달 과정은 다음과 같이 볼 수가 있다.
우선 송신자는 전송할 응용 데이터를 만들고 수신 컴퓨터의 IP 주소를 파악한다. 그리고 IP 패킷 헤더에 수신자의 IP 주소를 첨가하고 나서 헤더와 데이터로 구성되는 패킷을 만들어 낸다. 패킷을 인터넷으로 전송하면 인터넷은 IP 라이팅 절차에 따라 수신자 컴퓨터에 패킷을 전달한다. 수신 컴퓨터는 패킷에서 응용 데이터를 추출하고 상위에 있는 수신자에게 전달한다.
송신 컴퓨터에서 전송한 IP 패킷은 실제로 인터넷망에서 복수 개의 라우터를 거쳐서 최종 수신 컴퓨터에 전달된다. 이 과정을 IP 라우팅이라고 하며 IP 라우팅을 위해서 각 라우터들은 라우팅 테이블을 가지고 있다.
캡슐화는 TCP/IP 패킷 전달 과정에서 중요한 부분이다. 사용자의 데이터는 캡슐화 과정을 거쳐서 인터넷 패킷으로 구성되며, 송신 컴퓨터를 떠나 인터넷을 돌아다닌다. 인터넷에 도달한 패킷이 수신 컴퓨터에 도달했을 때, 데이터는 역 캡슐화를 거쳐서 수신자에게 전달된다.
송신 컴퓨터의 패킷은 물리 계층에서 비트 형태로 인터넷망으로 전송되는데, 인터넷망에서는 라우팅 과정을 거쳐서 수신 컴퓨터에게 해당 패킷을 전달한다. 수신 컴퓨터에 도달한 패킷은 다시 역캡슐화 과정을 거쳐서 헤더를 제외한 데이터 부분만 상위계층으로 전달한다.
'컴퓨터&네트워크' 카테고리의 다른 글
운영체제의 개념 (0) | 2024.08.14 |
---|---|
컴퓨터의 내부 구조와 조직 (0) | 2024.08.13 |
클라이언트-서버 시스템 (0) | 2024.08.12 |
컴퓨터 하드웨어 (0) | 2024.08.12 |
다양한 정보통신망 (0) | 2024.08.12 |