전체 글

암호화는 승인된 당사자만 정보를 이해할 수 있도록 데이터를 스크램블한 방법이다. 이를 복화화하려면 송신자와 수신자가 서로 동의한 키가 필요하다.스크램블각 단어나 문자를 패턴에 따라 암호화하는 것이 아니라 무작위 방식으로 개별 데이터 비트를 섞는 방식예를 들어, 공통 128비트 고급 암호화 표준(AES, Advanced Encryption Standard)로 암호화 된 파일의 경우 이 파일을 구성하는 비트는 약 10회 스크램블 되며 다른 컴퓨터가 키 없이 해독하려면 아주 오랜 시간이 걸린다.대칭 암호화대칭 암호화는 키를 하나만 사용하는 암호화 방법이다.일반적으로 사용되는 대칭 암호화 알고리즘은 DES, AES가 있다.Plaintext + key = ciphertext // Ciphertext + key =..
HTTP/2구글에서 HTTP/1.1의 한계를 극복하기 위해 SPDY 프로토콜을 개발함.2015년에 SPDY를 기반으로 HTTP/2를 만들었다.바이너리 포맷 계층애플리케이션 계층과 전송 계층 사이에 바이너리 포맷 계층을 추가한다.HTTP1.0은 일반 텍스트 메시지를 전송하고 줄바꿈으로 데이터를 나눴지만 HTTP/2.0은 바이너리 데이터로 변경됨. 더 작은 메세지가 '프레임'으로 캡슐화 되어서 전송됨.h2, h2ch2c는 TLS를 사용하지 않고 TCP 연결 위에서 직접 HTTP/2를 사용하는 방식이다.개발 환경에서의 디버깅 또는 로컬 테스트를 위해 암호화된 연결을 설정할 필요가 없기 때문에 편리하게 테스트에 이용할 수 있다는 장점, 암호화와 관련된 오버헤드가 없다는 장점이 있다.h2는 tls가 장착된 htt..
HTTP/1.0수명이 짧은 연결.각 HTTP 요청당 TCP 핸드셰이크가 발생된다.기본적으로 한 연결 당 하나의 요청만 처리하도록 설계되었다.한 번 연결할 때마다 TCP 연결을 해야 해서 RTT가 늘어나는 단점이 있다. HTTP/1.1keep-alive default매번 데이터를 요청할 때마다 TCP 연결을 하는 것이 아니라 한 번 해놓고 계속해서 데이터를 받을 수 있게 변경됨.keep-alive headerTCP 연결을 유지하는 것을 알려주는 헤더로 연결유지시간인 timeout과 최대 요청수를 정할 수 있다.호스트 헤더1.0은 서버가 하나의 호스트만 가진다고 가정하기 때문에 헤더에 호스트를 포함하지 않는다. 이 때문에 1.0은 하나의 IP에 하나의 호스트만 가질 수 있다.하지만 서버는 여러 개의 호스트를..
정의사용자가 HTTP요청을 하게 되면 헤더와 바디를 주고 받는다.바디는 본문이고 보통 JSON, html, image 등이 담긴다.헤더는 바디를 설명하는 정보를 포함하여 여러 정보가 담긴다.헤더는 key - value 형태로 설정된다.HTTP 요청을 할 때 3가지의 헤더 - 일반헤더, 요청헤더, 응답헤더가 자동으로 생성된다.서버에서 설정하는 헤더는 응답헤더, 클라이언트에서 설정한 헤더는 요청헤더이다.일반헤더요청 URL, 요청 메서드, 자원 요청시 해당 자원의 출처를 나타내는 URL의 노출여부를 정하는 보안정도가 설정되어 있는 Referrer Policy 등이 들어간다.요청헤더요청 헤더는 클라이언트가 서버에 요청할 떄 클라이언트가 설정하거나 자동으로 생성하는 헤더요청 메서드, 클라이언트 OS, 브라우저 정..
IP주소는 항상 부족한 상태이다. 이를 해결하기 위해 공인 IP, 사설 IP로 나누고 중간에 NAT라는 기술을 통해 해결한다. NATNetwork Address Translation패킷이 트래픽 라우팅 장치를 통해 전송되는 동안 패킷의 IP주소를 변경, IP 주소를 다른 IP 주소로 매핑하는 방법.내부 네트워크 IP가 노출되지 않는다.공유기와 NAT실생활에서 인터넷 회선 하나를 개통하고 보통 공유기를 써서 wifi를 만드는 데 이 때 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하게 된다.약속된 사설 IP 대역10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255공유기는 이 사설 IP를 공인 ..
클래스풀의 단점을 해결하기 위해 등장함.클래스로 나누는 것이 아니라 서브넷마스크를 중심으로 어디까지가 네트워크 주소고 어디까지가 호스트주소인지를 나눈다.CIDR(Classless Inter-Domain Routing) 표기방식을 사용하여 네트워크 주소를 표시한다. (192.168.1.0/24 와 같은 형태)클래스풀보다 유연하게 네트워크를 할당하고 주소 낭비를 줄일 수 있다.서브네팅: 네트워크를 나눈다.서브넷: 서브네트워크, 쪼개진 네트워크서브넷마스크: 서브네트워크를 위한 비트마스크서브넷마스크네트워크주소 부분만 모두 1, 호스트주소부분은 모두 0아이피주소값과 서브넷마스크를 AND 연산해주면 네트워크 주소를 알 수 있다.   출처CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조 - 큰돌..
정의클래스풀(Classful IP Addressing)네트워크 주소를 매기고 그에 따라 네트워크의 크기를 다르게 구분하여 클래스를 할당하는 주소체계구분자(1, 2, 3옥텟)를 서브넷마스크라고 부른다.클래스 A맨 앞의 1옥텟이 NET ID이다.이진수로 봤을 때 0으로 시작한다.뒤쪽의 3옥텟이 호스트 ID이다.따라서 한 네트워크당 2^24 - 2인 약 1600만개의 호스트 ID를 갖는다.네트워크 주소 범위는 1 ~ 126 으로 시작한다.클래스 B앞의 2옥텟까지 NET ID이다.2진수로봤을때 10으로 시작한다.따라서 2^16 - 2 의 약 6만 5천개의 호스트 ID를 갖는다.네트워크 주소 범위는 128 ~ 191로 시작한다.클래스 C앞의 3옥텟까지 NET ID2진수로 봤을 때 110으로 시작한다.2^8 - 2..
IPv4IPv4는 32비트로 표현되는 주소체계이다.2^32 개의 주소를 표현할 수 있다.8비트(1옥텟) 단위로 점을 찍어 4개로 구분해서 표현한다.보통 8비트를 10진수로 표현한다.헤더가 가변 길이이다.IPv6128비트로 표현되는 주소체계이다.2^128 개의 주소를 표현할 수 있다.16비트씩 8개로 구분하고 16비트는 16진수로 변환되어 콜론으로 구분하여 표시한다.앞의 연속되는 0은 생략될 수 있다.2001:0db8:85a3:08d3:1319:8a2e:0370:7334 와 같은 형태이다.여기서 앞의 64비트는 네트워크 주소를 뜻하고 뒤의 64비트는 인터페이스 주소를 뜻한다.IPSec이 내장되어 있다.IPSec은 데이터 패킷을 암호화하는 보안 네트워크 프로토콜 제품군이다.IPv4에 비해 헤더 포맷이 단순하..
Purewater
프로그램 공부 일기장