전체 글 (72) 썸네일형 리스트형 [네트워크] TCP Congestion Control 버퍼 vs 슬라이딩 윈도우:앞서 다뤘던 슬라이딩 윈도우는 TCP에서 데이터 흐름을 제어하는 매커니즘인데, 송신자가 한번에 전송할 수 있는 데이터의 양을 제한하고, 수신자가 수신할 수 있는 데이터의 양을 제어함. 송신 윈도우 & 수신 윈도우의 두 개 윈도우로 구성됨.버퍼는 라우터, 스위치, 컴퓨터 등의 네트워크 장치에서 임시로 데이터를 저장하는 메모리 공간. 곧 다룰 라우터 버퍼는, 라우터에 붙어서, 데이터 패킷을 일시저장하고, 전송 지연을 관리하는 버퍼임. Congestion 혼잡이란, 여러 소스가 동시에 너무 많은 데이터를 네트워크게 빠르게 전송할 때 발생.예를 들면 아래와 같은 시나리오들을 포함한다. * 시나리오 1: 2 송신, 2 수신, 무한 버퍼 라우터, 재전송 없음 위에서 보이듯, 무한 버퍼이.. Assignment 4 中 - NginX config에 경로 매칭하는 함수 만들기 + chore 이번 주 과제의 미션 내용을 보면, 1 서버에 로깅을 추가하기 - Boost.log를 활용함.2 서버가 현재의 에코잉을 넘어서, 정적 파일(HTML 등)을 사용자에게 제공할 수 있는 기능을 추가하기. 팀 미팅 결과 내 업무는 2번째, Serve static files from your server의 일부 당첨되었다. 4가지로 분할해보면,1. Add methods on NginxConfig to extract out the web server path directives.-> NginxConfig에서 웹 서버 경로 지시문을 추출하는 메서드 추가: 이 부분은 NginxConfig 클래스에 새로운 메서드를 추가하여 웹 서버의 경로 지시문을 추출하는 것입니다. 이는 웹 서버 설정 파일에서 지정된 경로를 파싱하여.. [네트워크] ARQ: Stop-and-wait, Go-back-N, Selective repeat 전송계층(Transport Layer)에서 세그먼트*를 전송할 때, 조금 더 신뢰성 있는 통신, 즉 Reliable Data Transfer를 위해 다양한 방식의 프로토콜을 사용한다. 물론 TCP를 쓸 때는 TCP가 그 자체로 이미 신뢰성 있는 프로토콜이기 때문에 별도의 프로토콜을 더하지 않아도 되지만, UDP 등의 신뢰성이 떨어지는 녀석들을 활용하기 위해서는 더 높은 신뢰도를 위해 추가적인 프로토콜들을 더해주어야 한다. 이러한 프로토콜들을 Automatic Repeat reQuest, 줄여서 ARQ라고 부른다. ARQ는 전송되는 데이터의 정확성과 순서를 보장하는 역할을 한다. 물론 Noisy channel에서만 ARQ를 쓰고, Noiseless channel에서는 non-ARQ를 쓰는데, 여기선 ARQ.. [네트워크] 전송계층 - TCP와 UDP, 그리고 (De-)Multiplexing OSI 7계층 중 전송계층은, sender와 receiver를 연결하는 통신 서비스를 제공하는 계층. 그 둘 사이의 데이터의 전달을 위한 판을 까는 역할을 함(데이터의 물리적인 전달은 X, 라우팅 등 물리적인 움직임은 그 하위계층인 네트워크부터 시작). 전송계층에서는 판을 까는 방법론에 있어서 몇 가지 "프로토콜"을 활용하는데, 대표적으로 TCP 혹은 UDP를 주로 씀.요새는 HTTP3 등의 프로토콜을 QUIC 프로토콜 기반으로 만드는 등 QUIC 프로토콜도 종종 쓰는 것 같지만, 아직까지 미완성형이기 때문에 아직까지 TCP와 UDP를 실무에서 대체하기는 어려움. TCP - 데이터를 안정적으로, 순서대로, 에러 없이!좋은 예시를 보았는데, IP가 집 주소라면 TCP는 쿠팡이다 - 그러니까, 목적된 I.. [네트워크] 응용계층 - HTTP & DNS, google.com을 치면 일어나는 일 OSI 7 계층의 가장 상단에 위치하여, 유저와 직접 맞닿는 부분인 응용계층에 대해 좀 더 알아보려고 한다.키워드는 HTTP, DNS, SSH이다. HTTP (HyperText Transfer Protocol)HTTP는, 웹 페이지와 기타 웹 컨텐츠를 전송하기 위한 주요 프로토콜이다. 웹 브라우저(클라이언트)와 웹 서버 간에 문서와 데이터를 교환하는 데 사용된다. HTTP는 요청/응답 프로토콜로, 사용자가 웹 브라우저를 통해 특정 웹 페이지를 요청하면, 서버는 HTTP를 통해 그 페이지를 사용자에게 전송한다. 이름에서도 알 수 있듯이, HTTP도 프로토콜, 즉 규약이다. "클라이언트가 이렇게 보내면 서버는 이렇게 답변한다" 라는 일련의 약속인 셈이다. 이 규약은 시간 별로 변천해왔다. HTTP/1.0.. [네트워크] OSI 7 계층 (vs. TCP/IP 4 계층) OSI 7 계층 OSI(Open Systems Interconnection) 모델은 ISO(International Standards Organization)에 의해 개발된 네트워킹 통신을 위한 표준 아키텍처. 이 모델은 네트워크 통신을 7개의 계층으로 분할하여 각 계층이 특정한 기능과 책임을 가지도록 설계됨. 계층화는 네트워크 설계를 단순화하고, 다양한 하드웨어 및 소프트웨어의 상호 운용성을 향상시키는 데 도움을 줌. 이해하기 쉽게 단순화 시키면 이렇다. 클라이언트 1과 클라이언트2 (혹은 클라이언트와 서버도 동일한 매커니즘)가 서로 통신을 한다고 치자. 그러면 클라이언트 1이 응용 계층에서 어플리케이션을 사용해서 클라이언트 2에게 데이터를 보내면, 클라이언트 2가 해당 데이터를 받을텐데, 이게 어떻게.. [Midterm] 구글 개발자에게 듣는 소프트웨어 엔지니어링 기초 [상] * 본 자료는 제가 UCLA 학부 시절 CS 130: Software Engineering 수업을 수강하면서, 절반 가량의 시간이 지난 시점까지의 강의 중 일부를 중간고사를 대비하기 위해 모두어 둔 내용입니다.* 참고로 해당 수업은 UCLA에서 제공하는 컴퓨터 공학과 학부 대상 커리큘럼의 끝에 있는 Capstone 수업으로, 3명의 강사진 모두 구글 현직 개발자들입니다. Source Control= Version control. 코드 변경 사항을 추적하고 관리하는 활동. 1 여러개의 revision control system의 각각의 원리를 알고 장단점 비교하기Git:유형: 분산 버전 관리 시스템 (DVCS)특징:로컬과 원격 리포지토리 개념을 모두 사용합니다.변경 내용은 '커밋'으로 저장되며 각 커밋은 .. [Capstone] 과제 1 中 (NginX, gerrit, docker, C++, Unit test) 목차- 과제 및 후기- Cmake란?- Gerrit이란?- NginX란?과제 및 후기과제:1 Docker 환경 구축하고,2 클론한 파일 중 nginx-format config file parser에 있는 버그를 고치고,3 고친 게 맞는지 확인을 위해 관련 unit test 작성하기.4 일련의 과정에서 매번 code peer review 必. 후기:- 처음 다뤄보는 구조 및 개념이라, 사소한 실수들이 있었는데 도커 환경에 저장해 두니 크게 걱정하지 않아도 됨.- 테스트 코드라는 개념만 들어봤지, 실질적으로 쓴 건 처음이었는데 어렵지 않았음. 다만 테스트 자동화 툴을 쓰지 않고 스크립트 형식으로 하나하나 해주는 건 좀 소모적이었고, 앞으로는 jest 등의 툴을 쓰는 것이 좋겠다고 결론내림.- CMakeLis.. 이전 1 ··· 6 7 8 9 다음