• 검색 결과가 없습니다.

자바네트워크 제1주

N/A
N/A
Protected

Academic year: 2022

Share "자바네트워크 제1주"

Copied!
58
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

자바네트워크 제1주

강의 소개, 네트워크기초, 스레드 컴퓨터응용과학부 2011년 봄학기 담당교수 : 이형원 E304호, hwlee@inje.ac.kr

(2)

강의소개

담당교수 : 컴퓨터응용과학부 이형원

교재 : 자바 I/O & NIO 네트워크 프로 그래밍, 김성박, 송지훈저, 한빛미디어

강의시간 : 수6,7교시, 목8,9교시

평가방법

네 번의 필기 시험 : 총 60%

1,3차 시험 : 각 10%

중간, 기말고사 : 각 20%

두 번의 실기 시험 : 총 30%

출석 : 총 10%

(3)

선수지식(Prerequisites)

프로그램언어(Program Language)

Java

(4)

참고자료(References)

Java

(5)

강의자료

http://socas.inje.ac.kr -> 자료실 ->

일반자료실

(6)

진행 계획

제1주 : 강의소개, 네트워크기초, 스레드(3월2일 수업, 3월3일 실습)

제2주 : 자바 IO, 바이트스트림: 바이트단위 IO 클래스 (3월9일 수업, 3월 12일 실습)

제3주 : 문자스트림: 문자단위 IO 클래스, 객체스트림(3 월16일 수업, 3월 17일 실습)

제4주 : 1차 필기 시험(3월 23일)

제5주 : 네트워크 프로그래밍 기초(3월30일 수업, 3월 31일 실습)

제6주 : TCP 프로그래밍(4월 2일 수업, 실습)

제7주 : UDP 프로그래밍(4월 6일 수업, 4월 7일 실습)

제8주 : 중간 필기 및 실기 시험(4월 20일 필기, 4월 21 일 실기)

(7)

진행계획(계속)

제9주 : URL관련 클래스, 멀티캐스트(4월 27 일 수업, 4월 28일 실습)

제10주 : NIO 개요(5월 4일 수업, 5월 7일실 습)

제11주 : 버퍼(5월 11일 수업, 5월 12일 실습)

제12주 : 3차 필기 시험(5월 18일)

제13주 : 채널, 셀렉터(5월 25일수업, 5월 26 일 실습)

제14주 : 향상된 서버 만들기(5월 28일 수업, 6월 2일 실습)

제15주 : RMI(6월 8일 수업, 6월 9일 실습)

제16주 : 기말필기 및 실기 시험(6월 15일 필 기, 6월 16일 실기)

(8)

제1장 네트워크 기초

필요성

네트워크와 네트워킹

네트워크 통신방법

OSI 7계층

인터넷 프로토콜

인터넷 어플리케이션 프로토콜

TCP/IP 스택

소켓과 포트

보안

논의

(9)

필요성

웹 개발시 라이브러리의 API만 사용 가능

시스템의 중요한(critical) 부분에서의 문제 해결 능력

많은 traffic을 발생하는 경우 해결방안

(10)

네트워크와 네트워킹

네트워크

케이블, 전화선, 무선으로 연결되어 동일 한 프로토콜(protocol)을 사용하는 디바이 스(device)의 집합

네트워크

(11)

네트워크와 네트워킹

프로토콜(protocol)

장비들 사이에 자료를 주고받고 할 수 있 도록 한 미리 약속된 통신 규약

디바이스(device, 장비)

네트워크에 연결하여 어떤 서비스를 이용 하거나 제공할 수 있는 모든 것

네트워킹

네트워크에 연결된 장비들 사이의 데이터 전송

(12)

네트워크 통신 방법

주소(address)

노드마다 갖고 있는 고유의 값

노드(node)

네트워크에서의 각 장비의 위치

Header Body

Packet

(13)

OSI 7 계층

OSI(Open System Interconnection)

•애플리케이션

•NFS, FTP, HTTP, SMTP

7계층

•프리젠테이션

•XDE, XML, ASCI, Java Serialization

6계층

•세션

•Sun RPC, DCE RPC, IIOP, RMI

5계층

•트랜스포트

•TCP, UDP

4계층

•네트워크

3계층 •IP

•데이터링크

•Wire formats for message

2계층

•물리

•Wires, signaling

1계층

(14)

OSI 7 계층

TCP/IP model and OSI Model

(15)

인터넷 프로토콜

ARPANET(1969), NFSNET(1986), Commercial(1990)

Ethernet

Token Ring

(16)

Internet Protocol(IP)

IP address

203.241.246.32

Logical address

socas.inje.ac.kr

DNS(Domain name system)

Address class

A, B, C, D, E class

(17)

Internet Protocol(IP)

addresses

(18)

IPv6(128bit) and IPv4(32bit)

FEDC:BA98:7654:3210:FEDC:BA98:

7654:3210

FEDC:BA98:7654:3210:FEDC:BA98:118.8 4.50.1

6

(19)

OSI 계층 모델

• OSI 계층 모델의 사용 목적

– 사용자가 장비를 쉽게 사용할 수 있다 – 모듈화를 통해 사용자가 이해하기 쉽다

– 이기종 하드웨어나 소프트웨어간의 통신을 지원한다 – 효율적으로 장비를 개발할 수 있다

– 장비 개발을 위한 표준을 제공한다

[그림] OSI 계층 모델의 사용 이유

(20)

• 인캡슐레이션

데이터를 이동시킬 때 데이터를 패키지화하는 과정

OSI 계층 모델

[그림] 인캡슐레이션의 예

(21)

계층별 PDU(protocol data unit)의 이름과 추가하는 정보

OSI 계층 모델

–세그먼트(Segment) : 4계층 PDU

–패킷 (Packet) : 3계층 PDU –프레임 (Segment) : 2계층 PDU

–비트 (Bit) : 1계층 PDU

(22)

• TCP/IP 모델의 인캡슐레이션

– 계층별 PDU 이름

• TCP 세그먼트 / UDP 패킷

• 데이터그램

• 프레임

TCP/IP 모델의 이해

[그림] TCP IP 모델의 인캡슐레이션

(23)

OSI 계층 모델의 계층별 이해

• 데이터 링크 계층

데이터가 목적지에 완전하게 전달될 수 있게 에러 통보, 흐름 제어, 네트워 크 토폴로지, 순차적 프레임 전달에 대한 내용을 다룸

[그림] OSI 물리 계층과 데이터 링크 계층

(24)

OSI 계층 모델의 계층별 이해

LLC : 상위 네트워크 계층과의 통신을 위한 표준

MAC : 하위 물리 계층과의 통신을 위한 표준

MAC 주소

– 48비트, 12 Hex(16진수), 유일한 주소 – 수평적인 구조

[그림] MAC 주소의 구성

(25)

OSI 계층 모델의 계층별 이해

• 네트워크 계층

데이터가 출발지에서 목적지까지 가는 최적 경로를 찾아주는 역할

[그림] 네트워크 계층의 역할

(26)

• 트랜스포트 계층

네트워크 계층에서 지정한 출발지와 목적지 시스템간의 최적 경로를 이용해 서 데이터를 효율적으로 전송함

OSI 계층 모델의 계층별 이해

[그림] TCP와 UDP

(27)

TCP (Transmission Control Protocol)

o 연결 지향형 프로토콜

o 불안정한 물리적 특성을 지닌 네트워크에서도 안정적 o 순차적인 전송을 보장

o 데이터 전송이 실패했을 때 재전송

UDP (User Datagram Protocol)

o 비연결 지향형 프로토콜 o 안정도가 떨어짐

o 데이터 전송 후 확인 과정이 없음 o 흐름 제어가 없음

OSI 계층 모델의 계층별 이해

(28)

OSI 계층 모델의 계층별 이해

• 세션 계층

응용 프로그램에서의 세션 수립/관리/해제를 맡으며, 데이터베이스 서버와 클라이언트간의 통신이나 메신저와 같은 프로그램에서의 출발지와 목적지 간의 세션 관리

– NFS, SQL, RPC, ASP, SCP, X-window

[그림] 세션계층의 주요기능

(29)

OSI 계층 모델의 계층별 이해

• 표현 계층

응용 프로그램에서 사용하는 데이터의 형식, 암호화, 압축 등을 담당하는 계

– ASCII, EBCDIC, TXT, JPEG, GIF, TIFF, PICT, MID, MPEG, AVI

[그림] 표현 계층의 주요기능

(30)

OSI 계층 모델의 계층별 이해

• 응용 프로그램 계층

우리가 흔히 사용하는 프로그램 : FTP, 웹 브라우저, 워드프로세스 등

[그림] 응용 프로그램 계층의 주요 기능

(31)

인터넷 애플리케이션 프로토콜

Telnet: 23

FTP(File Transfer Protocol): 21, 20

POP3(Post Office Protocol version 3):

110

IMAP(Internet Message Access Protocol): 143

SMTP(Simple Mail Transfer Protocol):

25

HTTP(Hyper Text Transfer Protocol):

80

Finger: 79

NNTP(Network News Transport

Protocol):119

(32)

TCP/IP 스택

Application Layer

HTTP, FTP, SMTP, POP3

Transport Layer

TCP, UDP

Network Layer

IP, ICMP

(33)

데이터 통신

(34)

소켓과 포트

소켓

통신을 위한 접속 창구

IP주소와 포트 번호로 이루어져 있음

포트

소켓의 기능에 따라 정해지는 번호

16비트(0~65,535)

1~511 : TCP/IP application

512~1023 : Operating system

1024~ : 임의로 사용

(35)

포트 번호 관리

IANA(Internet Assigned Numbers

Athority)

(36)

보안

해킹과 바이러스등으로부터 자산을 보 호하는 것

방화벽(Firewall)

(37)

논의

네트워크 개념

OSI 7 계층

TCP/IP

Socket, Port

(38)

제2장 스레드

필요성

스레드란

스레드의 생성과 시작

스레드의 종료

데몬스레드와 join()

스레드 그룹

스레드 우선순위

멀티스레드와 동기

생성자-소비자 패턴

논의

(39)

필요성

네트워크 관련 프로그램은 동시성 요 구

멀티스레드에서는 예기치 못한 문제 발생

동기화 문제점 및 해결책

(40)

스레드란

프로세스

자신의 독립적인 주소공간을 갖는 실행 프 로그램

스레드

독립적인 CPU 실행 단위

경량 프로세스(light-weight process)

프로세스

스레드

프로세스

스레드 스레드

스레드

(41)

Context

Process Context Switch

User Level Context

Register Context

System Level Context

Thread Context Switch

Register Context

(42)

스레드의 생성과 시작

스레드 생성 계산

Runnable

스레드 소멸 start()

run() 종료

Not runnable

(43)

Thread 생성자

(44)

상속에 의한 방법(white-box)

Thread

MyThread

(45)

예제 2-1

(46)

구현에 의한 방법(black-box)

상속과 구현

Thread

Runnable target MyRunnable

(47)

예제 2-2

(48)

스레드의 종료

플래그 사용

종료여부를 항상 체크

플래그 체크사이의 시간이 오래 걸리면 원 하는 대로 동작하지 않을 수 있음.

main

Thread

Flag check

loop Thread 생성 및 시작

Flag 상태 변경

(49)

스레드의 종료

interrupt 사용

try – catch 사용

Interrupt 발생 즉시 종료

main

Thread

try-catch Thread 생성 및 시작

Interrupt 요청

(50)

데몬스레드와 join

데몬스레드

생성 스레드종료시 바로 종료

main

thread1

thread2

(51)

스레드 그룹

스레드들의 모임

자주 사용하지는 않음

(52)

스레드 우선순위

실행 우선 순위 결정

1~10

NORM_PRIORITY = 5

MIN_PRIORITY = 1

MAX_PRIORITY = 10

(53)

멀티스레드와 동기화

자바의 런타임 데이터 영역

PC 레지스터 영역

JVM 스택 영역

Heap 영역

Method 영역

런타임 컨스턴트 영역

네이티브 메소드 영역(JNI)

(54)

synchronized

Method

함수가 끝날 때 까지 lock

Block

부분 block이 실행되는 동안 만 lock

코드 리소스

(55)

wait, notify, notifyAll

wait

다른 함수가 lock을 얻을 수 있도록 함.

notify, notifyAll

lock이 풀리기를 기다리는 함수에게 알려 줌

(56)

ThreadLocal

각 스레드마다 다른 값을 갖도록 함

(57)

생성자-소비자 패턴

생성자 소비자

리소스

(58)

논의

스레드와 자원 동기는 전문가도 어려 운 분야

JVM 메모리모델 이해

철저한 테스트

기존 코드 연구

참조

관련 문서

mark 동일한 메모리 참조,

• 파일락킹은 JVM내의 프로세스사이의 관계가 아니라 JVM 외부의 프로세스(다른 프로그램)과의 관계를

• 모든 자바 입출력 클래스는 궁극적으로 바이트단위 입출력 을

소켓 으로 부터 InputStream과 OutputStream 생성 소켓 을 이용한 통신.. 소켓

소켓 으로 부터 InputStream과 OutputStream 생성 소켓 을 이용한 통싞. 소켓

• Serializable 하지 않은 것은 저장되지 않는다..

Internet Broadband: Less Expensive (+), Higher Capacity (+), Lower Quality (-)  Internet Broadband can cost- effectively increase capacity.  But it may not deliver the

introspective personality and an impulse personality, for a ego problem smoking and drinking, for a internet problem internet addiction, for a sex problem