Network 기초 다지기 - 3

Lee Jeong-hwan·2025년 1월 15일

이번 시간에는 주소에 대해 알아보려고한다.

이전 글 : 인터페이스와 네트워크 용어


주소?📮

우리는 어딘가로 택배를 보낼 때 주소라는 것을 사용한다.
네트워크도 데이터를 전송 할 때 목적지를 가리키는 주소가 필요하다.

네트워크에서 주소는 어떻게 표시 될까?
네트워크에서 주소는 0과 1로 구현된 데이터로 구성된다.

하지만, 일반적으로 사람이 외우기에는 다소 불편하다.
이를 해결하기 위해 단어를 사용해 주소를 구성하는 등의 노력을 한다.

그럼 네트워크에서 주소는 어떤 규칙을 가지고 만드는 걸까?
아래 내용을 살펴보자.


유일성

네트워크에서 서로 다른 집이 같은 주소를 쓰면 데이터가 올바른 길로 찾아갈 수 없다.
그렇기 때문에 주소는 중복되지 않는 유일성이 보장되야한다.

확장성

시스템은 시간이 지날 수록 규모가 커질 수 있다. 네트워크 또한, 시간이 지날 수록 여러 네트워크가 물리면서 규모는 더욱 커질 것이다.
그렇기 때문에, 주소는 무궁무진한 확장성을 보유해야한다.

편리성

우리가 알고 있는 주소는 0과 1로 이뤄진 주소가 아닌, 문자와 이름 숫자 등으로 조합된 구성이다.
이 처럼 주소는 사용하기 편리해야한다.

정보의 함축성

주소는 주민번호와 같이 응용 환경에 적절한 정보를 함축적으로 가지고 있어야한다.


IP 주소🌟

이제부터 우리는 IP (Internet Protocol)에 대해 알아보자.
IP 주소는 인터넷상에서 사용되는 주소이다.

127001
0111 11110000 00000000 00000000 0001

만약 위와 같이 127.0.0.1 이라는 IP로 접속 하려면 우리는 아래와 같이
01111111.00000000.00000000.00000001 을 입력해서 접속해야한다.

위 숫자를 전부 외울수 있을까? 한개를 외우더라도 10개 100개를 다 외우고 있을 수 있을까?
아마 불가능 할 것이다.

그래서 사람들은 10진수를 사용해 4개로 나눠 127.0.0.1과 같이 표시 하도록 구현했다.
이와 같은 흐름을 통해 우리가 사용하는 일반적인 IP주소가 탄생하게 된 것이다.


DNS?🤖

글을 적으면서도 DNS라는 단어를 보면 어렵다는 생각이 먼저 들었다.
하지만 DNS의 뜻을 풀어보고 차근 차근 살펴보면 어렵지 않을 것이다.

DNS : Domain name System

위에서 우리는 127.0.0.1과 같은 IP 주소가 이뤄짐을 알 수 있었다.
하지만 이것 또한 외우기 힘들다면 어떻게 해야할까?

이런 문제를 해결하기 위해 등장한 것 중 하나가 DNS이다.
우리는 인터넷에서 특정 홈페이지로 접속할 때 "www.google.com" 과 같은 주소를 사용해서 접속한다.

DNS는 우리가 이름에서 확인할 수 있듯이 IP 주소 대신 문자를 사용해 페이지에
접속할 수 있도록 도와주는 시스템이다.

예를 들어 우리가 www.google.com을 입력하면 DNS에서는 142.250.199.68 이라는 데이터를 넘겨주며 우리가 원하는 구글이라는 웹 페이지에 접속할 수 있게 해주는 것이다.

DNS는 통상 아래와 같은 구조를 가진다.

<호스트><단체 이름><단체 종류><국가 도메인>
wwwkoreacokr

위 도메인 이름을 해석 하면 아래와 같다.

국가 도메인해당 국가명
kr한국
jp일본
eu유럽
단체 종류기관 성격
co회사
ac교육기관
go정부 소속

즉, 위 도메인은 한국에 있는 korea라는 회사의 도메인 이라고 유추 할 수 있다.


주소 정보를 어떻게 관리 하고 맵핑 할까?

가장 간단한 방법은 호스트 파일이라는 것을 생성해 네트워크 관리자가 지속적으로
업데이트하며 테이블을 가지고 있는 방법이다.

아래 이미지를 확인해보자.

위와 같이 네트워크 관리자는 관리 대상이 되는 모든 호스트의 이름 * 주소 정보를 주기적으로 갱신하고,
이 정보를 네트워크에 연결된 모든 호스트가 복사하도록 함으로써 정보의 일관성을 유지해야한다.

하지만, 위 처럼 파일을 복사하는 건 사람이 수동으로 해야했고, 지금 처럼 대용량 네트워크 시대에서는 불가능한 일이다.

그래서 나온 시스템이 DNS 시스템이다.


도메인 네임 서버?

DNS는 도메인 네임 시스템이다.
이는 우리가 입력한 주소를 IP 주소로 변환하고 전달 해주는 역할을 해준다.

그럼 여기서 도메인 시스템은 어떻게 우리가 입력한 주소를 IP 주소로 전달해주는걸까?
그 해답은 도메인 네임 서버에 있다.

도메인 네임 서버는 호스트 파일 처럼 특정한 호스트 주소와 이름 정보를 가지고 있으며,
도메인 네임 시스템이 자료를 요청하면 그에 맞는 값을 반환해준다.

해당 부분은 네트워크가 커지면 네임 서버에 보관된 정보의 양도 자연스럽게 증가하고,
인접한 네임 서버끼리 정보를 상호 교환하며 자동적인 관리가 가능해졌다.


기타 주소

우리가 인터넷을 사용하면 다양한 주소가 존재한다.
아래에는 간략한 주소 종류에 대해서 설명을 기록해보았다.

MAC 주소

MAC 주소는 2 계층 (Data Link layer) 에서 사용하며, 일반적으로 LAN카드에 내장되어있다.
물리 계층을 통해 데이터를 전송할 때는 MAC 주소를 이용해서 호스트를 구분한다.

따라서, 네트워크 계층이 데이터 링크 계층에 데이터 전송을 요청하면, IP 주소를 MAC 주소로
변환하는 작업이 이뤄지고, MAC 계층이 상대방 MAC 계층에 데이터를 전송한다.

IP 주소

IP 주소는 인터넷에서 네트워크 계층이 기능을 수행하는 IP 프로토콜에서 사용된다.
송신자 IP 주소와 수신자 IP 주소로 구분된다.

수신자 IP 주소는 패킷이 지나가는 경로를 결정하는 라우팅의 기준이 된다.

포트 주소

포트 주소는 전송 계층에서 사용하며, 호스트에서 실행되는 프로세스를 구분해준다.
예를 들어, 스마트 폰에 여러 SNS 응용 프로그램이 있다고 가정해보자.

이때, 여러 응용 프로그램이 IP는 한개이기 때문에 다른 사용자와의 통신을 위해서는
구별이 필요할 것이다.

해당 부분에서 사용되는 것이 포트이다.
포트를 사용하면, 여러 응용 프로그램 중 필요한 부분만 구분해서 사용할 수 있다.


다음 시간에는 프로토콜에 대해 보다 심층적으로 알아보고 이해해보자.

긴 글 읽어주셔 감사합니다.
틀린 내용은 언제든지 남겨주세요.

profile
안녕하세요😁 안드로이드 개발자 이정환 입니다~⭐️

0개의 댓글