-
네트워킹(Networking)카테고리 없음 2023. 8. 19. 03:30
네트워킹(Networking)
네트워킹(Networking)이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것을 말한다.
네트워킹의 개념은 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나 자원프린터와 가은 주변기기를 함께 공유하고자 하는 노력에서 시작되었다.
초기의 네트워크는 단 몇 대의 컴퓨터로 구성되었으나 지금은 전 세계의 셀 수도 없을만큼 많은 수의 컴퓨터가 인터넷이라는 하나의 거대한 네트워크를 구성하고 있으며, 인터넷을 통해 다양하고 방대한 양의 데이터를 공유하는 것이 가능해졌다.
자바에서 제공하는 java.net패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있다.
클라이언트/서버(client/server)
'클라이언트/서버'는 컴퓨터 간의 관계를 역할로 구분하는 개념이다.
서버(server)는 서비스를 구성하는 컴퓨터(service provider)이고, 클라이언트(client)는 서비스를 사용하는 컴퓨터(service user)가 된다.
일반적으로 서버는 다수의 클라이언트에게 서비스를 제공하기 때문에 고사양의 하드웨어를 갖춘 컴퓨터이지만, 하드웨어의 사양으로 서버와 클라이언트를 구분하는 것이 아니기 때문에 하드웨어의 사양과 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 서버라 한다.
서비스 - 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것
- 파일서버(file server) - 클라이언트가 요청한 파일을 제공하는 서비스를 수행하는 서버
- 메일서버(mail server) - 전자 메일을 수락하고 원하는 수신자에게 저자 메일을 발송해주는 서버
- 어플리케이션 서버(application server) - 사용자가 원격으로 액세스 할 수 있는 애플리케이션을 호스팅하거나 배포하는 서버
- 웹 서버(web server) - 웹 페이지만 배포할 수 있지만 어플리케이션을 배포하거나 호스팅할 수 없는 서버
- 프록시 서버(proxy server) - 클라이언트와 서버의 중간에 위치하는 서버, 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해준다.
- 데이터베이스 서버(database server) - 워크 스테이션에 접근할 수 있는 컴퓨터 파일을 공유하고 있는 기억공간의 위치를 제공하는 서버(워크스테이션 : 전문적인 작업을 수행하는데 적합한 고성능 개인용 컴퓨터)
서버에 접속하는 클라이언트의 수에 따라 하나의 서버가 여러 가지 서비스를 제공하기도 하고 하나의 서비스를 여러 대의 서버로 제공하기도 한다.
서버가 서비스를 제공받기 위해서는 서버프로그램이 있어야 하고 클라이언트가 서비스를 제공받기 위해서는 서버프로그램과 연결할 수 있는 클라이언트 프로그램이 있어야 한다.
ex) 웹서버에 접속하여 정보를 얻고 싶다. --> 웹브라우저(클라이언트 프로그램)가 필요
FTP서버에 접속해서 파일을 전송받고 싶다. --> 알FTP와 같은 FTP클라이언트 프로그램이 필요
일반 PC의 경우 주로 서버에 접속하는 클라이언트 역할을 수행하지만, FPT Serv - U와 같은 FPT서버프로그램이나 Tomcat과 같은 웹서버 프로그램을 설치하면 서버역할도 수행할 수 있다.
파일공유프로그램은 클라이언트프로그램과 서버프로그램을 하나로 합친 것이다.
이를 설치한 컴퓨터는 클라이언트인 동시에 서버이며 다른 컴퓨터와 파일 주고받을 수 있다.
서버기반모델(server-based model) - 네트워크를 구성할 때 전용서버를 두는 것
P2P모델(peer - to - peer) - 별도의 전용서버없이 각 클라이언트가 서버역할을 동시에 수행하는 것
서버기반모델(server-based model)의 장단점
- 안정적인 서비스의 제공이 가능
- 공유 데이터의 관리와 보안이 용이
- 서버구축비용과 관리비용이 듦
P2P모델(peer - to - peer)의 장단점
- 서버구축 및 운용비용을 절감할 수 있음
- 자원의 활용을 극대화 할 수 있음
- 자원의 관리가 어려움
- 보안이 취약함
IP주소(IP address)
IP주소는 컴퓨터(호스트, host)를 구별하는데 사용되는 고유한 값으로 인터넷에 연결된 모든 컴퓨터는 IP주소를 갖는다.
IP주소는 4 byte(32 bit)의 정수로 구성되어 있으며, 4개의 정수가 마침표를 구분자로 'a.b.c.d'와 같은 형식으로 표현된다.
여기서 a, b, c, d는 부호없는 1 byte의 값(0 ~ 255 사이의 정수)이다.
IP주소는 네트워크주소와 호스트주소로 나눌 수 있는데 32 bit(4 byte)의 IP주소 중에서 네트워크주소와 호스트주소가 각각 몇 bit를 차지하는지는 네트워크가 어떻게 구성되는지에 따라 달라진다.
서로 다른 두 호스트의 IP주소의 네트워크주소가 같다는 것은 두 호스트가 같은 네트워크에 포함되어 있다는 것을 의미한다.
윈도우즈 OS에서 호스트의 IP주소를 확인하려면 콘솔에서 ipconfig.exe를 실행시키면 된다.
이에 따른 결과로 IP주소와 서브넷 마스크를 2진수로 표현한 후, 비트연산자 '&'로 연산하면 IP주소에서 네트워크 주소만을 뽑아낼 수 있다.
Ex)
IP주소 : 192.168.10.100
서브넷 마스크 : 255.255.255.0
위의 IP주소와 서브넷 마스크를 연산하면 IP주소의 마지막 8비트만 모두 0이 된다.
이를 통해서 IP주소 192.168.10.100의 네트워크주소는 24 bit(192.168.10)이 되고 호스트주소는 8 bit(100)이 된다는 것을 알 수 있다.
IP주소에서 네트워크주소가 차지하는 자리수가 많을수록 호스트 주소의 범위가 줄어들기 때문에 네트워크의 규모가 작아진다.
이 경우 호스트주소의 자리수가 8자리이기 때문에 256개의 호스트만 이 네트워크에 포함될 수 있다.
호스트주소가 0인 것은 네트워크 자신을 나타내고, 255는 브로드캐스트 주소로 사용되기 때문에 실제로 네트워크에 포함 가능한 호스트 개수는 254개이다.
이처럼 IP주소와 서브넷 마스크를 '&'로 연산하면 네트워크 주소를 알아낼 수 있기 때문에 서로 다른 두 호스트의 IP주소를 서브넷 마스크와 '&'연산을 수행하여 비교하면 이 두 호스트가 같은 네트워크 상에 존재하는지를 확인할 수 있다.