Socket 컴퓨터 네트워크에서 프로세스 간 통신을 가능하게 해주는 소프트웨어 인터페이스이다. 서버와 클라이언트 간 통신에 사용된다. 클라이언트 -> 서버 (데이터 요청) 서버 -> 클라이언트 (응답) Application Layer와 Transport Layer 사이에 존재한다. 소켓은 주로 IP주소와 포트번호를 사용해서 데이터를 주고받는다. 소켓은 2가지의 타입이 있다. UDP 데이터의 신뢰성이나 연결 지향성을 보장하지 않습니다. 그렇기에 빠른 전송이 필요하거나, 데이터 손실이 허용되는 경우에 주로 사용됨. 실시간 멀티미디어 애플리케이션(음성, 비디오) 간단한 조회 및 상태 요청, 네트워크 게임 데이터 그램 단위로 전송. 비연결성 프로그램 (connect가 없음) 데이터 그램 단위로 교환하는 것을 알..
전체 글
안녕하세요 💻DASH (Dynamic, Adaptive Streaming over HTTP) 콘텐츠 파일을 서로 다른 rate의 덩어리로 만들어 제공하는 기술이다. 대표적으로 유튜브, 넷플릭스는 하나의 영상에 대해 다양한 해상도를 제공하며, 인터넷 상황, 데이터 상황을 체크해서 적절한 해상도의 영상을 제공해 주는데 이 기술이 바로 DASH이다. Server 비디오 파일을 여러개의 청크로 쪼갠다. 각 청크는 저장되고, 다른 rate로 encode 된다. manifest file은 청크에 대한 URL을 제공한다. 청크에는 고화질, 저화질의 정보가 있다. Client server-to-clinet 사이의 네트워크 상황을 측정한다. 측정한 상황을 고려하여 적절한 품질의 청크를 선택하고, 청크를 조합하여 동영상을 재생함. 클..
DASH (Dynamic, Adaptive Streaming over HTTP) 콘텐츠 파일을 서로 다른 rate의 덩어리로 만들어 제공하는 기술이다. 대표적으로 유튜브, 넷플릭스는 하나의 영상에 대해 다양한 해상도를 제공하며, 인터넷 상황, 데이터 상황을 체크해서 적절한 해상도의 영상을 제공해 주는데 이 기술이 바로 DASH이다. Server 비디오 파일을 여러개의 청크로 쪼갠다. 각 청크는 저장되고, 다른 rate로 encode 된다. manifest file은 청크에 대한 URL을 제공한다. 청크에는 고화질, 저화질의 정보가 있다. Client server-to-clinet 사이의 네트워크 상황을 측정한다. 측정한 상황을 고려하여 적절한 품질의 청크를 선택하고, 청크를 조합하여 동영상을 재생함. 클..
P2P구조 P2P구조는 서버-클라이언트와 다르게 서버가 없습니다. 각 end system들이 서버 없이 직접적으로 콘텐츠를 송/수신합니다. 즉 P2P구조는 end system들이 서버와 클라이언트 두 역할을 수행합니다. P2P구조의 예 파일 공유 서비스 Bit Torrent 음성 서비스 Skype 스트리밍 서비스 KanKan P2P 환경에서의 파일 분배와 서버-클라이언트 환경에서의 파일 분배 N명의 사용자가 F 크기의 파일을 공유하는데 걸리는 시간. 클라이언트-서버 모델 클라이언트-서버 모델에서 서버는 N개의 파일을 완전히 다 올려야 한다. 그리고 클라이언트는 F 크기의 파일을 다운받아야 한다. 서버-클라이언트 모델에서 공유하는데 걸리는 시간은 서버 성능과 클라이언트 성능 중 낮은 성능을 기준으로 공유시..
DNS란? 도메인 이름을 IP 주소로 변환하거나, IP 주소를 도메인 이름으로 변환하는 인터넷 서비스입니다. 간단하게 말하면 인터넷에서 사용하는 주소(jja2han.tistory.com)를 해당 도메인 이름에 대응하는 IP주소로 매핑해 주는 시스템입니다. DNS가 왜 필요하나? 모든 서버는 IP주소를 가지고 있습니다. 따라서 DNS가 없다면 사용자들은 해당 서버에 접속하기 위해서는 IP주소를 외우고 입력해야합니다. IP주소는 숫자와 점의 조합으로 이루어진 주소이기에 , 굉장히 귀찮고 불편합니다. (123.123.121.123.xxxx ) -> www.example.com 이러한 귀찮음과 불편함을 해결하기 위해서, DNS가 생겨났고, DNS를 통해서 IP주소를 영문 주소로 매핑해서 사용할 수 있게 됩니다...
HTTP HTTP(Hyper Text Transfer Protocol)은 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이며, 웹 브라우저와 웹 서버간의 통신을 위해 만들어졌습니다. HTTP1.1의 단점을 보완해서 나온 버전이 HTTP/2입니다. HTTP/2를 설명하기 이전에 HTTP 1.1과 HTTP/2.0의 차이점에 대해서 설명해보겠습니다. 우선 HTTP 1.1방식의 단점은 아래와 같습니다. 기본적으로 HTTP 1.1은 Connection당 하나의 요청을 처리하도록 설계되었습니다. 그리고 요청의 순서는 순차적으로(FCFS) 진행해줍니다. 하지만 이러한 방식은 순서가 명확하게 정해져 있기에, 문제점이 있었습니다. 처리하기 쉬운 오브젝트도 순서가 뒤로 밀려있으면, 자기 순서가 올 때까지..
📕Cookie 쿠키는 문자와 숫자의 조합으로 된 작은 파일이다. 서버는 쿠키를 통해서 클라이언트를 식별하고 이에 맞춰 다양한 서비스를 제공한다. 아마존 사이트에 들어가면 내가 보았던 상품 목록을 보여 주는 데, 이런 것들이 모든 쿠키를 이용하기 때문에 가능한 것이다. 사용자가 특성 사이트에 처음 접속하면 그 사이트 서버는 사용자에게 Cookie header라는 숫자를 부여해 준다. 브라우저는 부여받은 Cookie header와 사이트 이름을 조합하여 만들어진 쿠키 파일을 사용자의 컴퓨터에 저장한다. 이후 사용자가 그 사이트에 접속할 때 마다 해당 쿠키 파일을 보내주면 서버는 이를 통해서 사용자를 식별할 수 있다. 즉 웹 사이트와 클라이언트 브라우저는 쿠키를 사용하여 트랜잭션 간의 상태를 유지합니다 그러기..
📕웹과 HTTP 🔎웹 웹 페이지는 base HTML FILE + referenced object로 구성되어 있다. 이때 각 object들은 URL을 통해 addressable 된다. URL : Uniform Resource Locator의 약자이다. 오브젝트는 HTML file, JPEG, image, Java applet, audio file 등이 있다. https://jja2han.tistory.com/~~~ 위 주소는 제 블로그 주소입니다. 이 URL을 하나하나 뜯어보면 https:// (이 부분이 프로토콜입니다. 나는 https 프로토콜을 쓰고 있다~라는 뜻입니다) https는 http에 보안이 강화된 버전이라고 생각하시면 됩니다. 그 뒤에 jja2han.tistory.com 부분이 Host가 될..
문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 이동하지 않고 같은 칸에 머물러있는 경우도 가능하다. 이 경우도 방문한 칸의 개수가 하나 늘어나는 것으로 생각해야 한다. 이번 문제에서는 낮과 밤이 번갈아가면서 등장한다. 가장 처음에 이동할 때는 낮이고, 한 번 이동할 때마다 낮과 밤이 바뀌게 된다. 이동하지 않고 같은 칸에 머무르는 경우에도 낮과 밤이 바뀌게 된다. 만약에 이동하는 도중에 벽을 부수고 이동하는..