Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL Section 3 : TCP 소켓 Section 4 : UDP 소켓.

Slides:



Advertisements
Similar presentations
Computer Network Lab UDP 데이터그램 과 소켓 강 동 호 컴퓨터 네트워크 실험실.
Advertisements

Computer Network Lab 다중전송 소켓 컴퓨터 네트워크 실험실 이 희 규, 조 한 진.
Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL
컴퓨터와 인터넷.
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
네트워킹 프로그래밍과 java.net 패키지
네트워크 프로그래밍 및 실습.
CHAP 22. 블루투스.
인터넷의활용.
8장. 네트워크 프로그래밍 /*컴퓨터 네트워크 프로그래밍 -김화종 저- 참조 */
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
Department of Computer Science and Engineering
PHP입문 Izayoi 김조흔.
소켓 모델 주소 지정 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 서브넷팅틍
23 장 TCP/IP 23.1 개요 23.2 네트워크층 23.3 전송층 23.4 응용층 24.5 요약.
VoIP (Voice Over Internet Protocol)
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
제 14장 Multicast & Broadcast
JAVA 프로그래밍 12장 네트워킹(Networking).
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
17장 네트워크 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
명품 JAVA Programming 제 16 장 네트워크.
명품 JAVA Programming 제 16 장 네트워크.
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
네트워크 프로그래밍 Yang-Sae Moon Department of Computer Science
Chapter 21 Network Layer: ARP, ICMP (IGMP).
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
Java의 정석 제 15 장 네트워킹(Networking) Java 정석 남궁성 강의
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
15장 네트워킹 15.1 네트워킹의 개요와 java.net 패키지 15.2 인터넷 주소와 URL 15.3 TCP 소켓
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
I/O&socket통신 POWERPOINT & GROUP STUDY 한재희 김상훈 최기람 황인준 이어진.
22 장 전송층(Transport Layer)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
21 장 전송층(Transport Layer)
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
자바 암호 프로그래밍 Java Cryptography Programming
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
Network 네트워크 이론 및 실습 TCP / IP 4장.
자바로 만든 채팅 프로그램 임경진 조주경 지도교수님 : 이광세 교수님.
8장 네트워크.
CHAP 21. 전화, SMS, 주소록.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
Ping Test.
모바일인터넷기초 전산정보학부 모바일인터넷과 권 춘 우
Introduction to JSP & Servlet
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
JSP Programming with a Workbook
Network Lab. Young-Chul Hwang
ARP.
Presentation transcript:

Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL Section 3 : TCP 소켓 Section 4 : UDP 소켓

Chap15 네트워킹 1. 네트워킹의 개요와 java.net 패키지 자바는 사용자가 네트웍의 세부 구조를 모르고도 네트웍 기능을 편리 하게 사용할 수 있는 기능들을 java.net 패키지로 제공하고 있다 사용자는 java.net 패키지에서 제공되는 클래스들을 이용하여 네트워 킹 관련 프로그램을 작성 자바에서는 아주 쉽게 네트워크를 연결. 통신을 구현하는 까다로운 부분이 이미 구현되어 있어서 필요한 부분을 호출 자바 네트워크의 구성 == 스트림기반 I/O 클래스 + java.net 패키지 클래스

Chap15 네트워킹 1. 네트워킹의 개요와 java.net 패키지 TCP/IP(Transmission Control Protocol / Internet Protocol) 프로토콜 : 네트웍으로 연동되기 위해 상호 연동방법을 정의한 규약 인터넷의 표준 프로토콜 4 개의 기능 계층으로 구성 : 대부분의 통신 응응 프로그램들은 응용 계층 에서 사용 응용 계층 (HTTP, FTP, TELNET 등 ) 전달계층 (TCP, UDP 등 ) 인터넷 계층 (IP 등 ) 네트워크 인터페이스 계층 (device driver 등 ) 하드웨어

Chap15 네트워킹 1. 네트워킹의 개요와 java.net 패키지 TCP(Transfer Control Protocol)UDP(User Datagram Protocol) 특징 특징  접속지향 (Connection oriented) 프로토콜  가장 많이 사용됨.  두 프로그램간의 통신이 종료 시까지 계속 연결 유지  비접속 (connection-less) 프로토콜  연결을 설정하지 않고 데이터를 전송 장점장점  양방향 모두 가능  데이터의 신뢰성있는 전송 ( 데이터의 손실이 적다.)  안정적이다.  같은 장소에 많은 정보량을 전송할 때 유용  FIFO 방식  메시지 : 손실, 중복, 비순서적으로 도착할 수 있음  작은 data 를 때 보낼 때 유용  TCP 에 비해 전송 속도가 빠르다.  멀티미디어 작업시 주로 사용. 단점단점  속도가 느리다.  재전송으로 인한 대역폭 소비  수신된 메시지의 순서무시  데이터의 전송 보장 못함  패킷 파괴 및 손실 검출 불가능 용도용도  일반적인 서버 - 클라이언트 구조로 구성된 중소규모의 네트워크  예 > HTTP  빠른 데이터 전송을 필요로하는 1 대 1 또는 서버 - 클라이언트 구조의 네트워크  예 > SNMP

Chap15 네트워킹 1. 네트워킹의 개요와 java.net 패키지 소켓 (socket) 컴퓨터가 연결된 컴퓨터의 끝점 ( 전기의 소켓과 유사한 개념 ) 정보 송신 : 소켓에 보낼 정보를 Write 정보 수신 : 소켓으로부터 정보를 Read TCP/IP 소켓  TCP 소켓  UDP 소켓 포트 (port) 하나의 컴퓨터에서 다수개의 네트웍 관련 프로그램을 서로 다른 포트를 사용하여 동시에 실행시킬 수 있다 ( 실제 네트웍 라인은 하나 ) 논리적인 개념 포트 번호로 16 비트 사용 예 : :8088

Chap15 네트워킹 포트번호내용 echo7 daytime13 FTP21 TELNET23 SMTP25 HTTP80 포트 번호 - IP address : 하나의 컴퓨터에게 할당된 번호. - 하나의 주소에서 여러 가지 작업을 동시에 할 때 포트를 사용하여 여러 서비스를 이용 - 하나의 컴퓨터에 여러개의 컴퓨터가 연결되어 있을때 각 컴퓨터에서 보내온 데이터를 각 해당 프로세스로 구분해서 보내는데 이때 프로세스를 구분하는 것이 포트 번호 임 - IP 주소가 아파트 동번호라 한다면 포트 번호는 각 호실을 뜻함 - 포트 번호를 사용할 때 특별한 제한은 없지만 1~1023 번 까지는 시스템이 사용함. 예약 포트 번호는 다음과 같다. 1. 네트워킹의 개요와 java.net 패키지

Chap15 네트워킹 2. 인터넷 주소와 URL 1. InetAddress 클래스 인터넷 주소와 관련된 기능을 제공하는 클래스 인터넷상의 IP 주소를 객체화 한 클래스. 이 클래스는 IP 주소와 관련된 여러 정 보를 제공 InetAddress 클래스의 주요 메소드 메소드이름설명 boolean equals(InetAddress other) 현 객체가 other 객체와 같은 주소를 가지면 true, 아니면 false 를 반환 byte[] getAddress() 주소를 나타내는 4 개의 요소를 가진 바이트 배열을 반환 String getHostAddress() 주소 정보를 나타내는 문자열을 반환 String getHostName() 컴퓨터 이름을 나타내는 문자열을 반환 InetAddress getLocalHost() throws UnknownHostException 현재 컴퓨터를 나타내는 InetAddress 객체를 반환 InetAddress getByName(String hostName) throws UnknownHostException hostName 으로 지정된 컴퓨터를 나타 내는 InetAddress 객 체를 반환 InetAddress[] getAllByName(String hostName) throws UnknownHostException hostName 으로 지정된 모든 컴퓨터 ( 하나의 도메인 이름으 로 여러 대의 컴퓨터를 사용하는 경우 ) 를 나타내는 InetAddress 객체들의 배열을 반환

Chap15 네트워킹 2. 인터넷 주소와 URL 예제 1 : AddressTest.java, LookupHost.javaAddressTest.javaLookupHost.java

Chap15 네트워킹 2. 인터넷 주소와 URL 2. URL 클래스 WWW 에서 사용하는 URL 에 관한 정보를 제공 생성자 URL(String protocol, String host, int port, String file) throws MalformedURLException URL(String protocol, String host, String file) throws MalformedURLException URL(String urlString) throws MalformedURLException  protocol, host, port, file : URL 의 구성요소  urlString : URL 의 모든 요소를 하나의 문자열로 표현한 것  InetAddress 클래스보다 확장된 개념으로 네트웍 연결까지 가능

Chap15 네트워킹 URL 이란 ? URL(Uniform Resource Locator) 은 인터넷상의 자원에 대한 고유한 주소이다. URL 은 다음과 같이 프로토콜, 호스트, 포트 번호, 파일, 참조 5 가지 요소로 구성 프로토콜 (protocol) : 자원에 접근하기 위해 사용되는 프로토콜 호스트 이름 (HostName) : 접근하고자 하는 자원이 있는 위치 포트 (Port) : TCP 연결에 대한 포트 번호. 생략시 기본포트번호 사용 (Echo:7 DayTime:13 FTP:21 Telnet:23 SMTP:25 경로명 (Path) : 접근하려는 파일이 있는 위치 파일명 (File) : 접근하려는 파일 참조 (anchor): URL 에서는 참조 ("ref", or "reference") 를 나타낼 수 있다. 참조는 '#' 문자를 이용. 2. 인터넷 주소와 URL

Chap15 네트워킹 2. 인터넷 주소와 URL URL 클래스의 주요 메소드 예제 1 : kbsURL.java, URLTest.javakbsURL.javaURLTest.java 메소드 이름설명 String getFile() URL 의 파일 이름을 반환 String getHost() URL 의 호스트 이름을 반환 String getPort() URL 의 포트 번호를 반환. 묵시적인 포트인 경 우 – 1 반환 String getProtocol() URL 의 프로토콜 이름을 반환 String toExternalForm() 전체 URL 의 문자열 객체를 반환 InputStream openStream() throws IOException 지정된 URL 로부터 정보를 읽어들이기 위한 객 체를 반환 URLConnection openConnection() throws IOException 지정된 URL 과 연결후 URLConnection 객체를 반환

Chap15 네트워킹 인터텟 프로그래밍 기초 클라이언트가 접속하고자 하는 주소를 이용해서 서버에 접속해서 필요한 정보를 얻고 또한 서버에게 자료를 요청함. 3. TCP 소켓

Chap15 네트워킹 그림에서 클라이언트가 웹브라우저의 주소를 요 청하면 문자형 주소가 숫 자로 바뀜 이때 소켓이 있는데, 이 소켓은 서버와 클라이언 트간의 데이터 송수신의 창구 3. TCP 소켓

Chap15 네트워킹 3. TCP 소켓

Chap15 네트워킹 3. TCP 소켓 자바는 TCP 기반의 클라이언트 - 서버 통신을 위해 ServerSocket, Socket 클래스를 제공 클라이언트 - 서버 환경에서의 서버측 프로그램은 데몬 프로그램처 럼 실행 상태로 클라이언트의 요청을 기다린다 ServerSocket 클래스 생성자 ServerSocket(int port) throws IOException)  port : 클라이언트의 요청을 받아들일 포트 번호 메소드 메소드 이름설명 Socket accept() throws IOException 클라이언트의 요청을 받아들인 다음, Socket 클래스 객체를 반환 void close() throws IOException 서버 소켓을 닫는다

Chap15 네트워킹 3. TCP 소켓 Socket 클래스 : 클라이언트와 서버 사이의 실질적인 정보 교환 생성자 Socket(String hostName, int port) throws UnknownHostException, IOException  hostName : 연결을 원하는 컴퓨터의 주소 ( 예 : 또는 sslab.daehan. ac.kr)  port : 연결할 포트 번호

Chap15 네트워킹 3. TCP 소켓 Socket 클래스의 주요 메소드 메소드 이름설명 InputStream getInputStream() throws IOException 현재의 소켓과 관련된 InputStream 객체를 반환 OutputStream getOutputStream() throws IOException 현재의 소켓과 관련된 OutputStream 객체를 반환 void close() throws IOException 소켓을 닫는다 InetAddress getInetAddress() 현재 소켓에 연결된 컴퓨터의 주소를 반환 InetAddress getLocalAddress() 현재 소켓을 사용하고 있는 컴퓨터의 주소를 반환 int getPort() 현재 소켓에 연결된 컴퓨터의 포트 번호를 반환 int getLocalPort() 현재 소켓이 사용하고 있는 포트 번호를 반환

Chap15 네트워킹 3. TCP 소켓 TCP 소켓의 동작 방법 클라이언트 서버 Socket ServerSocket Socket new Socket ServerSocket 네트웍 accept()

Chap15 네트워킹 4. UDP 소켓 UDP(User Datagram Protocol) 비연결성 통신 방식 높은 신뢰성이 요구되지 않는 분야에 이용 TCP 에 비해 네트웍에 부담을 주지 않는다 자바는 UDP 를 지원하기 위해 DatagramPacket, DatagramSocket 클래스 제 공 UDP(User Datagram Protocol) 는 호스트간의 메시지들을 전송하기 위해 IP 를 이용하여 비신뢰적, 비연결형 전달 서비스를 제공 비신뢰성이란 것은 데이터를 보낼때 데이터가 패킷이란 단위로 쪼개어져서 보내 짐 이때 패킷이 손실될 가능성이 있고 또한 패킷의 순서가 바뀔 수도 있음 비연결성은 상대방에게 데이터를 보내는데 상대방이 받던 안받던지 상관하지 않 음 UDP 는 데이터에 주소와 관련정보를 함께 묶어서 보내는데, 즉, Connection 이 길을 안내 해주는 것이 아니라 데이터 메시지가 알아서 찾아감. UDP 를 편지에 비교를 하는데, 편지에 우표와 주소를 첨부하면 편지는 배달되지만, 도착했는지는 알 수 없다.

Chap15 네트워킹 4. UDP 소켓 DatagramPacket 클래스 정보를 주고 받기 위한 준비과정의 기능을 제공하는 클래스 생성자 DatagramPacket(byte[] buffer, int size) : 데이터를 수신하는 응용 프로그램에서 사용하는 생성자  buffer : 수신되는 데이터를 저장할 바이트 배열  size : 배열의 크기 DatagramPacket(byte[] buffer, int size, InetAddress ia, int port) : 데이터를 송신하는 응용프로그램에서 사용하는 생성자  buffer : 송신될 데이터가 저장되어 있는 배열  size : 배열의 크기  ia : 정보가 보내질 컴퓨터의 주소이며 InetAddress 객체를 사용하여 지정  port : 컴퓨터의 포트 번호

Chap15 네트워킹 4. UDP 소켓 DatagramPacket 클래스의 주요 메소드 메소드 이름설명 InetAddress getAddress() 수신 응용 프로그램에서 사용한다. 정보를 보낸 컴퓨터의 주소를 반환 byte[] getData() 패킷으로부터 데이터를 읽어 들여 바이트 배열 로 반환 int getLength() 패킷의 바이트 수를 반환 int getPort() 포트번호를 반환 void setAddress(InetAddress ia) ia 를 주소로 설정 void setData(byte buffer[]) buffer 의 내용을 패킷의 데이터로 설정 void setLength(int size) 패킷의 크기를 size 로 설정 void setPort(int pt) 포트번호를 pt 값으로 설정

Chap15 네트워킹 4. UDP 소켓 DatagramSocket 클래스 실제 정보를 주고 받는 기능을 제공하는 클래스 생성자 DatagramSocket() throws SocketException DatagramSocket(int port) throws SocketException  port : 소켓이 사용할 포트 번호 DatagramSocket 클래스의 주요 메소드 메소드 이름설명 void receive(DatagramPacket dgram) throws IOException 현재의 소켓으로부터 정보를 읽어 dgram 패킷에 저장 void send(DatagramPacket dgram) throws IOException 현재의 소켓을 통하여 dgram 패킷을 전송 void close() throws IOException 소켓을 닫는다

Chap15 네트워킹 UDP/IP 를 이용한 클라이언트와 서버와의 통신 과정

Chap15 네트워킹 --- 서버측 데이터그램 소켓 생성 및 연결 DatagramSocket ds = new DatagramSocket( 포트 번호 ); 2. 입력 데이터그램 패킷 생성 및 요청 받기 DatagramPacket dp = new DatagramPacket(buffer[], buffer.length); ds.receive(dp); 3. 요청에 대한 응답 내용 처리 4. 출력 데이터그램 패킷 생성 및 전송 DatagramPacket packetOut = new DatagramPacket( 버퍼, 버퍼길이, IP 주소, 포트번호 ); ds.send(packetOut); 예 ) UDPServer.java

Chap15 네트워킹 --- 클라이언트측 데이터그램 소켓 생성 및 연결 DatagramSocket ds = new DatagramSocket( 포트 번호 ); 4. 출력 데이터그램 패킷 생성 및 전송 DatagramPacket packetOut = new DatagramPacket( 버퍼, 버퍼길이, IP 주소, 포트번호 ); ds.send(packetOut); 2. 입력 데이터그램 패킷 생성 및 수신 DatagramPacket dp = new DatagramPacket(buffer[], buffer.length); ds.receive(dp); 3. 응답 내용 처리 예 ) UDPClient.java

Chap15 네트워킹 4. UDP 소켓 예제 1 : UDPReceiver.javaUDPReceiver.java 예제 2 : UDPSender.javaUDPSender.java