0. Review Discussion
0-1) 서킷스위칭 대비 패킷스위칭이 갖는 장점을 설명하시오.
서킷스위칭은 회선을 만들면 특정 사용자들이 점유해서 트래픽이 얼마나 발생하는지 상관 없이 call이 끝날 때까지 그 링크를 점유합니다.
하지만 패킷 스위칭은 특정 사용자가 특정 링크를 점유하지 않아서 링크에서 수용할 수 있는 유저 수가 훨씬 더 많습니다.
0-2) 서킷스위칭이 가질 수 있는 장점은 무엇일까요?
회선을 확보 못 받으면 서비스를 못받는 것이지만, 회선을 확보하고하면 서비스 이용할 때 안정적으로 사용할 수 있습니다.
0-3) 패킷 스위칭의 단점을 무엇일까요?
너도나도 트래픽을 과도하게 발생시키면, 네트워크가 감당할 수 있는 트래픽 이상의 트래픽이 발생합니다.
이런 부분을 잘 제어해주지 못하면 네트워크가 과부하가 생기며 많은 트래픽들이 손실이나거나 딜레이가 늘어나게 됩니다.
0-4) 서킷 스위칭에서 발생할 수 있는 지연의 종류는?
1) call setup delay : 회선을 만드는 시간
2) propagation delay : set up된 회선을 따라서 쭉 전송이 되는 데 발생하는 시간
3) end to end delay : 연결을 해지하는 시간
0-5) 패킷스위칭에서 발생하는 지연의 종류는?
1) processing delay : 라우터에 패킷이 들어오면, 라우터는 패킷의 헤더를 본 후 ip주소를 읽어들이고, 어떤 output link로 포워딩할지를 결정합니다.
- 서킷 스위칭은 전용 회선을 만들기 때문에 필요 없습니다.
2) queuing delay : 포워딩되면 바로 링크로 보내지는 것이 아니고, 나보다 먼저 와서 링크로 전달되는 것을 기다리는 패킷들에겐 큐잉딜레이가 생깁니다.
3) transmission delay : 자신의 차례가 오면 link로 밀어넣습니다. 링크 capacity와 패킷 사이즈에 결정되는 시간입니다.
4) propagation delay : 전파 형태로 데이터가 빛의 속도로 전달되는데, 링크 거리가 멀면 무시할 수 없는 지연 시간이 있습니다. 전파가 거리에 따라서 걸리는 시간입니다.
지난 시간 마지막에 배웠던 Throughput에 대해
좀 더 자세하게 배우는 시간을 가졌습니다 : )
1. Throughput
sender와 receiver 사이에서 전송될 수 있는 비트의 속도를 말합니다.
단위는 초당 얼마만큼의 비트를 전송할 수 있느냐를 나타내는 bps입니다.
1-1. instantaneous VS average
Throughput을 순간적으로 측정하는 instantaneous Throughput이 있고,
일정 기간 동안에 발생하는 Throughput을 averaging 하는 average Throughput이 있습니다.
1-2. bottleneck link
throughput을 결정할 때 link capacity가 중요합니다.
서버가 클라이언트까지 데이터가 전달될 때 수 많은 링크의 종류와 라우터들을 만나게 되는데요.
링크마다 capacity가 다를 겁니다.
이 때 가장 작은 속도를 가진 링크가 end to end throughput을 결정짓게 되는데, 그 링크를 bottleneck link라고 부릅니다.
위 그림의 경우는 Rs가 보틀넥 링크가 됩니다.
예시) 위는 서버 아래는 클라이언트 입니다. 서버에서 클라이언트까지 end to end throughput은 bottleneck link에 의해서 결정이 됩니다.
중간에 있는 core network는 10명이서 나눠갖는다고 가정하면, 한 커넥션 당 R의 속도/10을 가져갑니다.
access link(core network에서 클라이언트까지)를 Rc, server에서 core network까지 속도를 Rs라고 가정합니다.
여기서 보틀넥 링크는 min(Rc, Rs, R/10)로 가장 작은 값을 리턴받습니다.
practical system에서는 엑세스 단을 제외한 core network를 백본 네트워크라고 합니다. 10명이서 속도를 나눈다고 가정을 해도 굉장히 속도가 빠르다고 가정하는 곳 입니다. 물론 미래에 백본 네트워크가 증설이 안되면 보틀넥 네트워크가 될 수 있는 가능성은 있습니다.
실제 보틀넥이 자주 발생하는 링크는 현실세계에선 Rc, Rs 링크가 되는 경우가 많습니다.
2. Protocol Layer
네트워크는 complex한 시스템 입니다. 구성하고 있는 요소들이 매우 다양하죠.
예를 들어 네트워크는 host라고 하는 end system으로 구성되어 있고, 그 중간에는 라우터나 스위치라는 네트워크 장비들로 구성이 되어있고, 여러 노드들을 잇는 다양한 종류의 링크들로 구성이 되어 있습니다.
다양한 장비와 링크 사이에서 데이터를 효과적으로 전달하기 위한 다양한 프로토콜도 필요로 합니다.
그리고 이런 것들을 구현하기 위한 하드웨어와 소프트웨어로 구성이 되어 있습니다.
복잡한 네트워크를 어떻게 구성하면 효율적으로 운영할 수 있을지 계속 고민하고 연구하며, 인터넷이 생겼고, 인터넷에서 사용되는 서비스는 계속 진화하고 있습니다. 네트워크를 한 번 설계하면 끝이 아니고, 네트워크에서 사용되는 어플리케이션이 계속 진화하니까 어플리케이션을 효율적으로 전달하기 위한 네트워크도 그에 맞춰 진화해야 합니다.
2-1. Layering 예시 : 편지보내는 시나리오
Sender : 편지쓰고 봉투 넣고 메일 박스에 편지를 넣는다 -> 메일박스로 부터 우체국으로 편지가 전달된다 -> 우체국에서 캐리어에 의해서 수신자가 사는 근처에 있는 우체국으로 전달된다
수신자 우체국 배송
Receiver : 수신자 우체국으로 배달되었다 -> 메일박스로 옮겨진다 -> 리시버가 확인하고, 편지봉투를 뜯고 편지를 읽는다
편지를 보내는 시스템만 생각하더라고 각 서비스가 계층화 되어서 모듈화 된 것을 알 수 있습니다.
이와 같이 네트워크에서도 다양한 서비스가 레이어링되서 서로 유기적으로 소통하면서 데이터 전달이 이루어지게 됩니다.
2-2. Layering 예시 : 비행기 탈 때
서비스가 복잡하면 복잡해질수록 서비스별로 모듈화하고 레이어링하는 일이 complex한 시스템을 운영하는데 중요하다는 것을 알 수 있습니다. 모듈 단위로 레이어링 하는 것이 중요합니다.
그렇다면 왜 레이어링을 해야할까요?
굉장히 서비스가 다양한 것들이 묶여서 일어나는 시스템을 구축할 때는 한 꺼번에 설계하고, 구현하면 디버깅과 유지보수가 어렵게 됩니다. 그래서 최대한 모듈 단위로 단순화하고, 모듈화하기 위해서 레이어링을 하게 됩니다.
즉, 유지보수에 좋고, 시스템 업데이트하기가 좋습니다.
레이어 서비스에 변화를 주고 싶을 때 상/하위 레이어에 영향을 주지 않고, 변화를 줄 수 있어서 시스템을 효과적으로 업데이트 할 수 있습니다.
예 ) 게이트 입장 할 때 FCFS로 구현을 했지만, 실제 운영을 하다보니 몸이 불편하신 분이나 퍼스트 클래스 손님을 먼저 받고 싶게 되었습니다. 그래서 규칙을 바꾸게 됩니다. Priority order로 말이죠.
이 때 gate부분만 집중해서 서비스를 바꾸면 됩니다. 다른 부분은 신경 쓸 필요가 없습니다.
때문에 레이어, 모듈화를 해놓으면, 특정 레이어만 업데이트를 하는 것이 정말 편해집니다.
때문에 네트워크 계층도 스택구조로 레이어링을 채택했습니다.
3. ISO 7 Layer -> 5 Layer
옛날에는 presentation, session 레이어를 포함해서 7 레이어 계층이 일반적이었으나 현재는 application 계층에 묶여서 5계층으로 이야기한다고 합니다. 1년 전 정보처리 기사 딸 때만 해도 7계층으로 배웠던 것 같은데 말이죠 : )
3-1. 레이어링 방식
각각의 레이어는 위 계층으로 부터 데이터를 받습니다. 위 계층에서 데이터를 받으면 새로운 데이터를 생성하기 위해 헤더를 붙이게 됩니다. 헤더를 붙인 다음에 아래 계층으로 내려주는 형식 입니다.
M이 실제 수신자에게 주고 싶은 메세지 입니다. 패킷 스위칭 네트워크에서는 메세지가 잘 전달되기 위해서 여러개의 헤더정보가 붙습니다. 때문에 각 계층에 필요한 헤더 정보들이 붙게 됩니다.
transport layer : 포트 정보
netwokk : ip 주소 정보
link layer : MAC Address 정보
그 밖에도 정말 많은 정보가 붙습니다. 그리고 physical layer을 통해서 목적지까지 전달이 됩니다.
예)
실제 전달하고 싶고 받고 싶은 것은 편지의 내용입니다. 편지를 작성하기 위해선 편지봉투와 우표를 사야하고, 목적지로 보내야 됩니다. 그리고 수신자가 편지를 받으면 편지 봉투를 뜯어 내용을 확인할 겁니다.
즉, 우표랑 편지봉투는 overhead가 됩니다.
이와 같은 원리로 레이어링이 진행되는 겁니다.
3-2. 레이어링 방식 : 각 계층마다 레이어를 부르는 이름
application : message
transport : segment
network : datagram
link : frame
3-3. 레이어링 방식 : Encapsulation
같은 네트워크 장비 안에 있을 땐 스위치를 만나고 벗어나게 되면 라우터를 만나게 됩니다.
메세지에 헤더를 붙이는 과정을 Encapsulation이라고 합니다.
4. ISP ( Internet Service Provider)
각각의 end system은 인터넷에 연결이 되는데, access Internet Service Providers(ISPs)에 의해서 접속이 됩니다.
즉 ISP란 인터넷에 접속할 때 가장 종단의 네트워크를 제공하는 서비스 프로바이더 입니다.
스마트폰 가지고 가장 종단에 붙을 수 있게 해주는 것이 무엇일까요?
스마트폰으로 인터넷을 할 때 우리는 통신사 기지국(3G, 4G, 5G...)에 붙습니다. 기지국을 제공하는 업체는 KT, SKT, LG U+가 될 것 입니다. 이런 업체들은 ISP라고 합니다.
+plus
SKT는 기지국만 있는데, 어떻게 core network에 접속할 수 있을까요?
인터넷이 연결되려면 core network 라우터에 물려야 인터넷으로 다 연결이됩니다.
근데 SKT, LG U+는 코어 네트워크에 물리는 라우터가 없습니다.
그들은 KT 회선을 이용합니다. 실제 우리나라에서 인터넷에 연결시키는 유선 백본을 가지고 있는 회사는 KT 밖에 없습니다.
그리고 LG U+나 SKT는 무선 통신이 떠오르면서 무선 통신 사업에만 뛰어드는 사업장 입니다.
무선 기지국을 전국 단위로 깔면서 무선 통신 가지고서 가입자들을 끌어 모으는 경쟁이 붙었습니다. (정부 허가 KT독점 방지)
경쟁이 있을수록 요금도 낮아지고, 사용자 입장에서 서비스 퀄리티가 높아져서 좋기 때문입니다.
그렇다면 KT는 경쟁사에 왜 유선 백본망을 빌려줄까요?
원래 KT는 사기업이 아닌 국가기관이었습니다. KT가 국영기관이었을 때 정부 세금을 가지고 KT를 운영했습니다. 떄문에 정부 세금을 가지고 유선 백본을 쫙 깐 것입니다. 그 후 여러가지 이유에 의해서 민영기업이 된 후 정부 세금으로 만든 유선 백본을 혼자 쓴다는 것은 불공평한 일입니다. 때문에 정부에서 3사가 공유해서 쓰도록 가이드라인을 제공하게 된 것입니다.
유선망을 계속 유지보수하면 돈이 들기 때문에 공짜로 공유할 순 없고, KT가 사용료는 받지만, 3사가 회선을 공유하도록 했습니다. 대신 KT가 유지보수를 진행합니다.
즉, KT 백본에 문제가 생기면 전국에 문제가 생기게 되는겁니다 : )
인터넷을 구성하는 구조는 나라마다 달라서 공식화가 어렵습니다.
한 나라가 존재할 때 수많은 access network가 존재할 수 있고, 그 엑세스 네트워크를 어떻게 연결할 수 있을까 생각하게 된다면...
1) Mash : complex fee(회선 비용)가 너무 많이 들게 됩니다. so 불가능합니다.
2) access network를 연결하는 서비스 프로바이더가 있습니다.
access network : 3사 ( SKT, KT, LG U+)
백본 네트워크 : KT
미국처럼 땅이 큰 나라는 미국 전체를 하나의 서비스 프로바이더, 백본을 전체가 공유할 수 없습니다.
때문에 각 지역마다 서비스 프로바이더가 구분되서 있을 수 있습니다.
서비스 프로바이더들이 연결되면서 인터넷을 하나로 연결시키고 있습니다. 이게 하나라도 끊어지면 섬이 됩니다. 섬이 되지 않게 서비스 프로바이더들끼리 연결을 시키게 됩니다. 특정 지역에서는 어떤 지역 네트워크가 존재할 수 있습니다.
4-1. Content provider network
컨텐트 프로바이더들이 따로 네트워크를 구축하는 경우가 있습니다.
예를 들면, 넷플릭스는 자신들의 컨텐츠가 잘 유통되도록 자신들의 content provider network를 따로 구축했습니다.
구글도 유튜브가 잘 구축되기 위해서 유튜브만을 위한 네트워크를 구축해 인터넷에 붙여 사용중입니다.
4-2. access service provider
엑세스만 제공하는 업체를 말합니다.
3G, 4G, 5G 나 이더넷으로 접속하는 것, regional ISP가 있을 수 있습니다.
또한 regional ISP를 서로 결합시켜 더욱 크게 구축되게 할 수도 있습니다.
또 regional ISP를 관리하는 퍼스트 티어 ISP가 있을 수 있습니다.
또 퍼스트 티어 ISP가 다른 퍼스트와 연결되어 네트워크를 연결시킬 수 있습니다.
별도로 구글은 자신들의 서버를 연결시킨 네트워크 서비스를 따로 구축합니다.
이 네트워크를 ISP에 붙이기도 합니다.
Tier 1 ISP : Sprint(미국), AT&T, NTT
content provider network : 구글 - 자신들의 컨텐츠를 효과적으로 전세계에 유통하기 위해선 인터넷 서비스 프로바이더에 네트워크를 유지하면 퀄리티가 보장이 잘 안되기 때문에 자신들이 퀄리티를 보장하기 위해서 자신들의 네트워크를 구성한 다음에 엑세스 네트워크만 빌리는 형태로 서비스를 운영합니다.
+plus : 구글, 넷플릭스
구글이나 넷플릭스 같은 데서 하도 네트워크를 확장하다보니까 access service provider까지 제공하는거 아니냐라는 이야기가 있었습니다.
+plus : 테슬라
테슬라 자동차의 주요한 기능은 자율 주행입니다. 자율주행은 소프트웨어에 의해서 돌아가기 때문에 실시간으로 업데이트를 잘 해주어야 합니다. 여기엔 5G와 같은 초고속 네트워크가 반드시 필요하게 됩니다.
문제는 테슬라 입장에서 네트워크란 자신들의 관할이 아니기 때문에 각 나라마다 통신사들도 다르고 통신사에 보장하는 품질도 다른데, 자신들의 자율주행 기능에 안좋은 영향을 미치면 어찌보면 사용자의 불만을 통신사가 아닌 테슬라한테 올 수도 있습니다.
결국 테슬라에서 안정적인 주행을 달성하려면 통신 네트워크가 뒷받침 되어야하는데 이를 위해 테슬라 역시도 전세계 엑세스 인터넷 서비스 프로바이더로 진출하는 것 아니냐는 이야기가 있다고 합니다.
5. Network Security
네트워크가 발전하면서 나온 하나의 이슈가 Security 입니다.
네트워크 설계 관점에서는 다루기 꺼려하는 주제입니다.
네트워킹을 설계한 사람들은 네트워크 속도를 어떻게 올릴까냐에 집중하기도 바쁘기 때문입니다.
하지만 서로 네트워킹이 되다보니 정보가 공유되고 있습니다.
때문에 보안 문제가 등장할 수 밖에 없습니다.
해커나 악의적인 사용자가 몰래 데이터를 훔쳐본다든지 네트워크를 마비시킨다는 등의 어택이 발생할 수 있는데, 이런 문제들을 해결하려면 Security 관점에서 방어적인 알고리즘이 네트워크에 들어가야 합니다.
하지만 Security 관점에서 방어적인 알고리즘이 들어가면 Complex가 늘어납니다. 이말은 즉슨 네트워크가 느려집니다. 완전 모순이죠.
5-1. Network Security 란?
어떻게 나쁜 사람이 컴퓨터 네트워크를 공격할 수 있는지 공격 원리에 대해 살펴보고, 이렇게 어택으로부터 어떻게 보호할 수 있고, 공격으로부터 강경한 네트워크를 설계할 수 있을까를 고민하는 분야입니다.
인터넷이라는 건 애초에 Security를 전혀 고려하지 않고 설계되었습니다. 인터넷이 연구될 때만 해도 개인 pc가 보급되기 전이라 전 세계가 인터넷으로 연결될거라 생각하고서 프로토콜이나 네트워크 아키텍처가 설계된게 아니라 실험실 단위로 조직 단위로 컴퓨터들을 서로 연결하기 위한 목적으로 네트워킹 기술이 만들어 진 것 입니다.
5-2. Malware?
공격자는 컴퓨터에 Malware을 심게되는데, Malware는 host 안에서 바이러스, 웜 같은 것들을 퍼뜨립니다.
virus : 일반적으로 어떤 오브젝트를 닫고, 실행하면 감염이 됩니다.
worm : 어떤 오브젝트르 받기만 하면 실행이 되면서 점점 스스로 감염되게끔 만드는 형태입니다.
감염된 PC들은 감염된 줄 모르고, 웜이나 바이러스가 지시하는 명령을 수행하게 됩니다.
키보드로 어떤 것을 치는지 입력을 수집하고, 어느 웹사이트를 방문했는지 수집한다든지 개인정보를 수집하기도 합니다.
감염된 host들은 자신들의 본넷에 동록시키기도 합니다. 그 후 자신들의 명령을 수행하게끔 시킵니다. 내 컴퓨터는 나몰래 다른 일을 하고 있는 셈이죠.
5-3. 디도스 어택
디도스 어택은 Denaial of Service의 약자입니다.
어태커가 어떤 보거스 트래픽을 발생시키게해서 공격 대상이 되는 특정 서버를 다운되게 만듭니다.
공격 대상이 되는 서버가 보거스 트래픽을 발생하면 보거스 트래픽을 처리하려고 합니다. 그러면 처리하려고 하는데 리소스가 잡히게 되는 거니까 정작 중요한 리소스를 처리하지도 못한 채 다운됩니다.
예) 은행의 서버에 디도스 어택을 하면 은행 서버에 보거스 트래픽을 발생시켜 정작 중요한 일을 못하게하고, 보거스 트래픽 처리하다 뻗게 만드는 것입니다. 금융 시스템이 붕괴되겠죠. 이를 위해 은행에선 서버들을 여러개 미러링해서 하나가 죽으면 하나가 백업할 수 있도록 3차까지 미러링을 해놓고, 네트워크도 물리적으로 분리해둔다고 합니다.
5-4. 스니핑 (sniffing)
스니핑이란 브로드캐스트미디어(WiFi...)에서 진행됩니다. 와이파이에 임팩트된 bad guy가 사용자가 발생한 트래픽을 엿듣는 것입니다. 온라인 뱅킹을 할 때 중요한 정보들을 엿듣고 개인 정보를 빼내는 공격을 합니다.
예) 카페의 퍼블릭 와이파이 이런 바이러스를 심어놓는 사람들이 있다고 합니다.
5-5. IP 스푸핑(spoofing)
스푸핑이란 서버에 패킷을 보낼 때 소스 address를 바꿔 보내는 것을 말합니다. 페이커 어드레스를 이용해서 공격합니다.
자신의 소스는 C인데, 마치 B인 것 처럼 B가 보내는 패킷으로 오해하게끔 패킷을 보내서 서버가 잘못된 처리를 유도합니다.
오늘 리뷰 디스커션에서 서킷 딜레이의 종류에 대해
자세히 말하지 못해 후회가 되는 날이었습니다 : ) 주륵
다음엔 더 열심히 해야겠습니다!