1.3 네트워크 코어
- 인터넷의 종단 시스템을 연결하는 패킷 스위치와 링크의 메시(mesh) 구조
1.3.1 패킷 교환
- 종단 시스템들은 서로 메시지를 교환
- 송신 시스템은 긴 메시지를 패킷이라고 알려진 작은 데이터 덩어리로 분할
- 각 패킷은 패킷 스위치(라우터/링크 계층 스위치)를 거침
- 링크의 최대 전송속도와 같은 속도로 각각의 통신 링크상에서 전송
- R bits/sec 속도로 링크상에서 L bits의 패킷을 송신한다면 걸리는 시간은 L/R
저장 후 전달 방식
- 스위치가 출력 링크로 패킷의 첫 비트를 전송하기 전에 전체 패킷을 받아야 한다
- 패킷의 비트를 먼저 저장(buffer or store) 한 후 라우터가 패킷의 모든 비트를 수신
- 출력 링크로 그 패킷을 전송(forward)하기 시작
라우터는 입력되는 패킷을 출력 링크로 교환하는 것이기 때문에 보통 여러개의 링크를 가짐
- 출발지는 목적지로 전송할 3개의 패킷(1,2,3)을 가지고 있으며, 각각의 패킷은 L비트로 구성
- 출발지는 링크에서 L비트의 패킷을 R bps의 속도로 송신
경과 시간 계산
1. 패킷 1을 송신하기 시작해서 패킷 1 전체를 목적지에서 수신할때까지 경과 시간
0초
출발지 : 패킷 1 전송 시작
L/R초
출발지 : 패킷 1의 전체 데이터 전송 완료
라우터 : 전체 데이터 수신 후 저장, 출력 링크로 패킷 전송 (전체 패킷을 수신했기 때문에)
2L/R
라우터 : 전체 패킷 전송
목적지 : 패킷 1 전체 패킷 수신 완료
- 전체 지연
- 저장 후 전달 전송 : 2L/R
- 전체 패킷을 수신할 때까지 기다리지 않고 전달한다면 : L/R
2. 패킷 1을 송신하기 시작해서 3개의 모든 패킷을 목적지에서 수신할때까지 경과 시간
0초
출발지 : 패킷 1 전송 시작
L/R초
라우터 : 패킷 1 수신 완료, 전송 시작
출발지 : 패킷 2 전송 시작
2L/R초
라우터 : 패킷 2 수신 완료, 전송 시작
목적지 : 패킷 1 전체 수신 완료
출발지 : 패킷 3 전송 시작
3L/R초
라우터 : 패킷 3 수신 완료, 전송 시작
목적지 : 패킷 2 전체 수신 완료
4L/R
목적지 : 3개의 모든 패킷 수신
- 전체 지연 : 4L/R
종단 간 지연
소스로부터 목적지 노드까지 N개의 링크로 구성되고 각각은 R 전송속도를 갖는 경로를 통해 하나의 패킷을 전송하는 경우 (소스와 목적지 사이에 N-1개의 라우터 존재)
큐잉 지연과 패킷 손실
- 각 패킷 스위치는 접속된 여러개의 링크를 갖고있으며, 각 링크에 대해 출력 버퍼(출력 큐) 를 가지고있음
- 출력 버퍼는 그 링크로 송신하려고 하는 패킷을 저장
출력 버퍼는 패킷 스위칭(교환)에서 중요한 역할
큐잉 지연
- 도착하는 패킷은 다른 링크로 전송되기 전 그 링크가 다른 패킷을 전송하고 있다면 출력 버퍼에서 대기
- 저장 후 전달 지연뿐만 아니라 큐잉 지연도 겪게됨
- 가변적이고 네트워크 혼잡 정도에 따름
- 버퍼 공간의 크기가 유한하기 때문에 패킷 손실(packet loss) 발생
- 패킷 손실 : 버퍼가 전송을 위해 대기중인 다른 패킷들로 꽉 차 있는 경우 도착하는 패킷 또는 큐에 대기중인 패킷을 폐기(drop)
- 패킷 손실 : 버퍼가 전송을 위해 대기중인 다른 패킷들로 꽉 차 있는 경우 도착하는 패킷 또는 큐에 대기중인 패킷을 폐기(drop)
호스트 A,B는 첫번째 라우터로 10Mbps 이더넷 링크를 통해 패킷 전송 라우터는 이들 패킷을 1.5Mbps의 링크로 전달
만약 짦은 기간에 라우터에 도착하는 패킷의 전송 속도가 1.5Mbps를 초과하면 라우터에서 혼잡이 발생하게 되고 링크로 전송되기 전에 링크의 출력 버퍼에 패킷들이 큐잉됨 (큐잉 지연 발생)
전달 테이블과 라우팅 프로토콜
-
모든 종단 시스템은 IP 주소라고 하는 주소를 가짐
-
소스 종단 시스템이 패킷을 목적지 종단 시스템으로 전송할 때 패킷의 헤더에 목적지의 IP 주소를 포함
-
각 라우터는 목적지 주소(혹은 일부)를 라우터의 출력 링크로 맵핑하는 전달 테이블(forwarding table) 을 갖고있음
- 패킷이 한 라우터에 도착
- 라우터는 올바른 출력 링크를 찾기 위해 패킷의 목적지 주소 일부를 조사
- 해당 목적지 주소를 이용하여 전달 테이블 검색
- 그 패킷을 출력 링크로 전송
라우터는 전달 테이블 색인과 올바른 출력 링크 결정을 위해 패킷의 목적지 주소를 이용 (전달 테이블 설정 → 4장)
1.3.2 회선 교환
- 회선 교환 네트워크에서 종단 시스템 간 통신 제공을 위해 경로상에 필요한 자원(버퍼, 링크 전송률)은 통신 세션(session)동안에 예약됨 (←> 패킷 교환에서는 자원예약 X)
- 세션의 메시지는 온디맨드 방식으로 자원을 요청하여 사용
- 통신 링크에 대한 접속을 위해 큐에서 대기해야 할 수도 있음
- 송신자가 정보를 보내기 전 네트워크는 송신자와 수신자 간의 연결 설정
- 송신자와 수신자간의 경로에 있는 스위치들이 해당 연결 상태를 유지해야 하는 연결(⇒회선)
- 네트워크가 회선을 설정할 때, 연결되는 동안 네트워크 링크에 일정한 전송률 예약
- 주어진 전송속도가 예약되므로 송신자는 수신자에게 보장된 일정 전송률로 데이터 전송
-
각 링크는 4개의 회선을 가지므로 4개의 동시 연결 지원
-
호스트는 스위치 중 하나에 직접 연결 됨
-
두 호스트가 통신하고 싶을 때 네트워크는 두 호스트 사이에 지정된 종단간 연결(end-to-end connection)을 설정 (각각 한 회선씩 예약)
-
각 연결이 지속되는 동안 해당 연결은 링크 전체 전송 용량의 1/4를 얻음(4개의 회선을 가지기 때문)
한 호스트가 인터넷과 같은 회선 교환 네트워크를 통해 다른 호스트로 패킷을 보내고자 할 때
- 회선 교환과 마찬가지로 패킷은 일련의 통신 링크를 통해 전송
- 링크 자원을 예약하지 않고 네트워크로 전송
- 만약 그 시간에 링크상으로 다른 패킷들이 전송되어야 하기 때문에 링크 중 하나가 혼잡하다면 그 패킷은 전송 링크의 송신 쪽 버퍼에서 기다려야 하고 지연이 발생
패킷 교환 네트워는 일정 시간 내 데이터 전달을 보장하지 않음
회선 교환 네트워크에서의 다중화
-
주파수 분할 다중화(FMD) : 각 회선은 지속적으로 대역폭의 일부를 얻는다.
- 링크를 통해 설정된 연결은 그 링크의 주파수 스펙트럼을 공유
- 연결되는 동안 각 연결에 대해 주파수 대역 고정 제공 (대역폭)
-
시분할 다중화(TDM) : 각 회선은 주기적으로(짧은 시간 즉, 슬롯 동안) 전체 대역폭을 얻는다.
- 시간을 일정 주기의 프레임으로 구분하고 각 프레임은 고정된 수의 시간 슬롯으로 나뉨
- 네트워크가 링크를 통해 하나의 연결을 설정할 때, 네트워크는 모든 프레임에서 시간 슬롯 1개를 연결에 할당
- 슬롯은 연결을 위해 사용되도록 할당되고 그 연결의 데이터를 전송하기 위해 모든 프레임에 하나의 시간 슬롯을 갖게 됨
- 전송률 : 한 슬롯 안 비트 수 X 프레임 전송률
- 링크가 초당 8000프레임을 전송하고 각 슬롯이 8비트로 구성된다면 전송률은 64kbps
패킷 교환 vs 회선 교환
패킷 교환 옹호자
- 할당된 회선이 쉬는 시간에 놀게 되므로 낭비라고 주장
- 종단간 회선을 설정하고 대역폭을 보존하는 것이 복잡하고 경로에 있는 스위치들 사이의 운영을 조절하는 복잡한 신호 소프트웨어가 필요함을 지적
- 패킷 교환이 회선 교환보다 전송 용량의 공유에서 더 효율적
- 패킷 교환이 더 간단하고 효율적이며 회선 교환보다 구현 비용이 적음
회선 교환 옹호자
- 가변적이고 예측할 수 없는 종단간의 지연 때문에 패킷 교환이 실시간 서비스에는 적당하지 않다고 주장
- 사용자가 1Mbps 링크를 공유하고 각 사용자는 활동시간과 비활동시간을 반복함. 사용자는 전체시간에서 10%만 활동 회선 교환
- 100kbps가 항상 각각의 사용자에게 예약되어야 함
- 회선교환 TDM에서 1초 프레임이 100mse마다 10개 시간 슬롯으로 나뉜다면 각 사용자는 한 프레임에 한 번의 시간 슬롯이 할당됨
- 동시에 10명만 지원 가능 패킷 교환
- 특정 사용자가 활동할 확률은 10%
- 10명 이하의 동시 사용자가 있을 때 사용자의 패킷은 지연없이 링크 통과
- 10명 이상의 동시 사용자가 있을 확률은 매우 작으므로 패킷 교환은 거의 항상 회선 교환과 대등한 지연 성능을 가지면서도 사용자 수에 있어서 거의 3배 이상 허용
- 10명의 사용자중 한 사용자가 한 번에 1000비트 패킷을 1000개 생성하고 다른 사용자는 패킷을 생성하지 않음. 회선 교환
- 한 프레임은 1000비트로 구성된 10개 슬롯으로 구성된 TDM 회선 교환일 경우
- 데이터 전송을 위해 한 개의 시간 슬롯만 사용 가능
- 나머지 9개의 슬롯은 쉬는 상태
- 100만 비트를 모두 전송하려면 10초가 걸림 패킷 교환
- 패킷을 생성하는 다른 사용자가 없기에 다중화가 요구되지 않고 사용자는 1Mbps의 링크가 가득 찰 때까지 패킷을 계속 보낼 수 있음
- 그러므로 사용자의 데이터는 1초만에 전송됨
패킷 교환이 회선 교환보다 성능이 우수함
- 회선 교환이 요구에 관계없이 미리 전송 링크의 사용을 할당하는 반면에, 패킷 교환은 요구할때만 링크의 사용을 할당함
- 사용하지 않는 링크 시간에는 링크 사용을 할당할 필요가 없음
1.3.3 네트워크의 네트워크
- 종단 시스템이 접속망을 통해 인터넷에 연결됨
- 접속 ISP는 다양한 접속 기술(DSL, 케이블, FTTH, 와이파이, 셀룰러 등)을 이용하여 유선 혹은 무선 연결 제공
- 텔코 혹은 케이블 회사일 필요는 없음
- 대학교 혹은 회사가 ISP가 될 수 있음
- 접속 ISP들이 서로 연결되어야 함
- 이를 위해 네트워크의 네트워크 탄생
목표 : 모든 종단 시스템이 서로에게 패킷을 보낼 수 있도록 접속 ISP를 연결
각 접속 ISP를 직접 서로 다른 ISP와 연결하는 것(mesh 설계) → 고비용 발생
- 각 접속 ISP가 다른 접속 ISP와 수십만개의 개별적 통신 링크를 유지해야 하기 때문
네트워크 구조 1
모든 접속 ISP들을 하나의 글로벌 ISP와 연결
- 글로벌 통과 ISP : 전 세계에 이르고 적어도 수심만개의 접속 ISP와 가까운 곳에 있는 라우터를 갖는 통신링크의 네트워크
- 확장된 네트워크를 구축하는데 매우 많은 비용이 듬
- 이익을 얻기 위해 각각의 접속 ISP에 연결을 위한 과금 부과
- 접속 ISP : 고객
- 글로벌 ISP : 제공자
네트워크 구조 2
수십만 개의 접속 ISP와 다중의 글로벌 ISP
-
2계층 구조
- 상위 : 글로벌 ISP 제공자 존재
- 하위 : 접속 ISP 존재
-
글로벌 ISP들은 서로 연결해야만 함
-
서로 연결됭지 않는다면 하나의 글로벌 ISP와 연결된 접속 ISP는 다른 글로벌 통과 서비스 제공자에 연결된 접속 ISP와 통신할 수 없음
-
지역 ISP와 1계층 ISP
- 현실적으로 모든 도시에 존재하는 ISP는 없음
- 대신 주어진 지역에서 그 지역에 있는 접속 ISP들이 연결하는 지역 ISP가 존재, 각 지역 ISP는 1계층 ISP들과 연결
네트워크 구조 3
다중계층구조(접속ISP, 지역ISP, 1계층ISP)
-
여러 경쟁적인 1계층 ISP들이 존재하며, 한 지역에 여러 경쟁적인 지역 ISP 존재 가능
-
작은 지역 ISP들이 연결하는 큰 지역 ISP 존재 가능
-
각 접속 ISP는 자신이 연결하는 지역 ISP에게 요금을 지불하고 각 지역 ISP는 자신이 연결하는 1-계층 ISP에게 요금 지불
-
계층구조의 각 레벨에 고객-제공자 관계가 있음
-
1-계층 ISP는 계충구조의 최상위에 있기 때문에 아무에게도 요금을 지불하지 않음
-
작은 지역 ISP들이 연결하는 큰 지역 ISP들이 존재 ⇒ 다중 계층 구조
네트워크 구조 4
다중계층구조(접속 ISP, 지역 ISP, 1계층 ISP) + PoP(points of presence) + 멀티홈 + 피어링 + IXP(Internet exchang point)
-
PoP
- 최하위 계층을 제외하고 계층구조의 모든 계층에 존재
- 제공자의 네트워크 내에 있는 하나 혹은 그 이상의 라우터 그룹
- 고객 네트워크가 제공자의 PoP에 연결되기 위해,
고객은 자신의 라우터 중 하나를 PoP에 있는 라우터에 직접 연결하도록 고속 링크를 제3자(third-party) 통신 서비스 제공자로부터 임대할 수 있다.
-
멀티홈(multi-homing)
- 둘 혹은 그 이상의 제공자 ISP에 연결하는 것
- e.g., 한 접속 ISP가 2개의 ISP에 연결, 2개의 지역 ISP와 함께 하나의 1계층 ISP에 연결
- 1계층 ISP를 제외한 모든 ISP는 멀티홈을 선택할 수 있다.
- 한 ISP가 멀티홈을 하면 서비스 제공자 중 하나가 연결되지 않더라도 인터넷으로 패킷을 계속 송수신할 수 있게 된다.
-
피어링(peering)
- 고객 ISP가 서비스 제공 ISP에게 지불하는 요금을 줄이기 위해 인터넷 계층구조의 같은 계층에 있는 가까운 ISP들은 피어링할 수 있다.
(두 ISP가 피어링하면 일반적으로 서로 요금을 지불하지 않음) - 즉, 이들 간에 송수신되는 모든 트래픽을 상위 계층 ISP를 통하지 않고 직접 송수신할 수 있도록 자신들의 네트워크를 서로 직접 연결하는 것이다.
- 1계층 ISP들도 서로 피어링할 수 있다.
- 고객 ISP가 서비스 제공 ISP에게 지불하는 요금을 줄이기 위해 인터넷 계층구조의 같은 계층에 있는 가까운 ISP들은 피어링할 수 있다.
-
IXP(Internet Exchange Point)
- 다중의 ISP들이 서로 피어링할 수 있는 만남의 장소
- 일반적으로 교환기를 갖춘 독자적인 빌딩에 존재한다.
네트워크 구조 5
다중계층구조(접속 ISP, 지역 ISP, 1계층 ISP) + PoP + 멀티홈 + 피어링 + IXP + 콘텐츠 제공 네트워크
- 구글 데이터 센터는 모두 구글의 사설 TCP/IP 네트워크를 통해 연결되어 있으며, 이 네트워크는 전 세계를 연결하며 공중 인터넷과는 분리되어 있다.
- 구글 사설 네트워크는 구글 서버로 오가는 트래픽만 전달한다.
- 즉, 하위 계층 ISP들과 피어링을 함으로써(그들과 직접 연결하거나 IXP에서 그들과 연결함으로써) 인터넷의 상위 계층을 ‘
우회(bypass)
’하고 있다. - 많은 접속 ISP는 여전히 1계층 네트워크를 통해서만 도달할 수 있기 때문에
구글 네트워크도 1계층 ISP들과 연결하고 그들과 교환하는 트래픽에 대해 이 ISP들에게 요금을 지불한다. - 콘텐츠 제공자들이 자신의 네트워크를 구축함으로써 얻는 이점
- 상위 계층 ISP들에게 지불하는 요금을 줄일 수 있다.
- 최종 사용자들에게 자신들의 서비스가 궁극적으로 어떻게 전달되는지에 대한 더 많은 통제권을 가질 수 있다.