P2P를 연결을 위한 여러기술 휴즈플로우 이재동 예전에 간략하게 크로스 플랫폼 p2p를 이야기한적이 있었는데요

Slides:



Advertisements
Similar presentations
선진한국, 이렇게 만들자 재단법인 한국선진화포럼. 민생이 보는 선진화  윤택한 경제생활 ( 산업화 )  믿고 사는 사회생활 ( 민주화 ) - 개인의 재산, 자유와 권리를 보호하는 사회 모르는 사람과 믿고 협력하는 사회  함께 가는 공동생활 ( 복지사회 ) - 역경에.
Advertisements

 사회  4 학년 1 학기  1. 우리 시ㆍ도 모습 > (1) 지도에 나타난 우리 시. 도의 모습 (2/17) 지도를 알아보자 (1)
ㅋㅋ 다른 집단과 명확히 구별되는 가치체계와 지식 그리고 그에 부합하는 기술을 가지고 있어야 한다. 가치체계 - 사회복지사윤리강령, 선서 등 기본요소 완성 지식 - 사회복지사 1 급 자격증 시험으로 완성 기술 - 명확하지 않으나 실습, 보수교육을 통해 완성 Client.
녹는점과 끓는점 화학과 이 언정 손 나영 《수업 계획서》
COPYRIGHT (c) 2010 by MINISTRY OF Public Administration and Security. All rights reserved 년 5월 2013 개인정보보호 및 정보보안 연수 대호중학교 교육정보부.
목차 침해사고 현황 재난대응 안전한국훈련 (사이버분야) 침해사고 방지방안 학교 정보보안 기본수칙
정보통신 개론.
아동이 살기 좋은 횡성군 만들기 추진위원회 2차 모임
& 국민연금법 국민건강보험법 사회복지법제 행정학부 김인철 사회복지학과 김건우
시대의 향기를 담은 고수필 고전문학원전강독 신태웅 김수연 이진솔.
Mobile Cloud Messaging Package
트랜스내셔널리즘시대 시민지(知)를 생각한다
7장. TCP와 UDP.
IP변경 요청_ 스마트폰 전자결제연동 올더게이트.
Asymmetric Link 분석.
암호화 기술(IPsec,SSL) 배문주 송정미 황유진.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
오목게임 W32 로봇시스템제어(하) GROUP 7 노성동, 하선웅, 김관준
연습 문제 풀이 E BF F8 85 A5 E5 9B 37 A5 E5 9B FF 버전 헤더길이 서비스유형 전체길이
Network 네트워크 이론 및 실습 TCP / IP 4장.
Ethereal 을 이용한 프로토콜 분석 윤 상 호 이 정 열 정 우 석.
SysmanagerOne 네트웍 구성도 ㈜시스원 IDC사업부.
NAC Test 시나리오 내부단말 통제 보안 BMT 시나리오
1. SNMP SNMP(Simple Network Management Protocol)은 네트워크의 중앙집중화된 관리를 목적으로 만들어졌으며, 현재까지 버전 3까지 세가지 버전이 만들어졌다. 각 버전의 차이는 대부분 보안상의 문제에 의한 것이다. SNMP 발전 과정 버전.
2세부 진도보고 일 시 : 2014년 04월 03일 소 속 : 경희대학교 허의남교수님 연구실
멀티미디어 음악 교육 어플리케이션 시스템 개발
AOE-212N 설치 Easy Manual INTER-M C/S팀 길근우.
IP 기반 사내방송 서비스 소개 ( IP기반의 최고화질의 영상/음성 실시간 전송기술)
14장. NFS 서버의 설치와 운영.
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Department of Computer Engineering
19 장 호스트 대 호스트 전송: 인터네트워킹, 주소 지정, 라우팅
Network Programming(1)
소리가 작으면 이어폰 사용 권장!.
서버 실습 기말과제 게임소프트웨어 b 이도하 Date :2014/12/11(목)
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Wireshark Protocol 분석 지정석 김도건 박재영
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
마을살이 제천덕산면을 중심으로 농촌공동체연구소장 한석주.
2014년 12월 21일(일) ~ 12월 22일(월) / 성균관대 자연과학캠퍼스내
Packet Analyzer V (주) 이네스 닷컴.
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
1 학습 목표 네트워크의 기초 네트워크 관련 기초 용어를 익힌다.
TCP / IP 소켓 프로그래밍 3주차 ( Ch.10 ~ Ch.14 ).
스마트폰→PC원격제어 관심분야연구회 조 용한 제 인환.
Chapter 04. OSI 참조 모델.
단말기의 설치마법사를 통한 개통 절차 1.쉬운 설치 마법사를 통한 설치 + (1) 고정 IP / DHCP / PPPoE 설정
IP변경 요청 올더게이트.
각종 연결 프로그램이 실행되지 않을 때 도움말을 클릭하세요
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
제 11장 User Datagram Protocol(UDP)
쓰레기를 바르게 처리하는 방법 알기 바른 생활 1학년 2학기 4.쓰레기를 바르게 처리해요(1/4) [본차시의 주요내용]
재활용의 실태와 재활용품 만들기의 계획 실과 6학년 8 . 환경을 살리는 나의 생활> 2) 재활용품 만들기(5~6/8)
Internet 유선 랜카드 A 회사 네트워크 장비 (인터넷 공유 기능 활성화)
Virtual Private Networks,
『CLEAN 사업장』조성사업 추진현황 한 국 산 업 안 전 공 단 부 산 지 역 본 부 - (주)은창티엔씨 -
아동안전관리 홍성훈 교수님 아동보육학과 박윤희
제 10장 가족치료모델 발 표 : 여금란.
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
통신 메모리 공유를 이용한 클라이언트/서버 설정 방법
▶서류관리 프로그램 1. 로그인….2 2. 서류등록 … 서류도착 서류스티커발행
매물장 로그인 직원을 미리 생성하시면 직원 ID로 로그인 가능.
곱셈(3) 수학 3학년 1학기 6. 곱셈 (3/9) 수업계획 수업활동 -학습진행내용- O 수업 시작하면서 제시되는 화면이다.
곱셈(4) 수학 3학년 1학기 6. 곱셈 (4/9) 수업계획 수업활동 -학습진행내용- O 수업 시작하면서 제시되는 화면이다.
실시간 음성 채팅 서비스 (Voice Chatting Programe)
재미있는 놀이, 문제 해결하기 수학 3학년 2학기 8. 문제 푸는 방법 찾기 (4/6) -학습진행내용-
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Ethereal 컴퓨터 통신망.
Lady chatterley 윤형석 장홍현 조재범.
Department of Computer Engineering
Presentation transcript:

P2P를 연결을 위한 여러기술 휴즈플로우 이재동 예전에 간략하게 크로스 플랫폼 p2p를 이야기한적이 있었는데요 그래서 어떻게 하면 TeamViewer나 다른 P2P와 같이 같은 네트워크상에 있지 않은 기기끼리 통신을 할수 있는지에 대해 조사를 해보았습니다.

어떻게 통신할까? 자 생각해봅시다. 데이터를 전송할 방법은 여러가지가 있습니다. 가장 쉬운방법은 같은 NAT 를 거치지 않은 Public ip를 이용해서만 통신하는 방법이 있습니다. 예를 들면 10.30.1.1 이라는 public ip가 각각 있으면 그냥 서로 ip를 입력해서 접근할수 있습니다. 하지만 NAT 환경 공유기를 거친 환경이거나 혹은 3g를 이용한 핸드폰이라면 어떨까요? 초보라면 저 컴퓨터에 ip를 확인해서 접속 할려고 시도도 해볼것입니다. 하지만 private ip라서 접근이 불가능하죠 이런경우 어떻게 통신을 할까요… 이제부터 많은 방법중에 많은 사람들이 이용하는 방법을 보겠습니다.

Relaying 첫번째로 relaying 방식 입니다. NAT를 넘나드는 가장 확실한 (그러나 가장 비효과적인) P2P 통신 방법은 중계(relaying)를 통해서 간단하게 표준 클라이언트/서버 모델 처럼 만드는 것 이다. 예전 이노티브 다닐때에도 제가 서버팀이였을때 이방법을 사용했었고 현재 레드카펫도 이렇게 연결을 하고 있는것으로 알고 있습니다. 한마디로 중계를 이용한 방법이지요 이기법의 단점은 서버의 프로세싱 파워와 네트워크 대역폭을 소모한다는 것입니다. 또한 아무리 서버가 잘 연결되어 있다 하더라도 두 클라이언트 사이의 통신 지연이 늘어날 가능성이 있다. 그럼에도 불구하고, 모든 NAT들을 상대로 확실히 동작하는 효과적인 기법이 없기 때문에, 최대의 확실성이 요구된다면 중계는 유용한 대책이다

Hole Punching 홀펀칭이라고 들어보셨나요? 아마 지숙이는 알텐데요 A4 용지 파일을 정리할때 구멍을 뚫는 펀칭도구를 홀펀칭이라고 부르지요? 말그대로 NAT로 인해 막혀있는 홀( 포트? )를 네트워크 패킷이 지나갈 수 있게 뚫는 것입니다. 이게 필요한 이유는 p2p 기반의 게임이나 통신방식에서 클라이언트끼리 직접 연결을 맺고 통신을 진행 하여야 하는데 직접 연결이 불가능하기때문에 유무선 공유기가 일반화된 환경에서 p2p 서비스를 제공하려는 경우에 필수적인 기술입니다

Hole Punching Server Client A Client B 홀펀칭에 대해서 막 복잡한 이론이 존재하지만 제가 간략하게 정리하자면 이렇습니다. Client A와 B가 서버에게 작은 dummy Data를 보냅니다. Server는 받은 Data를 분석해서 ip와 port정보를 얻어 냅니다. 그정보를 가지고 A와 B 클라이언트들에게 정보를 주면 A와 B는 다이렉트로 통신을 시작하게 됩니다. 이때 udp통신을 하게 되는데 통신이 끊기지 않도록 주기적으로 keep-alive 를 해야합니다. 이와 같은걸 홀펀칭이라고 하는데요 이기술을 통해서 80% 통신이 가능하고 만약 이렇게해서 통신이 안될경우 relaying 기법을 이용한다면 98% 까지 통신이 가능하다고 합니다. 그래서 나중에 정식적으로 프로그래밍을 짤때는 기본적으로 홀펀칭을 쓰고 홀펀칭이 먹히지 않을 경우에는 relaying 으로 전환하는 방법을 쓰시면 될꺼 같습니다. 물론 TCP로도 가능은 한데 좀더 어렵고 확률이 낮아진다고 하네요 Client A Client B

샘플 시연