HTTPS란? -보안에 취약했던 HTTP의 보안 버전입니다.SSL/TLS 프로토콜을 사용하여 클라이언트와 서버간의 통신을 암호화하여 데이터를 안전하게 전송할 수 있게 합니다. 중간자 공격과 같은 보안 위협으로 부터 데이터를 보호하고, 웹사이트에서 서버의 SSL 인증서를 받아와 해당 정보를 신뢰할 수 있는지 없는지를 확인시켜주는 프로토콜입니다. SSL이란? -웹사이트와 사용자 사이에서 암호화된 연결을 제공하는 인터넷 보안 프로토콜입니다. 공개키 암호화 방식을 사용하며, 공개키는 모든 클라이언트에게 공개되어있으며, 개인키는 서버만 가지고 있습니다. 공개키를 사용하여 암호화를 한 값은, 개인키를 사용하여 복호화 할 수 있습니다. TLS란? -SSL에서 업데이트된 버전입니다. SSL과 같이 대칭키와 공개키 암호..
DHCP란? -Dynamic Host Configuration Protocol의 약자로 컴퓨터네트워크에서 IP주소,서브넷마스크,게이트웨이 등의 구성 요소를 자동으로 할당하는 프로토콜입니다. 수동으로 IP주소를 할당하는것보다 효율적입니다. DHCP서버가 IP주소, 서브넷 마스크,기본 게이트웨이, DNS서버등의 네트워크 구성 정보를 저장하고 관리하고 있으며, 클라이언트가 네트워크에 연결될때 클라이언트에 맞게 자동 할당을 하게 됩니다. 사진과같이 DHCP 서버는 LAN 내부에 존재하고 있으며, 내부에서 DHCP 서버가 각각의 컴퓨터에게 IP번호, 서브넷마스크 등의 정보를 설정하는역할을합니다. 최근에는 스위치 라우터에 DHCP가 내장되어 있는 상황이 더많습니다. 따라서 최근에는 DHCP서버가 LAN에 따로 독립..
버추얼 박스를 통해 가상 os를 구축할때 네트워크 설정을 통해 서로 통신을 해야할때가 있습니다. 이럴때 버추얼박스의 설정에서 다양한 네트워크모드를 지원하는데 오늘은 그것에 대해 알아보겠습니다. 먼저 네트워크 설정은 버추얼박스 설정-네트워크 -어댑터로 가시면 있습니다. NAT(Network Address Translation) -IP주소를 변환하는 기술로 사설 IP와 공인 IP를 상황에 따라 주소를 변환하는 기술입니다. 사설 IP는 내부망에서 직접적으로 접근이 불가능한데 NAT기술을 통해 공인IP로 변환을하여 인터넷에서 접근 가능하도록 합니다. NAT의 기술에는 Static NAT, Dynamic NAT이 있는데 Static은 공인IP와 사설IP 1대1 매칭이고, Dynamic은 여러개의 사설IP를 하나의..
DNS서버란? -인터넷 상에서 도메인이름을 IP주소로 변환하는 시스템입니다. 도메인이름과 해당 IP주소를 쌍으로 가지고 있으며 이 DNS서버는 전 세계에 분산되어 있습니다. 모든기기의 IP주소를 활용하여 인터넷 통신하기엔 IP주소를 외우는기 어렵기때문에 도메인 이름을 사용하여 쉽게 통신을 가능하게 하는 서버입니다. DNS 계층구조 (여기서 빨간색 구간을 보시면 .com에 있는 하위 도메인들과 .com도메인이 묶여있습니다. 여기서 .com은 Authoritative name server인데 해당 DNS ZONE에서 가장 최상위 노드이기 때문에 모든 DNS정보를 가지고 있어 가장정확하게 제공하는 DNS서버입니다.) 루트 (Root) -전 세계에 존재하는 DNS 서버중 최상위에 위치하는 DNS 서버. DNS에..
MAC주소란? -MAC주소는 네트워크 인터페이스를 식별하는 고유한 식별자이며,MAC 주소는 물리적 주소, 하드웨어 주소라고도 불린다. 보통 MAC주소는 6바이트의 길이를 가지며 16진수로 표현됩니다. (EX. 00:1A:2B:3C:4D:5D) 이 주소는 네트워크 인터페이스 제조사에 의해 할당되며, 유일한 값입니다.물리적 계층(2 계층)에서 사용되며 LAN 카드를 다른곳으로 옮겨도 MAC주소는 같습니다. MAC주소의 예시는 아래와 같습니다. ARP 프로토콜이란? -MAC주소를 알고 있는 IP주소를 찾기위한 프로토콜. 즉 상대방의 MAC주소를 모를때, 상대방의MAC주소를 알기위해 진행되는 과정입니다. A가 B에게 데이터를 보내려함 B의 MAC주소를 알기위해 ARP패킷(B의 IP주소포함)을 브로드캐스트 방식으..
멀티플렉싱(Multiplexing)이란? -다수의 네트워크 연결요청을 동시에 처리하기 위한 기술, 위에서 멀티 쓰레드,프로세스를 이용해 동시 처리를 할 수 있지만, 해당 기술은 매우 불안정합니다. 따라서 멀티플렉싱은 하나의 프로세스에서 여러개의 소켓을 동시에 관리하여 네트워크의 안정성과 성능을 향상 시킬 수 있습니다. 이 기술은 select라는 시스템콜을 이용해 구현됩니다. 멀티플렉싱 과정 소켓 생성 및 바인딩 -소켓을 생성한후 바인딩하여 요청들어오는 소켓을 대기합니다. 소켓 감시 대기열 설정 -파일 디스크립터 배열을 통해 요청이 들어올때 처리할 감시 대기열을 설정합니다. 여기서 감시 대기열에 설정된 파일디스크립터만 관찰을 하여, 데이터 입출력을 관찰합니다. 감시할 종류는 3가지로 나뉘는데, (읽기,쓰기..
LIPP2P란? https://github.com/libp2p/libp2p P2P(Peer to Peer) 네트워크를 구성할 수 있는 라이브러리 중 하나이며, 이 라이브러리를 사용해 여러 클라이언트간의 직접통신을 하고 파일공유,데이터교환이 가능합니다. 즉 쉽게말해,P2P 네트워크를 쉽게 구현할 수 있게 도와주는 라이브러리입니다. 이 라이브러리는 사용자의 입맛에 맞게 다양한 P2P 네트워크를 구현할 수 있게 각종 API들을 제공하는데 개발자는 각 API를 이용해 본인이 P2P네트워크 구성에 필요한 프로토콜,네트워크 노드, 통신 에러 처리 등을 커스터마이징 할 수 있습니다. 프로토콜 - 네트워크 내부 클라이언트 끼리 통신할때 쓰일 규약 (HTTP , UDP ,TCP.....) 네트워크 노드 - 클라이언트를 ..