네트워크 - 시작에 앞서

yuseok heo·2024년 7월 5일

네트워크

목록 보기
1/2

Computer Networking: A Top-Down Approach 8th Edition
을 참조해서 기록하는 내용입니다.

프로토콜이란?

프로토콜은 둘 이상의 통신주체 사이에 교환되는 메세지의 순서와 메세지의 형식, 메세지의 발신/수신(또는 다른 이벤트들) 시에 발생하는 행동들을 정의한 것.

예를 들어서 특정한 웹페이지에 접근하려고 할 때
1. 웹페이지에 접근수락을 요청함
2. 수락을 응답받음 (혹은 거절하거나 무응답이 발생할 수도 있음)
3. 응답받으면 웹페이지에 관련된 파일들을 요청함
4. 요청받은 파일을 발신/수신함

과 같은 일련의 과정들을 정의한 것을 프로토콜이라고 함.

-> 네트워크를 통해 데이터를 교환할때 데이터의 형식이나 전달 과정의 순서, 이와 관련된 이벤트들을 정의한 것을 프로토콜이라고 보면 된다.
쉽게 말하면 하나의 서식, 절차같은걸 만들어서 다른 환경에서 데이터를 주고 받을 수 있게 하는 것과 관련된 요소들을 프로토콜이라고 볼 수 있겠다.

메세지의 교환과 메세지가 교환될 때 발생하는 행동들이 프로토콜의 요소를 정의하는데에 있어서 핵심요소임.

컴퓨터 네트워킹에 숙달된다는 것은 네트워킹 프로톨이란 무엇인지, 왜, 그리고 어떻게 네트워킹 프로토콜을 사용하는 지에 대해 이해하는 것.

네트워크는 Network Edge, 그리고 Network Core로 구분된다고 한다.

Network edge

Network Edge 란 말 그대로 네트워크의 가장자리, 테두리에 위치한 요소들을 의미함.
가장자리에 위치한다는 것은 네트워크를 통한 교류의 시작점과 종착점이라는 것을 의미함.

Network Edge에 대해서 설명할때 end system이라는 용어가 설명되는데, 여기서 end system이란
인터넷과 연결된 컴퓨터 혹은 스마트폰이나 태블릿같은 기기, 웹서버, 인터넷 연결된 자동차 같은 전송을 시작하는 주체, 혹은 수신의 최종수신체를 말한다.

end system 은 호스트라고도 불리는데 이메일, 웹브라우저, 웹 서버 프로그램들을 주최, 관리하는 경우도 있기 때문.
호스트는 클라이언트와 서버로 더 세분화 되기도 함.

클라이언트는 컴퓨터나 스마트폰 같이 일상생활에서 볼 수 있는 기기들 (개인사용자들)을 의미하지만 서버는 동영상 스트리밍, 웹페이지 배포 이메일전달이나 저장등을 하는 더 고성능의 기계를 의미하기도 함.
서비스를 제공하면 서버, 사용자는 클라이언트 라고 보면 될듯하다.

Access Network

Access network 는 호스트를 다른 호스트에 도달하는 경로에 존재하는 first rotuer (edge router 라고 불리기도 함) 에 물리적으로 연결되게 하는 네트워크를 의미
물리적으로 인터넷에 연결되게 하는 장치들을 의미한다고 보면된다

Access Network 는 여러가지 형태가 존재하는데, 각각의 특징을 가지고 있음.

Home access

가정용 access network의 경우 DSL, Cable, FTTH, 5G fixed wireless가 존재한다고 한다

DSL

DSL 이란 digital subscriber line (DSL) 의 줄임말로 각 가구마다 개별적으로 가지고 있는 전화선을 이용한 access network 를 의미.

각 가구의 DSL모뎀은 전화선을 이용하여 전화선을 공급하는 업체의 digital subscriber line access multiplexer (DSLAM) 와 신호를 교환.

DSL 방식은 end system 에서 발신하는 디지털 신호를 고주파수의 아날로그 신호 (엄밀히 따지면 말 그대로의 아날로그 신호가 아니고 아날로그신호+여러가지 라고 함) 로 변환하여 전화선을 통해 신호를 발신한다고 한다.

이 발신된 신호는 위에 언급된 DSLAM에서 다시 디지털 형태의 데이터로 변환된 후 공급업체의 CO(central office 라고 하는데 자세히는 모르겠고 아날로그 신호에서 다시 디지털 신호로 변환된다는 것만 이해했다.) 로 전달된다고 한다.

전화선을 사용하는 DSL방식은 전통적인 전화신호와 디지털 데이터 둘 모두를 동시에 사용할 수 있다고 한다.
이는 위의 두가지를 다른 주파수로 전달하기 때문이라고 하는데, 이처럼 각 신호에 다른 주파수를 할당하여 한 DSL이 복수의 링크를 가지고 있는 것처럼 작동하여 인터넷 사용과 전화사용이 동시에 가능.

기존의 전화선을 사용하는 가정용 DSL모뎀 은 디지털 데이터를 고주파수 tone 의 아날로그 신호로 변환 -> 전화선을 통한 데이터의 전송을 위해서 변환하는 것.

수신자의 경우, 전화선을 통해 수신된 신호가 splitter라는 장치를 통해 전화통화와 관련된 신호와 디지털 데이터로 분리, 구분되어 데이터를 DSL 모뎀에 보낸다고 한다.

공급업체의 경우, DSLAM이 전화신호와 데이터 신호를 분리하여 각각의 네트워크(전화 네트워크, 인터넷 네트워크)로 보낸다고 한다.

DSL은 업로드 속도와 다운로드 속도가 다르므로 비대칭 네트워크라고도 한다. (다운로드 속도가 더 빠름)

cable internet access

전화선을 사용하는 DSL과는 다르게,
cable Internet access는 케이블 tv 업체가 설치한 케이블 tv 인프라를 사용한다고 한다.
이 때 케이블은 광케이블을 의미한다.
광케이블을 사용한 인터넷망 구성은 케이블 모뎀을 필요로 한다고 한다 (DSL 은 DSL모뎀, 케이블은 케이블 모뎀; 케이블 모뎀은 일반적으로 외부장치이고, 이더넷 포트를 통해 가정용 컴퓨터와 연결된다고 한다.)

cable internet access 방식에는 cable head end 시설에 대해서 설명하는데, DSL에 비유하면 CO와 유사한 개념인 것처럼 보인다.

cable internet access 는 HFC(hybrid fiber coax) 라고도 불리는데, 이는 광섬유케이블 (fiber cable) 과 동축케이블 (coaxial) 케이블을 혼합해서 사용하기 때문이라고 한다.

위에서 언급한 cable head end 라는 시설에서 fiber node라는 장치 까지는 광섬유로 연결돼있고, fiber node부터 가정까지는 구리선으로 연결돼있다고 한다.

각 가구에 할당된 전화선을 사용하는 것과 달리, cable internet access 는 공유되는 매개채를 사용한다.
여기서 공유되는 매개체란 동축케이블을 의미.
공유되는 케이블 (500에서 5000가구 지원가능)을 사용하므로 동시에 발생하는 사용량이 많으면 속도가 느려진다는 단점이 있다고 한다.

FTTH (fiber to the home)

FTTH는 광섬유를 직접 각각의 가정과 연결하는것을 의미한다.
FTTH는 공급업체부터 가정까지 하나의 케이블을 사용하는 방법과,
가정까지의 거리가 상대적으로 가까운 지점까지는 공유되는 하나의 광섬유 케이블을 사용하다가, 그 지점부터 각각의 가정이 할당받은 케이블로 나뉘는 방법이 있다고 한다.

위에서 언급된 상대적으로 가까운 지점을 OLT(optical line terminator) 라고 하고 각 가정으로 분포되는 케이블의 도착점을 ONT(optical network terminator) 라고 한다고 함.

FTTH 의 PON 은 optical splitter 까지 하나의 광섬유로 신호를 보내다가 splitter 에서부터 각각의 가구에 할당되는 광섬유들로 구성(ONT 로 신호 배포) 한다.

5G fixed wireless

5g wireless 연결은 높은속도로 인터넷 제공. 케이블 연결할 필요 없음. beam forming 기술을 사용하여 공급자의 base station 에서 가구에 있는 모뎀으로 신호가 무선으로 보내짐.

이더넷과 와이파이

LAN이 호스트를 edge라우터에 연결하기위해 사용됨
구리선으로 이더넷 스위치에 연결하고 이더넷 스위치에서부터 더 큰 범위를 지원하는 라우터로 연결

대다수의 가구들은 wirelss LAN 기술과 유선기술들 (ex. DSL) 을 혼합해서 사용함.

와이파이 access point 와 라우터가 존재. 라우터는 와이파이 연결포인트와 연결돼있음

Network core

Network Edge에서는 end system 들이 어떻게 인터넷과 연결되는지 설명했다면, Network Core 에서는 데이터의 전송방법에 대해서 주로 설명함.

인터넷의 end system 을 연결하는 packet switches 와 links 연결망을 Network Core 라고 함.

여기서 packet switches는 주로 라우터와 link-layer switch를 의미하지만 주로 라우터에 대해서 설명함.

packet switching

데이터 전송의 출발지 호스트로부터 목적지 호스트까지 메세지를 보내기 위해, 소스호스트는 긴 메세지를 "패킷" 이라고 알려진 작은 덩어리로 조각냄.

패킷은 출발지 호스트와 목적지 호스트사이에 있는 패킷스위치와 커뮤니케이션 링크를 횡단함(여행함). 전달된다는 뜻

대부분의 패킷스위치는 store-and-forward transmission 방식을 사용함.
store-and-forward transmission 방식은 데이터를 패킷 단위로 전송하는데, 이 의미는 특정한 패킷의 모든 데이터를 받아야 데이터를 전송한다는 것을 의미.
모든 데이터를 받지않으면 데이터를 전송하지 못함.

input link로부터 오는 전송할 패킷의 모든 비트를 받아야만 (받기 전에는 buffer에 저장함) outbound link 에 패킷 전송가능.

라우터는 패킷단위로 데이터를 저장, 전송함.
첫번째 패킷을 다 받으면 목적지로 보냄과 동시에 두번째 패킷을받고, 두번째 패킷을 전송함과 동시에 세번째 패킷을 받고 하느식

패킷 스위치는 output buffer( output queue 라고도 불림)

Queuing delay and packet loss

라우터가 링크를 통해서 데이터를 전송하려고 할때 링크가 다른 데이터의 전송으로 인해 사용중이면 라우터 내부의 버퍼는 추가적으로 들어오는 데이터의 패킷을 받을 수 없음.
이걸 queuing delay라고 하는데, 라우터의 아웃풋 버퍼에 정체가 발생하면서 패킷손실이 발생함. (이미 저장돼있는 패킷 혹은 들어오는 패킷 모든 곳에서 발생할 가능성이 있음)

소스 엔드시스템이 데스티네이션 엔드시스템에 데이터를 보내고싶을때, 데스티네이션 엔드시스템의 ip주소를 패킷 헤더에 포함시킴

Forwarding Tables and Routing Protocols

각각의 라우터는 패킷의 헤더에 포함되어있는 ip주소를 참조하여 어떤 목적지로 보내야하는지에 대한 정보가 저장된 forwarding table을 가지고 있음.

패킷의 헤더에 저장된 ip주소를 찾아서 어떤 outbound link 로 보낼지 결정함(라우터는 포워딩 테이블을 가지고있음)

라우팅 프로토콜은 forwarding table 을 사용하여 목적지로 도달하는데 최적(최단거리)의 경로를 결정함.

circuit switching

위에서 언급한 패킷스위칭과 다르게 서킷 스위칭이라는 전송방식도 있는데, 서킷스위칭은 예약과 관련된 개념임.

여기서 예약이라는 의미는 연결된 시간동안 데이터 전송을 위한 경로를 계속 사용한다는 의미.

패킷스위칭은 데이터를 전달하고있지 않으면 네트워크 경로를 사용하지 않는데, 서킷스위칭은 연결되어 있는 동안에는 계속 네트워크 경로를 사용함.

서킷스위칭의 대표적인 예가 전화망 (전화가 연결되어 있는 동안 다른 전화를 받을 수 없음)

서킷스위칭의 경우 한 링크가 복수의 서킷을 가지고 end to end connection 을 위해 한 서킷이 사용되면 전체 수용량의 1/n 만큼을 사용하게 됨.
전송률은 1/서킷수 로 한정 (ex. 1Mbps 의 링크가 네개의 서킷을 가지고 있고 하나의 서킷이 사용되면 250Kbps 가 전송률이 됨)

네트워크들의 네트워크

인터넷 공급자(ISP) 들도 다른 공급자들과 함께 연결되어 하나의 망을 형성함.
access isp - regional access ISP 들은 global transit isp 에 연결되어있음

ISP 의 ISP 가 있으며 multi-home 환경을 사용할 경우 한 ISP에 오류가 있어도 인터넷망에 접속가능

PoP(Presence of point)

최상위 계층이 아닌 isp 끼리 peer 관계를 맺음으로써 비용절약
패킷은 여러 라우터를 거치면서 여러종류의 delay를 겪게됨

processing delay : header를 검사하고 패킷을 어느경로로 보낼지 결정하는데 걸리신 시간

Queuing dealy : 밀리초, 혹은 마이크로초

Transmission dealy : L/R
Transmission delays are typically on the order of microseconds to
milliseconds in practice
transmission delay 는 패킷의 길이와 링크의 전송률에 의해서 결정됨 (출발지와 목적지간의 물리적 거리는 transmission delay 에 영향을 주지않음.)
transmission delay 는 패킷의 전송에 걸리는 시간 (패킷의 첫비트부터 마지막 비트까지 모두 도착해야 다음의 전송가능)

Propagation Delay : 비트가 목적지에 도착하는데까지 걸리는 시간 대충 빛의 속도와 비슷
패킷의 마지막 비트가 목적지 라우터에 도착하면, 목적지 라우터에 패킷이 저장됨

La/R ≤ 1.

arrival rate 가 transmission capacity 보다 작으면 queue delay 줄어듦. 크면 늘어남

traffic intensity 가 1에 접근할수록 딜레이가 급속하게 늘어남

packet loss

큐에 저장할 공간이 없으면 라우터는 packet을 drop하고 그 패킷은 소실됨.
손실된 패킷은 다시 전송됨

큐 공간은 한정적이기 때문에 패킷을 무한하게 담을 수 없어서 queuing delay가 발생하는것에도 한계가 있다는 의미. 큐에 못들어간 패킷은 손실됨.

nodal delay = 한 라우터 안에서의 딜레이

dnodal = dproc + dqueue + dtrans + dprop
total nodal delay = nodal processing delay + queuing delay + transmission dealy + propatagation delay

Throughput in Computer Network

network core 는 처리속도가 아주 빠른 것들로 구성돼있어서 오늘날에 속도문제는 end system 의 access link 문제임

여러대의 서버와 클라이언트가 다운로드로 데이터를 교환할때 여러대의 링크가 공유하는 하나의 링크가 서버측의 링크의 크기보다 수백~수천배 만큼 큰게 아니라 다소 크다면 속도가 보장이 안됨. 병목현상 발생
트래픽 몰리면 회선의 속도를 분배해서 사용하기때문에 병목현상, 속도 느려짐 발생

protocol layer 와 service model

layer architecture

  • Application layer
  • Transport layer
  • Network layer
  • Link layer
  • Physical

각 layer는 이전에 위치한 layer로부터 데이터를 전달받고, 그 데이터에 header를 더해서 다음 layer로 넘겨주는 역할을 함.

각 층의 기능을 바꾸는것 (본질을 바꾸는 것과는 다름) 은 다른계층에 영향을 미치지 않음 - 바꾸기 이전과 동일한 역할을 수행하기 때문에 근본기능은 동일하게 놔두되 약간의 수정사항을 적용하는 것.
특정한 layer는 상위 계층에 서비스 제공 (서비스 모델을 제공함).

물리계층과 링크레이어계층은 커뮤니케이션을 핸들링하기때문에 네트워크 인터페이스 카드에서 구현됨

0개의 댓글