[Network] Network 기본 개념

soyeon·2022년 7월 18일
0
post-thumbnail

알고 있어야 할 Network 개념🤸‍♀️

Internet

: Network of Network

하나의 컴퓨터가 다른 컴퓨터와 데이터를 주고 받으려면 네트워크를 구성해야 한다.
LAN(Local Area Network)
WAN(Wide Area Network)
MAN(Metropolitan area network)

IP Address

: 논리적인 주소. 고정된 주소가 아니다.

데이터 통신을 하려면 상대방 컴퓨터의 주소를 알아야 한다.
컴퓨터에 부여되는 것이 아니라 NIC(Network Interface Card)에 할당한다.

  • IPv4 : 32 bit 주소 체계

  • IPv6 : 128 bit 주소 체계

MAC

: 물리적인 주소.

논리적인 주소만으로는 찾아갈 수 없다. 물리적인 주소가 필요하다.

ARP

: IP 주소를 MAC 주소로 바꿔준다.

DNS (Domain Name System / Server)

: 문자로 되어 있는 주소를 IP주소로 바꿔준다.

Protocol

: 데이터 통신을 위해 지켜야 할 규칙. 특정 서비스를 사용하기 위해 지켜야 할 규칙을 나타낸다.

ex) HTTP, FTP, SMTP, TELNET, ...

TCP/IP

데이터를 전송할 때, packet 단위로 전송된다. -> IP(Internet Protocol)
IP는 신뢰성 있는 데이터 전송과 순서대로 전송을 지원하지 않는다. 따라서 IP protocol만으로는 제대로 된 데이터 통신이 될 수 없다.
=> 따라서 TCP(Transmission Control Protocol)을 함께 사용하여 데이터 통신을 한다.

HTTP

: CS 구조이다. Server process(web server)가 다수의 Client process에게 서비스를 제공한다.

Port

: 해당 컴퓨터에서 실행하고 있는 Process. 0 ~ 65535의 숫자로 이루어져 있다.

0 ~ 1023 - reserved(예약). 일반적으로 이렇게 사용하자고 약속이 되어 있는 포트 번호
1024 ~ 65535 - 사용할 수 있는 포트 번호

데이터 통신은 컴퓨터의 process끼리 하는 것이다.
한 컴퓨터가 다른 컴퓨터와 통신을 하고 싶으면 IP 주소를 알아야 한다. IP 주소를 알면 컴퓨터까지 도착한다. 다른 컴퓨터 안의 프로그램과 연결을 하기 위해 프로그램들에게 논리적인 숫자를 부여하고, 그 숫자(port 번호)로 접근하게 된다.

Socket

: network 하단의 복잡한 protocol에 상관없이 쉽게 프로그램을 작성할 수 있게 하기 위해 제안되었다.

Java에서는 Socket이라는 개념을 Socket이라는 class로 제공한다.
-> application 간의 데이터 통신을 쉽게 할 수 있다.

CS(Client-Server) 구조

: Client는 능동적으로 접속하려 하고, Server는 접속을 기다린다.

CS

-> client와 server program에 각자 socket instance가 만들어져 있다.
-> IO(Stream)을 이용해 socket 간의 연결통로를 만든다.
-> 두 통로를 연결해 데이터를 주고 받는다.

Hypertext

: 사용자의 선택에 따라서 관련된 정보 쪽으로 이동할 수 있는 조직화된 정보
-> www의 발명, 발전의 계기가 되었다.

Web

Static Web

: web client가 요청하는 데이터를 program 없이 서버가 그냥 정적으로 찾아서 보내준다.

Dynamic Web

: 동적으로 HTML page를 생성한다. Server side 쪽에 program이 들어간다.
Web server 쪽에서 Web client가 요청한 program을 실행한 후, 그 결과를 HTTP Response로 돌려준다. (Java에서는 Servlet과 JSP)

Java의 JSP

: HTML과 Java가 섞여 있을 때 생산성을 높이기 위해 사용한다.
구현은 쉽지만 유지보수가 쉽지 않다.

MVC

: Servlet으로 돌아가지만, MVC라는 pattern을 사용한다.

Framework

: spring

0개의 댓글