인터넷의 동작 과정을 알기 전에 인터넷은 컴퓨터의 글로벌 네트워크이기 때문에 인터넷 주소의 개념을 알아야 한다.
인터넷 주소란?
인터넷에 연결된 각 컴퓨터는 고유한 주소를 가진다. 마치 각 건물마다 주소를 가진 것과 같은 느낌이다. 인터넷 주소는 xxx.xxx.xxx.xxx 형식이다. 여기서 xxx는 0 ~ 255 사이의 숫자여야 한다. 이 주소를 IP 주소라고 한다.(IP는 Internet Protocol의 약자이다.)
아래 그림은 인터넷에 연결된 두 대의 컴퓨터를 보여준다. IP 주소가 1.2.3.4.인 컴퓨터와 IP 주소가 5.6.7.8인 다른 컴퓨터가 인터넷을 통해서 연결되어 있다.
ISP(Internet Service Provider)를 통해 인터넷에 연결하는 경우 일반적으로 전화 접속 세션 동안 임시 IP 주소가 할당된다. LAN(Local Area Network)에서 인터넷에 연결하면 컴퓨터에 영구 IP 주소가 있거나 DHCP(Dynamic Host Configuration Protocol) 서버에서 임시 IP 주소를 얻을 수 있다. 이처럼 인터넷에 연결되어 있다면 컴퓨터에는 고유한 IP 주소가 있다.
cmd(명령 프롬프트)에 ipconfig를 통해서 IP 주소를 확인할 수 있다.
그럼 인터넷에 연결된 컴퓨터끼리는 어떻게 대화를 하는 것일까? 답은 바로 'Protocol(프로토콜)'이다.
프로토콜과 패킷
예를 들어 IP 주소가 1.2.3.4이고 컴퓨터 5.6.7.8에 메시지를 보내려고 한다고 가정해 보자. 보내려는 메시지는 "Hello computer 5.6.7.8!"이다. 분명히 메시지는 컴퓨터를 인터넷에 연결하는 모든 종류의 전선을 통해 전송이 되어야 한다. 집에서 ISP에 전화를 걸었고 메시지가 전화선을 통해 전송되어야 한다고 가정해보자. 따라서 메시지는 알파벳 텍스트에서 전자 신호로 번역되고 인터넷을 통해 전송된 다음 다시 알파벳 텍스트로 번역되어야 한다. 이러한 과정이 프로토콜를 통해 이루어진다. 모든 컴퓨터는 인터넷에서 통신하기 위해서는 프로토콜이 필요한데 일반적으로 컴퓨터의 운영 체제(ex: Windows, Unix등)에 내장되어 있다. 인터넷에서 사용되는 프로토콜은 두 가지 주요 통식 프로토콜이 사용되기 때문에 TCP/IP 프로로톨이라고 하낟. TCP/IP 프로토콜은 다음과 같다.
프로토콜 계층 | 코멘트 |
응용 계층 (Application Layer) |
OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당 TCP/UDP 기반의 응용 프로그램을 구현할 때 사용 프로토콜 - FTP, HTTP, SSh |
전송 계층 (Transport Layer) |
OSI 7계층의 전송 계층에 해당 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당 프로토콜 - TCP, UDP |
인터넷 계층 (Internet Layer) |
OSI 7계층의 네트워크 계층에 해당 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당 프로토콜 - IP, ARP, RARP |
네트워크 엑세스 계층 (Network Access Layer / Network Interface Layer) |
OSI 7계층의 물리계층과 데이터 링크 계층에 해당 물리적인 주소로 MAC을 사용 LAN, 패킷망 등에 사용 |
TCP/IP 프로토콜을 이용하여 "Hello computer 5.6.7.8!" 메시지를 우리 컴퓨터에서 IP 주소가 5.6.7.8인 컴퓨터로 보내면 다음과 같은 그림으로 나타낼 수 있다.
- 메시지는 컴퓨터의 프로토콜 스택 맨 위에서 시작하여 아래로 내려간다.
- 보낼 메시지가 길면 메시지가 통과하는 각 스택 계층에서 메시지를 더 작은 데이터 청크로 나눌 수 있다. 이는 인터넷을 통해 전송되는 데이터가 관리 가능한 청크로 전송되기 때문이다. 인터넷에서는 이러한 데이터 청크를 패킷(packet)이라고 한다.
- 패킷은 애플리케이션 계층을 통과하여 TCP 계층으로 계속된다. 이곳에서는 각 패킷에 포트 번호을 할당한다. 특정 포트에서 수신 대기하므로 메시지를 수신해야 하는 대상 컴퓨터의 프로그램을 알아야 한다.
- 패킷은 TCP 계층을 거쳐 IP 계층으로 이동합니다. 이곳에서는 각 패킷이 목적지 주소인 5.6.7.8를 수신한다.
- 이제 메시지 패킷에 포트 번호와 IP 주소가 있으므로 인터넷을 통해 보낼 준비가 되었다. 하드웨어 계층은 메시지의 알파벳 텍스트가 포함된 패킷을 전자 신호로 변화하고 전화선을 통해 전송한다.
- 전화선의 다른 쪽 끝에는 ISP가 인터넷에 직접 연결되어 있다. ISP 라우터는 각 패킷의 대상 주소를 검사하고 보낼 위치를 결정한다.
- 패킷은 컴퓨터 5.6.7.8에 도달한다. 여기에서 패킷은 대상 컴퓨터의 TCP/IP 스택 맨 아래에서 시작하여 위쪽으로 작동한다.
- 패킷이 스택을 통해 위쪽으로 이동하면 보내는 컴퓨터의 스택이 추가한 모든 라우팅 데이터(ex: IP 주소, 포트 번호)가 패킷에서 제거된다.
- 패킷이 스택의 맨 위에 도달하면 "Hello computer 5.6.7.8!"라는 원래 형식으로 재조립된다.
https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm