Post

컴퓨터 네트워크와 인터넷

인터넷이란 무엇인가?

패킷



송신 호스트에서 수신 호스트로 보내는 데이터가 있을 때, 송신 호스트는 그 데이터를 세그먼트(segment)로 나누고 각 세그먼트에 헤더(header)를 붙이는데 이를 패킷이라 함.



패킷 스위치



패킷 스위치는 입력 통신 링크의 하나로 도착하는 패킷을 받아서 출력 통신 링크의 하나로 그 패킷을 전달.

패킷 스위치 형태는 대표적으로 라우터(router)링크 계층 스위치(link-layer switch)가 있음.

링크 계층 스위치는 보통 액세스 네트워크(access network)에서 사용되고, 라우터는 네트워크 코어에서 사용됨.



ISP(Internet Service Provider)



end systemISP를 통해서 인터넷에 접속함.

ISP는 패킷 스위치와 통신 링크로 이루어진 네트워크임.

인터넷은 end system을 서로 연결하는 것이므로 end system에 접속을 제공하는 ISP들도 서로 연결되어야만 함.






네트워크의 가장자리

end system(호스트)



end system은 클라이언트 프로그램, 서버 프로그램 등의 애플리케이션을 수행하므로 호스트(host)라고도 불림.



Access network



액세스 네트워크는 end system을 그 end system으로부터 다른 먼 거리의 end system까지의 경로상에 있는 첫 번째 라우터에 연결하는 네트워크를 뜻함.

간단하게 대표적으로 유선으로는 랜선과 무선으로는 와이파이가 있음.


  • 가정 접속 : DSL, 케이블, FTTH, 다이얼-업, 위성

  • 기업 접속 : 이더넷, 와이파이

  • 광격 무선 접속 : 3G, LTE



physical media(물리 매체)



한 호스트에서 여러 링크와 라우터를 거쳐 다른 호스트로 비트를 전송하는데, 이 때 비트는 일련의 송신기-수신기 쌍을 거침.

송신기-수신기 쌍에 대해, 이 비트는 물리 매체 상에 전자파나 광 펄스를 전파하여 전송함.

  • ex) 꼬임쌍선, 동축케이블, 다중모드 광섬유 케이블, 지상파, 위성파 등이 있음.


물리 매체는 두 부류가 있는데 유도 매체(guided media)비유도 매체(unguided media) 가 있음.

  • 유도 매체는 광섬유 케이블, 꼬임쌍선, 동축케이블과 같은 견고한 매체를 따라 파형을 유도함.

  • 비유도 매체는 무선 LAN 혹은 디지털 위성채널의 경우처럼 대기와 야외 공간으로 파형 전파.






네트워크 코어

패킷 교환



패킷은 링크의 최대 전송 속도와 같은 속도로 각각의 통신 링크상에서 전송됨.

따라서 송신 호스트 혹은 패킷 스위치가 R bits/sec의 속도로 링크상에서 L bits의 패킷을 송신 시, 그 패킷을 전송하는데 걸리는 시간은 L/R초이다.



저장-후-전달(store-and-forward transmission)



대부분의 패킷 스위치는 저장-후-전달 전송 방식(store-and-forward transmission)을 이용.

Src에서 Router로 첫 번째 패킷을 전송 시, 라우터로 첫 번째 패킷이 완전히 도착하기 전까지는 라우터에 도착한 첫 번째 패킷의 비트들을 다음 노드로 전송하지 않는다는 것임.


Src ---- Router ---- Dest 가 있을 때,

송신 호스트에서 패킷을 송신하기 시작해서 전체 패킷을 수신 호스트에서 수신할 때까지 경과된 시간은 다음과 같음.
Src와 Dest 사이에 N개의 링크로 구성되고, 각각은 R 전송속도라고 할 때, L bits의 P개의 패킷을 보내는 경우 N*(P*(L/R))



전달 테이블과 라우팅 프로토콜



  • » 전달 테이블이란? «

    인터넷에서 모든 호스트는 IP를 가지는데 송신 호스트가 패킷을 수신 호스트로 전송 시, 송신 호스트는 패킷의 헤더에 목적지의 IP 주소를 포함함.

    패킷이 네트워크의 한 라우터에 도착하면, 라우터는 패킷의 목적지 주소의 일부를 조사, 그 패킷을 이웃 라우터로 전달함.

    각 라우터는 목적지 주소를 라우터의 출력 링크로 맵핑하는 전달 테이블을 갖고 있는데, 패킷이 라우터에 도착하면 라우터는 올바른 출력 링크를 찾기 위해 패킷의 헤더에 쓰인 목적지 주소를 조사하고 이 목적지 주소를 이용하여 전달 테이블을 검색함.

    그 후 라우터는 그 패킷을 출력 링크로 보냄.



  • » 라우팅 프로토콜이란? «

    인터넷은 자동으로 전달 테이블을 설정하기 위해 이용되는 여러 특별한 라우팅 프로토콜을 가짐.

    라우팅 프로토콜은 각 라우터로부터 각 목적지까지의 최단 경로를 결정하고 라우터에 전달 테이블을 설정하는데 이 최단 경로 결과를 이용함.



회선교환과 패킷교환



링크와 스위치의 네트워크를 통해 데이터를 이동시키는 방식에는 회선교환패킷교환이라는 두 가지 기본 방식이 있음.


  • 회선 교환 (circuit switching)

    • end system 간에 통신을 제공하기 위해 경로상에 필요한 자원(버퍼, 링크 전송률)은 통신 세션 동안에 확보 또는 예약됨.

    • 대표적인 예로 전화망이 있음.

    • 송신자가 정보를 보내기 전 네트워크는 송-수신자 간에 연결을 설정해야 하므로 송-수신자 간의 경로에 있는 스위치들이 해당 연결 상태를 유지해야 연결이 되는데, 이 연결을 전기통신 용어로 회선(circuit)이라 함.

    • 네트워크가 회선을 설정할 때, 그 연결이 이루어지는 동안 네트워크 링크(각 링크의 전송 용량의 일부를 나타냄) 에 일정한 전송률 예약함으로서 송신자는 수신자에게 보장된 일정 전송률로 데이터를 전송할 수 있음.


  • 패킷 교환 (packet switching)

    • 자원을 예약하지 않음, 세션 메시지는 on-demand 방식으로 자원 요청 후 사용하고 그 결과 통신 링크에 대한 접속을 위해 큐에서 대기할 수도 있음.

    • circuit switching보단 packet switching이 더 효율적임.

      • 두 방식의 차이점은 회선 교환은 요구에 관계없이 미리 전송 링크의 사용을 할당하지만 패킷 교환은 요구 시에 할당하므로 더 효율적이라는 것.



네트워크의 네트워크



end system이 인터넷을 사용하려면 접속 ISP와 연결되어야 하며 종단 시스템 간의 통신을 하기 위해선 접속 ISP들 간의 연결이 필수적임.

이를 위해서 네트워크의 네트워크가 탄생하게 되었음.


여러 해에 걸쳐 인터넷을 형성하고 있는 네트워크의 네트워크는 매우 복잡한 구조로 진화되었음.

이러한 진화의 목표는 모든 종단 시스템이 서로에게 패킷을 보낼 수 있도록 접속 ISP를 연결하는 것임.



네트워크 Ⅰ



첫 번째 네트워크 구조는 모든 접속 ISP들을 하나의 글로벌 통과(transit) ISP와 연결하는 것임.

글로벌 transit ISP는 라우터와 전 세계에 이르고, 적어도 수십만 개의 접속 ISP와 가까운 곳에 있는 라우터를 갖는 통신 링크의 네트워크임.

물론 글로벌 ISP는 매우 많은 비용이 들며 이익을 얻기 위해 접속 ISP들에게 연결을 위한 비용을 청구할 것이며 비용은 트래픽의 양을 반영함.

따라서 접속 ISP는 글로벌 ISP에게 비용을 지불하기 때문에 고객이 되며, 글로벌 ISP는 제공자가 됨.



네트워크 Ⅱ



두 번째 네트워크 구조는 수십만 개의 접속 ISP와 다중의 글로벌 ISP로 구성되는 것임.

첫 번째 구조에서 수익을 내는 글로벌 ISP를 따라 다른 여러 회사에서 글로벌 ISP를 구축하여 경쟁하는 것은 자연스러운 현상임.

접속 ISP는 두 번째 구조를 선호하게 되는데, 글로벌 ISP 간의 경쟁으로 인한 비용 절감 때문임.

단, 이런 구조에서는 글로벌 ISP 간의 연결이 되어야만 하는데 그렇지 않으면 다른 글로벌 ISP에 연결된 접속 ISP는 다른 글로벌 ISP에 연결된 접속 ISP와 통신이 불가능함.


2번 구조에는 상위층에 글로벌 ISP가 있고, 하위층에 접속 ISP가 있는 형태의 2-계층구조임.

이는 글로벌 ISP가 모든 접속 ISP에 가깝게 도달할 수 있을 뿐만 아니라 경제적으로도 바람직하다는 것을 가정하고 있음.



네트워크 Ⅲ



전 세계 모든 도시에 글로벌 ISP가 존재하진 않음.

대신에 그 지역에 있는 접속 ISP들이 연결하는 지역 ISP가 있음.

각 지역 ISP는 1-계층 ISP(글로벌 ISP와 유사)와 연결됨.

즉, 여러 경쟁적인 1-계층 ISP들 뿐만 아니라, 한 지역에 여러 경쟁적인 지역 ISP들이 있음.

이런 계층 구조에서 각 접속 ISP는 자신이 연결하는 지역 ISP에게 요금을 지불(또는 직접 1-계층 ISP와 연결하여 지불)하고, 지역 ISP는 자신이 연결하는 1-계층 ISP에 비용을 지불함.

따라서 계층 구조의 각 계층에 고객-제공자 관계가 있음.

1-계층 ISP는 계층구조의 최상위에 있으므로 제공자 역할만 하며 비용을 지불하지 않음.


좀 더 복잡한 경우, 작은 지역 ISP들이 연결하는 보다 큰 지역 ISP들이 있을 수 있는데 이 땐 더 큰 지역 ISP가 1-계층 ISP와 연결됨.

예를 들어, 중국에서 각 도시에 접속 ISP가 있고 이들은 지방 ISP(작은 지역 ISP)에 연결되며, 다시 이들은 국가 ISP(큰 지역 ISP)에 연결되고 최종적으로 1-계층 ISP에 연결됨.

이를 네트워크 구조 3이라고 하며 이것이 오늘날의 인터넷과 대략적으로 유사함.



네트워크 Ⅳ



네트워크 구조 4는 3에서 PoP(Points of presence, 인터넷 접속점), multi-homing, peering, IXP(Internet exchange point, 인터넷 교환 지점)를 포함해야 함.

PoP는 최하위(접속 ISP) 계층을 제외하고 계층구조의 모든 계층에 존재함.

PoP는 단지 제공자의 네트워크 내에 있는(같은 위치에 존재하는) 하나 혹은 그 이상의 라우터 그룹이며, 여기에서 고객 ISP가 제공자 ISP에 연결될 수 있음.


1-계층 ISP를 제외한 모든 ISP는 멀티-홈, 즉 둘 혹은 그 이상의 제공자 ISP에 연결하도록 선택할 수 있음.

예를 들어, 한 접속 ISP가 2개의 지역 ISP들과 연결하거나 2개의 지역 ISP들과 같이 하나의 1-계층 ISP들과 직접 연결할 수 있음.

한 ISP가 멀티-홈을 하면 서비스 제공자 중 하나가 연결되지 않더라도 인터넷으로 패킷을 계속해서 송수신 할 수 있음.


고객 ISP는 글로벌 인터넷 연결성을 얻기 위해 서비스 제공 ISP에게 요금을 지불함.

고객 ISP가 서비스 제공 ISP에 지불하는 비용은 트래픽을 반영하는데 이 비용을 줄이기 위해, 인터넷 계층구조의 같은 계층에 있는 가까운 ISP들은 피어링할 수 있음.

즉, 이들 간에 송수신되는 모든 트래픽을 상위 계층 ISP를 통하지 않고 직접 송수신할 수 있도록 이들은 자신들의 네트워크를 서로 직접 연결할 수 있음.

두 ISP들이 서로 피어링하면 서로 요금을 지불하지 않음.

1-계층 ISP간의 피어링도 가능함.


제 삼의 회사가 IXP를 구축할 수 있으며, IXP는 다중의 ISP들이 서로 피어링할 수 있는 만남의 장소라고 할 수 있음.

현재 인터넷 상에는 400개 이상의 IXP들이 있으며 이러한 생태계를 네트워크 구조 4라고 함.



네트워크 Ⅴ



2012년의 인터넷의 구조는 네트워크 5라고 부르는데, 네트워크 구조 4 위에 콘텐트-제공자 네트워크(content-provider network)를 추가함으로써 구축함.

현재 구글이 이런 콘텐츠-제공자 네트워크를 주도하는 한 예임.

구글은 분산된 약 50~100개의 데이터 센터를 갖고 데이터 센터에는 최소 100대, 최대 10만 대 정도의 서버가 있음.

데이터 센터는 모두 구글의 사설 네트워크를 통해 연결되어 있는데 이는 공중 인터넷과 분리되어 있으며 중요한 점은 구글 사설 네트워크는 구글 서버로 오가는 트래픽만을 전달함.


네트워크 구조 5


위의 사진을 보면 구글 사설 네트워크는 하위 계층 ISP들과 피어링을 (직접 연결하거나 IXP에서 연결)함으로써 인터넷의 상위 계층을 우회하고 있음.

그러나 많은 접속 ISP들은 여전히 1-계층 네트워크를 통해서만 도달할 수 있기에 구글 네트워크(콘텐츠 제공자)도 1-계층 ISP들과 연결하고 그들과 교환하는 트래픽에 대해 비용을 지불함.


자신의 네트워크를 구축함으로써 콘텐츠 제공자들은 상위 계층 ISP들에게 지불하는 비용을 줄이며 최종 사용자들에게 자신들의 서비스가 궁극적으로 어떻게 전달되는지에 대한 많은 통제권을 가질 수 있음.






패킷 교환 네트워크에서의 지연, 손실과 처리율

패킷 교환 네트워크에서의 지연



패킷은 한 호스트에서 시작하여 여러 라우터들을 통과하여 목적지 호스트에 도착하는데, 패킷은 경로 상의 각 노드에서 다양한 지역을 겪게 됨.

이들 지연에서 중요한 것으로는 노드 처리 지연(nodal processing delay), 큐잉 지연(queuing delay), 전송 지연(transmission delay), 전파 지연(propagation delay)을 들 수 있으며, 이 지연들이 쌓여서 전체 노드 지연(total nodal delay)을 일으킴.


라우터 A에서의 노드 지연


한 패킷이 업스트림 노드로부터 라우터 A를 통해 라우터 B로 전달됨.

라우터 A에서의 노드 지연을 파악해보면 다음과 같음.


우선 라우터 A가 라우터 B에 이르는데 하나의 링크만을 가지는 것을 인지하고 이 링크 앞에 큐가 있음.

패킷이 업스트림 노드로부터 라우터 A에 도착하면, 라우터 A는 그 패킷에 대한 적당한 링크를 결정하기 위해 패킷 헤더를 조사하고, 선택된 링크로 그 패킷을 보냄.

패킷은 링크에 현재 전송되는 다른 패킷이 없고 큐에 자신보다 앞선 다른 패킷이 없다면 링크로 전송될 수 있으나, 만약 링크가 이미 이용 중이거나 큐에 대기하는 패킷이 있다면, 새로 도착하는 패킷은 큐에 들어감.


  • 처리 지연(process delay)
    • 라우터가 패킷 헤더를 조사하고 그 패킷을 어디로 보낼지를 결정하는 시간

    • 라우터로 패킷의 비트를 전송하면서 발생하는 패킷의 비트 수준 오류를 조사하는데 필요한 시간 등이 포함됨.

    • 고속 라우터에서의 처리 지연은 일반적으로 수 msec.


  • 큐잉 지연(queueing delay)

    • 큐에서 링크로 전송되기를 기다리면서 발생

    • 현실에서 큐잉 지연은 수 마이크로초에서 수 밀리초에 이름.


  • 전송 지연(transmission delay)

    • 패킷의 모든 비트를 링크로 밀어내는 데 필요한 시간임.

    • 패킷의 길이를 L bit, 전송률은 R bps라고 할 때, 전송 지연은 L/R임.


  • 전파 지연(propagation delay)

    • 비트가 송신 노드에서 수신 노드까지의 전파에 필요한 시간을 뜻함.

    • 전파 지연은 두 라우터 사이의 거리(d)를 전파속도(s)로 나눈 것 -> d/s


  • 전체 노드 지연(total nodal delay)

    • 위의 4가지 지연을 모두 합한 값


전송 지연과 전파 지연의 차이점

전송 지연은 라우터가 패킷을 내보내는데 필요한 시간이고, 전파 지연은 비트가 한 라우터에서 다음 라우터로 전파되는데 걸리는 시간임.



큐잉 지연(queuing delay)



언제 큐잉 지연이 크고 미미한가에 대한 이해는 트래픽에 대한 이해가 필요함.

  • a : 패킷이 큐에 도착하는 평균율 (패킷/초)

  • R : 전송률 즉, 패킷이 큐에서 밀려나는 비율 (비트/초)


모든 패킷이 L 비트라 할 때, 비트가 큐에 도착하는 평균율은 La 비트/초 임.


  • 트래픽 강도 (traffic intensity) : La/R, 큐잉 지연의 정도를 측정하는데 매우 중요함.

    • 큐에 비트가 들어오는 값을 비트가 큐에서 나가는 값으로 나눈 것.

    • La/R > 1 == La > R 일 때, 비트가 큐에 도착하는 평균율(La)이 비트가 큐에서 전송되는 비율을 초과함. 즉, 비트가 큐로 들어오는 값이 나가는 값보다 더 많음.


트래픽 강도가 0에 가까울수록 큐잉 지연이 0에 가까워짐.

평균 큐잉 지연의 트래픽 강도 의존성



패킷 손실(packet loss)



트래픽 강도가 1보다 클 때 (La > R), 큐에 패킷이 가득 차 있는 경우에는 패킷을 저장할 수 없으므로 라우터는 이런 경우에 패킷을 버림.

손실 패킷의 비율은 트래픽 강도가 클수록 증가하며, 노드에서의 성능은 흔히 지연뿐 아니라 패킷 손실 확률로도 측정하기도 함.

손실 패킷은 모든 데이터가 궁극적으로 출발지에서 목적지까지 전달되었음을 보장하기 위해 종단간에 재전송될 수 있음.



종단간 지연



출발지 호스트와 목적지 호스트 사이에 N-1개의 라우터가 있다고 가정.

네트워크가 혼잡하지 않으며(큐잉 지연 무시 가능) 각 라우터와 출발지 호스트의 처리 지연은 d_proc

각 호스트와 출발지 호스트에서의 전송률은 R 비트/초이고, 각 링크에서의 전파 지연은 d_prop라고 가정.

종단간 지연은 다음과 같음.
d_end-end = N(d_proc + d_trans + d_prop)



컴퓨터 네트워크에서의 처리율(throughput)



컴퓨터 네트워크의 성능 수단은 지연, 패킷 손실 외에 종단간 처리율이 있음.


  • 순간적인 처리율(instantaneous throughput)

    • 수신 호스트가 파일을 수신하는 비율(비트/초)


  • 평균 처리율(average throughput)

    • 파일이 F비트로 구성, 수신 호스트가 파일을 완전히 수신하는데 걸린 시간이 T초일 때, 파일 전송의 평균 처리율은 F/T 비트/초


  • 종단간 처리율(서버-클라이언트 처리율)

    • 병목링크의 처리율 즉, min{Rs, Rc}임. 즉, 더 작은 전송률이 처리율이 됨.


만약 F 비트의 커다란 파일을 서버에서 클라이언트로 전송하는데 걸리는 시간은 근사값으로 F/min{Rs, Rc}임.






프로토콜 계층과 서비스 모델

계층구조



각 계층은 아래 계층과 연계하여 어떤 기능, 서비스를 구현함.

계층구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의할 수 있게 해줌.

이러한 단순화는 매우 중요함. 시스템이 계층구조를 가질 때, 그 계층이 제공하는 서비스의 구현을 변경하는 것도 매우 쉬움.



프로토콜 계층화



인터넷 프로토콜 스택은 5개의 계층으로 되어 있음.


image


  • 애플리케이션 계층

    • 네트워크 애플리케이션과 애플리케이션 계층 프로토콜(HTTP, SMTP, FTP 등)이 있는 곳.

    • 애플리케이션에서의 정보 패킷을 메시지(message)라고 함.


  • 트랜스포트 계층

    • 시스템 간의 투명한 데이터 전송 기능을 제공

    • 데이터 전송의 신뢰성을 보장하므로 상위 계층들이 데이터 전송에 신경 쓰지 않고 다른 것에 집중할 수 있게 함.

    • 클라이언트-서버 간에 애플리케이션 계층 메시지(message)를 전송하는 서비스 제공. TCP, UDP가 있음.

    • 트랜스포트 계층 패킷을 세그먼트(segment)라고 함.


  • 네트워크 계층

    • 7계층의 중간 부분에 위치해 하위 계층과 상위 계층을 잇는 역할을 함.

    • 송신 호스트에서 수신 호스트로 데이터그램(datagram)을 라우팅(전달)하는 역할을 함.

    • 네트워크 계층은 주소 지정과 라우팅 기능을 제공함. 대표적으로 IP 프로토콜과 라우팅 프로토콜이 있음.


  • 데이터 링크 계층

    • 링크 계층은 네트워크 계층에서 받은 데이터그램을 경로상의 다음 노드로 전달하는 역할을 함.

      즉, 두 지점 간의 실제 데이터 전송을 담당함. 대표적으로 이더넷, 와이파이 등이 있음.

    • 물리 계층이 비트 스트림을 전송하는 것과는 달리 데이터링크 계층은 에러 보장과 흐름 제어 같은 하이레벨 기능을 담당함.

    • 데이터그램은 경로상의 서로 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있음.

    • 네트워크 계층은 서로 다른 링크 계층 프로토콜로부터 다른 서비스를 제공받을 것임.

    • 데이터 링크 계층 패킷은 프레임(frame)이라 함.


  • 물리 계층

    • 두 지점 간의 물리적 연결을 담당하는 곳으로 가장 하위 계층이며 전기적 비트 스트림을 주고받는 역할을 담당함.

      즉, 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 역할을 함.

    • 비트 스트림 통신을 활성화하고 유지하며 비활성화하는 일도 담당함.


TCP/IP model



OSI 7계층은 애플리케이션 계층이 애플리케이션, 프레젠테이션, 세선 계층으로 세분화된 것.


  • 프레젠테이션 계층

    • 통신하는 애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스 제공.

      • 즉, 데이터를 특정한 문법이나 언어로 애플리케이션에게 제공하는 역할을 담당.
    • 이들 서비스는 데이터 기술뿐만 아니라 데이터 압축과 데이터 암호화를 포함함.

    • 데이터 기술은 애플리케이션이 데이터가 표현/저장되는 내부 포맷을 걱정하지 않아도 되게 해줌.


  • 세선 계층

    • 데이터 교환의 경계와 동기화 제공.

    • 네트워크 애플리케이션 간에 연결을 맺고 유지하는 일 담당.


image



데이터의 흐름을 정리하면 아래 그림과 같음.


image


송신 호스트에서 수신 호스트로 패킷을 전송하면, 애플리케이션 계층에서부터 시작해서 패킷 캡슐화를 거치며 물리 계층까지 가면, 물리 계층에서 케이블을 통해 라우터까지 전송됨.

라우터는 패킷의 상세한 내용에는 관심 없고, 네트워크 계층까지의 데이터만 검사한 뒤 라우터가 패킷을 인터넷으로 보내면 그 패킷은 다른 네트워크의 라우터에 도착함.

그리고 다른 네트워크의 라우터는 패킷을 최종 목적지에 도달할 수 있게 하는데 필요한 하위 계층 프로토콜 헤더를 붙여 패킷을 전송함.

목적지에 도달하면 역캡슐화를 하여 데이터를 수신하게 됨.






This post is licensed under CC BY 4.0 by the author.