목록CS공부/컴퓨터네트워크 (11)
CS 공부
put patch delete 추가 GET GET 은 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드이다. GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리 스트링 (query string) 이라고 부른다. 방식은 URL 끝에 " ? " 를 붙이고 그다음 변수명1=값1&변수명2=값2... 형식으로 이어 붙이면 된다. ex. www.example.com/show?name1=value1&name2=value2 GET의 특징 1. GET 요청은 캐시가 가능하다. GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다. HTTP 헤더에서 cache-control 헤..
HTTP 스트리밍에서 비디오는 HTTP 서버 내의 특정 URL를 갖는 일반적인 파일로 저장된다. 사용자가 비디오 시청을 원하면 클라이언트는 서버에게 TCP 연결을 설립하고 URL에 대한 HTTP get 요청을 발생시킨다. 그러면 서버가 프로토콜 및 트래픽 조건이 허용 되는대로 HTTP 응답 메시지 내에서 비디오 파일을 전송함 클라이언트 쪽에서는 애플리케이션 버퍼에 전송된 바이트가 저장되고 버퍼의 바이트 수가 정해진 임계값을 초과하면 재생을 시작한다. HTTP 스트리밍은 실제 적용 되고 있으나 모든 클라이언트들이 그들 사이의 가용 대역폭의 차이에도 불구하고 똑같이 인코딩된 비디오를 전송받는다는 문제점을 가진다. 이러한 문제점을 해결하기 위해서 HTTP 기반의 스트리밍 DASH(Dynamic Adaptive..

호스트에 대한 하나의 식별자는 호스트 네임이다. 호스트 네임은 인터넷에서의 그 호스트위치에 대한 정보를 거의 제공하지 않는다. 이러한 이유로 호스트는 흔히 말하는 IP주소로도 구별된다. DNS가 제공하는 서비스 라우터는 고정길이의 계층구조를 가진 IP주소를 좋아한다. 이러한 신호 차이를 절충하기 위해 호스트 네임을 IP주소로 변환해 주는 디렉터리 서비스가 필요하다 DNS 프로토콜은 UDP 상에서 수행되며 포트번호 53을 이용한다. DNS는 다른 애플리케이션 프로토콜들이 HTTP,SMTP,FTP등 사용자가 제공하는 호스트 네임을 IP주소로 변환하기 위해 주로 이용 DNS는 호스트 네임을 IP 주소를 변환하는 것 외에 다음과 같은 중요한 추가 서비스를 제공한다. 호스트 엘리어싱(Host aliasing): ..

Blocking I/O blocking I/O 작업은 유저레벨에서 직접 수행할 수 없다. 실제 I/O를 수행하는것은 커널레벨에서만 가능하다. 유저 프로세스(또는 쓰레드)는 커널에게 I/O를 요청해야한다. I/O에서 블로킹 형태의 작업은 유저 프로세스가 커널에게 I/O를 요청하는 함수를 호출하고, 커널이 작업을 완료되면 함수가 작업 결과를 반환한다. I/O 작업이 진행되는동안 유저 프로세스는 자신의 작업을 중단한 채 대기해야한다. I/O작업이 CPU자원을 거의 쓰지 않기 때문에 이런 형태의 I/O는 리소스 낭비가 심하고 비효율적이다. 리눅스 소켓 통신 방식이 블로킹 방식 Non-Blocking I/O Blocking 방식의 비효율성을 극복하고자 만들어진 것이 Non-Blocking 방식이다. Non-Blo..

로드 밸런싱을 사용하는 이유 요즘 시대에는 웹사이트에 많은 사람들이 접속하게 된다, 따라서 많은 사람들이 접속하게 되니 1대의 서버가 트래픽을 감당할 수 있는 시대가 지났다. 트래픽의 서버의 부화가 심할 때의 가장 먼저 하는 일은 DB 서버의 분리이다. 하지만 처음에는 DB서버의 분리만의로도 서버의 부하를 감당할 수 있었으나 이제는 DB서버의 분리만으로도 부하를 감당하기가 힘들어지게 되었다. 웹서버의 부하를 어떻게 해결해 나갈 것인지 대한 고뇌를 하게 되어 찾은 해결방법이 바로 로드밸런싱이다. 로드 밸런싱이란? 로드밸런서는 서버에 가해지는 부하를 분산해주는 장치 또는 기술을 통칭합니다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 ..

먼저 알아야 할 것 : 다중화와 역다중화 다중화는 데이터를 보내기 전에 모으는 것 역다중화는 데이터를 받아서 나눠서 애플리케이션에서 필요한 적절한 곳에 보내는 것. 한 컴퓨터에서 다른 컴퓨터로 데이터를 보낸다고 생각해보자. 트랜스포트 계층은 실제로 데이터를 직접 프로세스로 전달하지 않고 중간 통로인 소켓에게 전달하고, 받는다. 트랜스포트 계층은 애플리케이션에서 데이터를 받고 이 데이터를 조각조각 내서 세그먼트로 만들고 각 세그먼트에 헤더정보를 넣는다. 이 세그먼트들을 네트워크 계층으로 캡슐화 되서 전달된다. 이렇게 캡슐화해서 네트워크 계층으로 전달하는 과정을 '다중화' 라고 한다. 이제 네트워크 계층에서 이 데이터들을 받는 쪽 호스트로 보낸다. 여기서 보내는 데이터에는 출발지 포트번호, 목적지 포트번호,..

HTTP - 웹의 애플리케이션 계층 프로토콜 - 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다 따라서 HTTP는 클라이언트 프로그램과 서버 프로그램으로 구현된다. - HTTP는 TCP/IP위에서 작동한다. HTTP는 TCP를 전송 프로토콜로 사용한다. - HTTP는 무상태(Stateless) 프로토콜이다. - Method,Path, Version, Headers, Body로 구성된다. - 80port 사용 - 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜 -> 이 문제로 HTTPS가 등장 무 상태성(Stateless) 서버가 클라이언트에 관한 어떠한 상태정보도 저장하지 않는다는 의미 이벤트 시간대에 서버 scale out(수평확장) 할때 쓰인다. 로그인 했다는 상태를 브라우저 쿠..

대칭키와 공개키에 대한 설명에 앞서 네트워크의 안전한 통신에 요구되는 특성 알아보자 기밀성 송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야한다. 메시지 무결성 통신하는 내용이 전송도중에 변경되지 않아야한다. 종단점 인증 송신자와 수신자는 통신에 참여하는 상대방이 실제 누구인지 확인하기 위해서 신원을 확인할 수 있어야한다. 운영보안 내부 네트워크(회사, 학교의)가 외부로부터의 공격을 방지하기 위한 운영이 필요하다. 대칭키 암호화 방식 대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다. 대칭키 암호화 방식에서의 키는 송신자와 수신자사이의 비밀이다. 즉 대칭키는 암복호화키가 동일하며 해당 키를 아는 사람만이 문서 복호화해 볼 수 있게 된다. 장점 공개키 암호화 방식..