자바네트워크 제9주 TCP/IP 클라이언트 소켓 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원

Slides:



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

컴퓨터와 인터넷.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
CHAP 22. 블루투스.
윈도우 네트워크 프로그래밍 √ 원리를 알면 IT가 맛있다 TCP/IP 소켓 프로그래밍 광주대학교 정보통신학과 조 정 호.
RTP,RTSP의 개요 및 동작과정 장민환 조효철.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
IP변경 요청 올더게이트.
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
TCP Client/Server Program
Department of Computer Science and Engineering
PHP입문 Izayoi 김조흔.
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 요약.
JAVA 프로그래밍 12장 네트워킹(Networking).
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
명품 JAVA Programming 제 16 장 네트워크.
SSL (Secure Sockets Layers Protocol)
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
8장. 원격지 시스템 관리하기.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Chapter 06. UDP 서버/클라이언트.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
10 장 데이터 링크 제어(Data Link Control)
Java의 정석 제 15 장 네트워킹(Networking) Java 정석 남궁성 강의
프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당
Socket Address Structure and Byte Ordering Functions
15장 네트워킹 15.1 네트워킹의 개요와 java.net 패키지 15.2 인터넷 주소와 URL 15.3 TCP 소켓
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
I/O&socket통신 POWERPOINT & GROUP STUDY 한재희 김상훈 최기람 황인준 이어진.
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
Network Security WireShark를 활용한 프로토콜 분석 I.
Inje Univ. Network Team2 Jung Chang Hwan
22 장 전송층(Transport Layer)
IP변경 요청 올더게이트.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
21 장 전송층(Transport Layer)
자바 암호 프로그래밍 Java Cryptography Programming
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
9 TCP의 이해 학습 목표 전송 계층 프로토콜이 제공하는 기능을 이해한다.
Chapter 01. OSI 계층 모델.
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
MAIL CLIENT 김창우 윤성훈 이경재.
Network 네트워크 이론 및 실습 TCP / IP 4장.
KERBEROS.
자바로 만든 채팅 프로그램 임경진 조주경 지도교수님 : 이광세 교수님.
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
8장 네트워크.
강의 소개 컴퓨터시뮬레이션학과 2017년 봄학기 담당교수 : 이형원 E304호,
CHAP 21. 전화, SMS, 주소록.
웹(WWW).
Ping Test.
Chapter 27 Mobile IP.
Chapter 04. TCP 서버/클라이언트.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
MIDP 네트워크 프로그래밍 ps lab 김윤경.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
소리가 작으면 이어폰 사용 권장!.
Network Lab. Young-Chul Hwang
Completion Port기반의 채팅프로그램
중간 결과 보고 ( Server & Client )
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

자바네트워크 제9주 TCP/IP 클라이언트 소켓 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원 E304호, hwlee@inje.ac.kr

제8장 TCP/IP 클라이언트 소켓 TCP/IP 프로토콜 소켓과 포트란 무엇인가? Socket 클래스

TCP/IP 스택 IP는 데이터 전송에 TCP와 UDP를 사용 하지만 대부분은 TCP를 사용한다. 실질 적인 업무에서는 3개 계층 정도를 사용한다. 다른 계층들은 장비들 사이 의 표준을 정하기 위한 것이다.

TCP/IP 스택 개념도 HTTP TCP(접속지향) UDP(비접속) IP ICMP Hardware 어플리케이션 계층 FTP SMTP POP3 TCP(접속지향) UDP(비접속) IP ICMP 어플리케이션 계층 트랜스포트 계층 네트워크 계층 Hardware 물리 계층

HTTP GET/ 명령의 실행 HTTP 명령 어플리케이션 계층 TCP 세그먼트 트랜스포트 계층 IP 데이터그램 네트워크 계층 이더넷 프레임 데이터링크 계층 전달 파동 물리 계층 GET/ TCP헤더 GET/ IP헤더 TCP헤더 GET/ 이더넷 헤더 IP헤더 TCP헤더 GET/

프로토콜계층간의 데이터 전달 어플리케이션계층 어플리케이션간 통신 트랜스포트계층 네트워크계층 데이터링크 계층 물리계층 실제적인 물리적 통신

TCP(Transmission Control Protocol) 데이터 전송의 신뢰성을 보장하는 프 로토콜이다. 발신자가 보낸 순서대로 수신자에게 전달되도록 한다. 전화 통화와 유사하다. 순서 전화 통화 TCP 통신 1 상대방 전화번호를 입력한다. 네트워크 내에 통신할 상대와 연결을 시도한다. 2-1 전화를 받으면 통화한다. 말한 순서대로 들린다. 연결이 되면 양방향 교환이 이루어진다. 보낸 순서대로 수신된다. 2-2 전화를 받지 않으면 통화가 안 된다. 연결이 도지 않는다. 3 전화를 끊는다. 네트워크 연결을 종료 한다.

TCP 통신을 하기 전에 소켓을 통하여 양쪽 연결이 성립되어야 한다. 통신을 하기 전에 소켓을 통하여 양쪽 연결이 성립되어야 한다. TCP는 연결이 성립된 목적지에 데이터 손실 없이 전달한다. 데이터 무결성을 보장하기 위하여 체 크섬을 같이 보낸다. 수신자는 체크섬을 확인하여 문제가 있으면 재전송을 요청한다.

TCP의 다중 송수신 소켓과 포트를 이용하여 동시에 여러 개의 접속을 지원한다. 소켓과 포트를 이용하여 동시에 여러 개의 접속을 지원한다. 연결된 후에는 IO 스트림을 사용하는 것과 동일하게 통신을 할 수 있다. TCP는 UDP보다 느리지만 신뢰성 있는 전송이 가능하다. HTTP(hyper text Transfer Protocol), FTP(File Transfer Protocol), TELNET, SMTP 등이 TCP를 사용한다.

TCP 다중 송수신 개념도 HTTP(80 Port) SMTP(25 Port) POP3(110 Port) FTP(20,21Port) IP TCP

UDP(User Datagram Protocol) UDP는 TCP와는 달리 신뢰성이 없는 프 로토콜이다. 데이터 전달을 보장하지 않는다. 상대방이 연결되어 있는지를 확인하지 않고 데이터를 전송하는 비연결지향 (connectionless) 프로토콜이다. 데이터를 주소지로 보내기만 한다. 음악이나 동영상 스트림 서비스에 적 당한다.

네트워크 표준 레이어 OSI(Open System Interconnection) 7계층 6계층 5계층 4계층 3계층 2계층 애플리케이션 NFS, FTP, HTTP, SMTP 7계층 프리젠테이션 XDE, XML, ASCI, Java Serialization 6계층 세션 Sun RPC, DCE RPC, IIOP, RMI 5계층 트랜스포트 TCP, UDP 4계층 네트워크 IP 3계층 데이터링크 Wire formats for message 2계층 물리 Wires, signaling 1계층

소켓과 포트란 무엇인가? 소켓은 네트워크에서 통신하는 호스트 들이 데이터를 주고받는 출입구 포트는 한 컴퓨터 내에서 실행되는 응 용 프로그램을 구분하는 번호

잘알려진 포트번호 프로토콜 포트 코드화 기법 목적 echo 7 tcp/udp 클라이언트의 요청을 그대로 되돌려 준다. daytime 13 서버에서 현재 시간을 아스키로 보낸다. ftp 21 tcp 호스트 사이의 파일 전송에 사용된다. telnet 23 원격 컴퓨터에 콘솔 접속하는데 사용된다. smtp 25 전자메일 전송에 사용된다. time 37 1900년 1월1일 0시를 기준으로 한 경과된 초를 반환한다. whois 43 서버에 해당하는 사용자에 대한 간단한 정보를 준다. finger 79 사용자에 대한 간단한 정보를 준다. http 80 하이퍼문서의 전달에 사용된다. pop3 110 메일 서버에 있는 메일을 클라이언트로 가져온다. nntp 119 뉴스넷 뉴스를 전송하기 위하여 사용된다.

Socket 클래스 Socket 클래스를 생성하면 해당 서버에 접속을 요청하고 접속에 허용되면 연 결된 소켓을 생성한다. getInputStream() 을 통하여 연결된 입력 스트림을 얻을 수 있다. getOutputStream() 을 통하여 연결된 출 력 스트림을 얻을 수 있다.

통신의 기본 동작 서버 서버소켓 생성 클라이언트 소켓생성시 접속 시도 서버소켓 accept 대기 소켓 생성 접속이 되면 클라이언트 연결 소켓 반환 소켓으로 부터 InputStream과 OutputStream 생성 소켓으로 부터 InputStream과 OutputStream 생성 소켓 을 이용한 통신 소켓 을 이용한 통신 연결이 끊어질 때까지 통신 소켓 의 close 호출 소켓 의 close 호출

소켓에서 InputStream, OutputStream 얻기 Client Server InputStream InputStream Socket Socket OutputStream OutputStream

BufferedReader와 PrintWriter

접속 끊기

간단한 에코 클라이언트/서버 프로그램 EchoServer 10001번 포트를 이용하여 서버소켓을 열고 접속 을 기다린다. 클라이언트가 접속하면 접속된 소켓으로부터 클 라이언트 정보를 알아내어 메시지를 출력한다. 접속소켓으로부터 입출력 스트림을 구한다. 문자열을 입출력할 수 있도록 클래스를 생성한 다. 클라이언트가 보내 문자열을 받아서 바로 다시 클라이언트로 보낸다. 접속이 종료될 때 까지 반복한다. 접속이 종료하면 열린 입출력 클래스와 소켓을 닫는다.

서버/클라이언트 실행 서버 프로그램 실행 도스 창 실행 D:\Lec_hwl\jnp\y2014\Week09\bin 폴더로 이동 java –cp . jnp/y2014/EchoServer 로 실행

EchoClient 서버에 연결하는 소켓을 생성한다 키보드로부터 입력을 받을 수 있는 클 래스를 생성한다 연결된 소켓으로부터 입출력 스트림 클래스를 얻는다 키보드로부터 입력을 받아 “quit”가 아 니면 서버로 보낸다. 서버로부터 돌아 온 내용을 출력한다. 입출력 클래스와 소켓을 닫는다.

서버/클라이언트 실행 서버 프로그램 실행 도스 창 실행 D:\Lec_hwl\jnp\y2014\Week09\bin 폴더로 이동 java –cp . jnp/y2014/EchoServer 로 실행

클라이언트 실행 Eclipse 에서 Run As 로 실행 문제점 한 곳에서만 접속 허용

멀티스레드를 이용한 에코 서버 여러 클라이언트를 동시에 처리하지 못한다. 스레드를 활용

동작 원리 Run 실행 ServerSocket 생성 In/OutStream 획득 통신 accept로 대기 종료 접속시도 Start 호출 스레드 생성 Socket 전달

EchoThread class

EchoThreadServer

서버 실행 서버 프로그램 실행 도스 창 실행 D:\Lec_hwl\jnp\y2014\Week09\bin 폴더로 이동 Java –cp . jnp/y2014/EchoThreadServer 로 실행

Socket functions toString() shutdownInput(), shutdownOutput() setSoTimeout(), getSoTimeout() setSendBufferSize(), getSendBufferSize() steReceiveBufferSize(), getReceiveBufferSize() setKeepAlive(), getKeepAlive() setSoLinger(), getSoLinger() setTcpNoDelay(), getTcpNoDelay()