분류 전체보기 91

[Chapter 14] DNS (도메인 네임 스페이스)

DNS는 거대한 분산 데이터베이스 시스템이며, 도메인 네임 스페이스는 이 DNS가 저장, 관리하는 계층적 데이터베이스이다.도메인 네임 스페이스는 최상위 호스트인 루트가 존재하고 그 밑으로 인터넷에 연결된 모든 호스트가 트리 형태로 연속해서 이어진 계층 구조이다.도메인 네임 스페이스의 호스트는 크기가 최대 63바이트인 레이블을 이름으로 갖는데 루트 호스트는 크기가 0인 널 레이블(null Label)을 가지므로 이름이 없는 것이나 마찬가지이다.도메인 이름은 점(.)으로 구분한 호스트 레이블의 연속으로 표현한다. ex)www.korea.co.kr이라는 도메인 이름은 루트 밑으로 kr, co, korea, www 호스트가 순차적으로 연결된 상태를 의미하고, www.korea.co.kr은 트리 구조의 제일 밑에..

CS/Network 2025.02.18

[Chapter 14] DNS (DNS 서비스)

인터넷에 연결된 모든 컴퓨터는 32비트 숫자로 구성된 고유의 IP 주소를 부여받는다. 이 숫자가 IP 프로토콜의 패킷 속에 기록되어 적절한 경로를 선택하는 길잡이 역할을 한다.ip 주소는 IP 프로토콜이 효율적으로 동작할 수 있도록 고려하여 설계되었지만 일반 사용자 입장은 중요하게 고려되지 않았다.호스트 분배 작업을 인터넷의 규모가 커지고 더 이상 수작업으로 관리할 수 없게 되었는데 이를 계기로 DNS(Domain Name System)서비스가 탄생하게 되었다.IP 주소 체계인터넷에서 32비트의 이진수로 된 IP 주소로 호스트를 구분한다. IP 주소는 32비트의 주소를 네 부분으로 나누어 8비트의 십진수인 www.xxx.yyy.zzz  형태로 표현한다.Ex. 211.223.201.29IP프로토콜의 유니캐..

CS/Network 2025.02.18

[Chapter 13] 웹 WWW(CGI)

HTML로 웹 문서를 작성하면 클라이언트에서 실행되는 웹 브라우저 서버의 정보를 일방적으로 받아들이는 단방향 통신으로 동작한다. 사용자가 입력하는 정보를 처리하려면 CGI(Common Gateway Interface)기능이 필요하다.CGI는 새로운 언어의 개념이 아니다. C, C++, Shell, Perl 등과 같은 언어로 작성되어 서버에서 실행되는 프로그램이다.HTML 문서에서 사용자의 입력을 서버로 전달하는 기능은 태그를 이용해 구현된다.태그 속성속성설명ACTION사용자의 입력 데이터를 처리할 CGI 프로그램의 URL 주소 지정METHOD사용자 데이터를 넘겨주는 방식 지정- GET 방식: 데이터를 프로그램 환경 변수로 넘김- POST 방식: 표준 입력 사용ENCTYPE데이터 형식 지정웹 브라우저 화면..

CS/Network 2025.02.18

[Chapter 13] 웹 WWW(HTTP)

HTTP(HyperText Transfer Protocol)는 분산 하이퍼미디어 환경에서 빠르고 간편하게 데이터를 전송하는 프로토콜이다. HTTP는 80번 포트를 사용하도록 정의된다. 따라서 HTTP 서버는 80번 포트에서 대기하고, 클라이언트는 TCP를 사용해 연결을 설정한다.웹 브라우저는 사용자가 요청하는 자원을 가리키는 URL 주소에 사용할 프로토콜을 표현한다. 즉, URL 주소의 첫 번째 부분을 사용해 서비스 유형을 표현한다. ex) HTTP 서버로부터 웹 정보를 얻으려면 http://www.korea.co.kr과 같이 URL 주소에 HTTP를 사용한다고 명시해야 한다. FTP 서버에 접근하려면 ftp://www.korea.co.kr, 텔넷 서버를 사용하려면 telnet://www.korea.co..

CS/Network 2025.02.18

[Chapter 13] 웹 WWW(HTML)

HTML은 웹 브라우저의 어느 위치에 어떤 데이터를 어떤 모양으로 표시하는 지를 나타낸다. 즉, 화면의 출력 형식을 기술하는 언어이다.HTML로 작성한 문서는 서버에 보관되고, 클라이언트는 이 문서의 내용을 회신받아 웹 브라우저에 출력한다.출력 결과는 HTML로 기술된 방식을 따라야 하므로 웹 브라우저는 HTML을 해석하는 프로그램이라 할 수 있다.HTML 문서의 구조HTML(HyperText Markup Language)은 웹 문서를 작성하는 언어이며, HTML 문서는 태그로 시작하여 태그로 종료한다.전체 내용은 크게 헤더의 두 부분으로 구성되며, 헤더는 와 태그를 사용하고, 바디는 와태그를 사용한다.은 문서 제목으로 웹 브라우저 상단에 표시된다. HTML의 예 HTML 문서의 내용 ..

CS/Network 2025.02.18

[Chapter 13] 웹 WWW(클라이언트-서버 모델)

전 세계적으로 웹(World Wide Web) 서버의 TCP 포트는 0번으로 지정되어있다. 클라이언트에 해당하는 웹 브라우저는 이 포트 번호를 이용해 서버와 연결을 시도한다. 웹 서버와 연결이 설정되면, 클라이언트의 정보 요구에 대해 서버가 웹 문서를 회신하는 방식으로 응답한다. 서버가 전송한 문서 내용은 클라이언트의 웹 브라우저를 통해 사용자 화면에 표시된다.클라이언트와 서버 사이의 연결은 사용자의 정보 요구가 발생할 때마다 새로운 연결을 설정하고 해제하는 과정을 반복한다. 즉, 서버가 제공하는 정보의 전송은 TCP 연결에 의해 이루어지지만, 웹 문서의 전송이 완료되어 사용자가 웹 브라우저로 보는 시점에는 TCP 연결이 이미 해제된 상태이다.클라이언트-서버 모델클라이언트와 서버의 연결 설정 해제 과정은..

카테고리 없음 2025.02.18

[Chapter 12] 소켓을 이용한 네트워크 프로그래밍 (서버-클라이언트 프로그래밍)

일반적으로 서버-클라이언트 모델은 네트워크 서비스를 제공하는 서비스 제공자와 서비스 이용자 사이의 관계를 표현한다. 서비스를 제공하는 프로그램을 서버 프로세스, 서버와 연결을 시도하여 서비스를 제공받는 프로그램을 클라이언트 프로세스라 한다. 연결형 서비스소켓은 네트워크 통신을 위한 소프트웨어 교신점이 된다.두 개의 독립 프로세스가 네트워크를 통해 통신하려면 논리적인 연관 관계를 맺어주는 소켓이 필요하다. 소켓을 이용한 전형적인 서버-클라이언트 프로그램을 작성하는 방법과 같다. 서버와 클라이언트의 동작서버 프로세스는 다수의 클라이언트에 공개되는 Well-known 포트로 자신의 소켓 주소를 설정한 후에, 클라이언트의 연결 요청을 기다린다.클라이언트 요구에 따라 연결이 설정되면 서버 프로세스가 제공하는 서비..

CS/Network 2025.02.17

[Chapter 12] 소켓을 이용한 네트워크 프로그래밍 (소켓 시스템 콜)

sd = socket(AF_UNIX, SOCK_STREAM, 0); // 유닉스 주소 체계의 연결형 서비스sd = socket(AF_UNIX, SOCK_DGRAM, 0); // 유닉스 주소 체계의 비연결형 서비스sd = socket(AF_INET, SOCK_STREM, 0); // 인터넷 주소 체계의 연결형 서비스sd = socket(AF_INET, SOCK_DGRAM, 0); // 인터넷 주소 체계의 비연결형 서비스운영 체제에서 구현되는 전송 계층 프로토콜인 TCP와 UDP를 사용하려면 소켓 시스템 콜이라는 라이브러리 함수를 이용한다.소켓은 통신을 원하는 프로세스에 할당되는 자원이며, 고유의 소켓 주소가 부여된다.일반적으로 소켓을 포트라고도 부른다. 그리고 각 함수의 사용법에서 해당 함수 위의 헤더 파..

CS/Network 2025.02.17

[Chapter 12] 소켓을 이용한 네트워크 프로그래밍 (소켓의 주소 체계)

소켓은 자체에 어떤 기능이 있는 것이 아니고, 운영 체제에서 제공하는 통신 프로토콜을 편리하게 사용할 수 있도록 도와주는 역할을 한다. 따라서 소켓 주소는 사용하는 프로토콜의 종류에 다라 여러 형태의 주소 체계를 지원한다.소켓의 주소 체계소켓은 프로토콜 종류에 따라 다양한 방식으로 주소를 부여할 수 있다. 일반 프로그래밍 환경에는 AF_UNIX와 AF_INET의 소켓 주소 체계를 많이 사용한다.유닉스 주소 체계AF_UNIX로 표시되는 유닉스 주소 체계는 하나의 호스트 내부에서 실행되는 프로세스 사이의 통신을 지원하며, 사용하는 주소 체계는 파일 시스템의 경로명을 기반으로 한다.ex)유닉스 주소체계를 지원하는 sockaddr_un 구조체의 예시, 두 개의 필드를 사용한다. sun_family 필드는 유닉스..

CS/Network 2025.02.17

[Chapter 11] 상위 계층의 이해(응용 계층)

응용 계층(Application Layer) 하부에 있는 계층들의 기본 역할은 신뢰성 있는 데이터 전송을 보장하는 것이다. 그리고 응용 계층의 역할은 이들 하부 계층을 이용해 사용자에게 편리한 응용 환경을 제공하는 것이다. 따라서 응용 계층의 구현은 사용자 프로그램 환경에서 이루어지며, 일반적으로 운영체제에서 제공되는 계층 4의 인터페이스를 사용해 통신 기능을 구현한다. 필요하면 세션 계층이나 표현 계층의 기능도 포함한다.클라이언트-서버 모델인터넷 환경에서 응용 계층의 연결은 세션 계층에서 설명한 방식을 그대로 사용한다.하나의 서버 프로그램이 다수의 클라이언트에 응용 서비스를 제공하는 클라이언트-서버 모델은 인터넷 응용 환경에서 보편화된 연결 설정 방식이다.클라이언트와 서버는 비교적 간단한 절차로 동작한..

CS/Network 2025.02.17