본문 바로가기

TCP & IP

8-1 IP주소는 뭐고 도메인 주소는 무엇일까?

 

컴퓨터를 사용하는데 익숙한 우리 세대는 IP주소라는 말을 한번쯤은 들어봤을 것입니다. 흔히 토렌트에서 파일을 다운받을때 IP추적당해서 신고먹는다라는 말도 많이 들어봤던 것 같습니다 ㅎㅎ IP Internet Protocol address의 약자로 풀이를 해보자면 "인터넷 규약 주소" 라고 말할 수 있겠네요. 사전 정의에 의하면 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호라고 합니다. 즉 숫자로 이루어져 있는 홈페이지의 주소라고 생각하죠! 그렇다면 도메인 주소는 무엇일까요? 예를 들어 드리는게 제일 이해하기 쉬우시겠죠? 대한민국의 가장 대표적인 홈페이지 네이버의 도메인 주소는 www.naver.com입니다! 딱 이해가 가시겠죠? 사용자들이 보기 쉽게 IP주소를 변형한 서버의 주소라고 생각하시면 될 것 같습니다. 그렇다면 도메인 주소에서 IP주소로 변환해주는 것이 필요하겠죠? 이 역할을 해주는 곳을 DNS서버라고 합니다! 그러면 DNS 서버에서 도메인->IP로 변환하는 함수를 알아볼까요?

 

gethostbyname 함수가 바로 도메인을 IP주소로 변환해주는 함수입니다. 그런데 함수 앞에 struct가 붙어있네요? 이것은 hostent라는 구조체로 이루어져있다는 의미입니다. 그래서 hostent 안에 변수들도 자세히 볼 필요가 있습니다.

 

h_name : 공식 도메인 이름

h_aliases : 별칭의 도메인 이름

h_addrtype : 반환된 IP의 정보가 IPv4인 경우, AF_INET이 반환

h_length : 반환된 IP 정보의 크기, IPv4의 경우 4, IPv6의 경우 16이 저장

h_addr_list : IP의 주소정보, 둘 이상의 경우 모두 반환(가장 중요), 접속자의수가 많은 서버는 하나의 도메인 이름에 여러 IP를 둬서, 둘 이상의 서버로 부하를 분산시키는데 모든 IP의 주소정보를 얻을 수 있게 해주는 역할을 함

이 그림을 보면 보면 더 쉽게 이해할 수 있을 것입니다!

 

그렇다면 실제 코드를 통해 한번 알아볼까요?

 

출력 결과 공식 도메인 이름과 또 다른 이름 그리고 ip주소가 출력되었습니다!!

반대로 이번에는 Ip주소를 통해 도메인주소를 출력하는 함수를 작성해봅시다ㅎㅎ

 

 

 

'TCP & IP' 카테고리의 다른 글

7-1 TCP 소켓의 일방적인 연결 종료?  (0) 2021.10.06
6-2 UDP TCP의 포트가 연결이 되지 않을때!  (0) 2021.10.06
6-1 UDP  (0) 2021.10.06
5-1 TCP 소켓의 연결  (0) 2021.10.06
4-1 TCP기반 서버, 클라이언트 구현  (0) 2021.10.06