1. 클라이언트 / 서버
- 클라이언트 → 서비스를 사용
- 서버 → 서비스를 제공
네트워크 구성시,
- 전용 서버를 두는 것 - 서버기반모델
- 예시: 웹브라우저와 웹서버
- (클라이언트)웹 브라우저
- (서버) 웹서버 (예: Apache, Nginx)
- 동작: 웹 브라우저(클라이언트)는 웹 페이지를 요청하고, 웹 서버(서버)는 해당 페이지를 제공하여 응답
- 별도의 전용서버없이 각 클라이언트가 서버역할을 동시에 수행 - P2P 모델
- 예시: 토렌트 파일 공유
- (peer) 각 사용자 컴퓨터
- 동작: 파일을 공유하고자 하는 사용자는 해당 파일을 다른 사용자에게 직접 전송하고, 다른 사용자는 필요한 파일을 직접 해당 사용자로부터 다운로드
서버기반 모델 | P2P 모델 (peer-to-peer model) |
-안정적인 서비스 제공 가능 -공유 데이터의 관리와 보안 용이 -서버구축 및 관리 비용 -중앙 서버를 통해 중재 |
-서버구축 및 운용 비용 절감 -자원의 활용 극대화 -자원 관리 어려움 및 보안 취약 -분산된 구조를 가지며 중앙 서버 없이 통신 |
2. IP 주소
- 컴퓨터(호스트)를 구별하는데 사용하는 고유한 값( 모든 컴퓨터가 IP주소 갖는다)
- 5개의 클래스 분류(A클래스, B,C,D,E클래스)classB : 128~191(2개 네트워크, 2개 호스트) …
- classA : 0~127 (1개 네트워크, 3개 호스트)
- 4byte(32 bit)
- 호스트 주소 - ex) 109.4.88.2
- 네트워크 주소 - ex) 109.0.0.0 (1개 네트워크, 3개 호스트)
- Mac에서 IP 주소 확인
ifconfig | grep inet //ifconfig 명령의 출력에서 inet 문자열을 찾아 출력
//inet(IPv4 주소를 나타내는 문자)
+)서브넷 마스크
- IP 주소를 서브넷(Subnet)으로 분리하는 데 사용되는 32비트 숫자
- IP 주소를 네트워크 부분과 호스트 부분으로 나누는 역할
- 예시
- IP 주소: 192.168.1.1
- 서브넷 마스크: 255.255.255.0
- classC : 3개 네트워크, 1개 호스트
- (2^8 -2: 브로드캐스트주소(마지막)와 네트워크 주소(처음)를 제외한 개수)
- 이 서브넷 마스크
- : classC 사용(11111111.11111111.11111111.00000000)
- 실제 네트워크에 포함 가능한 호스트 개수: 254개
3. InetAddress
자바에서 IP주소를 다루기 위한 클래스
- ^^너무 많으니 예제로 잠깐 알아보자
InetAddress ia = null;
InetAddress[] aArr = null;
ia = InetAddress.getByName("www.naver.com");
System.out.println("호스트 네임: " +ia.getHostName()); // 네이버닷컴의 호스트명을 출력
System.out.println("호스트의 ip주소: " +ia.getHostAddress());
System.out.println(ia.toString()); // 도메인 명과 ip주소를 얻어오는 역할
aArr = InetAddress.getAllByName("www.naver.com");
for(int i = 0; i < aArr.length; i++) {
System.out.println(aArr[i]);
}
ia = InetAddress.getLocalHost(); //내 pc의 host를 얻어온다
System.out.println("로컬호스트:"+ia.getHostName());
System.out.println("로컬호스트:"+ia.getHostAddress());
<출력>
호스트 네임: www.naver.com
호스트의 ip주소: 223.130.195.95
www.naver.com/223.130.195.95
www.naver.com/223.130.195.95
www.naver.com/223.130.200.104
로컬호스트:injiwon-ui-MacBookAir.local
로컬호스트:127.0.0.1
4. URL
인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소
💡 ‘프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링#참조 (포트번호, 쿼리, 참조 생략가능)
*HTTP 프로토콜 → 80번 포트 기본값(생략시)