Download presentation
Presentation is loading. Please wait.
1
네트워크 프로그래밍 및 실습
2
MultiCAst
3
Multicast UDP 통신을 사용한다. 멀티 캐스트와 브로드캐스트/유니캐스트는 범위만 다름
멀티캐스트 : 인터넷 공간에 가상의 범위를 지정하고, 가상의 범위에 통신을 했을때, 그 가상의 공간에 접속되어 있는 Client와 통신하는 방법. 접속한 대상은 데이터를 전송 받을 수 있음. 통신을 받든 안 받든 무조건 가상 공간에 데이터를 쏘아 올리는 형태임 - 멀티캐스트 주소 : ~ (239로 시작하는 IP는 내부 지정용 예약 IP임) 브로드캐스트 : 멀티 캐스트와 방식은 동일하지만. 단일 네트워크 범위에 범위가 정해 짐. 즉 C 클래스 단에서만 데이터를 방출 시킴
4
Multicast 멀티 캐스트 가상 공간은 위 IP 주소 대임, D Class IP 주소 타입임
멀티 캐스트는 데이터가 중간에 손실 될 수 있고, 도달 순서가 바뀔수 있음 멀티캐스트 방식의 경우, 패킷은 라우터를 거쳐 이동함, 결국 라우터는 멀티캐스트를 지원해야 함. 즉 라우터, 호스트 모두 IGMP(Internet Group Management Protocl)을 지원해야 함
5
Multicast 예제 방송 서버 및 클라이언트 구현
6
MulticastSokcet DatagramSock과 유사함 (UDP)
(특정 Ip class를 사용하지만, Multicast는 C Class 네트워크 범위를 사용함) constructs MulticastSocket() : 인위적인 UTP 포트 지정함, 아무거나 사용 MulticastSocket(int) : 포트 번호 지정 (UTP 포트임) --> 일반적으로 사용 MulticastSocket(SocketAddress) : 특정 주소 및 포트 번호 지정 Method getTimeToLive() : 위 소켓에서 나간 데이터가 어느 정도 만큼 살아 있을 것인가 - TTL : 라우터나 게이트웨어를 빠져나갈때 마다 줄어 드는 값 (0~255) - 라우터 빠져나가면 1씩 줄어듬 만약 1 인 경우 현 네트워크 대를 빠져 나갈 수 없다.
7
MulticastSokcet joinGroup(InetAddress) : 연결 가능 상태에서 join Group으로 가입을 해야 통신이 가능함 joinGroup(SocketAddress, NetworkInterface) : 위 와 동일하고 특정 interface 지정함 leaveGroup(InetAddress) : Join된 그룹 상태에서 탈퇴함 (더 이상 통신 X ) - 연결은 지속적으로 되어 있음. Close() 해야 연결 종료됨 setTimeToLive(int) : 데이터 살아 있는 살아 있는 정도 (0 ~ 255 사이로 지정 - TTL 값) - 만약 설정을 1로 하면 사내 네트워크에만 데이터가 전송됨
8
잘 사용되지 않는 메서드들 네트워크 카드가 여러개 일 경우 컨트롤 시 사용
getInterface() : 현재 접속되어 있는 주소 리턴 --> InetAddress 타입 - 네트워크 카드가 여러개 일 경우 사용함, 특정 카드 지정하고 접속 주소 지정, 확인함 - 어떤 네트워크 카드를 사용하여 연결하는가 getLoopbackMode() : Loop back이 지원하는가 (기본 : false) - true일 경우 네트워크 연결 작업을 되돌릴 수 있음 getNetworkInterface() : 현재 Network와 연결된 interface 알아냄 setInterface(InetAddress) : 특정 연결 주소 지정 (특정 카드 지정) - 네트워크 카드가 여러개 일 경우 사용함, 특정 카드 지정하고 접속 주소 지정, 확인함 setLoopbackMode(boolean) : Loop back 지원 setNetworkInterface(NetworkInterface) : 특정 Network Interface와 연결함
9
멀티캐스트 데이터 송신 방법 1. DatagramPacket 클래스 객체로 전송할 데이터 생성
2. D 클래스 주소에 대한 MulticastSocket 클래스 생성 3. 해당 소켓의 포트 번호를 선택해 Join 함 4. send() method로 데이터 전송함 5. 데이터 전송이 끝나면 leave하여 그룹 벗어남 (종료
10
데이터 송신법
11
멀티캐스트 데이터 수신 방법 1. 데이터 전송 받을 최대 공간(65508 byte) atagramPacket클래스 객체 생성
2. 접속하고자 하는 D 클래스 그룹 설정하여 MulticastSocket 객체 생성함 3. 원하는 곳의 포트에 Join 함 (생략 못함) 4. receive() method로 데이터를 읽어 들임 5. 원하는 데이터 읽은 후 leave 하여 그룹 벗어남 6. close()하여 작업 종료함
12
멀티캐스트 데이터 수신 방법
13
Thank you -*
Similar presentations