기타/Computer Science

[네트워크] 네트워크 기초 정리

dlwltn98 2023. 4. 1. 15:40

클라이언트-서버 아키텍처

프로토콜 (Protocol)

 - 컴퓨터나 기기들이 서로 통신하기 위해 지켜야할 규칙과 규약의 집합

 - 서로 다른 시스템 간의 데이터 통신을 위한 표준화된 방식 제공 

      → 통신 중 발생할 수 있는 문제를 줄일 수 있음

 - 서로 다른 시스템 간에 상호작용이 필요한 모든 분야에서 사용됨

 

예시 )

  ** IP (Internet Protocol)

    - 인터넷에서 데이터를 주고받을 때 사용되는 프로토콜

    - 데이터를 나누고 주소를 부여하는 등의 규칙을 정의함

  ** SMTP (Simple Mail Transfer Protocol)

    - 메일을 보내고 받기위한 표준화된 방식을 제공

 

 

HTTP (Hyper-Text Transfer Protocol)

 - 인터넷에서 웹 페이지를 전송하는데 사용되는 프로토콜 중 하나

 - 클라이언트-서버 간 통신에 사용됨 ( 브라우저-웹서버 )

 - 클라이언트가 요청(Request)을 보내면 서버가 응답(Response)을 보내는 방식으로 동작

 - 웹 페이지를 전송하는데 초점을 맞추고 있어 HTML, 이미지, 스타일시트 등을 전송하는 데 사용

 - 데이터를 암호화하지 않고 전송

 

 

HTTPS (Hyper-Text Transfer Protocol Secure)

 - HTTP의 보안 버전

 - SSL 또는 TLS 프로토콜을 사용하여 데이터를 암호화해서 전송함

    ** SSL (Secure Sockets Layer) : 웹 서버와 웹 브라우저 사이의 보안 통신을 위한 암호화 프로토콜

    ** TLS (Transport Layer Security) : SSL(Secure Sockets Layer) 프로토콜의 후속 버전

 - 서버 인증서(server certificate)를 사용하여 웹 사이트의 신원을 확인

    → 클라이언트는 통신 대상이 신뢰할 수 있는 서버인지 확인 가능

 - 보안이 중요한 정보를 전송하는 경우에 사용하는게 좋음 

    ** 로그인/ 결제 등의 개인정보를 입력하는 웹 페이지 

 

 

주요 프로토콜

OSI 7 계층

 - 데이터 통신을 위한 일반적인 프로토콜을 개발하는데 사용되는 기본 참조 모델

7. 용 계층
(Application Layer)
- 최종 사용자가 사용하는 프로그램과 직접 상호작용
- HTTP, FTP, SMTP, DNS 등과 같은 프로토콜이 이 계층에서 작동함
6. 표현 계층
(Presentation Layer)
- 데이터 표현을 관리
- 데이터를 압축, 암호화, 변환, 형식 지정 등의 작업을 수행
5. 세션 계층
(Session Layer)
- 세션을 설정, 유지 및 해제함
- 원격 프로시저 호출(RPC), 세션 관리 등과 같은 기능을 제공함
4. 전송 계층
(Transport Layer)
- TCP와 UDP 같은 프로토콜을 사용하여 종단 간의 통신을 관리
3. 네트워크 계층
(Network Layer)
- 라우터에서 사용되는 IP(Internet Protocol) 주소를 기반으로 데이터를 전송
- 라우팅, 패킷 전송, 흐름 제어 등과 같은 기능을 제공
2. 데이터 링크 계층
(Data Link Layer)
- 물리 계층으로부터 전송된 데이터 프레임을 받아오고, 오류를 검사하고, 필요한 경우 오류를 수정함
- MAC(Media Access Control) 주소를 사용하여 호스트를 식별함
1. 물리 계층
(Physical Layer)
- 데이터를 전송하는 데 사용되는 물리적 매체(유선 또는 무선 매체)에 대한 인터페이스를 제공
- 비트를 전기적 신호로 변환하거나 라디오 파장으로 변환하여 전송

 

** TCP (Transmission Control Protocol)

    - 신뢰성이 높은 연결지향 프로토콜

    - 데이터 전송 과정에서 데이터가 손실/손상되는 경우 자동으로 재전송 (데이터 무결성 보장)

    - 데이터 전송 전에 3-way handshake 과정을 수행하여 연결을 설정 후 연결을 끊는 4-way handshake 과정을 수행

    - 웹 브라우저와 웹 서버, 이메일 클라이언트와 서버 등의 통신에 주로 사용

 

** UDP (User Datagram Protocol)

    - 신뢰성이 낮은 비연결형 프로토콜

    - 데이터 전송 과정에서 데이터가 손실되더라도 자동으로 재전송하지 않음

    - 데이터 전송의 실시간성을 보장

    - 스트리밍 서비스, 온라인 게임, DNS(Domain Name System) 등의 통신에 주로 사용

 

 

 

브라우저의 작동 원리 

URL, URI의 구성

http://www.google.com:80/search?q=JavaScript

scheme http:// 통신 프로토콜
hosts www.google.com 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP
port :80 웹 페이지에 접속하기 위한 통로
url-path /search 웹 서버에서 지정한 루트 디렉터리부터 웹 페이지, 이미지, 동영상 등의 파일이 위치한 경로
query ?q=JavaScript 웹 서버에 보내는 추가적인 질문

 

URI(Uniform Resource Identifier)

 - 인터넷에서 특정 리소스를 찾기 위해 사용되는 주소

 - 프로토콜 (HTTP, FTP 등), 호스트 이름, 파일 경로 등의 요소를 포함해야함

 - scheme, Resource, url-path, query, bookmark를 포함함

 

URL (Uniform Resource Locator)

 - 인터넷 상의 고유한 자원을 식별하는 문자열 시퀀스

 - 인터넷에서 특정한 리소스의 위치를 나타내는 URI의 하위 집합

 - 네트워크상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄

 - 웹에서 사용되는 URL 뿐만 아니라 전자우편 주소, 파일 경로 등 여러 가지 유형이 있음

 - scheme, Resource, url-path로 구분 가능

 

    ⇒ URI는 URL을 포함하며 더 일반적인 개념

 

 

IP address (Internet Protocol address)

 - 네트워크에 연결된 특정 PC의 주소를 나타내는 체계 

 - 인터넷에 연결되는 모든 PC는 IP주소 체계를 따라 네덩이의 숫자로 구분됨 (IPv4)

 - 인터넷의 빠른 성장으로 인해 IP 주소 부족 문제가 발생 → IPv6 등장

** IPv4 (IP version 4)

    - 현재까지 가장 널리 사용되는 IP 버전

    - 32비트 주소 체계를 사용해 약 43억개의 주소를 지원함

** IPv6 (IP version 6)

    - IP의 다음 세대 버전 

    - IPv4의 고갈 문제를 해결하고 인터넷 기능을 향상시키기 위해 개발됨

   - 128비트의 주소 체계를 사용해 2^(128)개의 주소를 지원함 

   - 보안 기능과 서비스 품질(QoS) 지원 기능 등을 개선하여 안전하고 효율적인 인터넷 연결 제공

 

Port

 - IP 주소에 진입할 수 있는 정해진 통로 - 0 ~ 65,535까지 사용 가능   

    ** 0 ~ 1024까지는 주요 통신을 위한 규약에따라 이미 정해져 있음   

    ** 22 : SSH / 80 : HTTP / 443 : HTTPS

 

 

도메인 (Domain)

 - 웹 브라우저를 통해 특정 사이트에 진입할 때, IP 주소 대신 사용하는 주소

 

DNS (Domain Name System)

 - 인터넷에서 사용되는 계층적이고 분산된 명명 시스템 

 - 사용자가 도메인 이름을 입력 → 해당 도메인 이름에 대한 IP 주소를 찾아 사용자가 요청한 서비스에 연결 

 - 도메인 이름을 관리하고, 도메인 이름과 IP 주소를 연결하는 DNS 레코드를 유지함

 

 

AJAX (Asynchronous JavaScript and XML)

 - 비동기적으로 서버와 웹 페이지를 상호작용하는 웹 개발 기술 

 - JS, XML, CSS 등을 사용하여 웹페이지의 동적인 내용을 업데이트하고, 사용자와 서버 간의 데이터 교환을 처리할 수 있음 

 - 웹 페이지에 필요한 부분에 필요한 데이터만 비동기적으로 받아와 화면에 그려낼 수 있음

 

 

 

출처 : 

코드스테이츠 BEB

'기타 > Computer Science' 카테고리의 다른 글

[네트워크] 네트워크 기초 정리2  (0) 2023.04.04
[네트워크] HTTP  (0) 2023.04.02