컴퓨터 네트워킹 : 하향식 접근(제 7판)을 읽고 정리한 내용입니다.
1.1 인터넷이란 무엇인가?
1.1.1 구성요소로 본 인터넷
호스트(Hosts) = 종단 시스템(End systems)
- 호스트는 때때로 클라이언트(client)와 서버(server)로 구분된다.
- 컴퓨팅 장치(computing devices)에 연결된 수많은 것을 말한다. (데스크톱, 리눅스 워크스테이션 등의 서버와 랩톱, 스마트폰 등의 비 전통적인 인터넷 사물들이 포함된다.)
- 통신 링크(communication links)와 패킷 스위치(packet switch)의 네트워크로 연결된다.
통신 링크(Communication Links)
- 동축케이블, 구리선(copper), 광케이블(fiber), 라디오 스펙트럼(radio)을 포함한 다양한 물리 매체로 구성된다.
- 다양한 전송률(transmission rate)을 이용해서 데이터를 전송한다.
- 전송률은 초당 비트 수를 의미하는 bps(bit per second) 단위를 사용한다.
패킷 교환기(Packet Switches)
- 입력 통신 링크의 하나로 도착하는 패킷을 받아서 출력 통신 링크의 하나로 그 패킷을 전달한다.
- 라우터(routers)와 스위치(switches)가 해당된다.
- 라우터는 네트워크 코어에서 사용되고, 스위치는 액세스 네트워크에서 사용된다.
- 종단 시스템 간에 데이터 교환을 쉽게 해 주지만, 애플리케이션에는 관심을 갖지 않는다.
경로(Route or Path)
- 패킷이 송신 종단 시스템에서 수신 종단 시스템에 도달하는 동안 거쳐 온 일련의 통신 링크와 패킷 스위치들을 네트워크 상의 경로라고 한다.
ISP(Internet Service Provider)
- 종단 시스템은 ISP를 통해서 인터넷에 접속한다.
- 패킷 스위치와 통신 링크로 이루어진 네트워크이다.
- 종단 시스템에게 케이블 모뎀이나 DSL 같은 가정용 초고속 접속 등 다양한 네트워크 접속을 제공한다.
- 웹 사이트와 비디오 서버를 인터넷에 직접 연결하도록 CP(content provider)에게 인터넷 접속을 제공한다.
프로토콜(Protocol)
- 인터넷에서 메세지들의 송수신을 제어한다.
- TCP, IP, HTTP, 802.11 등이 해당된다.
- 정의 1 : Syntax, Semantics, Timing
- 정의 2 : Event, Action, Format
- 정의 3 : 통신 규약, 통신 절차
1.1.2 서비스 측면에서 본 인터넷
애플리케이션에 서비스를 제공하는 기반시설이다.
- Web, email, games, e-commerce 등을 포함한다.
- 애플리케이션은 서로 데이터를 교환하는 많은 종단 시스템을 포함하고 있기 때문에 분산 애플리케이션(distributed application)이라고 부른다.
- 인터넷 애플리케이션은 종단 시스템에서 수행된다. 네트워크 코어에 있는 패킷 교환기에서 수행되지 않는다.
애플리케이션에 프로그래밍 인터페이스(API)를 제공한다.
1.1.3 프로토콜이란 무엇인가?
프로토콜은 네트워크 엔티티들 사이의 메세지의 형식, 송수신된 메시지의 순서, 메세지 전송, 수신할 때 취해지는 행동을 정의한다.
1.2 네트워크의 가장자리
Cisco 네트워크
Access network -> Distribution network -> Core network
네트워크 가장자리(Network Edge)
- 호스트, 종단 시스템이 포함된다.
1.2.1 접속 네트워크
접속 네트워크(Access Network)
- 종단 시스템을 그 종단 시스템으로부터 다른 먼 거리의 종단 시스템까지의 경로상에 있는 첫 번째 라우터(가장자리 라우터)에 연결하는 네트워크를 말한다.
1.3 네트워크 코어
1.3.1 패킷 교환
패킷 교환(Packet-Switching)
- 종단 시스템들은 서로 메시지를 교환한다.
- 송신 시스템(호스트)은 응용 계층에서 메시지를 패킷(packet)으로 나눈다.
- 송신 슥과 수신 측 사이에서 각 패킷은 통신 링크와 패킷 스위치를 거치게 된다.
- 패킷은 링크의 최대 전송 속도와 같은 속도로 각각의 통신 링크상에서 전송된다.
- 따라서, 송신 종단 시스템 또는 패킷 스위치가 R bps의 속도로 링크상에서 L bits의 패킷을 송신한다면, 그 패킷을 전송하는게 걸리는 시간은 L/R 초이다.
패킷 교환 특징 1 : 저장-후-전달(store-and-forward)
- 전체 패킷은 다음 링크에서 전송되기 전에 라우터에 도착해야 한다.
- 1. 라우터는 패킷의 비트가 모두 저장될 때 까지 전송하지 않고 버퍼에 저장한다.
- 2. 라우터는 패킷의 모든 비트를 수신한 후에 출력 링크로 그 패킷을 전송하기 시작한다.
위 그림에서 송신 시스템에서 패킷을 송신하기 시작해서 전체 패킷을 수신 시스템에서 수신할 때까지 경과된 시간을 계산해보자. (단, 전파 지연은 무시한다.)
- 0초
- 소스에서 패킷1을 라우터로 전송하기 시작한다.
- L/R초
- 라우터에서 목적지로 패킷1을 전송하기 시작한다.
- 소스에서 패킷2를 라우터로 전송하기 시작한다.
- 2L/R초
- 목적지에서 패킷1을 수신 완료했다.
- 라우터에서 목적지로 패킷2를 전송하기 시작한다.
- 소스에서 패킷3을 라우터로 전송하기 시작한다.
- 3L/R초
- 목적지에서 패킷2를 수신 완료했다.
- 라우터에서 목적지로 패킷3을 전송하기 시작한다.
- 4L/R초
- 목적지에서 패킷3을 수신 완료했다.
종단 간 지연
- 소스로부터 목적지 노드까지 N개의 링크로 구성되고, 각각은 R 전송속도를 갖는 경로를 통해 1개의 패킷을 전송하는 경우의 종단간 지연은 N * L/R이다.
패킷 교환 특징 2 : 큐잉 지연과 패킷 손실(queueing delay, loss)
- 각 패킷 스위치는 접속된 여러 개의 링크를 갖고 있고, 각 링크에 대해 출력 버퍼를 갖고 있다.
- 도착하는 패킷이 한 링크로 전송될 필요가 있는데 그 링크가 다른 패킷을 전송하고 있다면, 도착하는 패킷은 출력 버퍼에서 대기해야 한다. 즉, 큐잉 지연을 겪게 된다.
- 즉, 링크로 들어오는 비트 단위의 전송률보다 도착률이 큰 경우에 발생한다.
- 큐잉 지연은 가변적이고 네트워크의 혼잡 정도에 따라 다르다.
- 버퍼 크기가 유한하기 떄문에 도착하는 패킷은 버퍼가 전송을 위해 대기 중인 다른 패킷들로 꽉 차있을 수 있다. 이 경우에 패킷 손실이 발생한다. (이런 경우 도착하는 패킷 또는 큐에 대기 중인 패킷을 폐기(drop) 한다.)
1.3.2 회선 교환
회선 교환(Circuit Switching)
- 종단 시스템 간에 통신을 제공하기 위해 경로상에 필요한 자원(버퍼, 링크 전송률)은 통신 세션 동안에 예약(reserve)된다.
- 패킷 교환(packet switching)에서는 이들 자원은 예약하지 않는다.
- 세션 메시지는 온디멘드 방식으로 자원을 요청하여 사용하기 때문에 통신 링크에 대한 접속을 위해 큐에서 대기할 수도 있다.
- 1. 송신자가 정보를 보내기 전에 네트워크는 송신자와 수신자 간의 연결(= 회선(circuit))을 설정해야 한다.
- 2. 네트워크가 회선을 설정할 때, 그 연결이 이루어지는 동안 네트워크 링크에 일정한 전송률을 예약한다.
- 3. 주어진 전송속도가 송신자-수신자 연결을 위해 예약되므로 보장된(guaranteed) 일정 전송률로 데이터를 보낼 수 있다.
패킷 교환(Packet Switching) vs 회선 교환(Circuit Switching)
- 패킷 교환은 가변적이고 예측할 수 없는 종단간의 지연 때문에 실시간 서비스에는 좋지 않다.
- 패킷 교환이 회선 교환보다 전송 용량의 공유에서 더 효율적이다.
- 패킷 교환이 더 간단하고, 효율적이며, 회선 교환보다 구현 비용이 적다.
어떤 것이 더 좋은지 예시를 들어 보자.
가정 : 사용자가 1Mbps 링크를 공유한다. 각 사용자는 활동 시간에 100 kbps 속도로 데이터를 생산하고 전체 시간에서 10%만 활동한다.
- 회선 교환 : 100 kbps가 항상 각각의 사용자에게 예약되어야 하기 때문에 10명의 사용자만 지원할 수 있다.
- 패킷 교환 : 특정 사용자가 활동을 하고 있을 확률은 10%이다. 만약 35명의 사용자가 있을 때 11명 이상의 사용자가 동시에 활동할 확률은 약 0.0004(0.04%)밖에 되지 않는다. 회선 교환보다 사용자의 수에 있어서 3배 이상을 허용한다.
패킷 교환 장점
- 데이터가 갑작스럽게 몰리는(bursty) 상황에 좋다.
- 자원의 공유가 가능하다.
- 별도의 통신 연결 설정이 필요 없어서 더 간단하다.
패킷 교환 단점
- 과도한 혼잡이 발생할 수 있다. (패킷 지연, 패킷 손실)
- 신뢰할 수 있는 데이터 전송(reliable data transfer)과 혼잡 제어(congestion control)를 위한 프로토콜이 필요하다.
1.4 패킷 교환 네트워크에서의 지연, 손실과 처리율
1.4.1 패킷 교환 네트워크에서의 지연 개요
손실과 지연이 어떻게 발생하는가?
- 패킷 도착률이 패킷 전송률을 초과하는 경우에 라우터에 있는 버퍼 큐가 유한하기 때문에 지연과 손실이 발생할 수 있다.
패킷 지연의 4가지
- 노드 처리 지연(processing delay)
- 큐잉 지연(queueing delay)
- 전송 지연(transmission delay)
- 전파 지연(propagation delay)
- 위 4가지 지연들의 합을 전체 노드 지연(total nodal delay OR nodal delay)라고 한다.
처리 지연(Processing Delay)
- 라우터에서 input 큐와 output 큐가 둘 다 있는 경우 input 큐에서 output 큐로 넘겨주는 delay를 말한다.
- 패킷의 비트 오류들을 확인하는 데 걸리는 시간을 포함한다.
큐잉 지연(Queueing Delay)
- 패킷이 큐에서 링크로 전송되기 위해 기다리는 시간을 말한다. 즉, 큐 도착부터 큐에서 나갈 때 까지의 delay이다.
전송 지연(Transmission Delay)
- 패킷의 모든 비트를 링크로 내보내는 데 걸리는 시간을 말한다.
- 패킷의 길이가 L bits, 링크의 전송률(bandwidth)가 R bps 일 때 전송 지연은 L/R 이다.
전파 지연(Propagation Delay)
- 비트가 한 라우터에서 다른 라우터까지 전파되는 데 필요한 시간을 말한다.
- 라우터 사이의 물리적인 거리를 d, 전파 속도를 s 라면 전파 지연은 d/s 이다.
4가지 Delay 중 개발자가 제어할 수 있는 Delay는 무엇일까?
- 처리 지연과 큐잉 지연이다.
- 개발자가 라우터의 구조, 자료구조에 따라서 제어할 수 있다.
- 큐잉 알고리즘을 어떻게 하는지에 따라 제어할 수 있다.
- 라우팅 테이블에 의해 처리 지연을 줄일 수 있다.
1.4.2 큐잉 지연과 패킷 손실
큐잉 지연을 결정하는 요인
- 트래픽이 큐에 도착하는 비율
- 링크의 전송률
- 도착하는 트래픽의 특성(트래픽이 주기에 맞춰서 도착하는가 또는 버스티(bursty)하는가?)
트래픽 강도(Traffic Intensity)
- 패킷이 큐에 도착하는 평균율을 a, 링크의 전송률을 R bps, 패킷의 길이를 L bits 라고 할 때 트래픽 강도는 La/R 이라고 한다.
- La/R > 1 : 비트가 큐에 도착하는 평균율이 비트가 큐에서 전송되는 비율을 초과한다. 이 때, 큐는 끝없이 증가하고 큐잉 지연은 무한대에 도달하게 된다.
- La/R ≤ 1 : 이 때는 도착 트래픽의 특성이 큐잉 지연에 영향을 미친다. 만약 패킷이 주기적으로 도착한다면(하나의 패킷이 L/R초마다 도착한다면), 모든 패킷은 비어있는 큐에 도착하게 될 것이므로 큐잉 지연은 없게 된다. 하지만 만약에 패킷이 버스티하게 도착한다면, 상당한 평균 큐잉 지연이 생길 것이다.
- La/R ≈ 0 : 패킷 도착이 드물고 간격이 멀어서 다음에 도착하는 패킷이 큐에서 다른 패킷을 발견하는 경우가 없을 것이다. 그러므로 평균 큐잉 지연은 0에 가까워진다.
- La/R ≈ 1 : 패킷 도착이 전송용량을 초과하여 큐가 생성될 것이다. 도착률이 전송속도보다 작아질 때, 큐의 길이는 줄어들 것이다. 따라서 평균 큐잉 지연이 급속하게 증가한다.
패킷 손실
- 트래픽 강도가 1에 가까워질 수록 큐가 꽉 차게 된다. 따라서, 큐가 꽉 차서 패킷을 저장할 수 없는 경우에 라우터는 그 패킷을 버린다(drop).
1.4.3 종단간 지연
- 종단간 지연 = N(처리 지연 + 전송 지연 + 전파 지연)
(단, 출발지 호스트와 목적지 호스트 사이에 N - 1개의 라우터가 있고, 네트워크가 혼잡하지 않을 때)
1.4.4 컴퓨터 네트워크에서의 처리율
컴퓨터 네트워크에서 주요한 성능 수단
- 지연
- 패킷 손실
- 종단간 처리율
순간적인 처리율과 평균 처리율
- 컴퓨터 네트워크를 통해 호스트 A에서 호스트 B로 파일을 전송하는 상황을 생각해보자. 이 파일이 F 비트이고 호스트 B가 모든 F 비트를 수신하는 데 T초가 걸린다고 하자.
- 순간적인 처리율(Instantaneous Throughput) : 호스트 B가 파일을 수신하는 비율(bits/second)
- 평균 처리율(Average Throughput) : F/T bits/second
- 가능한 높은 처리율을 갖는 것이 좋다.
1.5 프로토콜 계층과 서비스 모델
1.5.1 계층구조
계층화(Layering)의 장점
- 복잡한 시스템의 조각들을 식별하고 관계를 맺을 수 있도록 명확한 구조를 제공한다.
- 모듈화로 시스템의 유지관리와 업데이트를 더 쉽게 해준다.
프로토콜 스택
- 다양한 계층의 프로토콜을 말한다.
인터넷 프로토콜 스택
- 애플리케이션 -> 전송 -> 네트워크 -> 데이터-링크 -> 물리
OSI 참조 모델
- 애플리케이션 -> 표현 -> 세션 -> 전송 -> 네트워크 -> 데이터-링크 -> 물리
계층이름 | 전송의 기본단위 | 기능/주요 목적 | 실제 프로토콜의 예 | 주소 | 실제 주소의 예 |
Application Layer |
Message 또는 Information 또는 Data |
FTP, SMTP, HTTP | Hostname | www.google.com | |
Presentation Layer |
zip, mp4, jpg | ||||
Session Layer |
|||||
Transport Layer |
Segment | Process to Process Delivery (Port to Port Communication) |
TCP, UDP | Port | 80(HTTP), 3306(MySQL) |
Network Layer |
Packet, Datagram |
End to End Delivery (End Node/Host to End Node/Host Communication) |
RIP, OSPF | Logical address (IP address) |
192.168.24.30 |
Data-Link Layer |
Frame | Hop to Hop Delivery (Node to Node Communication) |
802.11, PPP, HDLC, Ethernet(802.3) | Physical address (MAC address) |
48 비트 MAC address 3E:D5:33:33 |
Physical Layer |
bit 또는 bit stream |
1.6 공격받는 네트워크
보안의 3원리
- Confidentiality(기밀성)
- Integrity(무결성)
- Availability(가용성)
바이러스
- 객체를 수신하고 실행함으로써 스스로 복제하는 감염이다. (능동적)
웜
- 객체를 수동적으로 받아들이고 스스로 실행함으로써 스스로 복제되는 감염이다. (수동적)
Dos(Denial of Service)
- 공격자들이 자원들을 사용할 수 없게 만드는 것.
1.7 컴퓨터 네트워킹과 인터넷 역사
- 1. Telecommunication Network(전화망) : 18세기 전후반, 일대일(1:1) 통신, 양방향
- 2. Broadcast Network(방송망) : 1920~1930, 일대다(1:N) 통신, 단방향
- 3. Data Network(데이터 망) : 1960, 일대일(1:1), 일대다(1:N), 다대다(N:M), 양방향, 단방향