본문 바로가기

Computer Science6

3-4. 도메인 이름 시스템(DNS)과 이름 변환 함수, hostent 구조체, DomainName, gethostbyname() , gethostbyaddr() 3-4. 도메인 이름 시스템(DNS)과 이름 변환 함수 01. 도메인 이름 시스템 1) 도메인 이름(Domain name) → IP 주소처럼 호스트나 라우터의 고유한 식별자로 사용함. IP 주소보다 기억하고 사용하기 쉬움 TCP/IP 프로토콜에서 Domain name TCP/IP 프로토콜은 내부적으로 숫자 형태의 IP주소를 기반하여 동작하므로, 사용자가 입력한 도메인 이름을 반드시 IP 주소로 변환해야 한다. 예시를 보면, www.example.com의 실제 주소는 2620:0:2d0:200:10인것을 확인할 수 있다. 2) 도메인 이름 서버(DNS) → 도메인 이름과 IP 주소의 변환 정보는 인터넷에 존재하는 여러 DNS가 관리한다. 한 DNS 서버가 모든 정보를 갖고 있지 않다는 점에서 일종의 분산 .. 2023. 12. 28.
3-3. IP 주소 변환 함수 ( inet_addr, inet_ntoa, WASAddressToString, WSAStringToAddress) 3-3. IP 주소 변환 함수 ( inet_addr, inet_ntoa, WASAddressToString, WSAStringToAddress) 01. IP 주소 변환 함수 1) IP 주소 변환 예시 윈도우 응용 프로그램에서 IP 주소를 입력받을때, ‘문자열’ 형태로 전달받게 되므로 네트워크 통신을 위해 이를 32bit( IPv4)나 128bit(IPv6) 숫자로 변환해야한다. 02. IPv4 주소 변환 함수 응용 프로그램에서 IP 주소를 편리하게 변환할 수 있도록 다음과 같은 윈속 함수가 제공된다. 1) inet_addr() : 문자열 → 숫자 "Internet Address” → 문자열 형태로 (IPv4 주소 입력**(”170.0.0.1”)** → 32bit 숫자(네트워크 바이트 정렬)로 리턴 // .. 2023. 11. 25.
3-2. 바이트 정렬 함수(빅 엔디안, 리틀엔디안, htons, ntohs) 01. 바이트 정렬 함수 1) 바이트 정렬(byte ordering)이란? → 1바이트 이상의 데이터를 정렬하는 방식 → 메모리에 데이터를 저장할 때 바이트 순서로, 빅 엔디안 & 리틀 엔디안 방식이 있다. 시스템에서 사용하는 바이트 정렬 방식은 CPU와 운영체제에 따라 다르다. 2) 바이트 정렬 종류 빅 엔디안(big-endian) 최상위 바이트(MSB, Most Significant Byte)부터 차례로 저장하는 방식 ex) 0x12345678이라는 32bit 크기의 데이터가 존재할 경우, 0x12, 0x34, 0x56, 0x78이라고 읽는다. → AMD계열의 CPU에서 이용하는 방식으로, 낮은 주소에 데이터의 가장 높은 바이트부터 정렬하며, 사람이 읽기 좋은 정렬 방식 2. 리틀 엔디안(little.. 2023. 11. 13.
3-1. 소켓 주소 구조체 다루기 (SOCKADDR, IN_ADDR, sockaddr_in, 3-1. 소켓 주소 구조체 다루기 소켓 주소 구조체를 소개하고, 구조체를 초기화 하는 것을 익혀보자 01. 소켓 주소 구조체(socket address structures) 1) 소켓 주소 구조체란? → 소켓을 생성할 때 필요로 하는 주소 정보를 담고 있는 구조체. 다양한 소켓 함수의 인자로 사용됨. 프로토콜 체계에 따라 다양한 형태가 존재함 TCP/IP ⇒ SOCKADDR_IN{} 기본형은 SOCKADDR 구조체이고, ws2def.h 파일에 정의되어 있음 2-0) SOCKADDR 구조체 : 기본형 typedef struct sockaddr { u_short sa_family; char sa_data[14]; } SOCKADDR; sa_family : 주소 체계를 나타내는 16bit 정수값. TCP/IP.. 2023. 11. 13.