Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

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

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

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

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

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

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

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

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

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

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

12 네트워크 표준 레이어 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계층

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

14 잘알려진 포트번호 프로토콜 포트 코드화 기법 목적 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 뉴스넷 뉴스를 전송하기 위하여 사용된다.

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

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

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

18 BufferedReader와 PrintWriter

19 접속 끊기

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

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

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

23

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

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

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

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

28 EchoThread class

29 EchoThreadServer

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

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


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

Similar presentations


Ads by Google