1. Java Network
· 네트워크란 다른 장치로 데이터를 이동시킬 수 있는 컴퓨터들과 주변 장치들의 집합
· 네트워크의 연결된 모든 장치들을 노드라고 한다.
· 다른 노드에게 하나 이상의 서비스를 해주는 노드를 호스트라 부른다.
· 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 이동 시킬 때 복잡한 계층을 통해 전송되는데, 이러한 복잡한 레이어의 대표적인 모델이 OSI 계층 모델이다.
· OSI 계층 모델은 모두 7계층으로 이루어졌다.
· 데이터 통신을 이해하는데 OSI 계층 모델은 상당한 역할을 하지만, 인터넷 기반의 표준 모델로 사용 하는 TCP / IP 계층 모델을 주로 사용하고 있다.
· 자바에서 이야기 하는 네트워크 프로그래밍은 TCP / IP 모델을 사용하고 있다.
2. 인터넷 주소 (IP 주소)
· 모든 호스트는 인터넷 주소(Host 또는 IP 주소)라 불리는 유일한 32비트 숫자로 구성된 주소체계를 이용하여 서로를 구분할 수 있다.
· IP 주소는 32비트 숫자를 한번에 모두를 표현하는 것이 힘들기 때문에, 8비트씩 끊어서 표현하고, 각자리는 1바이트로 0 ~ 255 까지의 범위를 갖게 된다.
· 32비트의 주소 체계를 IP 버전 4 (IPv4) 주소라고 한다.
· 오늘날 IPv4는 포화 상태이고, 이를 극복하고자 나온 것이 IP 버전 6(IPv6)이다.
· IPv6는 128비트의 주소 체계를 관리하고 있으며, 16비트씩 8부분으로 나누어 16진수 표시한다.
· 각 호스트는 도메인 이름을 컴퓨터가 사용하는 주소(IP 주소)로 바꾸어 주어야 한다. 이렇게 IP 주소를 도메인 이름으로 바꾸어 주는 시스템을 DNS(Domain Name System)이라고 한다.
3. 포트
· 포트는 크게 두 가지로 구분된다.
· 컴퓨터의 주변장치에 접속하기 위한 '물리적 포트'와 프로그램에서 사용되는 접속 장소인 '논리적인 포트'가 있다.
· 포트번호는 인터넷번호 할당 허기 위원회(IANA)에 의해 예약된 포트번호를 가진다.
· 이런 포트번호를 '잘알려진 포트(Well Known Port)'라고 부른다.
· 예약된 포트번호의 대표적인 예로는 80(HTTP), 21(FTP), 22(SSH), 23(TELNET)등이 있다.
· 포트번호는 0 ~ 65535까지 이며, 0 ~ 1023까지는 시스템에 의해 예약된 포트번호이기 때문에 될 수 있는 한 사용하지 않는 것이 바람직하다.
4. 프로토콜
· 프로토콜은 클라이언트와 서버간의 통신 규약이다.
· 통신규약이란 상호 간의 접속이나 전달방식, 통신방식, 주고받을 데이터의 형식, 오류 검출 방식, 코드변환 방식, 전송속도 등에 대하여 정의하는 것을 말한다.
· 대표적인 인터넷 표준 프로토콜에는 TCP와 UDP가 있다.
5. TCP와 UDP
· TCP / IP 계층 모델은 4계층의 구조를 가지고 있다.
· 애플리케이션, 전송, 네트워크 데이터 링크 계층이 있다.
· 이 중 전송계층에서 사용하는 프로토콜에 TCP와 UDP가 있다.
|
TCP |
UDP |
연결방식 |
연결기반 - 연결 후 통신(전화) - 1 : 1 통신 방식 |
비 연결기반 - 연결 없이 통신(소포) - 1 : 1. 1 : N, N : N 통신방식 |
특 징 |
데이터의 경계를 구분하지 않음 신뢰성 있는 데이터 전송 · 데이터의 전송순서가 보장됨 · 데이터의 수신여부를 확인함 (데이터가 손실되면 재전송) · 패킷을 관리 할 필요가 없음 · UDP보다 속도가 느림 |
데이터의 경계를 구분함 신뢰성 없는 데이터 전송 · 데이터의 전송순서가 바뀔 수 있음 · 데이터의 손실여부를 확인 안함 · 패킷을 관리해야 함 · TCP보다 속도 빠름 |
관련 Class |
· ServerSocket · Socket |
· DatagramSocket · DatagramPacket · MulticastSocket |
6. TCP
· TCP(Transmission Control Protocol)는 신뢰할 수 있는 프로토콜로서, 데이터를 상대 측까지 제대로 전달되었는지 확인 메시지를 주고받음으로써 데이터의 송·수신 상태를 점검한다.
· 전화기 통신과 비슷, 부하가 많이 걸리고 속도가 느리다.
· InetAddress Class, ServerSocket Class, Socket Class