목차
1.1 인터넷이란 무엇인가
1.2 네트워크의 가장자리
1.3 네트워크 코어
1.4 패킷 교환 네트워크
1.5 프로토콜 계층과 서비스 모델
1.6 공격받는 네트워크
1.7 컴퓨터 네트워킹과 인터넷의 역사
1.8 요약
1.1 인터넷이란 무엇인가
인터넷은 두가지 방법으로 정의할 수 있다. 구성 요소(하드웨어+소프트웨어)가 어떻게 되어있는지와 인프라 구조가 어떻게 구성되어있는지이다. 각 방법을 통해 인터넷이란 무엇인지 살펴보자.
인터넷 구성요소
인터넷은 스마트폰, 컴퓨터와 같은 장치를 연결하는 것이다. 이때 장치를 호스트 혹은 종단시스템(end system) - 호스트는 때때로 클라와 서버로 구분된다 - 이라고 부른다. 종단시스템은 통신 링크(Communication Link)와 패킷 스위치(Packet Switch) 의 네트워크로 연결된다. 각 연결은 물리적인 연결로 되어있고 데이터 전송속도(Transmission Rate)는 초당 비트 수를 의미하는 bps(bit per second) 단위를 이용한다. 송신자가 수신자에게 데이터를 보낼 때 데이터를 세그먼트 단위로 나누고 각 세그먼트에 헤더를 붙인 패킷을 만든다. 패킷은 목적지로 보내지고 도착한 곳에서 원래 데이터로 다시 조립된다.
종단 시스템은 ISP(Internet Service Provider) 를 통해 인터넷을 접속한다. 각 ISP는 패킷스위치와 통신링크로 이루어진 네트워크다. 종단시스템, ISP와 같은 구성요소들은 송수신을 제어하는 프로토콜을 수행한다. 특히 TCP(Transmission Control Protocol) 과 IP(Internet Protocol)은 인터넷에서 가장 중요한 프로토콜이다. (TCP가 궁금하다면 여기로) IP 프로토콜은 라우터와 종단 시스템 사이에서 송수신되는 패킷 포맷을 기술한다.
인프라 구조
애플리케이션에 서비스를 제공하는 인프라 구조 측면에서 인터넷을 살펴보자. 스마트폰, 컴퓨터 등은 서로 데이터를 교환하는 종단시스템이기 때문에 분산 애플리케이션(distributed application)이라 부른다. 여기서 목적지에게 데이터 전달을 요구하는 것을 명시하는 것이 소켓 인터페이스(Socket Interface)이다. 소켓 인터페이스는 송신프로그램이 따라야할 규칙의 집합이며 이 규칙에 따라 데이터를 목적지에 전달한다.
프로토콜이란 무엇인가?
웹 브라우저에서 URL을 입력하면 어떤 일이 발생할까? 먼저 컴퓨터가 연결 요청 메세지를 웹 서버에 보내고 응답을 기다린다. 웹 서버는 연결 요청 메시지를 받고, 연결 응답 메시지를 보낸다. 이제 웹 문서를 요청해도 좋다는 것을 확인하고 컴퓨터는 웹 서버에서 얻으려는 웹 페이지의 이름을 GET 메시지에 넣어서 노낸다. 마지막으로 웹 서버는 컴퓨터로 웹 페이지 내용을 전송한다. 이와 같은 규칙들이 프로토콜이다. 다시말해 프로토콜은 둘 이상 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라 메세지의 송수신과 다른 이벤트에 따른 행동을 정의한다.
1.2 네트워크 가장자리
기업과 대학 그리고 가정에서 Lan(local area network)은 일반적으로 종단 시스템을 가장자리 라우터에 연결하기 위해 사용된다. 여러 유형의 Lan 기술이 있지만 이더넷 기술이 가장 널리 사용되는 접속 기술이다.
1.3 네트워크 코어
패킷 교환
종단 시스템은 서로 메세지를 교환한다. 송신 시스템은 긴 메시지를 패킷이라고 하는 작은 데이터 덩어리로 분할한다. 대부분의 패킷 스위치는 저장-후-전달 전송(store-and-forward transmission) 방식을 이용한다. 패킷은 각각 비트로 구성된다. 저장(store) 후 전달 방식에 따라 라우터는 패킷의 비트를 저장한 후 라우터가 패킷의 모든 비트를 수신한 후에만 출령 링크로 그 패킷을 전송(forward)하기 시작한다.
각 패킷 스위치는 접속된 여러개 링크를 가지고 있다. 각 링크에 대해 패킷 스위치는 출력 버퍼를 갖고 있으며 그 링크로 송신하려고 하는 패킷을 저장하고 있다. 출력버퍼에 저장되어 있다 링크로 빠져나오게 되는데 이 과정에서 기다리는 시간을 큐잉 딜레이(queuing delay)를 겪게 된다. 만약 출력버퍼에 꽉차있는데 계속해서 들어오면 패킷손실(packet loass)이 발생한다.
회선 교환
링크와 스위치의 네트워크를 통해 데이터를 이동시키는 방식에는 회선 교환(Circuit Switching) 과 패킷 교환(Packet Switching)이라는 두 가지 기본방식이 있다. 회선 교환 네트워크에서 종단 시스템 간 통신을 제공하기 위해 경로상 필요한 자원(버퍼, 징크 전송률)은 통신 세션(session) 동안에 확보 또는 예약된다.
전통적인 전화망인 회선교환(Circuit Switching)은 송신자와 수신자간 연결이 설정되고 해당 연결 상태를 유지한다. 1대1로 연결되어 있기 때문에 일정한 전송률이 보장된다. 회선교환과 마찬가지로 패킷교환(Packet Switching)도 일련의 통신링크를 통해 전송되지만 링크 자원을 예약하지 않고 네트워크로 보내진다. 만약 링크가 혼잡하다면 패킷은 송신쪽 버퍼에서 기다려야하고 지연이 발생한다. 따라서 일정 시간 내에 데이터를 전달하는 것을 보장할 수 없다.
패킷 교환 옹호자들은 회선 교환의 경우 할당된 회선이 비활용 기간(silent period) 에는 놀게되므로 낭비라고 계속 주장했다. 또한 패킷 교환 옹호론자들은 회선 교환에서 종단간 회선을 설정하고 대역폭을 보존하는 것이 복잡하고 경로에 있는 스위치들 사이의 운영을 조절하는 복잡한 신로 소프트웨어가 필요하다고 지적했다.
1.4 패킷 교환 네트워크에서의 지연
패킷은 경로에 따라 한 노드(호스트 혹은 라우터)에서 다음 노드로 전달되므로 경로 상 다양한 지연을 겪게 된다. - 노드 처리 지연(node processing delay), 큐잉 지연(queuing delay), 전송지연(transmission delay), 전파 지연(propgation delay) 이 있으며 이러한 딜레이들이 쌓여서 전체 노드 지연(total node delay)을 일으킨다.
처리지연(Processing Delay)은 패킷 헤더를 들여다보고 패킷을 어디로 보낼지 결정하는 시간이다.
큐잉지연(Queueing Delay)는 큐에서 링크로 전송되기를 버퍼에서 기다리는 시간이다.
전송지연(Transmission Delay)는 비트들을 기다리는 시간이으로 패킷은 앞서 도착한 다른 모든 패킷들이 전송된 다음에 전송된다
전파지연(Propagation Delay)는 링크를 통과하는데 걸리는 시간으로 빛의 속도에 거의 가깝다.
비트를 유체(fluid)로 통신링크를 파이프(pipe)로 생각할 수 있다. 따라서 통신링크에 따라 비트 처리율이 달라지는 데 이를 기술적으로 병목링크(bottle neck link)의 전송률이 처리율이된다고 한다.
1.5 프로토콜 계층과 서비스 모델
복잡한 시스템을 다루는 방법은 여러 레이어로 나누어 역할을 부여해 다루는 것이다. 네트워크의 각 계층은 아래 계층과 연계하여 어떤 기능, 서비스를 구현한다. 네트워크 설계자는 프로토콜을 계층(layer)으로 조직한다. 한 계층은 상위 계층에 제공하느 서비스에 관심을 갖게되고 이것을 계층의 서비스 모델(service model)이라고 한다. 그리고 다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(protocol stack)이라고 부른다.
애플리케이션 계층은 HTTP(웹 문서 요청/전송), SMTP(전자메일 전송), FTP(종단간 파일 전송) 같은 많은 프로토콜을 포함한다. 애플리케이션 계층 프로토콜은 여러 종단 시스템에 분산되어 있어서 다른 종단 시스템에 있는 애플리케이션과 정보 패킷을 교환하는데 이 프로토콜을 사용한다. 그리고 이러한 애플리케이션 레이어의 정보 패킷을 메시지(message)라고 부른다.
'Computer Science > Network' 카테고리의 다른 글
무선 이동 네트워크 (0) | 2024.05.20 |
---|---|
링크 계층 (2) | 2024.05.14 |
네트워크 계층 (0) | 2024.05.09 |
전송 계층 (0) | 2024.05.05 |