ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인프런 _ 컴퓨터 구조, 네트워크 기본 개념 정리
    study/Network 2024. 3. 26. 03:52

     

     

     

    Section 0. 컴퓨터 구조

    컴퓨터구조

    -CPU(중앙처리장치) : 컴퓨터의 두뇌. 

    • ALU(산술논리연산장치) - 산술/논리 섹션
    • 메모리 또는 저장 장치 - 데이터 및 중간 결과 저장. 필요할 때 컴퓨터의 다른 장치에 정보 제공. 내부 저장 장치, 주메모리, 기본 저장소 또는 RAM(Random Access Memory)이라고 부름
    • 제어 장치 - 컴퓨터의 모든 부분의 작동 제어, But 실제 데이터 처리 작업 수행X. 데이터 및 명령 전송 제어. 모든 장치를 관리하고 조정. 메모리에서 명령을 받아 해석하고 컴퓨터 작동을 지시. 저장소의 데이터나 결과를 전송하기 위해 입출력 장치와 통신. 데이터를 처리하거나 저장X.

    -메모리 : 데이터와 명령을 저장하는 데 사용

    -입/출력 장치 : 키보드, 마우스, 모니터 등등...

     

     

    CPU

    • 컴퓨터의 두뇌로 간주
    • 모든 유형의 데이터 처리 작업 수행
    • 데이터, 중간 결과, 명령어(프로그램) 저장
    • 컴퓨터의 모든 부분의 작동을 제어

     

    메모리

    데이터와 명령을 저장하는 데 사용

    • 캐시 메모리 : CPU 안에 내장됨. CPU 속도를 높일 수 있는 초고속 반도체 메모리. CPU와 메인 메모리 사이의 버퍼 역할을 함. CPU가 액세스할 수 있어서 메인 메모리보다 빠름. 액세스 시간 적게 소요. 임시 사용을 위해 데이터 저장. But, 용량 제한있고, 비쌈.
    • 메인메모리(주메모리, RAM) : 반도체 메모리, 주기억장치, 휘발성, 전원 꺼지면 데이터 손실. 컴퓨터의 작업 메모리. 컴퓨터는 기본 메모리 없이는 실행X.
    • 보조 메모리(ROM) : 주메모리보다 속도 느리지만, 영구적으로 저장. CPU가 직접 액세스 안하고 입출력 루틴을 통해 액세스. 먼저 주메모리로 전송된 다음 CPU가 이에 액세스 가능. 자기 및 광학 메모리. 백업 메모리. 비휘발성, 전원 꺼져도 영구적 저장. 컴퓨터는 보조메모리 없이 실행 가능. ex) 디스크, CD-ROM, DVD 등

     

    RAM

    • Random Access Memory
    • 데이터, 프로그램, 프로그램 결과를 저장하는 CPU 내부 메모리
    • 휘발성 메모리, 매우 비쌈
    • 정적 RAM(SRAM) : 전원 공급되는 동안 메모리의 내용이 유지. 긴 수명, 새로 고칠 필요X, 더 빠르고, 캐시 메모리로 사용, 큰 사이즈, 비싸고, 높은 전력 소비
    • 동적 RAM(DRAM) : 데이터를 유지하기 위해 지속적으로 새로 고쳐야 함. 가격 저렴하고 크기 작아서 대부분의 시스템 메모리에 사용, 더 적은 전력 소비, 짧은 데이터 수명, SRAM보다 느림, RAM으로 사용됨

     

    ROM

    • 읽기 전용 메모리
    • 비휘발성 메모리
    • 해당 메모리에 영구 저장
    • 컴퓨터를 시작하는 데 필요한 지침이 저장되어 있음 → 부트스트랩 작업
    • RAM보다 저렴함
    • 테스트하기 쉽고 안정적임
    • 정적이며 새로고침 필요X
    • ex) 컴퓨터뿐만 아니라, 세탁기, 전자레인지 등 전자제품

     

    다양한 유형의 ROM

    • MROM(마스크 ROM) : 최초의 ROM은 미리 프로그래밍된 데이터 또는 명령 세트가 포함된 유선 장치. 저렴함.
    • PROM(프로그래밍 가능한 읽기 전용 메모리) : 사용자가 한 번만 수정할 수 있는 읽기 전용 메모리. 삭제 불가능.
    • EPROM(삭제 가능하고 프로그래밍 가능한 읽기 전용 메모리) : 최대 40분동안 자외선 노출시켜 지울 수 있음.
    • EEPROM(전기적으로 삭제 및 프로그래밍 가능한 읽기 전용 메모리) : 전기적으로 프로그래밍되고 삭제됨.

     

    단위, 숫자체계

    비트(2진수)

    1Byte = 8Bit

    1KB = 1024Byte

    1MB = 1024KB

    1GB = 1024MB

    1TB = 1024GB

    1PB = 1024TB ....

     

    • 2진수 : 0, 1
    • 8진수 : 0 ~ 7
    • 16진수 : 0 ~ 9, A ~ F

     

    실수의 표현 방식

    • 고정 소수점(fixed point) 방식 : 부호, 정수부, 소수부
    • 부동 소수점(floating point) 방식 : 부호, 정수부, 소수부 나눠지는 건 맞지만, 소수점 움직임

    → 현재 대부분의 시스템에서는 부동 소수점 방식으로 실수 표현

     

     

     

     

    Section 1. 네트워크

    네트워크

    • 컴퓨터 네트워킹 : 컴퓨터를 서로 연결하여 컴퓨터 간의 통신 및 데이터 교환을 가능하게 하는 방식
    • 일반적으로 두 대 이상의 컴퓨터로 구성된 집합

     

    컴퓨터 네트워크 작동 방법

    • 기본 구성 요소 : 노드, 링크
    • 노드 : 컴퓨터 네트워크의 통신을 허용하는 링크를 통해 데이터를 보내고 받는 데 도움이 되는 규칙 또는 프로토콜

     

    컴퓨터 네트워크의 기본 용어

    • 네트워크 : 통신 및 데이터 교환을 가능하게 하기 위해 함께 연결되는 컴퓨터 및 장치의 모음
    • 노드 : 네트워크에 연결된 장치. ex) 컴퓨터, 서버, 프린터, 라우터, 스위치 및 기타 장치 포함
    • 프로토콜 : 네트워크를 통해 데이터가 전송되는 방식을 제어하는 일련의 규칙 및 표준. ex) TCP/IP, HTTP 및 FTP
    • 토폴로지 : 네트워크에 있는 노드의 물리적, 논리적 배열. ex) 버스, 스타, 링, 메시, 트리 포함
    • 서비스 제공업체 네트워크 : 제공업체로부터 네트워크 용량 및 기능을 임대할 수 있는 권한 부여. ex) 무선 통신, 데이터 매체 등이 포함
    • IP 주소 : 네트워크의 모든 장치에 할당되는 고유한 숫자 식별자. 장치를 식별하고 장치 간 통신을 활성화하는 데 사용
    • DNS : Domain Name System은 사람이 읽을 수 있는 도메인 이름(ex. www.google.com)을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 데 사용되는 프로토콜
    • 방화벽 : 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 데 사용되는 보안 장치. 무단 액세스 및 기타 보안 위협으로부터 네트워크를 보호하는 데 사용

     

    기업 컴퓨터 네트워크의 유형

    • LAN : 근거리 통신망은 사무실이나 집과 같은 소규모 지역을 포괄하는 네트워크. 일반적으로 건물이나 캠퍼스 내의 컴퓨터와 기타 장치를 연결하는 데 사용
    • WAN : Wide Area Network는 도시, 국가 또는 전 세계와 같은 넓은 지리적 영역을 포괄하는 네트워크. LAN을 서로 연결하는 데 사용되며 일반적으로 장거리 통신에 사용
    • 클라우드 네트워크 : 공용 또는 사설 클라우드 서비스 제공업체에서 호스팅할 수 있고 수요가 있는 경우 클라우드 네트워크를 사용할 수 있으므로 WAN(광역 네트워크)으로 시각화할 수 있음. 가상 라우터, 방화벽 등으로 구성됨

     

    컴퓨터 네트워크 아키텍처의 유형

    • 클라이언트-서버 아키텍처 : 노드가 서버 또는 클라이언트가 될 수 있는 컴퓨터 네트워크 아키텍처의 한 유형. 서버 노드는 클라이언트 노드 동작을 관리할 수 있음
    • Peer-to-Peer 아키텍처 : P2P 아키텍처에는 중앙 서버라는 개념이 없음. 각 장치는 클라이언트 또는 서버로 작동하는 데 무료

    네트워크 장치

    -데이터나 미디어를 전송/수신하기 위해 여러 경로를 사용하여 연결된 호스트라고도 하는 여러 장치의 상호 연결

    -컴퓨터 네트워크에는 서로 다른 두 장치 간의 통신을 돕는 여러 장치/매체가 포함될 수 있음

    • Router
    • Hub
    • Bridge
    • Wireless Router
    • Switch
    • Wireless Bridge

     

    네트워크 토폴로지

    • 네트워크에 있는 다양한 장치의 레이아웃 배열
    • ex) 버스, 스타, 메시, 링, 데이지 체인

     

    OSI 모델

    • OSI는 개방형 시스템 상호 연결을 의미
    • 통신 프로토콜의 표준과 각 계층의 기능을 지정하는 참조 모델
    • 국제표준화기구(International Organization For Standardization)에서 개발한 7계층 아키텍처
    • 각 계층에는 서로 다른 기능이 있으며, 서로 다른 프로토콜을 따라야 함

     

    7계층

    • 물리층 : 물리적인 전기신호, 광신호 등
    • 데이터링크층 : 오류감지, 프레임의 흐름 관리, 네트워크 간의 직접적 연결 제공
    • 네트워크 계층 : 여러 네트워크 간의 데이터 전송을 관리
    • 전송 계층 : 데이터의 전송을 보장하고 에러 복구 수행
    • 세션 계층 : 통신 세션의 설정 유지/종료 관리, 데이터 교환을 동기화
    • 프리젠테이션 레이어
    • 애플리케이션 계층

     

    규약

    • 프로토콜은 두 엔터티가 네트워크를 통해 통신할 수 있는 방법을 정의하는 규칙 또는 알고리즘 집합이며 OSI 모델의 각 계층에는 서로 다른 프로토콜 정의되어 있음
    • ex) TCP, IP, UDP, ARP, DHCP, FTP 등

     

    네트워크의 고유 식별자

    -호스트 이름 : 네트워크의 각 장치는 호스트 이름이라는 고유한 장치 이름과 연결됨. 명령 프롬프트(관리자 모드)에 "hostname"을 입력하고 'Enter'를 누르면 컴퓨터의 호스트 이름이 표시됨

     

    • IP 주소(인터넷 프로토콜 주소) : 논리 주소라고도 부르고, 네트워크를 통한 시스템의 네트워크 주소임. WWW에서 각 장치를 식별하기 위해 IANA(Internet Assigned Numbers Authority)는 IPV4 (버전 4) 주소를 인터넷의 각 장치에 고유 식별자로 할당함. IPv4 주소의 길이는 32비트이므로, 2^32개의 IP 주소 사용 가능. IPv6 주소의 길이는 128비트. 명령 프롬프트에 "ipconfig"를 입력하고 'Enter'를 누르면 장치의 IP 주소가 제공됨
    • MAC 주소(미디어 액세스 제어 주소) : 물리적 주소라고도 하는 MAC 주소는 각 호스트의 고유 식별자이며 해당 NIC(네트워크 인터페이스 카드)와 연결됨. NIC는 제조 시 MAC 주소가 할당됨. 명령 프롬프트에 "ipconfig/all"을 입력하고 'Enter' 키 누르면 MAC 주소가 제공됨
    • 포트(Port) : 애플리케이션과 데이터를 주고받을 수 있는 논리적 채널. 모든 호스트에는 여러 개의 애플리케이션이 실행될 수 있으며, 각 애플리케이션은 실행 중인 포트 번호를 사용하여 식별됨.

    cf) "netstat -a"를 입력하고 'Enter' 키 누르면 사용 중인 모든 포트가 나열됨

     

    • 소켓 : IP 주소와 포트 번호의 고유한 조합
    • DNS 서버 : DNS 서버는 기본적으로 웹 주소나 URL을 해당 IP 주소로 변환하는 서버. 'nslookup' 명령을 사용하면 찾고 있는 도메인의 IP 주소를 알 수 있음. 이는 당사의 DNS 서버에 대한 정보도 제공.

     

    OSI 7계층

    OSI 모델이란?

    • OSI는 개방형 시스템 상호 연결을 의미
    • 1984년 ISO(국제 표준화 기구)에 의해 개발됨
    • 각 계층이 수행할 특정 기능을 갖는 7계층 아키텍처
    • 7개 계층은 모두 협력하여 전 세계 한 사람에게서 다른 사람에게 데이터를 전송
    • 컴퓨터 간 데이터 전송 프로세스를 설명하는 참조 프레임워크
    • 전문적인 네트워크 기능을 수행하기 위해 함께 작동하는 7개의 레이어로 나누어져 있어 네트워킹에 대한 보다 체계적인 접근이 가능
    • 각각의 계층은 패킷이라는 데이터 조각의 단위로 각각의 계층에게 보냄 

     

    OSI 모델의 7개 계층

    OSI 모델은 하향식 순서로 배열된 7개의 추상화 계층으로 구성됨

    1. 물리층
    2. 데이터링크 계층
    3. 네트워크 계층
    4. 전송 계층
    5. 세션 계층
    6. 프리젠테이션 계층
    7. 애플리케이션 계층

     

    물리 계층 - 계층 1

    • OSI 참조 모델의 가장 낮은 계층
    • 장치 간의 실제 물리적 연결 담당
    • 비트 형태의 정보가 포함됨
    • 한 노드에서 다음 노드로 개별 비트를 전송하는 역할 담당
    • 데이터 수신 시, 수신된 신호를 가져와 0과 1로 변환한 후 데이터 링크 계층으로 보내 프레임을 다시 결합

     

    물리계층의 기능

    • 비트 동기화 : 클록을 제공하여 비트 동기화를 제공. 클록은 송신자와 수신자를 모두 제어하여 비트 수준에서 동기화를 제공.
    • 비트 전송률 제어 : 전송 속도, 즉 초당 전송되는 비트 수도 정의.
    • 물리적 토폴로지 : 버스, 스타, 메시와 같이 네트워크에서 다양한 장치/노드가 배열되는 방식을 지정
    • 전송 모드 : 연결된 두 장치 간에 데이터가 흐르는 방식도 정의. 가능한 다양한 전송 모드에는 Simplex, Half-duplex 및 Full-duplex 있음.

     

    데이터 링크 계층(DLL) - 계층 2

    메시지의 노드 간 전달을 담당

    한 노드에서 다른 노드로의 데이터 전송에 오류가 없는지 확인하는 것

    패킷이 네트워크에 도착하면 MAC 주소를 사용하여 호스트에 패킷을 전송하는 것은 DLL의 책임

    두 개의 하위 계층인 논리 링크 제어(LLC)와 미디어 액세스 제어(MAC)로 나뉨

     

     

    데이터 링크 계층의 기능

    • 프레이밍(Framing) : 송신자가 수신자에게 의미 있는 비트 세트를 전송하는 방법 제공. 프레임의 시작과 끝 부분에 특수 비트 패턴을 첨부하여 수행 가능.
    • 물리적 주소 지정 : 프레임을 생성한 후 각 프레임의 헤더에 송신자 및 수신자의 물리적 주소(MAC 주소)를 추가
    • 오류 제어 : 손상되거나 손실된 프레임을 감지하고 재전송하는 오류 제어 메커니즘을 제공
    • 흐름 제어 : 데이터의 속도는 양쪽에서 일정해야 함. 그렇지 않으면 데이터 손상. 승인을 받기 전에 전송할 수 있는 데이터의 양을 조정.
    • 액세스 제어 : 단일 통신 채널이 여러 장치에 의해 공유되는 경우 데이터 링크 계층의 MAC 하위 계층은 주어진 시간에 어느 장치가 채널을 제어할 수 있는지 결정하는 데 도움됨

     

    네트워크 계층 - 계층 3

    • 한 호스트에서 다른 네트워크에 있는 다른 호스트로 데이터를 전송하는 데 사용
    • 패킷 라우팅, 즉, 사용 가능한 경로 수 중에서 패킷을 전송할 최단 경로를 선택하는 작업도 처리
    • 발신자와 수신자의 IP 주소는 네트워크 계층에 의해 헤더에 배치

     

    네트워크 계층의 기능

    • 라우팅 : 소스에서 대상까지 어떤 경로가 적합한지 결정
    • 논리적 주소 지정 : 인터네트워크의 각 장치를 고유하게 식별하기 위해 주소 지정 체계를 정의. 발신자와 수신자의 IP 주소는 네트워크 계층에 의해 헤더에 배치. 이러한 주소는 각 장치를 고유하고 보편적으로 구별.

     

    전송 계층 - 계층 4

    • 애플리케이션 계층에 서비스를 제공하고 네트워크 계층에서 서비스를 가져옴
    • 세그먼트 : 전송 계층의 데이터
    • 완전한 메시지의 End to End 전달을 담당
    • 성공적인 데이터 전송에 대한 승인 제공 및 오류 발견 시 데이터 다시 전송

     

    전송 계층의 기능

    • 분할 및 재조립 : (세션) 계층의 메시지를 받아들이고 메시지를 더 작은 단위로 나눔. 생성된 각 세그먼트에는 연관된 헤더가 있음. 목적지 스테이션의 전송 계층은 메시지를 재조립함.
    • 서비스 지점 주소 지정 : 메시지를 올바른 프로세스에 전달하기 위해 전송 계층 헤더에는 서비스 지점 주소 또는 포트 주소라는 주소 유형이 포함됨. 이 주소를 지정함으로써 메시지가 올바른 프로세스로 전달되도록 함.

    cf) 전송 계층에서 제공하는 서비스로는 연결 지향 서비스와 비연결 서비스가 있음.

     

     

    세션 계층 - 계층 5

    연결 설정, 세션 유지 및 인증 담당, 보안 보장

     

     

    세션 계층의 기능

    • 세션 설정, 유지 및 종료 : 계층을 통해 두 프로세스가 연결을 설정, 사용 및 종료 가능
    • 동기화 : 프로세스가 데이터의 동기화 지점으로 간주되는 체크포인트 추가 가능. 동기화 지점은 오류를 식별하여 데이터가 적절하게 재동기화되고 메시지 끝이 조기에 잘리지 않고 데이터 손실을 방지하는 데 도움이 됨.
    • 대화 컨트롤러 : 두 시스템이 반이중 또는 전이중으로 서로 통신을 시작 가능

     

    프리젠테이션 레이어 - 계층 6

    번역 레이어라고도 부름

    애플리케이션 계층의 데이터는 여기에서 추출되어 네트워크를 통해 전송하는 데 필요한 형식에 따라 조작됨

     

     

    프리젠테이션 계층의 기능

    • 번역 : ASCII를 EBCDIC로 변환
    • 암호화/복호화 : 데이터 암호화는 데이터를 다른 형식이나 코드로 변환. 암호화된 데이터를 암호문이라 하고, 해독된 데이터를 일반 텍스트라고 함. 키 값은 데이터 암호화 및 복호화에 사용됨
    • 압축 : 네트워크에서 전송해야 하는 비트 수를 줄임

     

    애플리케이션 계층 - 계층 7

    • 네트워크를 통해 전송되어야 하는 데이터를 생성
    • 응용 프로그램 서비스가 네트워크에 액세스하고 수신된 정보를 사용자에게 표시하는 창 역할

     

    애플리케이션 계층의 기능

    • 네트워크 가상 터미널 : 사용자가 원격 호스트에 로그온할 수 있도록 함
    • FTAM - 파일 전송 액세스 및 관리 : 사용자는 원격 호스트에 있는 파일에 액세스하고, 원격 호스트에 있는 파일을 검색하고, 원격 컴퓨터에서 파일을 관리하거나 제어 가능
    • 메일 서비스 : 이메일 서비스 제공
    • 디렉토리 서비스 : 분산 데이터베이스 소스와 다양한 개체 및 서비스에 대한 글로벌 정보에 대한 액세스 제공

     

     

    TCP/IP

    • 1960년대 설계 및 개발
    • 표준 프로토콜을 기반으로 함
    • OSI 7계층과 달리, 4개의 계층(또는 때때로 5개)
    • 주요 작업 - 컴퓨터의 데이터를 한 장치에서 다른 장치로 전송. 이 프로세스의 주요 조건은 수신자가 발신자가 보낸 것과 동일한 정보를 수신할 수 있도록 데이터를 신뢰할 수 있고 정확하게 만드는 것. 각 메시지가 최종 목적지에 정확하게 도달하도록 하기 위해 TCP/IP 모델은 데아터를 패킷으로 나누고 다른 쪽 끝에서 결합하므로 한 쪽 끝에서 다른 쪽 끝으로 전송하는 동안 데이터의 정확성을 유지하는 데 도움됨.

     

     

    TCP와 IP의 차이점

    • 둘은 서로 다른 프로토콜
    • TCP(전송 제어 프로토콜)와 IP(인터넷 프로토콜)의 기본적인 차이점 → 데이터 전송
    • IP는 메일의 목적지를 찾아주고, TCP는 메일을 보내고(send) 받는(receive) 일을 함
    • UDP는 다른 컴퓨터와 통신하는 데 IP가 필요하지 않은 또 다른 프로토콜
    • IP는 TCP에만 필요함

     

    TCP/IP 모델의 작동

    인터넷으로 무언가를 보내려고 할 때마다 송신자(sender) 측에서 데이터를 패킷으로 나누고(잘게 조각해서 나눔) 수신자 측에서는 동일한 패킷을 다시 결합하여 동일한 데이터를 구성해야 함. 이는 데이터의 정확성을 유지하기 위해 발생하는 일. 데이터를 4계층 절차로 나눔.(4개 또는 5개)

     

     

    TCP/IP 모델의 계층

    • 애플리케이션 계층
    • 전송 계층(TCP/UDP)
    • 네트워크/인터넷 레이어(IP)
    • 데이터 링크 계층(MAC)
    • 물리층

     

    1. 물리층

    데이터를 생성하고 연결을 요청하는 역할 담당

     

    2. 데이터링크 계층

    패킷의 네트워크 프로토콜 유형(이 경우 TCP/IP)은 데이터 링크 계층에 의해 식별

     

    3. 인터넷 계층

    • OSI의 네트워크 계층 기능과 유사함
    • 전체 네트워크를 통한 데이터의 논리적 전송을 담당하는 프로토콜
    • 주요 프로토콜에는 IP, ICMP, ARP가 있음

     

    4. 전송 계층

    • 데이터 수신 확인을 교환하고 누랏된 패킷을 재전송하여 패킷이 오류없이 순서대로 도착하는지 확인
    • TCP와 UDP가 있음

     

    5. 애플리케이션 계층

    • 통신과 오류 없는 데이터 전달을 담당
    • 데이터의 복잡성으로부터 상위 계층 애플리케이션을 보호
    • 세 가지 주요 프로토콜은 HTTP 및 HTTPS, SSH, NTP

     

     

    TCP/IP와 OSI 모델의 차이점

    TCP/IP OSI
    gos는 전송 제어 프로토콜을 나타냄 개방형 시스템 상호 연결을 나타냄
    애플리케이션 계층 자체에서 세션과 프리젠테이션 계층을 모두 사용 다양한 세션 및 프리젠테이션 계층을 사용
    연결 없는 수평적 접근 방식 수직적 접근 방식
    전송 계층은 패킷 전달을 보장X 전송 계층은 패킷 전달을 보장O
    프로토콜을 쉽게 교체 프로토콜이 더 잘 다루어지며 기술 변화로 쉽게 교체 가능
    네트워크 계층은 비연결(IP) 서비스만 제공. 전송 계층(TCP)은 연결을 제공. 비연결 및 연결 지향 서비스는 OSI 모델의 네트워크 계층에서 제공

     

     

     

    DNS

    • Domain Name System. 즉, 인터넷의 전화번호부
    • 인간은 도메인 이름을 통해 온라인으로 정보에 액세스
    • 웹 브라우저는 인터넷 프로토콜(IP) 주소를 통해 상호 작용
    • 브라우저가 인터넷 리소스를 로드할 수 있도록 도메인 이름을 IP 주소로 변환
    • 인터넷에 연결된 각 장치에는 다른 컴퓨터가 장치를 찾는 데 사용하는 고유한 IP 주소가 있는데, DNS 서버 이용하면 사람이 IPv4와 같은 IP 주소나 IPv6과 같은 더 복잡한 최신 영숫자 IP 주소를 기억할 필요X

     

    웹페이지 로딩과 관련되는 4개의 DNS 서버

    • DNS 리커서 : 도서관 어딘가에 있는 특정 책을 찾으러 가는 사서로 생각하면 됨. 클라이언트 시스템으로부터 쿼리를 수신하도록 설계된 서버. 일반적으로 반복자는 클라이언트의 DNS 쿼리를 만족시키기 위해 추가 요청을 수행하는 역할을 담당.
    • 루트 네임서버 : 호스트 이름을 IP 주소로 변환(확인)하는 첫 번째 단계. 다양한 책꽂이를 가리키는 도서관의 색인처럼 생각하면 됨. 
    • TLD 네임서버 : 도서관의 특정 책 랙으로 생각하면 됨. (ex. example.com에서 TLD 서버는 "com"임)
    • 권위 있는 네임서버 : 최종 네임서버는 특정 이름을 해당 정의로 변환할 수 있는 책꽂이에 있는 사전으로 생각하면 됨. 권한 있는 네임서버는 네임서버 쿼리의 마지막 중지 지점.

     

    DNS 조회의 8단계

    1. 사용자가 웹 브라우저에 'example.com'을 입력하면 쿼리가 인터넷으로 이동하여 DNS 재귀 확인자에 의해 수신됨
    2. 확인자는 DNS 루트 이름 서버(.)을 쿼리함
    3. 루트 서버는 해당 도메인에 대한 정보를 저장하는 TLD(최상위 도메인) DNS 서버(ex. .com 또는 .net)의 주소로 확인자에게 응답함. 요청은 TLD를 가리킴.
    4. 확인자는 .com TLD에 요청을 보냄
    5. TLD 서버는 도메인 이름 서버의 IP 주소로 응답
    6. 재귀 확인자는 도메인의 이름 서버에 쿼리를 보냄
    7. IP 주소가 네임서버(IP주소의 주소록같은 것)에서 확인자로 반환됨
    8. DNS 확인자는 처음에 요청한 도메인의 IP 주소로 웹 브라우저에 응답

    즉, DNS 조회의 8단계를 통해 example.com의 IP 주소가 반환되면 브라우저는 웹 페이지에 대한 요청을 보낼 수 있음

    9. 브라우저는 IP 주소에 HTTP 요청을 보냄

    10. 해당 IP의 서버는 브라우저에 렌더링할 웹페이지를 반환(10단계)

     

    cf) 재귀 DNS 확인자 : 클라이언트의 재귀 요청에 응답하고 DNS 레코드를 추적하는 데 시간이 걸리는 컴퓨터(DNS 서버들과 상호작용함)

     

     

    DNS 캐싱

    • 목적 : 데이터 요청에 대한 성능과 안정성을 향상시키는 위치에 데이터를 임시로 저장
    • DNS 데이터는 다양한 위치에 캐시될 수 있으며, 각 위치는 TTL(Time-To-Live)에 의해 결정된 일정 시간 동안 DNS 레코드를 저장

     

     

    HTTP, HTTPS

    하이퍼텍스트 전송 프로토콜(HTTP) : 월드 와이드 웹의 토대. 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용됨

    일반적인 흐름에는 클라이언트 시스템에서 서버에 요청한 다음 서버에서 응답 메시지를 보내는 작업이 포함됨

     

     

    HTTP 요청에 들어있는 것

    1. HTTP 버전 유형
    2. URL
    3. HTTP 메서드
    4. HTTP 요청 헤더
    5. 선택 사항인 HTTP 본문

     

    HTTP 메서드

    'GET'이랑 'POST' 요청 있음

     

    HTTP 요청 헤더

    Request Headers

     

    HTTPS

    • s는 secure의 약자
    • 보안 SSL인증서나 TLS 같은 걸 담아서, 본문 안에 있는 것들이 암호화되어 보내져서 탈취해도 내용 해석 불가

     

    HTTP 응답에 들어있는 것

    1. HTTP 상태 코드
    2. HTTP 응답 헤더
    3. 선택 사항인 HTTP 본문

     

    HTTP 상태 코드

    1. 1XX Informational
    2. 2XX 성공
    3. 3XX 리디렉션
    4. 4XX 클라이언트 오류
    5. 5XX Server Error

     

    HTTP 응답 헤더

    Response Headers

     

     

     

    SSL

    • Secure Sockets Layer는 암호화 기반 인터넷 보안 프로토콜
    • 1995년 Netscape가 처음으로 개발했는데, 개발 업체가 더이상 참여 안 하고 소유권 변경되어서 현재는 TLS로 불림(SSL이 유명해서 현업에서는 이렇게 부르긴 하지만, 정식 명칭은 TLS)
    • 보안 인증서라고 생각하면 됨
    • SSL/TLS를 사용하는 웹사이트의 URL에는 "HTTPS"가 있음
    • 데이터를 암호화하여 서버에 담아서 서버와 통신하기 때문에 https는 탈취해도 내용 확인 불가
    • 특정한 유형의 사이버 공격도 차단(ex. csrf, sql injection 등등)
    • 결론은 필수임

     

    SSL 인증서의 유형

    • 단일 도메인 : 단 하나의 도메인에 적용
    • 와일드카드 : 단 하나의 도메인에 적용되지만, 도메인의 하위 도메인도 포함. ex) www.~와 blog.~을 포함하지만 단일 도메인 인증서는 첫 번째 도메인만 포함할 수 있음
    • 멀티 도메인 : 관련되지 않은 다수의 도메인에 적용될 수 있음(여러개 사용)
    • 도메인 유효성 검사 : 가장 덜 엄격하고 저렴한 수준의 유효성 검사. 기업은 도메인을 관리하고 있다는 것만 증명하면 됨
    • 조직 유효성 검사 : 보다 실무적인 프로세스. CA가 담당자나 기업에 인증서를 직접 문의. 사용자에게 더 많은 신뢰 제공
    • 확장 유효성 검사 : 조직의 배경을 완전히 검사한 후에 SSL 인증서 발행 가능

     

    기업은 어떻게 SSL 인증서를 확보할 수 있을까?

    • Cloudflare는 모든 기업에 무료 SSL 인증서를 제공
    • Cloudflare의 보호를 받는 웹사이트는 클릭 몇 번으로 SSL 활성화 가능

     

     

    핸드쎄이크

     

    TLS 핸드셰이크

    • TLS 암호화를 사용하는 통신 세션을 실행하는 프로세스
    • 통신하는 양측에서는 메시지를 교환하여 서로를 인식하고 검증하며 사용할 암호화 알고리즘을 구성하고 세션 키에 합의
    • HTTPS 작동 원리의 근간을 이룸

    cf) TLS : 안전한 인터넷 통신을 위한 암호화 및 인증 프로토콜

     

     

    TLS 핸드셰이크와 SSL 핸드셰이크

    이제는 이름 TLS지만, 현업에서는 그냥 SSL이라함

     

     

    TLS 핸드셰이크는 언제 발생할까?

    API 호출 및 HTTPS를 통한 DNS 쿼리를 포함하는 HTTPS를 사용할 때에도 매번 TLS 핸드셰이크가 발생

     

     

    TLS 핸드셰이크 중에 발생하는 일

    • 사용할 TLS 버전을 지정
    • 암호 제품군을 결정
    • 서버의 공개키와 SSL 인증서 기관의 디지털 서명을 통해 서버의 ID를 인증
    • 핸드셰이크가 완료된 후에 대칭 암호화를 사용하기 위하여 세션 키를 생성

     

    TLS 핸드셰이크가 이루어지는 단계

    클라이언트와 서버가 교환하는 일련의 데이터그램, 즉, 메시지.

    1. '클라이언트 헬로' 메시지 : 클라이언트가 서버로 "헬로" 메시지 전송하면서 핸드셰이크 개시. 메시지에 클라이언트가 지원하는 TLS 버전, 지원되는 암호 제품군, "클라이언트 무작위"라고 하는 무작위 바이트 문자열 포함.
    2. '서버 헬로' 메시지 : 위에 대한 응답으로 서버가 서버의 SSL 인증서, 서버에서 선택한 암호 제품군, 서버에서 생성한 또다른 무작위 바이트 문자열인 "서버 무작위"를 포함하는 메시지 전송.
    3. 인증 : 클라이언트가 서버의 SSL 인증서를 인증서 발행 기관을 통해 검증.
    4. 예비 마스터 암호 : 클라이언트가 "예비 마스터 암호"라고 하는 무작위 바이트 문자열을 하나 더 전송. 이 암호는 공개키로 암호화되어 있고, 서버가 개인키로만 해독 가능(클라이언트는 서버의 SSL 인증서를 통해 공개키 받음)
    5. 개인키 사용 : 서버가 예비 마스터 암호를 해독
    6. 세션키 사용 : 클라이언트와 서버가 모두 클라이언트 무작위, 서버 무작위, 예비 마스터 암호를 이용해 세션키를 생성. 모두 같은 결과가 나와야 함.
    7. 클라이언트 준비 완료 : 클라이언트가 세션키로 암호화된 "완료" 메시지를 전송
    8. 서버 준비 완료 : 서버가 세션키로 암호화된 "완료" 메시지를 전송
    9. 안전한 대칭 암호화 성공 : 핸드셰이크가 완료되고, 세션키를 이용해 통신이 계속 진행됨

     

     

     

    웹소켓

     

    웹소켓과 HTTP

    • 둘 다 클라이언트-서버 통신에 사용되는 통신 프로토콜(P2P 통신 아님)
    • HTTP 프로토콜은 단방향. 연결이 한번 되면 자동으로 종료(요청을 할 때만 연결). 연결을 하는 동안에만 데이터 패킷 전송 전달을 보장하고 손실된 패킷을 다시 전송. 즉, 요청을 보내면 클라이언트와 서버 사이에 TCP 연결이 열리고, 응답을 받은 후 TCP 연결이 종료되고, 각 HTTP 요청은 서버에 대한 별도의 TCP 연결을 열음.
    • WebSocket은 양방향 전이중 프로토콜. 계속 연결이 되어있음. 그래서 ws:// 또는 wss://에서 시작. 연결이 설정되고 활성화되면 종료될 때까지 동일한 연결 채널을 사용하여 통신이 이루어짐. 클라이언트-서버 핸드셰이크 후 클라이언트-서버가 새로운 연결을 결정하여 이를 유지하는 방법. 양방향 모드로 메시지 교환이 계속 이루어짐. 상태 코드 101은 WebSocket의 전환 프로토콜을 나타냄

     

    웹소켓은 언제 사용할까?

    • 실시간 웹 애플리케이션
    • 게임 애플리케이션
    • 채팅 애플리케이션
    • ex) 카톡, 노션, 인스타, 페이스북 등등 거래, 모니터링, 알림 서비스와 같은 거의 모든 실시간 애플리케이션(이때 HTTP 연결보다 빠름)

     

    웹소켓을 사용하지 않는 경우

    • 오래된 데이터를 가져오거나 애플리케이션으로 처리하기 위해 한 번만 데이터를 가져오려면 HTTP 프로토콜을 사용
    • ex) 간단한 RESTful 애플리케이션은 상태 비저장 HTTP 프로토콜 사용

     

     

     

     

    https://www.inflearn.com/course/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B0%9C%EB%85%90?#curriculum

     

    [지금 무료] 컴퓨터구조, 네트워크 기본 개념 정리 강의 - 인프런

    이강의를 통해 수강생은 컴퓨터의 구조, 네트워크의 전반적인 개념과 흐름을 알 수 있습니다., 안녕하세요 더코딩클럽입니다.컴퓨터 과학 이론을 디테일하게 깊게 배우면 너무 어려워서 포기하

    www.inflearn.com

     

    본 글은 위의 인프런 강의를 듣고 작성하였습니다.

     

    'study > Network' 카테고리의 다른 글

    PART 04. 네트워크 운용기기  (0) 2024.05.20
    PART 03. NOS(Network Operating System) (2)  (0) 2024.05.13
    PART 03. NOS(Network Operating System) (1)  (0) 2024.05.08
    PART 02. TCP/IP  (0) 2024.04.03
    PART 01. 네트워크 일반  (0) 2024.03.27
Designed by Tistory.