읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
  • 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.

암호

  • 평문 : 암호화하기 전 데이터
  • 암호키 : 특정한 비트 수로 이루어진 수치
  • 암호문 : 평문과 암호키로 수학적 연산을 수행해 암호화된 데이터
  • 복호화 : 암호문을 평문으로 되돌리는 과정

대칭키 암호 방식

  • 대칭키 암호 방식 : 암호화와 복호화에 같은 암호키를 이용하는 방식
    • 공통키 암호 방식이나 비밀키 암호 방식으로도 부른다.
    • 미리 송/수신 측이 암호키를 공유하고 있어야 한다.
    • 암호키의 공유가 어려움
    • 주 알고리즘으로 AES가 있다.

Technical_Interview_Network_008_001.png

공개키 암호 방식

  • 비대칭키 암호 방식이라고도 부름

  • 공개키와 비밀키에는 수학적 연관성이 있음

  • 공개키는 공개하되 비밀키는 유출되지 않도록 관리해야 함

    1. 송신자가 공개된 수신측의 공개키로 암호화
    2. 수신자가 송신측이 보내온 데이터를 비밀키로 복호화
  • 비밀키로 암호화하는 경우

    • 비밀키로 암호화하는 경우 공개키로 복호화를 수행할 수 있다.
    1. 송신자 A가 비밀키로 데이터를 암호화
    2. 수신자 B가 송신자의 공개키로 데이터를 복호화 수행, 성공 시 송신자가 A임을 확인

디지털 인증

디지털 서명

  • 디지털 서명 : 데이터 송신처와 데이터 변조 여부를 확인하기 위한 인증 장치
    • 데이터의 해시값을 비밀키로 암호화
  1. 송신자 A가 보낼 데이터에서 해시값 생성, 송신자의 비밀키로 암호화하여 서명 값 첨부
  2. 수신자 B는 데이터와 서명값을 받고 A의 공개키로 서명을 복호화, 성공 시 A가 맞음을 증명
  3. 수신한 데이터로부터 해시값 생성, 복호화된 서명의 해시값과 비교하여 데이터 변조 판별

디지털 인증서

  • PKI(Public Key InfraStructure) : 공개키의 진위를 확인하여 공개키 암호를 안전하게 사용하도록 하는 인프라

  • CA(Certification Authority) : 인증 기관으로 디지털 인증서를 발급

    • 발급된 인증서는 서버에 설치
  • 디지털 인증서 발급

    1. 업체는 공개키와 비밀키 생성하여 비밀키를 안전하게 보관
    2. 공개키와 업체 정보를 CA에 보내서 인증서 발행 신청
      • CSR(Certificate Signaling Request) : 인증서 발행 신청
    3. CA는 요청을 검수, 심사하여 인증서 생성하여 회신
      • 인증기관의 비밀키로 서명
    4. 발행된 인증서를 업체 서버에 설치
  • 디지털 인증서를 활용한 공개키 인증 과정

Technical_Interview_Network_008_002.png

  • SSL : 디지털 인증서로 통신 상대 진위 여부를 보증해준다.
    • SSL로 암호화된 웹사이트는 https://로 시작한다.
  • SSL 암호화 : 공개키 암호 방식과 공통키 암호 방식을 포함한 하이브리드 암호
    • 디지털 인증서를 활용한 공개키 암호화 방식이다.

VPN

  • 인터넷은 도청 등의 위험이 있으나 WAN은 가격이 비쌈
  • VPN(Virtual Private Network) : 인터넷을 가상으로 사설 네트워크처럼 다루는 기술
    • 거점 LAN의 라우터 사이를 가상으로 연결(터널링)
    • 거점 LAN 간 통신은 터널을 경유하도록 라우팅
    • 터널 간 데이터는 암호화하여 송/수신
    • 터널로 경유하지 않는 데이터는 평소 인터넷처럼 암호화하지 않음

읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
  • 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.

라우터

레이어 2 스위치로 구획된 동일 네트워크 범위가 아닌 라우터로 구분되는 다른 네트워크로 데이터를 보내려면 네트워크를 연결하는 라우터로 전송한 뒤 라우터가 판단하여 중계해야 한다.

  • 라우팅 : 데이터의 목적지가 어느 네트워크에 접속되어 있는지 판단해서 올바른 경로의 라우터로 전송하는 행위

  • 라우터가 전송하는 데이터는 IP 패킷으로 TCP/IP 계층 중 인터넷 계층에 속한다. 따라서, 라우팅 동작은 인터넷 층에서 수행됨을 의미한다.

  • 라우터가 데이터 전송 시 데이터의 변화

    • IP 헤더의 TTL과 체크섬
      • NAT 주소 변환 시 IP 주소도 변경
    • 네트워크 인터페이스 층 프로토콜 헤더는 다른 라우터로 전송하기에 완전히 바뀐다.
  • 라우터의 네트워크 설정

    • 네트워크 접속은 IP 주소를 설정함을 의미한다.
    • 인터페이스에 물리적 배선을 수행하고 IP 주소를 설정함으로써 인터페이스와 네트워크가 연결된다.

Technical_Interview_Network_007_001.png

라우터의 데이터 전송

  1. 라우팅 대상 IP 패킷 수신, 경로 정보 검색하여 전송처 결정

Technical_Interview_Network_007_002.png

  • 넥스트 홉 : 다음에 전송할 라우터의 주소
  1. 이더넷 헤더를 수정해 IP 패킷 전송
    • 다음 전송처의 MAC 주소 요청을 위해 ARP 실행
      • 출발지와 목적지 MAC 주소가 바뀌어 이더넷 헤더가 완전히 새로운 상태
      • FCS도 새롭게 추가
    • IP 헤더의 IP 주소는 변경하지 않고 TTL을 1 감소시키고 체크섬을 갱신

Technical_Interview_Network_007_003.png

  1. 목적지 호스트가 속한 라우터의 라우팅
    • 전송하고자 하는 네트워크 주소가(넥스트 홉) 직접 접속으로 동일 네트워크임을 확인
    • 동일하게 라우팅을 수행 - ARP로 이더넷 헤더 갱신

Technical_Interview_Network_007_004.png

라우터의 네트워크 정보

  • 루트 경로 / 경로 정보 : 라우팅 테이블에 등록된 네트워크 정보
  • 경로 정보의 내용
    • 네트워크 주소 & 서브넷 마스크, 넥스트 홉 주소
  • 라우팅 테이블의 기록 범위 : 그래프의 형태로 목적지까지 순차적으로 진행함에 따라 이웃 라우터의 네트워크까지만 기록
    • 라우터 테이블 상 인식할 수 없는 네트워크로의 IP 패킷은 전부 폐기
    • 연결된 이웃 라우터의 정보는 누락없이 기록해야 함
  • 라우터 테이블 정보 등록 방법
    • 직접 접속 : 라우터와 직접 연결된 네트워크의 경로 정보
      • 라우터의 인터페이스에 IP 정보 할당하여 연결된 네트워크
    • 스태틱 라우팅 : 라우터에 커맨드를 입력하여 수동으로 다른 원격 네트워크 정보 등록
    • 라우팅 프로토콜 : 라우터끼리 정보를 교환하여 필요한 경로 정보 등록
      • RIP(Routeing Information Protocol) : 소규모
      • OSPF(Open Shortest Path First) : 중 ~ 대규모
      • BGP(Border Gateway Protocol) : 인터넷 백본
  • 경로 요약 : 하나의 라우터에 복수의 인터페이스가 존재함에 따라 다른 네트워크에 동일 넥스트 홉이 기록되는 경우를 개선하고자 복수의 네트워크 주소를 하나로 모아서 기록
  • 디폴트 경로 : 0.0.0.0/0으로 표기해 경로 요약을 극단적으로 적용
    • 모든 네트워크를 의미
    • 인터넷의 방대한 네트워크와 다른 거점의 네트워크를 집약
    • 연결된 라우터가 하나라면 자신과 직접 접속된 네트워크를 제외한 모든 네트워크는 원격지 네트워크이므로 디폴트 경로로 요약할 수 있다.

레이어 3 스위치

  • 레이어 3 스위치 : 레이어 2 스위치에 라우터 기능을 추가한 네트워크 기기
  • 레이어 2 스위치와 라우터의 비교

Technical_Interview_Network_007_005.png

VLAN

  • VLAN : 하나의 네트워크를 구성하던 레이어 2 스위치가 복수의 네트워크로 분할할 수 있게 함
    • 같은 VLAN에 할당된 포트끼리만 이더넷 프로토콜을 전송케하여 구분
    • 설정에 따라 자유로이 분할 가능
    • 데이터 전송 범위를 좁혀 보안 향상
    • VLAN으로 분할된 네트워크가 서로 통신하기 위해 레이어 3 스위치의 라우터 기능 요구

Technical_Interview_Network_007_006.png

  • 태그 VLAN(트렁크) : 레이어 2 스위치들로 VLAN 구성 시 스위치 간 접속을 한 줄로 가능케 함

Technical_Interview_Network_007_007.png

  • VLAN 태그 : 태그 VLAN 포트를 송수신하는 이더넷 프레임에 추가되는 정보
    • 어느 VLAN에 소속되었는지 안내

분할된 VLAN 간 연결

  • VLAN 간 라우팅 : VLAN을 서로 연결해서 통신할 수 있게 함
    • 라우터나 레이어 3 스위치 필요(효율성 측면에서 레이어 3 스위치 사용)
  • 레이어 3 스위치 IP 주소 설정 - 네트워크 연결
    1. 레이어 3 스위치 내부의 가상 인터페이스(VLAN 인터페이스)에 IP 주소 설정
    2. 레이어 3 스위치 포트 자체에 IP 주소 설정

Technical_Interview_Network_007_008.png

PC의 게이트웨이

  • PC의 라우팅 테이블 정보
    1. 직접 접속 경로 : 현재 네트워크의 IP 주소, 넥스트 홉은 직접 접속이므로 없음
    2. 디폴트 경로 : 동일 네트워크가 아니므로 연결될 라우터의 인터페이스 주소
      • 이 설정이 기본 게이트웨이의 IP 주소이다.

읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
  • 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.

이더넷

  • 이더넷 : 같은 subnet 내의 이더넷 인터페이스 간 데이터를 전송하는 프로토콜
    • subnet은 레이어 2 스위치로 구획이 묶인 작은 네트워크로 간주한다.
  • IEEE802 위원회 : 이더넷의 규격을 결정하는 단체
  • MAC 주소 : 이더넷 인터페이스를 특정하기 위한 48비트 주소
    • 선두 24비트는 OUI(메이커 식별 코드)이다.
    • 후미 24비트는 시리얼 넘버이며 각 메이커사가 할당한다.
    • 미리 이더넷 인터페이스에 할당되어 기본적으로 변경이 불가하다.
    • 물리 주소, 하드웨어 주소로도 부른다.
    • 16진수로 표기하며 1바이트씩은 -과 :로, 2바이트씩은 .로 구분
  • 이더넷 헤더

Technical_Interview_Network_006_001.png

  • 토폴로지 : 위상기하학을 의미하며 네트워크 기기를 연결하는 형태를 나타내는 용어
    • 버스형 : 초기 이더넷 형태, 케이블을 공유하는 형태로 한 번에 하나의 기기만 데이터 전송 가능
    • 스타형 : 최근 이더넷 형태
    • 링형
  • CSMA/CD : 초기 버스형 토폴로지 형태의 이더넷에서는 복수의 기기가 동시에 데이터를 전송할 수 없어 데이터 전송 시점을 조율하는 기법

Technical_Interview_Network_006_002.png

레이어 2 스위치

  • 레이어 2 스위치 : subnet을 구성하는 네트워크 기기
    • 여러 대 연결해도 하나의 네트워크를 의미
    • 이더넷 프레임 전송을 위해 이더넷 헤더의 MAC 주소 참조
  • 레이어 2 스위치의 동작
    1. 수신한 이더넷 프레임의 출발지 MAC 주소를 MAC 주소 테이블에 등록
    2. 목적지 MAC 주소와 MAC 주소 테이블에서 전송할 포트를 결정
    3. MAC 주소 테이블에 존재하지 않을 경우 플러딩을 수행
      • Unknown 유니캐스트 프레임 : MAC 주소 테이블에 등록되지 않은 MAC 주소가 목적지로 되어 있는 프레임
      • 플러딩 : Unknown 유니캐스트 프레임을 수신 포트를 제외한 모든 포트로 전송
  • 데이터 전송 시 레이어 2 스위치 동작

Technical_Interview_Network_006_003.png

  • 데이터 응답 시 레이어 2 스위치 동작

Technical_Interview_Network_006_004.png

  • MAC 주소 테이블 : 레이어 2 스위치가 관리하는 포트별 MAC 주소 리스트
    • 하나의 포트에 여러 호스트를 관리하는 다른 레이어 2 스위치가 연결될 경우 하나의 포트에 복수의 MAC 주소가 매칭될 수 있다.
    • 접속 포트가 바뀔 수 있으므로 제한시간을 둬서 시간 내에 테이블에 등록된 MAC 주소가 출발지로 된 데이터를 수신받지 못하면 테이블에서 제거한다.

무선 LAN

  • 무선 LAN : 케이블 없이 간편하게 LAN을 구축할 수 있는 LAN 기술

    • 무선망 구축 시 무선 LAN 액세스 포인트와 무선 LAN 인터페이스가 필요
  • 무선 LAN 클라이언트 : 무선 LAN 인터페이스가 무선 LAN에 연결된 기기

  • 인프라스트럭쳐 모드 : 무선 LAN 액세스 포인트를 경유해 데이터를 주고받는 상태

  • 애드혹 모드 : 무선 LAN 인터페이스끼리 직접 데이터를 주고받는 상태

  • 무선 LAN 액세스 포인트는 통신의 완결을 위해 레이어 2 스위치에 접속하여 유선 이더넷 네트워크와도 연결

  • Wi-Fi : 초기 무선 LAN 호환 문제를 해결하기 위해 상호 접속성을 인증한 브랜드

  • 어소시에이션 : 무선 LAN에 연결하는 행위

  • SSID : 무선 LAN의 논리적인 그룹을 식별하는 정보

    • 하나의 액세스 포인트에 여러 개의 SSID 선정 가능
    • 복수의 액세스 포인트에서 하나의 SSID 선정 가능
  • 제어신호(비콘) : 무선 LAN 액세스 포인트가 송출하는 신호

    • 무선 LAN 클라이언트는 제어 신호에서 사용할 수 있는 주파수(채널)를 탐색
  • 무선 LAN의 전파에 데이터를 송신할 수 있는 클라이언트는 단 하나

    • 송신 제어를 위해 CSMA/CA를 사용(이더넷의 버스형 토폴로지는 CD였음)
  • 무선 LAN의 CSMA/CA

    1. 전파 이용여부 탐지(Carrier Sense)
      • 전파가 검출되면 이용 여부 확인
      • 미검출 시 일정 시간 대기
    2. 랜덤시간 대기(Collision Avoidance)
      • 여러 클라이언트가 동시에 미사용 확인하여 데이터 송신 시 충돌 발생
    3. 데이터 송신
  • WPA2 : 현재 일반적으로 사용 중인 무선 LAN의 보안규격

읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
  • 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.

웹사이트

  • 웹사이트 : 웹서버 애플리케이션이 공개하는 다양한 웹페이지의 집합
    • 일반적으로 HTML 파일로 제작
  1. 웹 브라우저에서 웹 사이트 주소를 입력하거나 링크를 클릭하면 웹서버 애플리케이션에 파일 전송을 요청
  2. 웹서버 애플리케이션은 요청받은 파일을 응답으로 회신
  3. 웹 브라우저가 수신한 파일을 화면에 표시하여 사용자에게 가시화
  • 파일 전송 요청에 한 번에 끝나지 않고 페이지 내 이미지나 영상 등 미디어 자료가 있다면 해당 파일을 요청하여 바이너리 데이터를 다시 회신받기도 한다.
  • HTTP : 웹페이지 파일 전송에 사용하는 애플리케이션 층 프로토콜
    • HTTPS : 암호화하는 경우에 사용하는 프로토콜
  • 스타일 시트 : 문서의 레이아웃이나 문자의 폰트, 색 등 웹페이지의 디자인을 정의하는 방법
    • CSS(Cascading Style Sheets) : 스타일 시트를 기술하기 위한 언어
    • HTML 파일 내에 스타일 시트를 작성할 수 있으나 일반적인 경우 별도 파일로 작성
    • 각 요소에 대해 정의되어 있기에 일괄적인 변경 가능

웹사이트의 주소

  • URL(Unifrom Resource Locator) : 웹사이트의 주소

  • URL의 구조

Technical_Interview_Network_005_001.png

  • URL 데이터 경로의 생략
    1. http://www.abc.co.kr/dir/과 같이 디렉토리만 명시된 경우 어떤 파일로 접근해야 하는지 명확하지 않다. 접근해야 하는 파일 명시를 위해 index.html이나 default.htm 등의 파일을 설정해서 /dir/index.html이나 /dir/default.htm에 액세스를 하게 한다.
    2. http://www.abc.co.kr/의 경우도 루트 디렉토리 경로만 명시했음을 볼 수 있다.
    3. http://www.abc.co.kr과 같이 루트 디렉토리까지 생략된 경우 2번의 경우처럼 /index.html이나 /default.htm으로 접근하게 하면 해결할 수 있다.
    4. http://www.abc.co.kr/foo의 경우 우측에 / 표시가 없어 파일명으로 불 수 있는 것이 일반적이나 혹 사용자의 실수일 수도 있으니 상위 디렉토리를 스캔하여 디렉토리가 존재하면 디렉토리로, 파일이 존재하면 파일로 인식하여 접근하게끔 처리함이 통례다.

REST, API, RESTful

  • REST(Representational State Transfer) : HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 자원을 처리하도록 설계된 아키텍처
    • Uniform Interface(인터페이스 일관성)
      • URI로 지정한 자원에 대한 조작을 통일되고 한정적 인터페이스로 수행
    • Stateless(비상태성)
      • 서버는 들어오는 요청만 단순히 수행
      • 이전 요청이 다음 요청의 처리에 연관되면 안됨
    • Cacheable(캐시 처리 가능)
      • 웹 프로토콜인 HTTP를 사용하기에 HTTP의 캐싱 기능을 사용할 수 있음
      • 대량의 요청을 효율적으로 처리
    • Client-Server(클라이언트-서버 구조)
      • Client가 사용자 인증을 책임지고 REST 서버는 API를 제공하며 로직 처리 및 저장을 책임진다.
    • Layered System(계층화)
      • Client는 REST API 서버만 호출할 수 있다.
      • REST API 서버는 다중 계층으로 구성되며 보안, 로드밸런싱, 암호화 계층 등을 추가할 수 있다.
      • Proxy, 게이트웨어 등의 중간 매체를 사용할 수 있다.
  • API(Application Programming Interface) : 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
    • 프로그램과 또 다른 프로그램을 연결하는 가교라고 볼 수 있다. (상호 정보 교환)
  • REST API : REST 기반으로 구현된 서비스 API
    • HTTP Request 시 어떤 URI에 어떤 메소드를 사용할 시 지켜지는 약속
  • RESTful : REST 아키텍처를 구현하는 웹서비스로 REST 원리를 따르는 시스템을 통칭한다.
    • RESTful한 디자인 : URI를 규칙에 맞기 잘 설계했는지의 여부를 의미
      • URI Path에 불필요한 파라미터를 넣지 않으며 명사를 사용
      • / 구분자로 계층 관계 표현하며 마지막에는 /를 넣지 않는다.
      • -는 URI 가독성을 위해 사용하며 _는 URI에 사용하지 않는다.
      • URI 경로는 소문자가 적합하며 파일 확장자는 URI에 넣지 않는다.

HTTP Request

URL 해석이 끝나면 액세스 지점이 특정되므로 이후 HTTP 프로토콜을 사용하여 웹서버에 접근한다. 웹서버에 접근 시 요구에 맞춰서 특정 정보를 명시하여 메시지를 보내는데 이를 리퀘스트 메시지라 한다.

  • 메소드 : 웹서버에게 어떤 동작을 하고 싶은지를 전달

  • 메소드의 종류

    • GET : URI로 지정한 데이터를 가져온다.
    • POST : 서버에 데이터를 보낸다.
    • PUT : 서버에 파일을 보낸다.
    • DELETE : 서버에 파일을 삭제하도록 요청한다.
    • HEAD : URI로 지정한 데이터의 헤더만 가져온다.
    • CONNECT : 프록시 서버를 경유해 통신한다.
  • URI(Uniform Resource Identifier) : 액세스 대상을 통칭하는 용어로 일반적으로는 데이터를 저장할 파일의 이름이나 CGI 프로그램의 파일명을 작성한다. 다만, URL을 그대로 적을 수도 있다.

  • CGI 프로그램 : 웹서버에서 프로그램을 호출할 때의 규칙을 정해둔 것, CGI 규칙에 의해 동작하는 프로그램을 CGI 프로그램이라 한다.

  • request message

    1. request line : 메소드, URI, http 버전을 담는다. request 내용을 대강 알 수 있다.
    2. message header : 한 행이 한개의 헤더 필드를 사용, request의 부가 정보를 담는다.
    3. 공백 라인 : message header와 entity body를 구분짓는다.
    4. entity body : 클라이언트에서 서버로 송신하는 데이터이다. POST 메소드로 웹서버에 전송하기 위해 사용자가 입력한 데이터를 담는다.

Technical_Interview_Network_005_002.png

HTTP Response

클라이언트가 서버로 Request를 보내면 그에 따라 동작한 결과를 다시 담아 클라이언트로 회신해야 한다. 이를 Response라 한다.

  • response의 상태 : request의 실행 결과를 나타내는 status code와 응답 문구로 안내
    • status code : 프로그램에게 실행 결과를 안내하기 위한 숫자
      • 1xx : 정보, 추가 정보가 있음
      • 2xx : 성공, 서버가 요청을 처리함
      • 3xx : 리다이렉트, 다른 URI로 다시 리퀘스트하도록 요청
      • 4xx : 클라이언트 에러, 요청에 문제가 있어 처리할 수 없음을 전달
      • 5xx : 서버 에러, 서버 쪽에 문제가 있어 처리할 수 없음을 전달
  • request message의 URI는 단 하나이므로 파일을 한 번에 한개씩 읽을 수 있기 때문에 페이지 내 미디어 컨텐츠가 존재하면 페이지 소스 요청 이후 태그를 탐색하여 다시 요청을 서버로 보낸다.

Technical_Interview_Network_005_001.png

쿠키와 세션

HTTP는 연결을 유지하지 않아 통신할 때마다 이전 요청과 현재 요청이 같은 요청인지 알 수 없다는 단점이 있어(비상태성, stateless) 쿠키와 세션을 도입한다.

  • 쿠키 : 웹서버 애플리케이션이 웹 브라우저에 특정 정보를 저장하는 기술
    • 만료시점 : 저장시 expire 속성을 지정하여 삭제 날짜 지정 가능
    • 클라이언트 모르게 설정됨을 방지하기 위해 한 도메인당 20개, 하나당 4KB의 제한이 있음
    • 클라이언트에 저장하기에 보안에는 취약
  • 세션 : 웹서버 애플리케이션이 웹서버에 특정 정보를 저장하는 기술
    • 만료 시점 : 로그아웃하거나 설정 시간 동안 반응이 없으면 무효화되어 정확히 알 수 없음
    • 클라이언트가 접속하면 서버에 의해 생성되므로 개수나 용량 제한 없음
    • 쿠키와 비교하면 보안 측면에서는 더 나음
  1. 웹 브라우저 요청 시 웹 서버 애플리케이션이 HTTP Response에 쿠키도 포함하여 전송
    • 쿠키 정보는 HTTP 헤더의 포함
    • 웹 브라우저에 쿠키 저장 옵션이 활성화되어 있으면 쿠키를 저장
  2. 다음 접속에 웹브라우저가 요청 시 HTTP request에 쿠키도 포함하여 전송
    • 이로써 사용자의 로그인 정보나 열람이력 등을 관리, 커스터마이징이 가능

프록시 서버

  • 프록시(proxy) 서버 : 웹사이트 접속을 대행하는 서버

Technical_Interview_Network_005_004.png

  • 프록시 서버의 목적
    • client PC의 웹 브라우저에서 어떤 웹사이트에 접속하는지 확인(감사 기능)
    • 부정한 웹사이트로의 접속 차단
      • URL 필터링, 웹 필터링 : 웹사이트에 대한 접속 제한

읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
  • 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.

IP

  • IP(Internet Protocol) : 네트워크의 어떤 PC에서 다른 PC로 데이터를 전송하는 역할
  • 목적지가 다른 네트워크에 있다면 경로 상의 라우터가 IP 헤더를 참조해 IP 패킷을 전송하는 라우팅을 수행

Technical_Interview_Network_004_001.png

  • IP 주소 : TCP/IP에서 통신 상대 호스트를 식별하기 위한 식별 정보(호스트의 인터페이스에 할당된 주소)
  • 유니캐스트 : 한 개의 호스트로 데이터를 전송
  • 브로드캐스트 : 같은 네트워크 상의 모든 호스트에게 동일한 데이터를 전송
    • 브로드캐스트의 IP범위 : 255.255.255.255
  • 멀티캐스트 : 동일 애플리케이션이 동작하는 특정 그룹의 호스트들에 데이터를 전송
    • 멀티캐스트 그룹의 호스트가 동일 네트워크에 존재한다고 확언할 수는 없다.
    • 멀티캐스트 IP : 224.0.0.0 ~ 239.255.255.255
  • 서브넷(subnet) : 작은 네트워크
    • 건물의 a동에 해당하는 주소가 서브넷(네트워크부 or 네트워크 주소)
    • a동의 b호에 해당하는 주소가 네트워크 인터페이스에 할당된 호스트 주소(호스트부 or 호스트 주소)
    • 네트워크부와 호스트부를 합해 IP주소를 만든다.
  • IP 주소의 표기 방법/구조

Technical_Interview_Network_004_002.png

  • 서브넷 마스크 : 네트워크부와 호스트부의 경계가 고정이 아닌 가변적임에 따라 어디까지가 네트워크부인지 명시하는 마스크

  • 공인 IP 주소(Public IP) : 인터넷에서 사용하는 IP주소로 인터넷 통신을 위해 반드시 필요

  • 사설 IP 주소(Private IP) : 공인 IP 주소범위가 부족함에 따라 대표 공인 IP 주소를 두고 산하의 네트워크에 사설 IP 주소를 배포하여 IP 주소 부족 문제 해결

    • 10.0.0.0 ~ 10.255.255.255
    • 192.16.0.0 ~ 172.31.255.255
    • 192.168.0.0 ~ 192.168.255.255
    • 사설 IP 주소는 사설 네트워크에서는 자유로이 사용가능하며 다른 네트워크의 사설 주소가 겹치더라도 통신은 공인 IP 주소를 거쳐서 들어오기 때문에 문제가 없다.
  • NAT(Network Address Translation) : 인터넷은 공인 IP 주소만 사용하므로 사설 네트워크에서 인터넷으로 통신하기 위해서는 공인 IP 주소로 바꿔야 하는데 그 과정을 말한다.

    1. 사설 네트워크에서 인터넷으로 요청 전송 시 출발지 IP 주소 변환
    2. 라우터는 다시 되돌리기 위해 변환한 주소의 쌍을 NAT 테이블에 저장
    3. 요청에 대한 응답이 라우터로 돌아오면 목적지 IP 주소를 NAT 테이블로 참조하여 변환

Technical_Interview_Network_004_003.png

  • NAPT(Network Address Port Tanslation) : 복수의 사설 주소를 하나의 글로벌 주소에 대응
  • ICMP(Internet Control Message Protocol) : IP가 통신이 정상적으로 이루어지는지 확인하지 않기 때문에 그 기능을 수행하는 프로토콜
    • 에러 리포트 : 어떤 사유로 IP 패킷이 폐기되었다면 폐기한 기기가 ICMP를 이용해 폐기한 IP 패킷의 출발지로 에러 리포트(도달불능 메시지) 전송
    • 진단 기능 : IP의 엔드투엔드 통신이 가능한지 확인(ex. Ping command)

Technical_Interview_Network_004_004.png

  • ARP : 인터페이스를 식별하기 위한 MAC 주소를 대응

    • 이더넷 인터페이스에서 IP 패킷 전송 시 이더넷 헤더를 첨부하는데 목적지 MAC 주소를 지정해야 한다.
    • 목적지 IP 주소에 대응하는 MAC 주소를 구하기 위해 ARP 사용, 이 과정을 주소 해석이라 한다.
    1. ARP 요청하여 IP 주소에 대응하는 MAC 주소 질의
    2. 질의받은 IP 주소를 가진 호스트가 ARP 응답으로 MAC 주소 회신
    3. 주소 해석한 IP 주소와 MAC 주소 쌍을 ARP 캐시에 저장
    4. 이후 이더넷 헤더에 목적지 MAC 주소, 출발지 MAC 주소를 적어서(캡슐화) 전송

Technical_Interview_Network_004_005.png

포트

  • 호스트에서 동작하는 애플리케이션에 데이터를 배분하기 위해서는 각각의 애플리케이션 식별 정보가 필요하다.
  • 포트 번호 : TCP/IP의 애플리케이션을 식별하는 번호로 TCP/UDP 헤더에 지정
    • 총 16비트로 0~65535까지 지정 가능
    • 웰노운 포트(well-known port) : 사전에 정해진 포트 번호
      • 범위는 0 ~ 1023까지로 서버 애플리케이션 용으로 예약된 포트 번호이다.
      • 주요 웰노운 포트 번호 : HTTP(80), HTTPS(443), SMTP(25), FTP(20/21), DHCP(67/68)
    • 등록된 포트(registered port) : 웰노운 포트를 제외하고 사전에 지정된 자주 이용되는 애플리케이션의 서버쪽 포트 번호
      • 범위는 1024~44151이다.
    • 동적/사설 포트 : 클라이언트 애플리케이션을 식별하기 위한 포트 번호
      • 요청마다 매번 바꿀 수 있으며 클라이언트가 통신할 때 동적으로 할당
      • 범위는 44152~65535이다.

+ Recent posts