제 14장 Multicast & Broadcast

Slides:



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

TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
12장. Raw 소켓 Raw 소켓의 특징과 사용 방법을 익힌다. Ping 프로그램의 동작 원리를 이해하고 작성 방법을 익힌다.
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Chapter 8. 인터넷 연결공유와 개인네트워크 구축
Network Lab. Byoung-Son, Choi
IP Addressing and Subnet.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Chapter 06. UDP 서버/클라이언트.
Network Lab. Young-Chul Hwang
Department of Computer Science and Engineering
제 7장 정적 라우팅 프로토콜.
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Chapter 03. 소켓 주소 구조체 다루기.
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
Multimedia & Mobile Communications Lab.
ARP의 실험 발표자 : 이직수
제 12장 I/O멀티플렉싱(Multiplexing)
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
네트워크 프로그래밍 Yang-Sae Moon Department of Computer Science
Chapter 21 Network Layer: ARP, ICMP (IGMP).
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Department of Computer Engineering
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
School of Electronics and Information. Kyung Hee University.
프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당
13장 고급 입출력 함수 박사 4학기 최 성자.
TCP/IP Socket Programming…
Chapter 03. 소켓 주소 구조체 다루기.
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
소켓의 옵션 School of Electronics and Information. Kyung Hee University.
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Chapter 07. 소켓 옵션.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
소규모 IPTV 사업자용 실시간 미디어 플랫폼 기술
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
데이터베이스실험실 석사 2학기 조정희 TCP/IP Socket Programming… 제 18장 윈도우 기반 쓰레드 사용하기 데이터베이스실험실 석사 2학기 조정희
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
20 장 네트워킹과 인터네트워킹 장치 20.1 리피터(Repeaters) 20.2 브리지(Bridges)
Department of Computer Engineering
Overlay Multicast 김 종 완 김 성 현
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
01. 라우팅 및 원격 액세스의 개요 라우팅은 패킷을 송신지부터 수신지까지 어떠한 경로를 통해 보낼 것인지를 결정하는 방법
3 네트워크 기술 학습 목표 회선 교환 시스템과 패킷 교환 시스템의 차이와 원리를 이해한다.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Chapter 27 Mobile IP.
네트워크 프로그래밍 (모바일 주문 프로그램 )
라우터의 이해 (보충자료) TCP/IP구성 Ping명령어를 이용한 연결검사 비트와 바이트 10진수/2진수/16진수
Chapter 04. TCP 서버/클라이언트.
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
Department of Computer Engineering
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
Network Lab. Young-Chul Hwang
3. 윈도우 미디어 플레이어 6.4 옵션(환경) 설정 변경
ARP.
Presentation transcript:

제 14장 Multicast & Broadcast TCP/IP Socket Programming… 제 14장 Multicast & Broadcast 시뮬레이션 실험실 정진구 Jkjeong@hannam.ac.kr

목 차 멀티캐스트(Multicast) 브로드캐스트(Broadcast)

멀티캐스트(Multicast) 전송 방식 UDP를 기반으로 하는 전송 방식. 멀티캐스트 그룹을 기반으로 멀티캐스트 패킷을 주고 받음. 하나의 멀티캐스트 패킷은 라우터를 통해서 다수의 호스트에 전송.

멀티캐스트(Multicast) 라우팅(Routing)과 TTL(Time To Live) 라우터에 의해서 패킷이 경로를 찾는 과정을 라우팅이라 한다. 멀티캐스트 패킷 내에는 TTL 정보가 포함된다. TTL은 거쳐 갈 수 있는 라우터의 수를 의미한다

멀티캐스트(Multicast) 멀티캐스트 Sender와 Receiver. 멀티캐스트 Sender와 Receiver의 구현 • UDP 소켓 생성. • TTL 설정(소켓 옵션 설정). • 멀티캐스트 그룹으로 데이터 전송. • 멀티캐스트 그룹 지정 (ip_mreq 구조체). • 멀티캐스트 그룹 가입 (소켓 옵션 설정).

멀티캐스트(Multicast) 멀티캐스트 Sender 예제 : #define TTL 64 send_sock=socket(PF_INET, SOCK_DGRAM, 0); /*멀티캐스트를 위한 UDP소켓 생성 */ if(send_sock == -1) error_handling("socket() error"); memset(&multi_addr, 0, sizeof(multi_addr)); multi_addr.sin_family=AF_INET; multi_addr.sin_addr.s_addr=inet_addr(argv[1]); /* 멀티캐스트 IP 설정 */ multi_addr.sin_port=htons(atoi(argv[2])); /* 멀티캐스트 port 설정 */ state=setsockopt(send_sock, IPPROTO_IP, IP_MULTICAST_TTL, (void*) &multi_TTL, sizeof(multi_TTL));

멀티캐스트(Multicast) 멀티캐스트 Sender 예제 : if((fp=fopen("News.txt", "r"))==NULL) /* news 파일 오픈 */ error_handling("fopen() error"); while(!feof(fp)){ /* news 방송 */ fgets(buf, BUFSIZE, fp); sendto(send_sock, buf, strlen(buf), 0, (struct sockaddr*)&multi_addr, sizeof(multi_addr)); sleep(2); }

멀티캐스트(Multicast) 멀티캐스트 Sender 실행결과

멀티캐스트(Multicast) 멀티캐스트 Receiver 예제 : int recv_sock; struct sockaddr_in addr; int state, str_len; char buf[BUFSIZE]; struct ip_mreq join_addr; recv_sock=socket(PF_INET, SOCK_DGRAM, 0); /*멀티캐스트를 위해 UDP소켓 생성 */ if(recv_sock == -1) error_handling("socket() error"); addr.sin_port=htons(atoi(argv[2])); /* 멀티캐스트 port 설정 */

멀티캐스트(Multicast) 멀티캐스트 Receiver 예제 : join_addr.imr_multiaddr.s_addr=inet_addr(argv[1]); join_addr.imr_interface.s_addr=htonl(INADDR_ANY); state=setsockopt(recv_sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void*)&join_addr, sizeof(join_addr)); while(1){ str_len=recvfrom(recv_sock, buf, BUFSIZE-1, 0, NULL, 0); if(str_len<0) break; buf[str_len]=0; fputs(buf, stdout); }

멀티캐스트(Multicast) 멀티캐스트 Receiver 실행결과

브로드캐스트(Broadcast) 전송 방식. UDP를 기반으로 하는 전송 방식(멀티캐스트와 같다). 일반적인 UDP 패킷과의 차이점은 전송 목적지 IP주소 뿐이다. 동일 네트워크에 속하는 모든 호스트에 동시 전송(멀티캐스트와의 차이점). 인터넷상에서는 지역 네트워크내에서만 브로드캐스트를 허용한다(네트워크의 부하를 고려).

브로드캐스트(Broadcast) 주소선택에 따른 브로드캐스트 방식의 구분. 지정된 브로드캐스트 : 예 192.12.31.255 192 12 31 xxx 네트워크 IP 호스트 IP 255 브로드캐스트 address 지역적 브로드캐스트 : 예 255.255.255.255

브로드캐스트(Broadcast) 브로드캐스트 Sender 예제 : send_sock=socket(PF_INET, SOCK_DGRAM, 0); /*브로드캐스트를 위해 UDP소켓 생성 */ : state=setsockopt(send_sock, SOL_SOCKET, SO_BROADCAST, (void*)&so_broadcast, sizeof(so_broadcast)); if((fp=fopen("News.txt", "r"))==NULL) /* news 파일 오픈 */ error_handling("fopen() error"); while(!feof(fp)){ /* news 방송 */ fgets(buf, BUFSIZE, fp); sendto(send_sock, buf, strlen(buf), 0, (struct sockaddr*)&broad_addr, sizeof(broad_addr));

브로드캐스트(Broadcast) 브로드캐스트 Sender 실행결과

브로드캐스트(Broadcast) 브로드캐스트 Receiver 예제 : recv_sock=socket(PF_INET, SOCK_DGRAM, 0); /*브로드캐스트를 위한 UDP소켓 생성 */ : memset(&addr, 0, sizeof(addr)); addr.sin_family=AF_INET; addr.sin_addr.s_addr=htonl(INADDR_ANY); addr.sin_port=htons(atoi(argv[1])); /* 브로드캐스트 port 설정 */ if(bind(recv_sock, (struct sockaddr*)&addr, sizeof(addr))==-1) error_handling("bind() error");

브로드캐스트(Broadcast) 브로드캐스트 Receiver 실행결과

참고문헌 “TCP/IP 소켓 프로그래밍” , 윤성우 저 “TCP/IP 네트워크”, 정진옥 외2

Q & A