아래 내용은 공부를 하며 스스로 정리한 내용입니다. 부정확한 내용이 있으면 언제든 댓글로 알려주세요.
[2.1절]
1. 공유 인터넷 애플리케이션 5개와 이들이 사용하는 애플리케이션 계층 프로토콜들을 나열하라.
주요 애플리케이션에는 웹, 전자메일, 디렉터리 서비스, 비디오 스트리밍, P2P 애플리케이션이 있다. 웹은 HTTP 프로토콜을, 전자메일은 SMTP 프로토콜을, 디렉터리 서비스는 DNS 프로토콜을, 비디오 스트리밍은 HTTP 또는 DASH 프로토콜을, P2P 애플리케이션은 비트토렌트 프로토콜을 주로 이용한다.
2. 네트워크 구조와 애플리케이션 구조의 차이점은 무엇인가?
네트워크 구조는 다섯가지 계층으로 구성되어 있는 인터넷 아키텍처로, 애플리케이션 개발자의 관점에서 네트워크 구조는 고정되어 있고 해당 애플리케이션에 특정 서비스 집합을 제공한다. 애플리케이션 구조는 애플리케이션 개발자가 설계하며, 애플리케이션이 다양한 종단 시스템에서 어떻게 조직되어야 하는지를 알려준다. 가장 대표적인 애플리케이션 구조로는 클라이언트-서버 구조와 P2P 구조가 있다.
3. 두 프로세스 간의 통신 세션에서 어느 프로세스가 클라이언트이고 어느 프로세스가 서버인가?
두 프로세스 간의 통신 세션에서 통신을 초기화하는 (다른 프로세스와 세션을 시작하려고 접속을 초기화) 프로세스를 클라이언트라 하고, 세션을 시작하기 위해 접속을 기다리는 프로세스를 서버라고 한다.
4. P2P 애플리케이션에서 여전히 클라이언트와 서버라는 용어를 사용하는 이유는 무엇인가?
P2P 네트워크에서 피어들은 특정 상황에서 클라이언트 또는 서버의 역할을 하기 때문이다. 각 피어들이 파일을 요구할 떄는 클라이언트의 역할을 하지만, 각 피어들은 또한 파일을 다른 피어들에게 분배함으로써 서버의 역할을 한다.
5. 어떤 호스트에서 수행되고 있는 프로세스가 다른 호스트에서 수행되고 있는 프로세스를 식별하기 위해 어떤 정보를 사용하는가?
프로세스를 식별하기 위해 포트번호를 사용한다. 예를 들어 웹 서버는 포트번호 80번, 메일 서버는 포트번호 25번을 활용한다.
6. 네트워크 애플리케이션에서 HTTP의 역할은 무엇인가? 완벽한 웹 애플리케이션을 위해 필요한 그 밖의 구성 요소로는 무엇이 있는가?
HTTP는 브라우저와 웹 서버 사이에서 교환되는 메세지의 포맷과 순서를 정의한다. 웹 애플리케이션은 이외에도 문서 포맷 표준(HTML), 웹브라우저, 웹서버 등의 여러 요소로 구성된다.
7. 그림 2.4의 어느 애플리케이션도 데이터 무손실이나 타이밍을 요구하지 않는다. 데이터 무손실을 요구하면서 동시에 시간에 민감한 애플리케이션으로 어떤 것이 있는가?
대표적으로 금융 거래 시스템이 해당된다. 증권 거래나 전자결제 시스템의 경우 실시간 데이터 처리가 필수적이며, 데이터의 무손실이 요구된다.
8. 트랜스포트 프로토콜이 제공할 수 있는 서비스를 네 가지 클래스로 분류하여 나열하라. 각 서비스 클래스에 대해 UDP 혹은 TCP(아니면 두 가지 모두)가 그러한 서비스를 제공하는지를 나타내어라.
트랜스포트 프로토콜은 신뢰적 데이터 전송, 처리율 보장, 시간 보장, 보안을 제공할 수 있다. TCP는 신뢰적 종단간 데이터 전송을 제공하며, 보안서비스를 제공하기위해 애플리케이션 계층에서 TLS를 통해 쉽게 강화될 수 있다. 하지만 오늘날의 인터넷은 시간이나 대역폭 보장을 제공할 수 없다.
9. TCP는 암호화를 포함하는 프로세스 간 보안 서비스를 제공하기 위해 TLS를 사용할 수 있다. TLS는 트랜스포트 계층 혹은 애플리케이션 계층 중 어느 계층에서 동작하는가? 애플리케이션 개발자가 TLS를 사용해서 TCP를 향상하고자 한다면 개발자는 무엇을 해야하는가?
TLS는 애플리케이션 계층에서 동작한다. 개발자가 TLS를 사용해서 TCP를 향상하고자 한다면 애플리케이션의 클라이언트와 서버 측 모두에 TLS 코드를 포함해야한다. TLS는 전통적인 TCP 소켓 API와 유사한 자신의 소켓 API 를 갖고 있다.
[2.2 ~ 2.5절]
10. 핸드셰이킹 프로토콜이 의미하는 것은 무엇인가?
두 통신 장치간의 연결을 설정하고 통신을 시작하기 위한 과정으로, TCP의 경우 주로 세 방향 핸드셰이크를 포함한다. 즉, 클라이언트가 작은 TCP메세지를 서버로 보내고, 서버는 작은 메세지로 응답하고, 마지막으로 클라이언트가 다시 서버에게 응답하여 서로 통신이 가능하며 올바르게 데이터를 교환할 수 있음을 확인한다.
11. 비상태 프로토콜이 의미하는 것은 무엇인가? IMAP는 비상태 프로토콜인가? SMTP는 비상태 프로토콜인가?
서버가 클라이언트에 대한 정보를 유지하지 않는 것을 비상태 프로토콜이라고 한다. 인터넷 메일에 접근하기 위한 IMAP는 클라이언트의 메일 서버에 의해 유지되는 폴더를 관리하는 상태 프로토콜이다. 이메일을 송신하는데 사용되는 SMTP는 각 메세지 전송이 독립적으로 처리되는 비상태 프로토콜이다.
12. 웹사이트는 어떻게 고객의 접속 기록을 유지하는가? 항상 쿠키를 사용해야 하는가?
웹사이트는 백엔드 데이터베이스 안에 엔트리를 만들고, HTTP 요청과 응답을 주고 받을 때 식별 번호를 포함하는 쿠키 헤더 파일을 넣는다. 대부분의 주요 사용 웹사이트는 쿠키를 사용하고 있지만 로컬스토리지 등 다양한 방법을 활용할 수 있다.
13. 웹 캐싱을 사용하면 어떻게 요청된 객체의 수신 지연 시간을 줄일 수 있는가? 웹 캐싱을 사용하면 사용자가 요청한 모든 객체에 대한 지연 시간이 줄어드는가, 아니면 일부 객체에 대해서만 지연 시간이 줄어드는가? 그 이유는 무엇인가?
웹 캐시는 자체 저장 디스크를 가지고 있어 최근 호출된 객체의 사본을 저장 및 보존한다. 특히 클라이언트와 기점 서버 사이의 병목 대역폭이 클라이언트와 캐시 사이의 병목대역폭에 비해 매우 작을 때 더욱 효과적이다. 더욱이 웹 캐시는 ㅌ래픽 강도를 감소시켜 모든 객체에 대한 지연 시간을 줄일 수 있다.
14. 임의의 웹 서버에 텔넷으로 연결하여 다중 요청 메세지를 보내라. 요청 메시지에 If-modified-since: 헤더라인을 포함하여 304 Not Modified 상태 코드를 가진 응답 메시지가 오게 하라.
가장 먼저 텔넷으로 웹 서버에 연결해야한다.
telnet example.com 80
이후 HTTP 요청 메세지를 작성하여 보낸다.
GET / HTTP/1.1
Host: example.com
그러면 응답 메세지가 아래의 형식으로 도착할 것이다.
HTTP/1.1 200 OK
DATA: Sun, 16 Jun 2024 18:31:00
Server: Apache/1.3.0 (Unix)
Last-Modified: Wed, 5 Jun 2024 09:23:24
Last-Modified 이후의 값으로 요청을 보내면 304 Not Modified 상태코드를 가진 응답 메세지가 도착할 것이다.
GET / HTTP/1.1
Host: example.com
If-Modified-Since:Wed, 5 Jun 2024 09:23:24
15. HTTP 몸체 포맷에 어떤 제약 사항이 있는가? SMTP를 사용해서 전송되는 전자메일 메세지 몸체에도 제약사항이 있는가? SMTP를 사용해서 임의의 데이터를 어떻게 전송할 수 있는가?
HTTP 몸체에는 헤더의 Content-Type과 일치하는 타입의 데이터만을 전송할 수 있다. SMTP를 사용해서 전송되는 전자 메일 메세지 몸체는 단순한 7비트 ASCII 코드여야한다. 따라서 임의의 데이터를 전송하기 위해서는 보내기 전에 데이터를 ASCII로 변환하고, 전송 후에는 ASCII를 다시 원래 메시지로 변환해야만 한다.
16. 웹 기반 전자 메일 계정(예 : 핫메일 혹은 지메일)을 가진 앨리스가 IMAP를 이용하여 메일 서버로부터 메일을 읽는 밥에게 메시지를 전송한다고 가정하자. 앨리스의 호스트에서 밥의 호스트로 어떻게 메세지가 도달하는지 기술하라. 두 호스트 사이의 메시지 전송에 사용되는 일련의 애플리케이션 계층 프로토콜을 나열하라.
앨리스가 밥의 전자메일 주소를 포함하여 메시지를 작성하면 사용자 에이전트는 메시지를 앨리스의 메일 서버로 보낸다. 거기서 메시지는 앨리스의 메일 서버의 출력 메시지 큐에 들어간다. 앨리스의 메일 서버에서 밥의 메일 서버로 메시지가 전송되면 밥의 메일 서버는 그 메세지를 밥의 메일 박스에 놓는다. 밥이 메시지를 읽고 싶을 때 그의 사용자 에이전트는 메일 서버에 있는 메일 박스에서 메세지를 가지고 온다. 이때, 메세지의 송신 과정에서는 SMTP가, 이메일을 저장하고 관리하는 과정에서는 IMAP가 사용된다.
17. 최근 수신한 전자메일 메시지의 헤더를 출력하라. 거기에 몇 개의 Received: 헤더 라인이 있는가? 메시지에 있는 헤더 라인 각각을 분석하라.
Delivered-To: kyeong8139@gmail.com
Received: by 2002:aa6:cb56:0:b0:28c:a2d6:318 with SMTP id h22csp318207lkt;
Thu, 13 Jun 2024 04:12:27 -0700 (PDT)
X-Received: by 2002:a17:902:f552:b0:1f7:2bed:226 with SMTP id d9443c01a7336-1f83b6a68ecmr51709135ad.36.1718277146808;
Thu, 13 Jun 2024 04:12:26 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1718277146; cv=none;
d=google.com; s=arc-20160816;
b=dUzV+VVq0naav8Qc7KSwLWYSmFuXgj4A/xbUz849sy6FhT7mt8HqBEVv1K1gQyQ4Sp
hm1P7uNzP2ar2OEdJoSQSYQEwgOK/ZSfltugqhm0i2YQGC5o5hkWCda2UXnK+f0GialM
0qCCNT0peVU4cCIwD0kjSi+3gwdE0S7okBj9be6eThIt1ZB2m1pRRTMtoulLiIxw6nQs
lfholVhUHQq2XuSK5Gi0v/jWsUWxt5eQ+n3Vg9zWWXpnWawcEcaep/Xq38i29849X1nh
BlqtZ5qEAgnUTVXdJWrFvAhovUqMbzeY6Mkl/OFE1qJSaObwJ/iRe1bfrlL+/s8WCaiq
Cvrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=to:from:subject:message-id:list-id:feedback-id:precedence
:list-unsubscribe:reply-to:date:mime-version:dkim-signature;
bh=Lewe3laXFPM1dfI45xYQjstrrqKJUbEBcvxtgWHpC7g=;
fh=QqLbmXE0WbRrljGIn5fCDrtIsJrQWcztZxQNBt+LYec=;
b=MhxKug3uOUM8/4Jyj2IcGl6HLUE+fiGWZXIX3HoMWHifGURpKzyAM8Z1QzCFPXqQp9
rCX9w1NwIzobQ1krIXMcJqIo13A8CjPxwRPJpoZ6vAa8h06iFaTiGdh2LmHC5QwsBkT1
VWCq2R6ro3GKVkAscb3isQLs2fPMxXJsKjFejgF9ANTFpirhULjJ+Karo1U7OG5F6iJR
XCQEVpt8ZBLaZcIVftnw7Fhfxnb8rc5NVGViOsR7fVMttOWAH8hp1eHwJp3gbj3ufkLM
PbhSYze8u0rOROw3FxaPnYL8wlmdWCDkWoEaG7/8iccmjLT97o5VKjHCmANeoa2YfAeP
ulSA==;
dara=google.com
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=@google.com header.s=20230601 header.b=xcvggvao;
spf=pass (google.com: domain of 3gtrqzgokcqczj-uvylwsfnvvnsl.jvtrflvunpikqnthps.jvt@scoutcamp.bounces.google.com designates 209.85.220.69 as permitted sender) smtp.mailfrom=3GtRqZgoKCqcZJ-UVYLWSfNVVNSL.JVTRfLVUNpikqNTHPS.JVT@scoutcamp.bounces.google.com;
dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com
Return-Path: <3GtRqZgoKCqcZJ-UVYLWSfNVVNSL.JVTRfLVUNpikqNTHPS.JVT@scoutcamp.bounces.google.com>
Received: from mail-sor-f69.google.com (mail-sor-f69.google.com. [209.85.220.69])
by mx.google.com with SMTPS id d9443c01a7336-1f855e6fb09sor6299305ad.10.2024.06.13.04.12.26
for <kyeong8139@gmail.com>
(Google Transport Security);
Thu, 13 Jun 2024 04:12:26 -0700 (PDT)
Received-SPF: pass (google.com: domain of 3gtrqzgokcqczj-uvylwsfnvvnsl.jvtrflvunpikqnthps.jvt@scoutcamp.bounces.google.com designates 209.85.220.69 as permitted sender) client-ip=209.85.220.69;
Authentication-Results: mx.google.com;
dkim=pass header.i=@google.com header.s=20230601 header.b=xcvggvao;
spf=pass (google.com: domain of 3gtrqzgokcqczj-uvylwsfnvvnsl.jvtrflvunpikqnthps.jvt@scoutcamp.bounces.google.com designates 209.85.220.69 as permitted sender) smtp.mailfrom=3GtRqZgoKCqcZJ-UVYLWSfNVVNSL.JVTRfLVUNpikqNTHPS.JVT@scoutcamp.bounces.google.com;
dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=google.com; s=20230601; t=1718277146; x=1718881946; dara=google.com;
h=to:from:subject:message-id:list-id:feedback-id:precedence
:list-unsubscribe:reply-to:date:mime-version:from:to:cc:subject:date
:message-id:reply-to;
bh=Lewe3laXFPM1dfI45xYQjstrrqKJUbEBcvxtgWHpC7g=;
b=xcvggvaoo4txzMqOvNOPpTBVGSWFZAeC34gvfERkSei+Sufu2MLMzxfPF40NLewmKy
pbrkXC1Wl+jV180cWlDzePGopNJJlX1qE27PQHydAokYyvXLmEPFDOQvYn1wpiZyAakf
B/tJHDwmGCKocXn5amaLd5TBegKZ7CANPmINrA06VuKFWKiAh1MqvNZFcEUWvn6Jx2Zb
7lhanJbfhFfRKOyeOTu5WNacB5Hh6+WHTIH4QyW9KPisXuI2oQM8qOQ0RKK1tmw5GnhF
sHrBeEGTk0+2jFxpAHe+HF8xtjlIGOYK4N52E3QbiDgnsrz2JschSpqQeF9UDV9Wr+Ck
U6rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1718277146; x=1718881946;
h=to:from:subject:message-id:list-id:feedback-id:precedence
:list-unsubscribe:reply-to:date:mime-version:x-gm-message-state:from
:to:cc:subject:date:message-id:reply-to;
bh=Lewe3laXFPM1dfI45xYQjstrrqKJUbEBcvxtgWHpC7g=;
b=QEo6qQfm+WG8qPiO1YC+WAauAhWejSjQ0EIP/abNgOCUW5siPIET/15QBgsbs/90sc
4poyCw8OsAlAwGPXvyWEutBaYi7HGm/Bvu28VKu4Ju2f4KO3WTtic8W9HTSea9j51aPz
eXIRfrlddyuTV3Pk1gp6ors4j/lK6evPIrXp0k/tbLWBYLuVNkH7HSyAItKQzVAWcy4f
/45U0xsNOQG01YrVeM7GFO1m7z0ONNfbDqtM6nGLVxjZmmK0YJYJ9exA/W4HBhTmt1ou
OYVdEdufxjyuO6j3C2oOpuy2ojKHosg9cqbsgPRrT2DxrsNyl2t2QzaHfZIXjwpMuTF9
caDA==
X-Gm-Message-State: AOJu0YwsqDRP4D0dcCHxNVeaXK2+JaHqHhyfrRq1ynseXSk2Y0UE99h8 N1zRlpve9ysKZ9CTVWcLI9xLC5EXlO/otBPKqHOUqcrV2cYmUHvZgUcJ
X-Google-Smtp-Source: AGHT+IETD65+ZoGVHq0mbSTW9+NWlQgb8qcVoE2BhpTuJ1s+QTInNnITrAbXNWTQrFfKsvqf7nSZC2I=
MIME-Version: 1.0
X-Received: by 2002:a17:902:d506:b0:1f7:1029:df2a with SMTP id d9443c01a7336-1f83b566170mr55856725ad.7.1718277146179; Thu, 13 Jun 2024 04:12:26 -0700 (PDT)
Date: Thu, 13 Jun 2024 04:12:26 -0700
Reply-To: Google Search Console Team <sc-noreply@google.com>
X-Google-Id: 4018358
List-Unsubscribe: <https://notifications.google.com/g/p/ANiao5pNVhmdBnxnsMbEo-jdPHVN3h259ASKKNJqUw5triOWSJawzCySUklBVFgQcIVMoS0Y7qC31kzmGo3_IIqAH-VNlEs_FM5GyktVMfZFSIBkH7aWCjkU5mjaOSTRWKdWDeP6cZYSBy9GZ4OgGxSvVLT_YN-btwY0IFqn7VyADBQsNKPrF_xLLLS0dl98dMLz-Alh21nKdHJs8mNTaNN4hXdlPf0P3B-lCy030D56vnVN5cxKXxGRj4aoWAw8dAH6UvmRQIo61CsIeJ2rj2Ed0igwZeO4gXYvEJ7YD-469nd4goHyZ-2MotXvizULZcypLTMzk9OXVD6A0HS0EHnEsME1BIwXjfeCfZ6NxwgDSpgAQ2tmEAdgM-g4pw6JkSl-Sb6562VQq9ZZjcV2JReOrhUi-RJhSH6vGj4amV-PM9Zd50Y-3YwrCYwAOqy2tzv_UUJ4639NP46T6FDZuuchRU8yt4_2Fdook2Vsfg>
Precedence: bulk
Feedback-ID: P-38-0:C20144934:M110397745-ko:gamma
List-Id: <6e180ccbadfa950a9b941acac5723e4f395dc930.google.com>
X-Notifications: 59154188655c0000
X-Notifications-Bounce-Info: AU8pKH2ceZkw08c4CE0qrKLX_djkNQVCDKf0_3St7cRrAbpunX41TuRUHmaGv8DvMw60OsrZHcQ6FveUwVjurLF7x6Pp3scWX1G0OwBOPES0zfKBWmvBFKIh7IGZeKea0GtyH2__epSTkYgzde-NzK5p6RH33oziMENSX-s52ozIpwmGQ1vNX0WM9LAONc7RsdtB1j3h5YvhRenVHl5jImORXOeuxvNbE5bJXL1YPw-BX7iZEplmS4op1n9gXfUjc-5hvHE8xSkfd4ciBmbLYLwLK8TuHvaN46PD6XEGCEH1hHUPFaHYkSzwYAJl02mZfn8Yx9gNNBrTVjh5IFx7QjyjeDx0sSDhbdr8nXwfUFE3BbAv3Ujg99HvP5XTNeMoQZ9mjg2ooAScRC1KMvsPheBM_Tu6cwW8M7JyPAeLjcY2eEotfnra5X4TCay_poaX9TaVhMLyRcJgnXuTAn7ebNeY3bdAiwu-hBJcW8FaSHAG6NFGgWaKpeXwvcnluN6icaIxKcJu0tJ0heE91lhkjrFGPFGDM93zQwbON_wZCw7W-gf5NLL17JYWsGsgGpz56feOqNPX0hS5j4mDAfEdzpwWnrDfLtog09tTTnENjAwNjA0MDQxNTM1NTk2OTMzMg
Message-ID: <6e5eaeb3d411fac9575d9b548d1a32dd1451b5ec-20144934-110888203@google.com>
Subject: 축하드립니다. 28일 만에 클릭수 1K회를 달성하셨습니다.
From: Google Search Console Team <sc-noreply@google.com>
To: kyeong8139@gmail.com
Content-Type: multipart/alternative; boundary="000000000000ec7961061ac39211"
해당 메세지에는 5개의 Received: 헤더 라인이 포함되어 있는 것으로 보아 여러 서버를 거쳐 메일이 전송되었음을 확인할 수 있다. 일반적으로 메시지에 포함되는 From, To, Subject 헤더를 살펴보자.
From: Google Search Console Team <sc-noreply@google.com>
우선 From 헤더를 통해 발신자의 이메일 주소와 이름을 확인할 수 있다.
To: kyeong8139@gmail.com
To를 통해서는 수신자의 이메일 주소를 확인할 수 있다,
Subject: 축하드립니다. 28일 만에 클릭수 1K회를 달성하셨습니다.
또한 Subject를 통해 메일의 제목을 확인할 수 있다.
18. HTTP/1.1에서 HOL 블로킹 문제는 무엇인가? HTTP/2에서는 이 문제를 어떤 방식으로 해결하려 하는가?
큰 객체가 병목 링크를 통과하는데 오랜 시간이 걸리기 때문에 작은 객체들이 대기해야하는 현상을 뜻한다. HTTP/1.1에서는 여러 개의 병렬 TCP 연결을 열어서 HOL 블로킹 문제를 해결하려 했지만 HTTP/2에서는 병렬 TCP 연결의 수를 줄이거나 제거하고 각 메시지를 작은 프레임으로 나누고, 같은 TCP 연결에서의 요청과 응답 메시지를 인터리빙한다.
19. MX 레코드가 필요한 이유는 무엇인가? CNAME 레코드를 사용하는 것으로 충분하지 않은가? (전자메일 클라이언트가 Type A 질의를 통해 전자메일 주소를 찾으며 목표 호스트만 전자 메일 서버를 수행하고 있다고 가정하라.
CNAME 레코드는 메일 서버와 웹 서버를 구분할 수 없기 때문에 MX 레코드를 사용함으로써 일반적인 웹 서버와 메일 서버의 역할을 분리할 수 있게 만든다.
20. 반복적 DNS 질의와 재귀적 DNS 질의는 어떻게 다른가?
반복적 질의에서는 클라이언트가 직접 DNS 서버와 통신하지만 재귀적 질의는 자신을 대신하여 필요한 매핑을 얻도록 요구한다. 요청하는 호스트로부터 로컬 DNS 서버까지의 질의는 재귀적이고, 나머지 질의는 반복적이다.
[2.5절]
21. P2P를 통해 파일을 다운로드 하는 것이 중앙형 클라이언트-서버 방법보다 언제 더 빠른가? 수식 2.2를 사용해서 정당화하라.
클라이언트-서버 구조의 경우 피어의 수가 증가함에 따라 분배 시간이 선형적으로, 한계없이 증가하기 때문에 피어의 수가 클때 다운로드할 수 있다. N개의 피어에게 F 비트의 파일을 전송할 때, 중앙형 클라이언트-서버 방법의 경우 서버의 업로드 속도에만 분배 시간이 좌우되지만 P2P 구조의 경우 시스템의 전체 업로드 용량은 서버의 업로드 속도와 각 피어들의 업로드 속도의 합에 좌우되기 때문이다.
22. 청크를 하나도 갖고 있지 않은 새로운 피어 앨리스가 비트 토렌트에 가입하는 경우, 앨리스는 청크가 없기 때문에 업로드할 것이 없고 따라서 다른 피어들의 상위 4개의 업로더가 될 수 없다. 그러면 앨리스는 어떻게 첫 청크를 얻게 되는가?
기본적으로 교역 알고리즘에서는 가장 빠른 속도로 데이터를 제공하는 피어가 우선순위를 가지지만, 일정 시간마다 임의의 피어 하나를 추가로 선택하여 청크를 전송하기 때문에 앨리스도 첫 청크를 얻을 수 있다.
23. 비트토렌트 트래커가 갑자기 동작하지 않으면 어떤 결과가 생기는가? 파일을 다운로드 할 수 있는가?
트래커는 토렌트에 참여하는 피어들을 추적하는 역할을 하기 때문에, 트래커가 동작하지 않으면 참여하고 있는 피어 집합을 추적할 수 없게 된다. 다만 마그넷 링크 등을 이용하여 트래커를 이용하지 않고도 피어를 찾을 수 있는 방법이 존재한다.
[2.6절]
24. 보통 CDN은 두 가지 서버 위치 선정 방법 중 하나를 사용한다. 이 방법들의 이름과 동작 과정을 간략하게 기술하라.
Enter Deep은 서버 클러스터를 세계 곳곳의 접속 네트워크에 구축함으로써 ISP의 접속 네트워크로 깊숙이 들어간다. 이 방법은 서버를 최대한 사용자 가까이에 위치시켜 사용자와 CDN 서버 사이의 링크 및 라우터 수를 줄이고, 사용자가 경험하는 지연 시간 및 처리율을 개선한다.
Bring Home은 적은 수의 핵심 지점에 큰 규모의 클러스터를 구축한다. 일반적으로 클러스터는 IXP에 배치된다.
25. 지연, 손실, 대역폭 성능과 같은 네트워크 관련 고려사항들 이외에 CDN 서버 선정 기법을 설계할 때 고려해야하는 그 밖의 중요한 요소들은 무엇인가?
간단하게는 클라이언트에게 지리적으로 가장 가까운 클러스터를 할당하는 방법이 있다. 하지만 지리적으로 가장 가까운 클러스터가 네트워크 경로의 길이 홉의 수에 따라 가장 가까운 클러스터가 아닐 수 있으므로 네트워크 트래픽 상황을 반영하는 실시간 측정이 수행되기도 한다.
'CS > BOOK' 카테고리의 다른 글
[컴퓨터 네트워킹 하향식 접근] 1. 컴퓨터 네트워크와 인터넷 - 과제와 질문 (3) | 2024.06.13 |
---|---|
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 14. 인공지능 (1) | 2024.05.08 |
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 13. 컴퓨터 보안 (1) | 2024.05.01 |
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 12. 컴퓨터는 어떻게 멀티태스킹을 할까? (0) | 2024.04.30 |
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 11. 알고리즘 아이디어 (0) | 2024.04.24 |