본문 바로가기

IT일반과목/java

20180808 학원에서 네트워크 들어가기전에 개념 설명,직렬화

20180808


e.charSubStream(); 으로 파일 만들기

test1.txt로 만들기

파일 읽어오는거 할것이다.


한줄씩 읽어오는걸 해보겠다.


====================================================

SaveLoad클래스 하나 만들었다.

앞부분 작성할 테니 파일을 저장하고 불러오는거 하면 된다.


=====================================================

직렬화

 -> 객체를 스트림을 통해서 전송하기 위한 작업

 -> 직렬화

 -> 객체는 덩어리가 크기 때문에 byte잘라주는 작업

간단히 말하면 갖고있는 값들을 일렬로 나열한다 라고 생각하면 된다.

객체화 하는걸 보고 역 직렬화 라고 한다.

객체를 byte나열로 바꿔주고 사용하기위해선 객체를 바꿔주는 것이다.


반대과정은 역직렬화


직렬화의 조건

 -> Serializable을 implements 한다.

serialVersionUID

 -> 객체 직렬화시 사용되는 객체의 고유번호

 -> 작성하지 않으면 JVM이 클래스를 확인후 자동으로 선언

private static final -> 규약

long

serialVersionUID

시리얼ID가 있는 이유는 역직렬화할때 시리얼ID가 변하면 안되기 때문이다.


직렬화는 객체의 값을 넘겨준다.


=========================================================================

# 네트워크 (Network)

-> net + work의 합성어

-> 그물 + 일

-> 단일로쓰여진 매체를 통신이라는 매개체를 통해서 서로 연결되어있는 환경


# 네트워킹

 -> 두대이상의 컴퓨터를 케이블로 연결해서 네트워크를 구성하는 작업


# 네트워크의 목적

 -> 여러개의 통신기기들을 서로 연결해서 데이터를 손쉽게 주고받거나 자원등을 공유하기 위함

 -> 데이터의 교환

 -> java.net 패키지

 -> java.io


서버 : 서비스를 제공하는 컴퓨터

클라이언트 : 서비스를 사용하는 컴퓨터


-> 서비스를 제공하는 프로그램

-> 서비스를 사용하는 프로그램


# 네트워크모델

1. 서버기반 모델

- 장점

 -> 안정적인서비스 제공가능

 -> 데이터관리가 용이

 -> 보안성도 높음

-단점

 -> 돈이 많이든다.

 -> 구축 및 유지보수에 비용이 많이 소요

ex)웹하드업체


2. Peer to Peer 모델 (P2P)

클라이언트끼리 서로 주고받는다.

- 장점

 -> 가격이 저렴

 -> 자원활용이 극대화

- 단점

 -> 자원 관리 어렵다.

 -> 보안 취약

ex) 토렌토


- 호스트 (Host)

 -> 네트워크 가능한 하나의 통신기기

 -> 31대 컴퓨터 -> 31대 호스트


- IP 주소(IP Address)

 -> 네트워크상에서 호스트를 구별하는데 사용되는 고유한 주소

192.168.30.6 -> ipv4이다.

4바이트를 가진다. -> 1바이트,1바이트,1바이트,1바이트이다.

255.255.255.255이다.

1byte->8bit->00000000 ~ 11111111

2^32개 표시 가능

32bit로 표시


IPv6가 나왔다.

->128 bit표시 2^128개 가진다.

 -> InetAdress 클래스


- URL(Uniform Resource Location)

 -> 인터넷주소

 -> http://www.naver.com

나눌수 있다.

http -> 프로토콜

:// -> 프로토콜 구분자

www.naver.com -> 호스트이름(도메인이름)

이렇게 3개로 나눌수 있다.


http://192.168.30.6으로 선생님은 파일 공유를 한다.


웹쉐어사이트

8080 -> 포트번호(서비스번호)


-> 관련 클래스 -> java.net.URL


프로토콜

 -> 호스트간의 정보를 주고받을때 통신방법에대한 규약

 -> 통신규약

 -> 전달방식, 통신방식, 데이터형식, 검증법 등


HTTP(HyperTextTransferProtocol) -> 80번

 -> 인터넷에서 웹서버와 사용자의 브라우저사이에 문서를 전송하기 위해 사용되는 통신규약

FTP (FileTransferProtocol) -> 20,21

 -> 호스트간의 파일전송을 위한 통신규약

Telnet(Telecommunication network) -> 23

 -> 원격지의 호스트를 접속할때 사용하는 프로토콜

SSH -> 암호화처리


네트워크 모델

 -> 데이터를 만들때 최상의 효율성과 안정성을 보장하기위해 만들어놓은 구조

 -> 통신이 일어나는 절차를 각 기능별로 모듈화시켜서 만든 구조

 -> OSI 7 Layer, TCP/IP 모델


1. OSI 7 Layer

 -> 국제 표준화기구(ISO) 표준화를 위해 만든 모델

7계층

(Application) 응용계층 : 사용자의 인터페이스게층으로 사용자의 명령을 받아줌

6계층

(Presentation) 표현계층 : 상위계층에서 만들어진 데이터의 형태 표현

 (인코딩, 압축, 암호화)

5계층

(Session) 세션계층 : 하위계층과 상위계층의 세션연결 및 동기화

4계층

(Transport) 전송계층 : 데이터전송방식 결정(TCP/UDP)

3계층

(Network) 네트워크계층 : 종단간(host간) 연결보장계층(IP 주소)

2계층

(DataLink) 데이터링크계층 : Node간 연결보장(Mac 주소)

1계층

(Pysical) 물리계층 : 비트형태의 신호를 패턴부여하여 전기적신호로 변경


1~4계층 -> 하위계층(하드웨어 계층) -> 데이터전달

5~7계층 -> 상위계층(소프트웨어 계층) -> 데이터생성 -> 개발


TCP/IP 모델

 -> OSI보다 먼저 만들어짐

4계층(Application) : OSI 5~7계층 역할

3계층(Transport) : OSI 4계층 역할

2계층(Internet) : OSI 3계층 역할

1계층(Netwokr Interface) : OSI 1~2계층


4계층 상위계층

1~3계층 하위계층


TCP(Transmission Control Protocol)

 -> 데이터 전달의 신뢰성을 최대한 보장하기 위한 방식

 -> 연결지향형

 -> 세션연결(3way handshake) -> 데이터전달

  -> 세션연결 해제

 -> 신뢰성보장

  -> 순차적으로 데이터를 전송

  -> 확인응답 및 오류시 재전송

 -> HTTP, FTP

 -> 속도가 UDP에 비해서 느림


UDP(User Datagram Protocol)

 -> 데이터의 빠른 전달을 보장

 -> 비신뢰 -> 비연결

 -> 스트리밍서비스


TCP/UDP HTTP/FTP?Telnet/SSH/POP3

-> 서비스를 포트번호로 구분

IP 1개당 65535개 포트를 사용가능(TCP/UDP 각각)

 -> HTTP : TCP 80

 -> FTP : TCP 20, TCP 21

 -> TFTP : UDP 69 -> 빠르게 전송하기위한 FTP

 -> HTTPS : TCP 443


1000이내 -> 예약

랜섬웨어 -> 워너크라이 -> 삼바파일서버(TCP139, 445)

1000~이후 포트할당해서 사용


'IT일반과목 > java' 카테고리의 다른 글

네트워크 기초 (집공부)  (0) 2018.08.08
직렬화 역직렬화 (집공부)  (0) 2018.08.08
자바 IO 수업3  (0) 2018.08.08
자바 IO 수업2  (0) 2018.08.08
입출력3 (집공부)  (0) 2018.08.08