Computer Network Lab. 1 13. 다중전송 소켓 컴퓨터 네트워크 실험실 이 희 규, 조 한 진.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

Computer Network Lab UDP 데이터그램 과 소켓 강 동 호 컴퓨터 네트워크 실험실.
Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL Section 3 : TCP 소켓 Section 4 : UDP 소켓.
Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
11장. 프로토콜 핸들러 AI &HC I LAB 김 성 현.
네트워킹 프로그래밍과 java.net 패키지
[ 단원 11 ] 입출력과 네트워크.
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
8장. 네트워크 프로그래밍 /*컴퓨터 네트워크 프로그래밍 -김화종 저- 참조 */
제14장 원격 메소드 호출 김 기 환. 조 명 휘.
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
5 익셉션 처리.
제 7장 정적 라우팅 프로토콜.
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
Chap11 네트워킹 11.1 네트워킹의 개요와 java.net 패키지 11.2 인터넷 주소와 URL 11.3 TCP 소켓
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
파일 입출력에 사용되는 자바 클래스들 JDK 라이브러리의 파일을 다루는 클래스들 파일의 내용을 읽고 쓰는 클래스들
8장 자바 입출력.
Multimedia & Mobile Communications Lab.
Internet Group Management Protocol (IGMP)
INDEX 1. 전체 시스템 구성도 2. 개발환경 3. 사용자 명령어 4. 패킷 구조 및 데이터 구조
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
제 14장 Multicast & Broadcast
JAVA 프로그래밍 12장 네트워킹(Networking).
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
명품 JAVA Programming 제 16 장 네트워크.
Lesson 6. 형변환.
명품 JAVA Programming 제 16 장 네트워크.
Chap07 예외 처리 7.1 예외의 개요 7.2 예외 관련 클래스 7.3 예외 처리.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
주소록 프로그램.
Lesson 7. 클래스와 메소드 - 1.
Network Programming(1)
10장. 예외처리.
8장 서버 소켓 프로그래밍 언어 실험실 석사 3학기 김성중.
15장 네트워킹 15.1 네트워킹의 개요와 java.net 패키지 15.2 인터넷 주소와 URL 15.3 TCP 소켓
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
RMI Messenger 지도 : 김정배 교수님 조봉진.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
자바 암호 프로그래밍 Java Cryptography Programming
컴퓨터공학실습(I) 3주 인공지능연구실.
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
Network 네트워크 이론 및 실습 TCP / IP 4장.
자바 5.0 프로그래밍.
네트워크 프로그래밍 및 실습.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
JA A V W. 06.
01. 라우팅 및 원격 액세스의 개요 라우팅은 패킷을 송신지부터 수신지까지 어떠한 경로를 통해 보낼 것인지를 결정하는 방법
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
CHAP 21. 전화, SMS, 주소록.
Chapter 26 IP over ATM.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
Addressing the Network – IPv4
Chapter 27 Mobile IP.
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
다자간 채팅프로그램 김형도 허영민
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
ARP.
Presentation transcript:

Computer Network Lab 다중전송 소켓 컴퓨터 네트워크 실험실 이 희 규, 조 한 진

Computer Network Lab. 2 목 차목 차 n 다중전송 n 인터넷상에서의 다중전송 n 다중전송 주소와 다중전송 그룹 n 라우터와 라우팅 n 다중전송 소켓 작업 n 생성자 n 메소드 n MulticastSniffer n MulticastSender n 결론

Computer Network Lab. 3 다중전송 n 하나의 호스트에서 다중전송 그룹에 가입한 다 른 호스트들에게 데이터를 전송하는 것

Computer Network Lab. 4 인터넷상에서의 다중전송 캠퍼스세상

Computer Network Lab. 5 다중전송 주소와 다중전송 그룹 n 다중전송 주소 l 다중전송 주소는 – 사이의 IP 주소 사용 l 주소의 첫번째 4 비트로 1110 을 갖는 클래스 D 로 주소 l 다중전송 주소도 호스트 이름을 가질 수 있음 011multicast address(28bits)1

Computer Network Lab. 6 다중전송 주소와 다중전송 그룹 n 다중전송 그룹 l 다중전송 주소를 공유하는 인터넷 호스트들의 집단 l 다중전송 그룹의 가입과 탈퇴는 자유 l 그룹은 일시적일 수도 있고, 영구한 것일 수도 있음 l 현재 자바는 다중전송 그룹을 만들 수 있는 기능이 없 지만, 그룹에 가입할 수 있는 클래스 제공 l IANA(Internet Assigned Number Authority) 에서 필요한 경우 영구 다중전송 주소 배부

Computer Network Lab. 7 라우터와 라우팅 다중전송 소켓을 이용하지 않음다중전송 소켓을 이용함 클라이언트 라우터 인터넷 라우터 서버

Computer Network Lab. 8 다중전송 소켓 작업 n MulticastSocket() 생성자를 이용해 객체 생성 n MulticastSocket 의 joinGroup() 메소드를 사용하여 다중전 송 그룹 가입 n DatagramSocket 의 receive() 메소드를 호출을 통한 데이터 수신 n MulticastSocket 의 leaveGroup() 메소드를을 호출하여 다 중전송 그룹 탈퇴 n java.net.DatagramSocket 의 close() 메소드를 사용하여 소 켓 종료

Computer Network Lab. 9 생성자 (1/4) n public MulticastSocket() throws SocketException l 익명 포트에 바인드 (bind) 되는 소켓을 생성. l java.net.DatagramSocket 의 getLocalPort() 을 통해 포트 번호 획득. l 소켓 생성 불가능 시에 SocketException 발생

Computer Network Lab. 10 생성자 (2/4) import java.io.*; import sun.net.*; import java.net.*; public class MulticastConstructor { public static void main(String[] args) { try { MulticastSocket ms = new MulticastSocket(); System.out.println(ms); } catch (SocketException se) { System.err.println(se); } catch (IOException ioe) { System.err.println(ioe); }

Computer Network Lab. 11 생성자 (3/4) n public MulticastSocket(int port) throws SocketException l 잘 알려진 포트로 데이터 그램을 수신하는 소켓 생성 l 1 – 1023 포트에 바인드시 시스템 루트권한 필요 l 소켓 생성 불가능 시에 SocketException 발생

Computer Network Lab. 12 생성자 (4/4) import java.io.*; import sun.net.*; import java.net.*; public class MulticastPortConstructor { public static void main(String[] args) { try { MulticastSocket ms = new MulticastSocket(2048); System.out.println(ms); } catch (SocketException se) { System.err.println(se); } catch (IOException ioe) { System.err.println(ioe); }

Computer Network Lab. 13 메소드 (1/7) n public void joinGroup(InetAddress mcastaddr) throws SocketException l MulticastSocket 로부터 데이터를 받기 위해, 다중전송 그룹에 가입 l 다중전송 주소가 아니면 ( – ) SocketException 을 발생 ( 자바 1.1 에서는 IOException)

Computer Network Lab. 14 메소드 (2/7) n public void leaveGroup(Inetaddress mcastaddr) throws SocketException l 다중전송 그룹으로부터 더 이상 데이터그램을 받지 않을 것임을 알림 l 다중전송 주소가 아니면 ( – ) SocketException 을 발생 ( 자바 1.1 에서는 IOException)

Computer Network Lab. 15 메소드 (3/7) n public synchronized void send(DatagramPacket dp, byte ttl) throws IOException, SocketException l 데이터를 DatagramPacket 의 객체 dp 에 채워 넣고, 이것 을 전달 l TTL 은 패킷의 이동 공간을 제한하기 위해서 사용

Computer Network Lab. 16 메소드 (4/7) n 미 대륙에서 만들어진 테이터그램을 기준으로 했을 때 TTL 추정치 다중전송할 목적지 TTL 값 로컬호스트 로컬서브넷 가장 가까운 인터넷 라우터와 같은 쪽에 있지만, 다른 랜을 사용하는 로컬 캠퍼스 미국에 있는 광 대역폭 사이트, 백본에 가까이 있다. 미국 북미 대륙 전 세계의 광대역 사이트 전 세계에 있는 모든 사이트

Computer Network Lab. 17 메소드 (5/7) n public void setInterface(InetAddress interface) throws SocketException( 자바 1.1 에서만 ) l 멀티 홈 호스트에서, 다중전송을 위해서 사용될 네트 워크 인터페이스 선택 l InetAddress 가 로컬 기계상의 네트워크 인터페이스가 아니면 SocketException 발생

Computer Network Lab. 18 메소드 (6/7) import sun.net.*; import java.net.*; import java.io.IOException; public class SetInterface{ public static void main(String[] args) { MulticastSocket ms; InetAddress ia; try {ia = InetAddress.getByName("kiss.hannam.ac.kr"); ms = new MulticastSocket(2048); ms.setInterface(ia); System.out.println(ms); } catch (UnknownHostException ue) { System.err.println(ue); } catch (SocketException ue) { System.err.println(ue); } catch (IOException ue) { System.err.println(ue); } }

Computer Network Lab. 19 메소드 (7/7) n public InetAddress getInterface() throws SocketException l 사용중인 네트워크 인터페이스의 주소를 알고 싶을 때 사용 try { ms = new MulticastSocket(2048); ia =ms.getInterface(); } catch (SocketException se) { System.err.println(se); }

Computer Network Lab. 20 MulticastSniffer (1/2) import sun.net.*; import java.net.*; import java.io.*; public class MulticastSniffer { public static void main(String[] args) { InetAddress ia = null; byte[] buffer = new byte[65509]; DatagramPacket dp = new DatagramPacket(buffer, buffer.length); int port = 0; try { ia = InetAddress.getByName(args[0]); } catch (UnknownHostException e) { // ia = InetAddressFactory.newInetAddress(args[0]); ia = InetAddress.getByName(args[0]); } port = Integer.parseInt(args[1]); } // end try

Computer Network Lab. 21 MulticastSniffer (2/2) catch (Exception e) { System.err.println(e); System.err.println("Usage: java MulticastSniffer MulticastAddress port"); System.exit(1); } try { MulticastSocket ms = new MulticastSocket(port); ms.joinGroup(ia); while (true) { ms.receive(dp); String s = new String(dp.getData(), 0, 0, dp.getLength()); System.out.println(s); } catch (SocketException se) { System.err.println(se); } catch (IOException ie) { System.err.println(ie); }

Computer Network Lab. 22 MulticastSender (1/2) import java.net.*; import java.io.*; import sun.net.*; public class MulticastSender { public static void main(String[] args) { InetAddress ia = null; int port = 0; String characters = "Here's some multicast data\n"; byte[] data = new byte[characters.length()]; // read the address from the command line try { ia = InetAddress.getByName(args[0]); } catch (UnknownHostException e) { / ia = InetAddressFactory.newInetAddress(args[0]); ia = InetAddress.getByName(args[0]); } port = Integer.parseInt(args[1]); }

Computer Network Lab. 23 MulticastSender (2/2) catch (Exception e) { System.err.println(e); System.err.println("Usage: java MulticastSender MulticastAddress port"); System.exit(1); } characters.getBytes(0, characters.length(), data, 0); DatagramPacket dp = new DatagramPacket(data, data.length, ia, port); try { MulticastSocket ms = new MulticastSocket(); ms.joinGroup(ia); for (int i = 1; i < 10; i++) { ms.send(dp, (byte) 1); } ms.leaveGroup(ia); ms.close(); } catch (SocketException se) { System.err.println(se); } catch (IOException ie) { System.err.println(ie); }

Computer Network Lab. 24 결론 n 다중전송을 하기 위해서는 다중전송 라우터가 반드시 필요하지만 흔하지 않음 n 자바는 다중전송 그룹을 만들 수 있는 기능이 없 음.