목록CS/네트워크 (17)
공부하는 스누피
인터넷 네트워크 계층 패킷을 데이터그램이라 부른다. 데이터그램을 교환하도록 하는 통신 규약은 IP(Internet Protocol)로 데이터가 정확하게 전달될 것을 보장하지 않고, 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. 통신의 신뢰성은 상위 레이어에 있는 TCP(UDP 일부)가 보장한다. 현재 사용 중인 IP는 두 가지 버전이 있는데, IPv4와 IPv4를 대체하도록 제안된 IPv6이 있다. IPv4 IPv4는 전 세계적으로 사용된 첫 번째 통신 규약이다. IPv4의 주소 체계는 12자리이고 네 부분으로 나뉜다. 주소는 각각 32bit로 구성되어 있으며 인터넷 사용자의 증가로 인해 2011년부터 할당이 중지되었다. IPv4 데이터그램의 주요 필드 - 버전 번호: 4비트로 데이..
네트워크가 혼잡해짐에 따라 라우터 버퍼에 오버플로우가 발생해 패킷 지연, 손실 등 문제가 발생한다. 패킷 재전송으로 손실 문제는 해결할 수 있지만, 근본적인 문제(혼잡 원인)는 해결하지 못한다. 그래서 네트워크 혼잡을 일으키는 송신자를 제어하는 방법이 필요하다. 네트워크 혼잡에 대한 예시는 다음과 같다. 1) 라우터가 무제한의 버퍼 공간을 가질 때에도 패킷 도착률이 링크 용량에 가까워짐에 따라 큐잉 지연이 커진다. => 라우터 버퍼에 큐잉된 패킷 수의 제한이 없어 평균 지연도 무제한이 되기 때문. 2) 라우터가 유한한 버퍼 공간을 가질 때, 버퍼 오버플로 때문에 패킷이 손실될 경우 재전송을 수행해야 한다. => 수신측은 패킷을 받았으나 송신측에서 일찍 타임아웃 되어버리면 불필요한 재전송을 수행한다. 3)..
데이터 전송 프로토콜은 손실된 패킷과 손상된 패킷 등에 대해 응답하는 방법을 정해두는데, 이 방법에 따라 버퍼링 조건이 달라진다. 파이프라인 오류 회복의 기본적인 접근법으로 Go-Back-N(N부터 반복, GBN)과 Selective Repeat(선택적 반복, SR)가 있다. GBN과 SR을 시각적으로 나타낸 웹사이트가 있다. 전송되고 있는 블록을 클릭하면 사라진다! www2.tkn.tu-berlin.de/teaching/rn/animations/gbn_sr/ Selective Repeat / Go Back N www2.tkn.tu-berlin.de Go-Back-N 송신자는 확인응답을 기다리지 않고 최대 허용된 수 안에서 여러 패킷을 전송할 수 있다. 송신자 관점에서 확인응답(ACK)이 안된 가장 오래..
CDN이란? 엄청난 스트리밍 트래픽을 분배하는 문제를 해결하기 위해 주로 사용되는 네트워크인 콘텐츠 분배 네트워크(Contents Distribution Network, CDN)이다. CDN는 분산된 서버들을 운영해 데이터의 복사본을 분산 서버에 저장한다. 사용자는 최선의 서비스를 제공할 수 있는 지점의 CDN 서버로 연결된다. CDN 서버 위치 - Enter Deep: 서버 클러스터를 세계 곳곳의 접속 네트워크에 구축하는 방식. 서버를 사용자와 최대한 가까이 위치시킨다. 구글은 14개의 메가 데이터 센터를 세계 곳곳에 위치시켰다. 단점은 유지비용이 커진다는 것이다. - Bring Home: 적은 수의 핵심 지점에 큰 규모의 서버 클러스터를 구축하는 방식이다. 클러스터를 IXP에 배치시켜 사용자에게 데이..
DNS란? 인터넷은 호스트를 IP 주소로 구분하지만, 사람이 기억하기 어렵다는 단점이 있다. 그래서 사람이 기억하기 쉬운 알파뉴메릭 문자인 hostname으로 식별되도록 하였다. hostname만으로는 호스트의 주소를 직접적으로 알기 어려워 IP 주소로 변환하는 과정이 필요하다. 그래서 DNS(Domain Name System)은 host name을 IP 주소로 변환해 주는 디렉터리 서비스를 제공한다. 기능 - Host name을 IP 주소로 변환: 1) 브라우저가 URL로부터 hostname을 추출하고 DNS 애플리케이션의 클라이언트 측에 넘긴다. 2) DNS 클라이언트(사용자 컴퓨터)가 DNS 서버로 hostname을 포함하는 질의를 보낸다. 3) hostname에 대한 IP 주소를 가진 응답을 보낸..
웹 캐시(프록시 서버)는 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 한다. 그래서 원래의 웹 서버를 대신하여 HTTP 요구를 충족시켜준다. 또한, 저장 디스크를 갖고 있어 최근 호출된 객체의 사본을 저장한다. 캐시에 있는 객체는 서버에서 변경될 수 있으므로 일관성 유지 기법을 필요로 한다. 1. 브라우저가 웹 캐시와 TCP 연결을 설정하고 웹 캐시에 있는 객체에 대한 HTTP 요청을 보낸다. 2. 웹 캐시는 객체의 사본이 캐시에 저장되어 있는지 확인한다. 저장되어 있다면 브라우저로 HTTP 응답 메세지와 함께 객체를 보낸다. 3. 저장되어 있지 않다면 origin 서버로 TCP 연결을 설정한다. 이 연결로 브라우저가 요청한 객체에 대..
OSI 7계층이란? ISO가 개발한 복잡한 통신 프로토콜을 7개의 계층구조로 나누어 표현한 모델이다. 1) 애플리케이션 계층 - HTTP, FTP 같은 프로토콜을 포함. - 여러 종단 시스템 간에 분산되어 있어 애플리케이션끼리 '메시지'라는 패킷을 교환한다. 2) 프레젠테이션 계층 - 통신하는 애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스를 제공한다. - 데이터 압축, 암호화를 포함한다. 3) 세션 계층 - 종단 시스템 간의 연결 유지를 담당한다. - 데이터 교환의 경계와 동기화, 회복 방법을 제공한다. 4) 트랜스포트 계층 - 클라이언트와 서버 간에 애플리케이션 계층 메세지를 전송하는 서비스를 제공. - TCP, UDP 같은 프로토콜. - TCP는 신뢰성, 흐름제어, 혼잡제어 기능을 ..
패킷이 송신측에서 출발해 수신측까지 도달하기까지의 과정에서 수많은 라우터를 거친다. 경로상의 각 노드에서 패킷은 다양한 지연(delay)를 겪게 되는데, 노드 처리 지연, 큐잉 지연, 전송 지연, 전파 지연이 대표적이다. 이 지연들이 쌓여 전체 노드 지연(total nodal delay)를 일으킨다. 1. 처리 지연(processing delay) 패킷 헤더를 조사하고 패킷을 어디로 보낼지 결정하는 시간. 노드 처리 이후에 라우터는 목적지 라우터로 향하는 링크의 큐에 보낸다. ex) 놀이공원에 갔는데 롤러코스터를 타려면 어디로 어떻게 갈지 결정하는 시간. 2. 큐잉 지연(queuing delay) 큐에 저장되어 링크로 전송되기를 기다리는 패킷의 수에 따라 결정된다. 큐가 비어 있다면 큐잉 지연은 0이다...