컴퓨터 네트워킹 요약 - 1. 컴퓨터 네트워크와 인터넷
1.1. 인터넷이란 무엇인가?
1.1.1. 구성요소로 본 인터넷
인터넷은 컴퓨팅 장치를 연결하는 컴퓨터 네트워크이다. 컴퓨팅 장치에는 PC, 스마트폰, TV, 등이 있으며, 이들을 호스트 혹은 종단 시스템(end system)이라고도 부른다.
종단 시스템은 통신 링크(communication link)와 패킷 스위치(packet switch)의 네트워크로 연결된다. 통신 링크는 동축케이블, 광케이블 등 다양한 물리 매체(physical media)로 구성된다.
패킷 스위치는 입력 통신 링크에 들어오는 패킷을 받아서 출력 통신 링크로 전달한다. 패킷 스위치로 많이 사용되는 종류로는 라우터(router)와 링크 계층 스위치(link-layers switch)가 있다.
종단 시스템은 ISP(Internet Service Provider)를 통해서 인터넷에 접속한다. ISP는 모뎀, LAN, 모바일 무선 등 다양한 네트워크 접속을 제공한다.
종단 시스템, 패킷 스위치, 인터넷의 다른 구성요소는 인터넷에서 정보 송수신을 제어하는 여러 프로토콜(protocol)을 수행한다. 특히 인터넷의 주요 프로토콜을 통칭하여 TCP(Transmission Control Protocol)/IP(Internet Protocol)라고 한다.
표준 프로토콜을 통해 상호 호환되는 시스템과 제품을 만들 수 있다.
1.1.2. 서비스 측면에서 본 인터넷
인터넷 애플리케이션은 종단 시스템에서 수행된다.
패킷 스위치들은 종단 시스템 간에 데이터 교환을 해주지만, 애플리케이션을 고려하지 않는다.
종단 시스템은, 한 종단 시스템의 프로그램이 인터넷 인프라구조에게 다른 종단 시스템의 프로그램에게 데이터를 어떻게 전달하도록 요구하는지를 명시한 소켓 인터페이스(socket interface)를 제공한다. 인터넷 소켓 인터페이스는 송신 프로그램이 따라야 하는 규칙의 집합이며, 인터넷은 이 규칙에 따라 데이터를 목적지 프로그램으로 전달한다.
1.1.3. 프로토콜이란 무엇인가?
네트워크 프로토콜은 컴퓨터의 network interface card(LAN 카드, 보통 메인보드 내장)에 하드웨어로 구현된 프로토콜이다. 이는 둘 이상의 통신 매체 간에 교환되는 메세지 포맷과 순서뿐 아니라, 메세지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.
1.2. 네트워크의 가장자리(The Network Edge)
1.2.1. 접속 네트워크(Access Networks)
접속 네트워크는 종단 시스템을 다른 종단 시스템까지의 경로상에 있는 첫 번째 라우터(edge router)에 연결하는 네트워크이다.
1.2.1.1. 가정 접속(Home Access): DSL, 케이블, FTTH, 위성
(1) 가정은 DSL(Digital Subscriber Line) 인터넷 접속 서비스를 지역 전화 회사(telco)로부터 받는다. 고객의 DSL 모뎀은 전화 회사의 지역 중앙국(Central Office, CO)에 위치한 DSLAM(Digital Subscriber Line Access Multiplexer)과 데이터를 교환하기 위해 전화 회선을 사용한다.
DSL 모뎀은 디지털 데이터를 받아서 CO로 전송하기 위해 고주파 신호로 변환한다. DSLAM에서 아날로그 신호를 다시 디지털 포맷으로 변환한다.
(2) 케이블 인터넷 접속은 TV 서비스를 제공하는 회사로부터 인터넷 접속 서비스를 받는다. 광케이블은 케이블 헤드엔드(head end)를 이웃-레벨 연결 지점(junction)에 연결하며, 이로부터 가정까지는 동축케이블이 사용된다. 두가지 케이블이 사용되기에 HFC(hybrid fiber coax)라고도 부른다. 가정의 케이블 모뎀과 케이블 헤드엔드의 CMTS(cable modem termination system)은 DSL에서 처럼 신호를 변환한다.
(3) FTTH(fiber to the home)은 CO로부터 가정까지 직접 광섬유 경로를 제공하여 빠르다. 가정의 ONT(optical network terminator)와 CO의 OLT(optical line terminator)는 광신호와 전기신호 간의 변환을 제공한다.
(4) 위의 방법들이 가용하지 않은 곳에서(시골지역 등) 인터넷접속을 제공하기 위해 위성 링크를 사용할 수 있다.
1.2.1.2. 기업 접속(그리고 가정): Ethernet, WiFi
기업과 가정 환경에서 LAN(local area network)은 일반적으로 종단 시스템을 가장자리 라우터에 연결하기 위해 사용된다. 여러 유형의 LAN 기술이 있지만 이더넷이 널리 사용된다. 종단 시스템은 이더넷 스위치에 연결되고, 스위치는 더 큰 인터넷으로 연결된다.
무선 사용자들은 AP(access point)로 패킷을 송/수신하고, 이 AP는 유선 네트워크에 다시 연결된다. 무선 LAN 접속은 와이파이라고 알려진 IEEE 802.11 기술에 기반한다.
1.2.1.3. 광역 무선 접속: 3G와 LTE
이동 장치는 이동 전화망 사업자들이 운영하는 기지국을 통해 패킷을 송수신한다. 와이파이와 달리(수십 m 반경과 달리), 사용자는 기지국의 수십 km 반경 내에 있으면 된다.
1.2.2. 물리 매체
비트가 전달될 때, 여러 송신-수신기 쌍을 거친다. 각 쌍에 대해, 비트는 물리 매체상에 전자파나 광 펄스를 전파하여 전송한다.
물리 매체는 두 부류, 유도 매체(guided media)와 비유도 매체(unguided media)로 나눌 수 있다. 유도 매체는 광섬유 케이블, 꼬임쌍선 같은 견고한 매체를 따라 파형을 유도한다. 비유도 매체는 무선 LAN 혹은 디지털 위성채널 처럼 대기와 야외 공간으로 파형을 전파한다.
1.2.2.1. 꼬임쌍선(Twisted-Pair Copper Wire)
꼬임쌍선은 2개의 절연 동선이고, 규칙적인 나선 형태로 배열된다. 이웃하는 쌍들 간에 전기 간섭을 줄이기 위해 선들이 꼬여 있다. UTP, STP 등의 종류가 있다.
1.2.2.2. 동축케이블
동축케이블은 2개의 구리선이 동심원형태를 이루고 있다. 이러한 구조와 특수 절연 및 차폐를 가져 꼬임쌍선보다 높은 전송률을 가진다. 동축케이블은 케이블 TV에 흔히 사용된다.
1.2.2.3. 광섬유
광섬유는 비트를 나타내는 빛의 파동을 전하는 가늘고 유연한 매체다. 이들은 전자기성 간섭에 영향을 받지 않으며 100km 까지는 신호감쇠 현상이 적고, 도청하기가 어렵다. 이런 특성 때문에 광역 유도 전송 매체로 사용되며, 특히 해저 링크에 광섬유를 이용한다.
1.2.2.4. 지상 라디오 채널
라디오 채널은 전자기 스펙트럼으로 신호를 전달한다. 라디오 채널은 벽을 관통할 수 있고, 이동 사용자에게 연결성을 제공할 수 있다. 하지만 전파 환경과 전달되는 거리에 많은 영향을 받는다.
1.2.2.5. 위성 라디오 채널
통신 위성은 지상 스테이션이라는 둘 이상의 지상기반 마이크로파 송신/수신기를 연결한다. 지상 스테이션에서 위성을 거쳐 다시 지상 스테이션으로 신호가 전송된다.
1.3. 네트워크 코어
1.3.1. 패킷 교환
네트워크 응용에서 종단 시스템들은 서로 메세지를 교환한다. 메세지를 보내기 위해, 송신 시스템은 긴 메세지를 패킷(packet)이라고 하는 작은 데이터 덩어리로 분할한다.
1.3.1.1. 저장-후-전달 전송(Store-and-Forward Transmission)
저장-후-전달 전송 방식에서, 스위치는 출력 링크로 패킷을 전송하기 전에 패킷의 전체를 받아야 한다. 라우터는 패킷의 먼저 온 비트를 저장하고 있다가, 패킷의 모든 비트를 수신한 후에만 출력 링크로 패킷을 전송한다.
1.3.1.2. 큐잉 지연과 패킷 손실(Queuing Delays and Packet Loss)
패킷 스위치는 여러 개의 링크를 갖고 있다. 각 링크에 대해 출력 버퍼(혹은 출력 큐)를 갖고 있으며, 그 링크로 송신하려고 하는 패킷을 저장한다.
만약 라우터에 도착하는 패킷이 한 링크로 전송될 필요가 있는데, 그 링크가 다른 패킷을 전송하고 있다면 출력 버퍼에서 대기해야 한다. 이를 큐잉 지연이라 하며, 버퍼가 꽉 차는 경우 버퍼에 있는 패킷을 버리기에 패킷 손실이 발생한다.
1.3.1.3. 전달 테이블과 라우팅 프로토콜(Forwarding Tables and Routing Protocols)
인터넷에서 종단 시스템은 IP 주소를 갖는다. 송신 종단 시스템은 패킷의 헤더에 목적지의 IP 주소를 포함한다.
라우터는 목적지 주소(혹은 일부)를 라우터의 출력 링크로 맵핑하는 전달 테이블을 갖고 있다. 패킷이 라우터에 도착하면, 올바른 출력 링크를 찾기 위해 목적지 주소를 이용하여 전달 테이블을 검색한다.
인터넷은 자동으로 전달 테이블을 설정하기 위해 여러 특별한 라우팅 프로토콜(5장)을 사용한다.
1.3.2. 회선 교환(Circuit Switching)
링크와 스위치의 네트워크를 통해 데이터를 이동시키는 방식에는 앞선 패킷 교환 외에 회선 교환이 있다. 회선 교환 네트워크에서 통신을 사용하기 위해, 경로상에 필요한 자원(버퍼, 링크 전송률)은 통신 중 예약된다. 따라서, 통신 링크에 대한 접속을 위해 기다려야할 수도 있다.
송신자가 정보를 보내기 전에 네트워크는 송신자와 수신자 간의 연결을 설정한다. 이것은 경로에 있는 스위치들이 연결 상태를 유지해야 하는 연결(전기 통신 용어로는 회선)이다. 네트워크가 회선을 설정할 때, 네트워크 링크에 일정한 전송률을 예약한다. 주어진 전송속도가 송신자-수신자 연결을 위해 예약되므로, 보장된 일정 전송률로 정보를 보낼 수 있다.
1.3.2.1. 회선 교환 네트워크에서의 다중화(Multiplexing in Circuit-Switched Networks)
링크 내 한 회선은 주파수-분할 다중화(frequency-division multiplexing, FDM) 혹은 시-분할 다중화(time-divivison multiplexing, TDM)로 구현된다.
FDM에서 연결은 그 링크의 주파수 스펙트럼을 공유한다. 특히 그 링크는 연결되는 동안 각 연결에 대해 주파수 대역을 고정 제공한다. 이런 대역의 폭을 대역폭(bandwidth)라고 한다. 즉, 지속적으로 대역폭의 일부를 얻는다.
TDM의 경우는 시간을 일정 주기의 프레임으로 구분하고, 각 프레임은 고정된 수의 시간 슬롯으로 나뉜다. 네트워크가 연결을 설정할 때, 모든 프레임에서 시간 슬롯 1개씩을 그 연결에 할당한다. 즉, 주기적으로 전체 대역폭을 얻는다.
1.3.2.2. 패킷 교환 대 회선 교환(Packet Switching Versus Circuit Switching)
패킷 교환은 예측할 수 없는 지연(주로 큐잉 지연)이 있으나 회선 교환보다 간단하고, 효율적이다.
오늘날의 많은 회선 교환 전화망이 패킷 교환으로 전환되고 있다. 특히, 전화망은 비싼 해외 통화 부분을 패킷 교환 방식으로 이용한다.
1.3.3. 네트워크의 네트워크(A Network of Networks)
피어링(peering)은 ISP끼리 서로 네트워크를 연결하고 트래픽을 교환하는 것이고, IXP(Internext Exchange Point)는 다중의 ISP들이 서로 피어링할 수 있는 장소이다.
오늘날의 인터넷(네트워크의 네트워크)은 복잡하며, 12개 정도의 1계층 ISP들과 수십만 개의 하위 계층 ISP들로 구성되어 있다. ISP들은 그 서비스 영역이 다양하다.
사용자와 콘텐츠 제공자(구글 등)은 하위 계층 ISP들의 고객이고, 하위 계층 ISP들은 상위 계층 ISP들의 고객이다. 최근에, 주요 콘텐츠 제공자들도 자신의 네트워크를 구축하였고, 가능한 곳에서 하위 계층 ISP들과 직접 연결한다.
1.4. 패킷 교환 네트워크에서의 지연, 손실과 처리율(Delay, Loss, and Throughput in Packet-Switched Networks)
1.4.1. 패킷 교환 네트워크에서의 지연 개요(Overview of Delay in Packet-Switched Networks)
패킷은 경로 상의 각 노드(호스트 혹은 라우터)에서 다양한 지연을 겪는다. 노트 처리 지연(nodal processing delay), 큐잉 지연(queuing delay), 전송 지연(transmission delay), 전파 지연(propagation delay) 등이 있으며, 이 지연들을 합해 전체 노드 지연(total nodal delay)이라 한다.
1.4.1.1. 지연 유형
라우터의 각 링크에는 외향(outgoing) 링크가 있으며, 이 링크 앞에 큐(버퍼)가 있다. 새로 도착한 패킷은 링크에 현재 전송되는 패킷이 없고, 큐에 자신보다 앞선 패킷들이 없으면 링크로 전송될 수 있다. 그렇지 않다면 큐에 들어가서 대기한다.
1.4.1.2. 처리 지연
패킷 헤더를 조사하고, 그 패킷을 어디로 보낼지를 결정하는 시간은 처리 지연에 속한다. 패킷의 비트 수준 오류를 조사하는 데 필요한 시간과 같은 다른 요소를 포함할 수도 있다.
1.4.1.3. 큐잉 지연
패킷은 큐에서 링크로 전송되기를 기다리면서 큐잉 지연을 겪는다.
1.4.1.4. 전송 지연
패킷의 모든 비트를 링크로 밀어내는 데(전송하는 데) 필요한 시간이다. 패킷의 길이를 L 비트로, 링크의 전송률을 R bps로 나타내면 전송 지연은 L / R 이다.
1.4.1.5. 전파 지연
비트가 링크에 전해지면 다음 라우터까지 전파되어야 한다. 링크의 처음부터 라우터까지의 전파에 필요한 시간이 전파 지연이다. 전파속도는 링크의 물리 매체에 따라 다르다.
1.4.1.6. 전송 지연과 전파 지연 비교
전송 지연은 라우터가 패킷을 내보내는 데 필요한 시간이다(패킷 길이와 링크 전송률에 영향을 받는다).
전파 지연은 비트가 한 라우터에서 다음 라우터로 전파되는 데 걸리는 시간이다(두 라우터 사이의 거리에 영향을 받는다).
1.4.2. 큐잉 지연과 패킷 손실(Queuing Delay and Packet Loss)
큐잉 지연은 패킷마다 다를 수 있다. 예를 들어, 10개의 패킷이 동시에 비어 있는 큐에 도착한다면, 첫 패킷은 큐잉 지연을 겪지 않지만 마지막으로 전송되는 패킷은 많은 큐잉 지연을 겪을 것이다. 따라서 큐잉 지연의 특성을 묘사할 때, 평균 큐잉 지연, 큐잉 지연이 특정 값을 넘을 확률 같은 통계 측정을 이용한다.
a는 패킷이 큐에 도착하는 평균율, 모든 패킷이 L비트라 하면 비트가 큐에 도착하는 평균율은 La 비트/초 이다. R은 전송률이라 하면 트래픽 강도(traffic intensity)는 La/R 이 된다.
만약 La/R > 1 이면, 비트가 큐에 도착하는 평균율이 큐에서 전송되는 비율을 초과한다. 이 경우, 큐에 끝없이 비트가 쌓이고 큐잉 지연은 무한대로 도달한다. 트래픽 강도가 1에 접근할수록 평균 큐잉 지연이 증가한다.
1.4.2.1. 패킷 손실(Packet Loss)
패킷 지연이 심해짐에 따라, 큐가 꽉 찰 수 있다. 패킷을 저장할 수 없는 경우에 라우터는 그 패킷을 버린다. 트래픽 강도가 클수록 손실 패킷 비율을 증가한다.
1.4.3. 종단간 지연(End-to-End Delay)
출발지 호스트와 목적지 호스트 사이에 N-1개의 라우터가 있다고 하고, 큐잉 지연을 무시한다고 하자. 종단간 지연은, N * (처리 지연 + 전송 지연 + 전파 지연) 이다.
1.4.3.1. Traceroute
컴퓨터 네트워크에서 지연을 느끼기 위해 Traceroute라는 진단 프로그램을 이용할 수 있다. 출발지는 한 패킷을 보내고 이에 대한 응답을 받을 때까지 경과된 시간을 기록한다. 또한 응답을 보내온 라우터(혹은 목적지 호스트) 이름과 주소도 기록한다.
1.4.3.2. 종단 시스템, 애플리케이션, 그리고 다른 지연(End System, Application, and Other Delays)
종단 시스템은 다른 종단 시스템과 매체를 공유하기 위해 프로토콜의 일부로서 전송을 의도적으로 지연시킬 수 있다.
다른 지연은 VoIP(voice-over-IP) 애플리케이션에 있는 미디어 패킷화(packetization) 지연이다. VoIP에서 송신측은 패킷을 보내기 전에 이를 인코드된(encoded) 디지털 음성으로 채워야 한다. 이 패킷을 채우는 시간(패킷화 지연)은 심각할 수 있다.
1.4.4. 컴퓨터 네트워크에서의 처리율(Throughput in Computer Networks)
컴퓨터 네트워크에서 한 주요한 성능 수단은 종단간 처리율이다.
어느 한 순간에서의 순간 처리율(instantaneous throughput)은 호스트가 파일을 수신하는 비율(비트/초)이다. 파일이 F비트, 수신하는 데 T초가 걸린다면, 파일 전송의 평균 처리율(average throughput)은 F/T 비트/초이다.
Ri를 i번째 라우터의 전송률이라고 하자.
간단한 네트워크의 경우 min(R1, R2, …), 즉 병목 링크(bottleck link)의 전송률이 처리율이 된다.
오늘날 네트워크의 코어는 매우 높은 속도의 링크로 구성되어 있다. 따라서 인터넷에서의 처리율에 대한 제한 요소는 전형적으로 접속 네트워크이다.
처리율은 데이터가 흐르는 링크의 전송속도에 의존한다. 다른 간섭하는 트래픽이 없을 경우, 처리율은 출발지와 목적지 간의 경로상에서의 최소 전송속도로 근사치화할 수 있다.
간섭하는 트래픽이 있을 경우, 예를 들어, 많은 데이터 흐름이 높은 전송속도를 가진 링크를 통해 지나간다면 속도가 저하되어, 그 링크가 병목 링크가 될 수 있다.
1.5. 프로토콜 계층과 서비스 모델(Protocol Layers and Their Service Models)
1.5.1. 계층구조 (Layered Architecture)
각 계층은 아래 계층과 연계하여 어떤 기능, 서비스를 구현한다. 각 계층은 어떤 동작을 취하고, 바로 아래 계층 서비스를 이용함으로써 서비스를 제공한다.
시스템이 계층구조를 가지면, 구현을 변경하는 것이 쉽고, 한 계층의 변화가 다른 계층에 영향을 주지 않는다.
하지만, 한 계층의 기능이 하위 계층과 기능적으로 중복(예를 들어, 오류 복구)될 수 있고, 한 계층의 기능이 다른 계층에만 존재하는 정보(예를 들어, timestamp value)를 필요로 할 수도 있다.
1.5.1.1. 프로토콜 계층화(Protocol Layering)
네트워크 설계자는 프로토콜을 계층으로 조직한다. 계층이 상위 계층에 제공하는 서비스에 관심을 갖는데, 이것을 계층의 서비스 모델(service model)이라고 한다.
프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 혼합으로 구현할 수 있다.
애플리케이션, 트랜스포트 계층은 대부분 종단 시스템의 소프트웨어로 구현된다.
물리, 데이터 링크 계층은 전형적으로 네트워크 인터페이스 카드(혹은 LAN 카드, 주로 메인보드 내장)로 구현된다.
네트워크 계층은 종종 하드웨어와 소프트웨어로 혼합 구현된다.
다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(protocol stack)이라고 한다. 인터넷 프로토콜 스택은 5개 계층으로 구성된다.
1.5.1.2. 애플리케이션 계층(Application Layer)
애플리케이션 계층은 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. 한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷을 교환하는 데 이 프로토콜을 사용한다. 애플리케이션 계층에서의 이 정보 패킷을 메세지(message)라고 부른다.
1.5.1.3. 트랜스포트 계층(Transport Layer)
인터넷의 트랜스포트 계층은 클라이언트와 서버 간에 애플리케이션 계층 메세지를 전송하는 서비스를 제공한다. TCP와 UDP라는 트랜스포트 프로토콜이 있다. 트랜스포트 계층 패킷을 세그먼트(segment)라고 한다.
1.5.1.4. 네트워크 계층(Network Layer)
네트워크 계층은 한 호스트에서 다른 호스트로 데이터그램(datagram)을 라우팅하는 책임을 진다. 트랜스포트 계층 프로토콜이 세그먼트와 목적지 주소를 네트워크 계층으로 전달하면, 네트워크 계층은 목적지 호스트의 트랜스포트 계층으로 세그먼트를 운반하는 서비스를 제공한다. IP 프로토콜과 여러 라우팅 프로토콜을 모두 갖고 있으며, IP 계층이라고도 불린다.
1.5.1.5. 링크 계층(Link Layer)
패킷을 이동하기 위해, 네트워크 계층은 링크 계층 서비스에 의존한다. 각 노드에서 네트워크 계층이 데이터그램을 아래 링크 계층으로 보내고, 링크 계층이 그 데이터그램을 다음 노드에 전달한다.
링크 계층 프로토콜에는 이더넷, 와이파이 등이 있다. 데이터그램은 경로상의 서로 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다. 예를 들어, 하나의 링크에선 이더넷에 의해 다루어지고 다음 링크에서는 PPPoE(Point-to-Point Protocol over Ethernet)에 의해 다루어질 수 있다.
링크 계층 패킷을 프레임(frame)이라고 한다.
1.5.1.6. 물리 계층(Physical Layer)
물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것이다. 이 계층의 프로토콜은 링크의 실제 전송 매체(꼬임쌍선, 광케이블 등)에 의존한다. 예를 들어, 이더넷은 여러 가지 물리 계층 프로토콜을 갖고 있다(꼬임쌍선을 위한 것, 동축케이블을 위한 것 등).
1.5.1.7. OSI 모델(The OSI Model)
인터넷 프로토콜 스택은 유일한 프로토콜 스택이 아니다. 7계층으로 구성된 OSI 모델외에 많은 프로토콜 스택이 있다.
OSI 모델에는 2개의 추가 계층, 프레젠테이션 계층(presentation layer)과 세션 계층(session layer)이 있다.
프레젠테이션 계층은 애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스를 제공한다. 데이터 기술뿐만 아니라 압축, 암호화를 포함한다. 데이터 기술은 애플리케이션이 데이터가 표현, 저장되는 내부 포맷(컴퓨터마다 포맷이 다를 수 있다)을 걱정하지 않아도 되게 해준다.
세션 계층은 데이터 교환의 경계와 동기화를 제공하며, 이는 체킹포인트와 회복 방법을 포함한다.
인터넷 프로토콜 스택에 없는 서비스를 애플리케이션이 요구할 때, 그 기능을 애플리케이션에 넣는 것은 애플리케이션 개발자에게 달려 있다.
1.5.2. 캡슐화(Encapsulation)
호스트는 다섯 계층 모두를 구현하지만, 라우터와 링크 계층 스위치는 프로토콜 스택의 모든 계층을 구현하지는 않는다. 이는 인터넷 구조가 네트워크의 가장자리에서 그 복잡성을 유지한다는 관점과 일치한다.
애플리케이션 계층 메세지에 추가 정보(헤더 정보)가 더해져 트랜스포트 계층 세그먼트가 되고, 이것에 또 다른 정보(예를 들어, IP 주소)가 붙어 네트워크 계층 데이터그램이 된다. 이런식으로 출발지 상위 계층에서 하위 계층으로 갈 때, 캡슐화가 이루어지고, 목적지 하위 계층에서 상위 계층으로 올라가면서 반대 과정이 이루어진다.
1.6. 공격받는 네트워크(Networks Under Attack)
1.6.1. The Bad Guys Can Put Malware into Your Host Via the Internet
인터넷을 통해 해로운 것(맬웨어; malware)도 전달되는데, 이는 파일 삭제, 개인 정보 유출, 봇넷(botnet; DoS 공격에 사용될 수 있음) 감염을 일으킬 수 있다.
맬웨어는 바이러스(virus) 혹은 웜(wrom)의 형태로 퍼질 수 있다.
바이러스가 사용자의 장치에 영향을 주기 위해서 사용자의 상호작용이 필요한 것이 맬웨어다. 예를 들어, 악성 코드를 포함하는 이메일이 있다. 이메일을 수신하고 개봉하게 되면, 맬웨어가 수행된다.
웜은 사용자의 상호작용 없이 장치에 침투하는 맬웨어이다. 예를 들어, 사용자는 공격자가 보내는 맬웨어에 취약한 애플리케이션을 실행할 수도 있다.
1.6.2. The Bad Guys Can Attack Servers and Network Infrastructure
DoS(denial-of-service) 공격은 네트워크, 호스트 혹은 다른 기반구조(infrastructure)의 요소들을 사용자들이 사용할 수 없게 하는 것이다. 대부분의 인터넷 DoS 공격은 다음 세 가지 분류 중 하나에 속한다.
취약성 공격(vulnerability attack) 이는 취약한 애플리케이션 혹은 운영체제에 교묘한 메세지를 보내는 것을 포함한다. 만약 교묘한 순서의 패킷을 이들에 보내면, 그 서비스가 중단되거나 호스트가 동작을 멈출 수 있다.
대역폭 플러딩(bandwidht flooding) 이 공격은 목표 호스트로 수많은 패킷을 보내서, 정당한 패킷들이 그 서버에 도달하지 못하도록 한다.
연결 플러딩(connection flooding) 이 공격은 목표 호스트에 반열림(half-open) 혹은 전열림(fully open) TCP 연결을 설정한다. 호스트는 가짜 연결을 처리하느라 바빠서 정상적인 연결을 받아들이지 못한다.
분산 DoS(DDoS) 공격에서, 공격자는 많은 숙주 컴퓨터를 제어하고, 이들은 목표에 트래픽을 보낸다. 수천 개의 호스트로 구성된 봇넷을 이용하는 DDoS 공격 등이 있다.
1.6.3. 나쁜 친구들은 패킷을 탐지할 수 있다(The Bad Guys Can Sniff Packets)
지나가는 모든 패킷의 사본을 기록하는 수신자를 패킷 스니퍼(packet sniffer)라고 한다. 패킷에는 개인 정보 등 민감한 정보를 포함할 수 있다.
이를 방지하기 위한 가장 좋은 방어는 암호화를 하는 것이다.
1.6.4. 나쁜 친구들은 당신이 신뢰하는 사람인 것처럼 위장할 수 있다(The Bad Guys Can Masquerade as Someone You Trust)
거짓의 출발지 주소를 가진 패킷을 인터넷으로 보내는 능력을 IP 스푸핑(spoofing)이라고 한다. 이는 한 사용자가 다른 사용자인 것처럼 행동하는 여러 가지 방법 중의 하나다.
이 문제를 해결하기 위해, 종단 인증(end-point authentication), 즉 메세지가 실제로 와야 할 곳으로부터 온 것인지를 확신할 수 있는 방법이 필요하다.
댓글남기기