본문 바로가기
JAVA

네트워크 프로그래밍 기초 용어 정리

by 둥바 2022. 5. 21.

 

 

컴퓨터 네트워크

네트워크는 전송 매체를 매개로 서로 연결되어 데이터를 교환하는 시스템의 모음

시스템과 전송 매체의 연결 지점(node)에 대한 규격이 존재

시스템이 교환할 때는 임의의 통신 규칙 또한 존재

 

서버와 클라이언트

서버는 서비스를 제공하는 컴퓨터이고, 클라이언트는 서비스를 사용하는 컴퓨터이다.

서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 의미한다.

 

IP(Internet Protocol) Address

IP주소는 컴퓨터(host)를 구별할 때 사용되는 고유한 값으로 인터넷에 연결된 컴퓨터는 모두 IP주소 값을 가진다.

인터넷 프로토콜에는 크게 두 가지 버전이 있는데,IPv4 : 32비트의 주소길이를 가지며, 8비트씩 4부분으로 나뉘며 10진수로 표시한다. IPv6 : 128비트의 주소길이를 가지며, 16비트씩 8부분으로 나뉘며 16진수로 표시한다. 

 

1) 공인 IP와 사설 IP

 

1-1)공인 IP

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공인 IP는 전세계에서 유일한 IP주소로, 공인 IP주소가 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP주소의 경우 방화벽과 같은 보안 처리가 중요하다.

 

1-2)사설IP

일반 가정이나 회사 내 등에 할당된 네트워크의 IP주소로, 로컬 IP 또는 가상 IP라고도 한다.내부 망에서는 서로 접속이 가능하고, 외부에서는 접속이 불가능하다.사설 IP 주소만으로는 인터넷에 직접 연결할 수 없고, 라우터(공유기)를 통해 1개의 공인 IP만 할당하고, 라우터에 연결된 개인 PC나 장치들은 각각 사설 IP를 할당 받아 인터넷에 접속할 수 있다.

 

따라서, 사설 IP를 할당받은 기기가 데이터 패킷을 인터넷에 전송하면 라우터(공유기)가 해당 사설IP를 공인IP로 변경하여 전송하고,인터넷에서 오는 데이터 패킷의 도착점도 해당하는 사설 IP로 변경 후에 개인 기기로 전송한다.

  공인 IP 사설 IP
할당 주체 인터넷 서비스 공급자(ISP) 라우터(공유기)
할당 대상 개인 또는 회사 서버(라우터) 개인 또는 회사 기기
고유성 인터넷 상 유일한 주소 하나의 네트워크 안에서 유일
공개 여부 내/외부 접근 가능 외부접근 불가능

 

 

2) 고정 IP와 유동 IP

 

2-1) 고정 IP

컴퓨터에 고정적으로 부여된 IP로 부여되면 IP를 반납하기 전까지는 다른 장비에 부여할 수 없는 IP이다.

 

2-2) 유동 IP

장비에 고정적으로 IP를 부여하지 않고 컴퓨터를 사용할 때 남아 있는 IP 중에서 돌아가면서 부여하는 IP이다.

 

인터넷 상에서 서버를 운영할 때에는 공인 IP를 고정 IP로 부여해야한다. 공인 IP를 부여받지 못하면, 다른 컴퓨터에서 내 서버로 접속할 수 없고, 고정 IP를 부여하지 않으면 내 서버가 아닌 다른 서버로 접속 될 수도 있기 때문이다.

 

서브넷 마스크

같은 네트워크에 있는 컴퓨터인지 아닌지 식별할 수 있는 기본값으로 활용되는데, IP주소와 서브넷 마스크(255.255.255.0)를 비트연산자 &으로 계산하면 IP주소에서 네트워크 주소만 뽑아낼 수 있다. 따라서 다른 IP주소를 서브넷 마스크로 & 연산 수행하여 비교하면 같은 네트워크에 있는지 아닌지 알 수 있다.

 

게이트웨이

컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신이 가능하게 하는 컴퓨터나 소프트웨어를 일컫는다.

다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인터이다.

 

물리적 주소

Mac Address, 랜 카드의 물리적 주소 값으로 유동 ip주소와는 달리 값이 변하지 않는 성질을 가진다. 사이버 범죄 수사 시 역추적할 때 많이 사용된다.

 

프로토콜(Protocol) 

서로 다른 컴퓨터 간의 의사소통을 위한 통신규약이다.

1. 무슨 행동을 수행할 것인지 약속

2. 언제 어떻게, 호출할 것인지의 순서

 

1) 프로토콜의 종류

 

TELNET : 텍스트 기반의 원격 접속 
IP(Internet Protocol)

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)
FTP : 파일 전송 프로토콜

SMTP : 전자 우편 송신 프로토콜

HTTP(Hyper Text Transfer Protocol) : 인터넷에서 하이퍼 텍스트 문서 교환위한 프로토콜

POP3 : 전자 우편 수신 프로토콜

DHCP (Dynamic Host Configuration Protocol) : 클라이언트가 동적인 IP 주소 할당 받아 인터넷 사용하게 하는 프로토콜

ARP(Address Resolution Protocol) : IP 주소를 물리적 주소로 변환

 

2) TCP/IP와 OSI모델

 

2-1)TCP/IP 프로토콜 구조

인터넷을 통해 통신을 수행하는 개체는 크게 종단 시스템(PC)와 라우터로 나눌 수 있다. 

종단 시스템은 최종 사용자를 위한 애플리케이션을 수행하는 주체이며, 인터넷에 연결된 PC나 핸드폰이 이에 속한다.

라우터는 종단 시스템이 속한 네트워크와 다른 네트워크를 연결함으로써 서로 다른 네트워크에 속한 시스템끼리 상호 간에 데이터를 교환할 수 있도록 하는 장비이다. 이 같은 통신을 수행하기 위한 절차와 방법을 프로토콜이라 부른다.

TCP/IP 프로토콜은 운영체제가 구현을 제공하기 때문에, 일반 애플리케이션은 운영체제가 제공하는 TCP/IP 프로토콜 서비스를 사용하여 통신을 수행한다.

일반적으로 프로토콜은 기능별로 나누어 계층적으로 구현하며, TCP/IP 프로토콜도 같은 구조를 따른다.

애플리케이션 계층 TELNET, FTP, HTTP, SMTP, SNMP, MIME ...
전송 계층 TCP,UDP
인터넷 계층 IP
네트워크 액세스 계층 디바이스 드라이버, 네트워크 하드웨어

2-2) OSI 계층 ( 암기 )

OSI 계층 모델 TCP/ IP 모델
Application Application
Presentation
Session
Transport Transport
Network Internet
Data Link Netwrok Interface
Physical

 

3) TCP와 UDP

 

3-1) TCP(Transmission Control Protocol)

인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 ( HTTP, Email,FIle transfer에서 사용)

 

3-2) UDP(User Datagram Protocol)

데이터를 데이터그램 단위로 처리하는 프로토콜 (DNS, 실시간 동영상 스트리밍 서비스에서 주로 사용)

 

프로토콜  TCP UDP
연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 보장 바뀔 수 있음
수신 여부 확인 확인 확인X
통신 방식 1:1 1:1, 다:다, 1:다 통신
신뢰성 높다 낮다
속도 느리다 빠르다

 

DNS(Domain Name Service)

DNS서버는 이름에 대한 요청을 IP주소로 변환하여 해당 웹 서버로 연결해주는 역할

예) 브라우저 -> http://someserver.com -> DNS 서버 -> 192.5.6.111(변환) -> 웹 서버로 연결

 

소켓(socket)

네트워크 프로그래밍을 위한 인터페이스로서, 프로그램이 네트워크에서 데이터를 송수신할 수 있도록 

"네트워크 환경에 연결할 수 있도록 만들어진 논리적 연결부"

 

소켓은 크게 클라이언트 소켓과 서버용 소켓으로 나뉘는데, 각 소켓은 서로 초기화가 진행된다.

그리고 클라이언트 소켓에서 연결을 시도하면, 서버 소켓에서 대기하고 있다가 그 연결을 수락하여 새로운 회선을 생성하고 클라이언트 소켓과 서버 소켓이 만든 새로운 회선 사이에서 데이터 송수신이 가능해진다.