본문 바로가기

컴퓨터 네트워크39

컴퓨터 네트워크 42장 - 파일 전송 - 컴퓨터 네트워크 42장- 파일 전송 - 파일 전송을 위한 사용자 환경으로 대표적인 예시가 FTP 프로그램이다. FTP는 인터넷에 연결된 호스트 간의 파일 복사 기능을 제공하여 원격 시스템과의 파일 송수신 기능을 지원한다. FTP는 File Transfer Protocol의 약자로 사용자는 클라이언트 프로그램을 이용하여 ftp 서버에 접속을 하여 파일을 다운로드 또는 파일 업로드 과정을 수행할 수 있다. FTP 프로그램을 사용하기 위해서는 서버에 등록된 계정과 암호로 로그인을 할 필요가 있다. 일반적으로 다중 사용자에게 파일 서비스를 제공하려고 불특정 다수에게 로그인 계정을 일일이 부여하는 것은 현실적으로 불가능하므로 익명 FTP를 이용하여 공개 소프트웨어 배포와 같은 기능을 수행할 수 있다. UNIX 환.. 2017. 5. 23.
컴퓨터 네트워크 41장 - 전자 메일 - 컴퓨터 네트워크 41장- 전자 메일 - 전자 메일은 인터넷이 보급되던 초기부터 제공된 서비스로 현재 가장 널리 사용되는 인터넷 서비스 중 하나이다. 전자 메일을 이용한 작업은 크게 메일 내용 편집, 수신한 메일 내용 보기, 메일 박스에 보관된 수신 메일 관리 등으로 나뉜다. 메일 편집은 메일 생성, 회신, 제 3자에게 전달을 하고 메시지 내용 외에도 주소, 작성일자, 참조 수신자 등 다양한 정보 작성이 필요하다. 메일 내용 읽기는 본문 읽기, 첨부 파일 읽기 기능을 수행한다. 수신 메일 관리는 메일 박스로 메일을 삭제, 저장을 한다. 전달 여부 통지는 송신자에게 수신 여부 통보를 하고 메일 시스템의 하부 기능에 의해 메일 오류의 통지로 구형 가능하고 자체 기능으로 구형하면 옵션으로 수신 여부를 확인할 수.. 2017. 5. 22.
컴퓨터 네트워크 40장 - 네임 서버 & 해석기 - 컴퓨터 네트워크 40장- 네임 서버 & 해석기 - DNS 서비스에서 가장 중요한 것은 분산 네트워크 서비스의 형태를 지원하는 것이다. 이를 위해 네임 서버가 여러 곳에 흩어져 전체 네임 스페이스의 일부 정보를 전적으로 책임지며 유기적인 연관 관계를 통해 전체 네임 서버의 정보를 일관성 있게 관리한다. 응용 프로그램이 해석기라고 부르는 DNS 클라이언트에게 정보 제공을 요청하는 것으로 DNS 서비스가 이루어진다. 해석기는 DNS 메시지 형식의 질의를 생성하고 이 질의를 네임 서버에게 전달하면 네임 서버는 회신용 DNS 메시지에 결과를 담아 해석기에 회신을 하게 된다. 네임 서버의 부담을 줄이기 위하여 캐시 정보를 활용하는데 캐시 데이터라고 한다. 원래는 인증 데이터로 해당 데이터를 직접 관리할 책임이 있는.. 2017. 5. 13.
컴퓨터 네트워크 39장 - 도메인 네임 스페이스(Domain Name Space) - 컴퓨터 네트워크 39장- 도메인 네임 스페이스(Domain Name Space) - DNS는 거대한 분산 데이터베이스 시스템이며 도메인 네임 스페이스, 네임 서버, 해석기로 구성되어 있다. 이 중 도메인 네임 스페이스에 대해 알아보도록 하자. 도메인 네임 스페이스는 DNS가 저장 관리하는 계층적 데이터베이스이다. 최상위에 루트가 존재하고 그 아래로 모든 호스트가 트리 구조로 이어져 있다. 도메인 네임 스페이스의 호스트는 크기가 최대 63바이트인 레이블을 이름으로 갖는다. 도메인 이름은 점으로 구분한 레이블의 연속이라고 할 수 있다. 루트 호스트는 크기가 0인 널 레이블을 가지므로 이름이 없는 것이다. 도메인이라는 것은 계층적 구조를 가지고 같은 레벨에서는 레이블(이름)이 유일해야 한다. 도메인 이름은 최.. 2017. 5. 13.
컴퓨터 네트워크 38장 - DNS 서비스 - 컴퓨터 네트워크 38장- DNS 서비스 - 인터넷에 연결된 모든 컴퓨터는 32비트 숫자로 구성된 고유의 IP 주소를 부여받는다. IP 주소는 32 비트의 크기를 가지며 사용자 편의를 위해 8 비트 크기의 10진수 4개로 표현을 하는 것이 일반적이다. 이 숫자가 IP 프로토콜의 패킷 속에 기록되어 적절한 경로를 선택하는 길잡이 역할을 한다. IP 프로토콜의 주소 체계는 클래스별로 구분할 수 있다. 구분의 기준은 네트워크 주소와 호스트 주소를 표시할 수 있는 비트의 크기이다. A 클래스의 경우는 호스트를 위한 주소 범위가 크고 C 클래스의 경우 호스트를 위한 주소 범위가 작다. 이외에도 새로운 형태의 서비스를 지원하기 위해 할당된 클래스 D가 존재한다. 호스트 주소를 표현하는 모든 비트의 값이 0인 경우는 .. 2017. 5. 13.
컴퓨터 네트워크 37장 - HTTP & CGI - 컴퓨터 네트워크 37장- HTTP & CGI - HTTP는 분산 하이퍼미디어 환경에서 빠르고 간편하게 데이터를 전송하는 프로토콜이다. 웹 브라우저는 URL을 이용하여 원하는 자원을 표현한다. HTTP 메서드를 이용하여 데이터를 요청하거나 회신하는 과정을 반복한다. 클라이언트가 서버에 요청할 때에는 GET 메서드를 사용하고 클라이언트에서 서버로 회신할 때는 POST 메서드를 사용한다. HTTP는 클라이언트-서버 모델이므로 요청과 응답이 클라이언트와 서버로 존재한다. 요청은 HTTP 클라이언트가 서버에 요청을 전송하는 것이고 응답은 HTTP 서버가 요청의 결과인 응답 코드가 포함된 정보를 회신하는 것이다. 비상태 연결은 요청과 응답 이후 연결이 끊어지는 프로토콜을 의미하는데 HTTP의 경우 요청과 응답이 진.. 2017. 5. 11.
컴퓨터 네트워크 36장 - HTML - 컴퓨터 네트워크 36장- HTML - HTML은 HyperText Markup Language의 약자로 웹 브라우저에서 데이터를 어떻게 표시하는지를 나타내는 역할을 하는 언어이다. HTML로 작성한 문서는 서버에 보관되고 클라이언트는 그 문서를 받아 화면에 표시한다. HTML의 문서를 살펴보면 로 시작하고, 로 종료되게 된다. 전체 내용은 크게 헤더와 바디의 두 부분으로 구성된다. 헤더는 로 끝나고 바디의 경우에는 와 태그를 이용한다. HTML에는 위에서 말한 태그를 포함해서 다양한 태그가 존재한다. 일반적으로 웹 문서에서 사용하는 태그는 특정 구역을 설정하여 시작과 종료 부분을 표시하며 태그 이름 좌우에 를 붙여 문자를 표기한다. 의 경우에는 n값에 1~6까지의 상수를 넣는데 제목을 표시하며 .. 2017. 5. 11.
컴퓨터 네트워크 35장 - 웹 서비스 구조 - 컴퓨터 네트워크 35장- 웹 서비스 구조 - 웹은 익명 FTP 기능과 유사한 네트워크 서비스로 인터넷에 연결된 다수의 사용자가 로그인 절차 없이 WWW 서버에 접속할 수 있게 해준다. 웹 환경은 서비스를 제공하는 서버와 서비스를 이용하는 클라이언트의 연결 구조를 지원하는 클라이언트-서버 모델을 사용한다. 전 세계적으로 웹 서버의 TCP 포트 번호는 80번으로 지정된다. 보안을 위해 8000, 8080 등을 이용하기도 한다. 보안이 강화된 HTTPS의 경우 TCP 포트 번호 443을 이용한다. 웹 브라우저는 http 또는 https 서비스에 지정된 포트를 통해 서버와 연결을 시도한다. 실제로 인터넷 익스플로러, 구글 크롬과 같은 다양한 웹 브라우저가 존재한다. 웹 서버와 연결이 되면 클라이언트의 정보 요구.. 2017. 5. 11.
컴퓨터 네트워크 34장 - 소켓 시스템 콜 - 컴퓨터 네트워크 34장- 소켓 시스템 콜 - 운영체제에서 구현되는 전송 계층 프로토콜인 TCP와 UDP를 사용하려면 소켓 시스템 콜이라는 라이브러리 함수를 이용한다. 소켓은 통신을 원하는 프로세스에 할당되는 자원이며, 고유의 소켓 주소가 부여된다. 소켓 주소는 소켓 시스템 콜을 통해 사용되며 이를 지원하는 다양한 함수들이 존재한다. 제공되는 다양한 함수들에 대해 자세히 알아보자. socket()함수는 소켓을 생성하며, 생성된 소켓의 디스크립터를 반환하는 기능을 수행한다. 사용할 프로토콜의 도메인을 의미하는 domain과 서비스 유형에 대한 값인 type과 적절한 프로토콜을 선택하도록 설정하는 protocol 값을 매개변수로 갖는다. protocol은 보통 0으로 지정한다. domain영역에 AF_UINX.. 2017. 5. 7.
컴퓨터 네트워크 33장 - 소켓의 주소 체계와 서비스 - 컴퓨터 네트워크 33장- 소켓의 주소 체계와 서비스 - 소켓이라는 통신 프로그램을 쉽게 개발할 수 있게 해주는 API의 일종이다. 인터넷 응용 프로그램을 작성하려면 C 언어를 포함한 고급 프로그래밍 능력이 필요하듯이 네트워크 기능을 위한 데이터 전송을 위해서는 반드시 소켓 프로그래밍을 할 수 있어야한다. 소켓은 네트워크 통신에서 종단의 교신점 역할을 한다. 예를 들어 우편배달을 하는 경우에는 우체통이라는 도구가 교신점 역할을 할 것이고 전화 서비스를 생각하면 전화기가 교신점 역할을 할 것이다. 프로토콜의 종류에 따라 사용하는 주소 체계가 다르다. 일반적으로 한 호스트에 존재하는 프로세스 사이의 통신을 지원하는 AF_UNIX와 다른 호스트에 존재하는 프로세스 사이의 통신을 지원하는 AF_INET가 존재한다.. 2017. 5. 7.