Network Programming Version 2.1.

Slides:



Advertisements
Similar presentations
6 장. 네트워크 개론 네트워크 장비, 프로토콜, 통신망. 개요 네트워크란 ? 네트워크의 종류 데이터전송방식 네트워크 장비 프로토콜의 종류 IP 주소체계 네트워크 토폴로지 통신망 네트워크진단 명령어.
Advertisements

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www. nms4you.com 1 AMAN2002 추가 기능 실습 Chapter 13:
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL
멀티미디어 서비스를 위한 IP 네트워크 순천향대학교 정보기술공학부 이 상 정
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
2 장 인터넷의 구성 및 접속.
1. 스푸핑 공격 - 스푸핑(Spoofing): ‘속이다’ 의 의미.
3 장 인터넷 서비스.
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
TCP/IP Network Experimental Programming [IPv6에 의한 통신 실험]
Asymmetric Link 분석.
암호화 기술(IPsec,SSL) 배문주 송정미 황유진.
Chapter 06. 프로토콜.
RTSP, RTP 김현철.
제14장 원격 메소드 호출 김 기 환. 조 명 휘.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
제 1장 인터네트워킹.
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
SNMP (Simple Network Management System)
20 장 네트워크층 프로토콜 : ARP, IPv4, ICMP, IPv6, ICMPv6
Network 네트워크 이론 및 실습 TCP / IP 4장.
Introduction to Networking
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
10. About TCP / IP SPARCS 08 우성필.
Internet 및 EC 관련 기술들.
네트워크 보안 TCP/IP 네트워크통신 개념.
Chapter 02 네트워크에 대한 이해.
4주 : 정보통신 네트워크 인터넷정보원 및 학술정보자원의 활용 담당교수 : 박 양 하 정보통신시스템 – 정보전송/처리시스템
RTSP, RTP 김현철.
NAC Test 시나리오 내부단말 통제 보안 BMT 시나리오
JAVA 프로그래밍 12장 네트워킹(Networking).
자바 5.0 프로그래밍.
명품 JAVA Programming 제 16 장 네트워크.
S N M P (Simple Network Management System).
IP 기반 사내방송 서비스 소개 ( IP기반의 최고화질의 영상/음성 실시간 전송기술)
Chapter 05 목록화.
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Access Control Lists Access Control List
Network Layer: ARP, ICMP (IGMP).
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
Department of Computer Engineering
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
TCP/IP와 인터넷 제 1 장 인터넷 개요 및 역사.
TCP/IP 통신망 특론 2장 Link Layer 컴퓨터 네트워크 실험실 이희규.
컴퓨터 네트워크 개념, 프로토콜, 프로그래밍 임 효 택, 송 주 석 dongseo. ac
Network Programming(1)
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
OSI 모델 OSI 모델의 개념과 필요성 OSI 모델의 데이터 전송 과정 OSI 모델 7계층 한빛미디어(주)
5장 RARP (Reverse Address Resolution Protocal) 시스템 소프트웨어 실험실 남 상 온
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
1 학습 목표 네트워크의 기초 네트워크 관련 기초 용어를 익힌다.
Cyclow Progress 김영훈, 김수현, 박윤아.
Chapter 7 Graphical User Interface
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
User Datagram Protocol (UDP)
Chapter 04. OSI 참조 모델.
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Chapter 16 Socket Interface.
기술가정 2학년 2학기 4.컴퓨터와 생활 > 2) 인터넷의 활용 > 1/7 인터넷이란 무엇일까.
초기화면 인터넷의 이해 Ⅳ. 컴퓨터와 생활> 2. 인터넷의 활용> 기술·가정 2학년 2학기
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
Internet & WWW Protocols
김 형 진 전북대학교 IT응용시스템공학과 네트워크의 기본 Chapter 김 형 진 전북대학교 IT응용시스템공학과.
Part TCP / IP 1. TCP / IP 프로토콜 2. 기본 프로토콜.
스마트폰을 통한 메일서비스 이용방법 (안드로이드폰)
Department of Computer Engineering
Presentation transcript:

Network Programming Version 2.1

학습목표 소켓 프로그래밍의 개념을 이해한다. 소켓을 사용하여 네트워크 프로그램을 구현할 수 있다.

1. 소켓 프로그래밍 개요 TCP/IP 프로토콜계층 응용계층 트랜스포트 계층 인터넷계층 네트워크 액세스계층 응용프로그램 FTP, HTTP, Telnet, SMTP UDP 응용프로그램 NFS, TFTP 응용계층 트랜스포트 계층 TCP UDP RARP ARP IP ICMP 인터넷계층 Hardware Interface 네트워크 액세스계층 응용계층(Application): 응용프로그램계층, Telnet, FTP, SMTP, HTTP 등 전송방법 규정 트랜스포트계층(Transport) : 네트워크 종단 간 데이터전송을 지원하는 계층(TCP/UDP방식) 인터넷계층(Internetwork) : 인터넷layer로 불리며 IP,ICMP,ARP등의 프로토콜로 구성 네트워크 액세스계층(Network Interface) : 데이터링크 레이어라고 불리며, IEEE 802.2,ATM, X25등의 전송방식을 포함

1. 소켓 프로그래밍 개요 TCP와 UDP 전송방식 TCP 방식 UDP 방식 신뢰성 100% 신뢰성 보장 신뢰성 없음 TCP/IP 프로토콜은 연결 지향방식인 TCP (Transmission Control Protocol)와 비연결 지향방식인 UDP (User Datagram Protocol)로 구성 TCP 방식 UDP 방식 신뢰성 100% 신뢰성 보장 신뢰성 없음 네트워크부하 많음 상대적으로 적음 사용 예) 신뢰성이 요구되는 FTP, Telnet, SMTP, POP3, HTTP 등에 사용 대용량 미디어 파일 전송 (물리적으로 100% 신뢰할 수 있는 케이블) TCP방식 소켓프로그래밍 예 IPEndPoint ipep = new IPEndPoint (IPAddress.Any, 9999); Socket newsock = new Socket (AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); Newsock.Bind (ipep); Newsock.Listen(10); Socket client = newsock.Accept (); UDP방식 소켓프로그래밍 예 IPEndPoint ipep = new IPEndPoint (IPAddress.Any, 9999); Socket newsock = new Socket (AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp); Newsock.Bind (ipep);

1. 소켓 프로그래밍 개요 System.Net 네임스페이스 IP 주소관련 클래스 클래스 설 명 IPAddress 클래스 설 명 IPAddress IP 주소를 나타내는 클래스 IPHostEntry 하나의 호스트에 대한 상세 정보를 제공하는 클래스 Dns 호스트 이름을 IP주소로 변환할 때 사용하는 클래스 IPEndPoint IP주소와 포트로 네트워크 종단점 정보를 가져오는 클래스 IPAddress 클래스 IPAddress 클래스는 주로 맴버메소드인 Parse()를 이용해 IP주소를 문자열 형태로 입력 ex)IPAddress addr = IPAddress.Parse(“192.168.0.1”); 네 개의 예약필드를 포함하고 있음. 예약 필드명 설 명 Any 로컬시스템에서 사용할 수 있는 IP주소를 나타낼 때 Broadcast 로컬 네트워크의 IP 브로드캐스트 주소를 나타낼 때 Loopback 시스템의 루프백 주소를 나타낼 때 None 시스템에 네트워크 인터페이스가 없음을 나타낼 때

1. 소켓 프로그래밍 개요 사용 예) - 콘솔프로그램 using System; using System.Net; class IPTest { static void Main(string[] args) IPAddress ex1 = IPAddress.Parse(“211.179.124.1”); IPAddress ex2 = IPAddress.Any; IPAddress ex3 = IPAddress.Broadcast; IPAddress ex4 = IPAddress. Loopback; IPAddress ex5 = IPAddress. None; Console.WriteLine(“{0}={1}”, “ex1”, ex1); Console.WriteLine(“{0}={1}”, “ex2(Any)”, ex2); Console.WriteLine(“{0}={1}”, “ex3(Broadcast)”, ex3); Console.WriteLine(“{0}={1}”, “ex4(Loopback)”, ex4); Console.WriteLine(“{0}={1}”, “ex5(None)”, ex5); }

1. 소켓 프로그래밍 개요 IPEndPoint 클래스 using System; using System.Net; class ExIPEndPoint { static void Main(string[] args) IPAddress ex = IPAddress.Parse(“211.179.124.1”); IPEndPoint ie = new IPEndPoint(ex, 8000); Console.WriteLine(“ToString() : {0}”, ie.ToString()); Console.WriteLine(“AddressFamily : {0}”, ie.AddressFamily); Console.WriteLine(“Address : {0}”, ie.Port); Console.WriteLine(“MaxPort:{0} MinPort:{1}”, IPEndPoint.MaxPort, IPEndPoint.MinPort); }

2. 소켓 사용하기 Socket 생성 (System.Net.Sockets) Socket sock = new Socket(AddressFamily af, SocketType st, ProtocolType pt;) SocketType ProtocolType 설 명 Dgram Udp 비 연결 통신(UDP) 통신 Stream Tcp 연결 지향 통신 (TCP) 통신 Raw Icmp ICMP(Internet Control Message Protocol) 패킷 통신

3. Socket 클래스를 이용한 바이트 단위 채팅 프로그램 Server IPEndPoint ipep = new IPEndPoint(IPAddress.Any,7000); //7000번포트열기 Socket server = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind (ipep); //채팅서버 바인딩 server.Listen (10); // 최대 10개의 클라이언트 접속 대기 Socket client = server.Accept (); // 클라이언트 접속처리 Client IPEndPoint ipep = new IpEndPoint (IPAddress.Parse(ip), 7000);//접속할IP Socket client = new Socket (AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); client.Connect (ipep); // ip에 해당하는 컴퓨터 7000포트로 접속시도

4. NetworkStream 클래스 이용 문자열 기반 채팅프로그램 Server IPEndPoint ipep = new IPEndPoint (IPAddress.Any,7000); //7000번포트열기 Socket server = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind (ipep); //채팅서버 바인딩 server.Listen(10); //클라이언트 접속 대기 Socket client = server.Accept (); //클라이언트 접속처리 NetworkStream stream = new NetworkStream (client); //네트워크스트림 StreamReader reader = new StreamReader (stream); //읽기 스트림 StreamWriter writer = new StreamWriter (stream); //쓰기 스트림 string msg = reader.ReadLine (); //상대방이 보낸 메시지 읽어오기 writer.WriteLine (); //상대방에게 문자열단위로 데이터 보내기 writer.Flush (); //버퍼에 있는 내용을 모두 전송

4. NetworkStream 클래스 이용 문자열 기반 채팅프로그램 Client IPEndPoint ipep = new IpEndPoint (IPAddress.Parse(ip), 7000); //접속할IP Socket client = new Socket (AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); client.Connect (ipep) ; //ip에 해당하는 컴퓨터 7000포트로 접속시도 NetworkStream stream = new NetworkStream (client); //네트워크스트림 StreamReader reader = new StreamReader (stream); //읽기스트림 StreamWriter writer = new StreamWriter (stream); //쓰기 스트림 string msg = reader.ReadLine (); //상대방이 보낸 메시지 읽어오기 writer.WriteLine (); //상대방에게 문자열단위로 데이터 보내기 writer.Flush (); //버퍼에 있는 내용을 모두 전송

5. C# 헬퍼 클래스를 이용한 채팅 프로그램 작성 Server Client server.Start(); //서버프로그램 실행 TcpListener server = new TcpListener(7000); //7000번 포트 열기 server.Start(); //서버프로그램 실행 TcpClient client = server.AcceptTcpClient(); //클라이언트 접속대기 NetworkStream stream = client.GetStream(); StreamReader reader = new StreamReader(stream); StreamWriter writer = new StreamWriter(stream); string msg = reader.ReadLine(); writer.WriteLine(); writer.Flush(); Client TcpClient client = new TcpClient(ip, 7000); NetworkStream stream = client.GetStream(); StreamReader reader = new StreamReader(stream); StreamWriter writer = new StreamWriter(stream); string msg = reader.ReadLine(); writer.WriteLine(); writer.Flush();

6. 활용 예제 √ √ √ 인터넷 웹 브라우저 만들기 특정 컴퓨터의 활성화된 포트번호 검사 인터넷 웹 브라우저 만들기 특정 컴퓨터의 활성화된 포트번호 검사 WebInfo (웹서버에 GET /index.html HTTP/1.0\r\n\n 전송) 웹사이트분석 프로그램(WebRequest/WebResponse) 파일 전송 프로그램(소켓 채팅기반) CTOC_FILE_TRANS_INFO (전송할 파일정보) CTOC_FILE_TRANS_YES (파일 전송 수락) CTOC_FILE_TRANS_NO (파일 전송 거부) 7500포트이용 이모티콘 채팅 프로그램 파일전송/이모티콘 멀티채팅 SMTP 프로토콜을 이용한 전자메일 √ √ √