일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- BOJ
- 1002
- 설정
- 4948
- 신경망 학습
- 실버
- 파이싼
- pyenv
- 재귀
- 기계학습
- streamlit
- N-Queen
- 밑바닥부터 시작하는 딥러닝
- 손실함수
- 1101
- Mac
- 그리디 알고리즘
- Python
- 백트래킹
- 15649
- end to end
- 개발환경
- 파이썬
- 9020
- 백준
- 가상환경
- 경사하강법
- n과 m
- Today
- Total
파이톨치
[네트워크] Network Overview 본문
Network Overview
What is internet?
1. "Nuts and Bolts" View (하드웨어적 관점):
- 수백만 대의 연결된 컴퓨팅 기기(PC, 서버, 무선 랩탑, 스마트폰 등)가 통신 링크를 통해 연결됨
- 통신 링크에는 광섬유, 구리선, 라디오파, 위성 등이 사용되며 전송 속도(대역폭)가 있음
- 패킷 교환기(라우터, 스위치)가 데이터 패킷을 전달함
- 인터넷은 서로 연결된 ISP들의 네트워크로 구성됨
- 프로토콜(TCP, IP, HTTP 등)이 메시지 송수신을 제어함
- IETF에서 RFC 문서를 통해 인터넷 표준을 정의함
2. Service View (서비스 관점):
- 인터넷은 웹, VoIP, 이메일, 게임 등 다양한 애플리케이션에게 서비스를 제공하는 인프라임
- 애플리케이션이 인터넷에 접속할 수 있도록 프로그래밍 인터페이스(API)를 제공함
- 우편 서비스와 유사하게 여러 서비스 옵션을 제공함
What is protocol?
프로토콜
- 인간 프로토콜: 대화에서 주고받는 메시지 (예: "몇시예요?", "질문이 있어요.")
- 네트워크 프로토콜: 컴퓨터 간 통신에서 주고받는 메시지
- 프로토콜은 메시지의 형식, 순서, 송수신 시 취해야 할 행동 등을 정의함
- 인터넷에서 일어나는 모든 통신 활동은 프로토콜에 의해 제어됨
네트워크 구조
네트워크는 크게 두 부분으로 나뉩니다:
1. 네트워크 에지 (Network Edge):
- 호스트 (클라이언트와 서버)가 위치함
- 서버는 주로 데이터 센터에 모여 있음
- 액세스 네트워크와 물리 미디어를 통해 연결됨
- 유선 또는 무선 통신 링크 사용
2. 네트워크 코어 (Network Core):
- 상호 연결된 라우터들로 구성됨
- "네트워크들의 네트워크"
Q: 엔드 시스템을 엣지 라우터에 어떻게 연결할까?
- 가정용 액세스 네트워크
- 기관 액세스 네트워크 (학교, 회사)
- 모바일 액세스 네트워크
고려해야 할 사항:
- 액세스 네트워크의 대역폭 (초당 비트 수)은?
- 공유형인가 전용선인가?
액세스 네트워크 기술
두 가지 유형의 액세스 네트워크 기술인 DSL과 HFC에 대해 설명하고 있습니다.
1. 디지털 가입자 회선 (Digital Subscriber Line, DSL):
- 기존 전화선을 사용하여 중앙 사무실의 DSLAM에 연결
- 전화선을 통해 전송되는 데이터는 인터넷으로 향함
- 전화선을 통해 전송되는 음성은 전화 네트워크로 향함
- 상향 전송 속도: 일반적으로 1 Mbps 미만, 최대 2.5 Mbps
- 하향 전송 속도: 일반적으로 10 Mbps 미만, 최대 24 Mbps
- 주파수 분할 다중화(FDM) 기술을 사용하여 서로 다른 채널이 다른 주파수 대역에서 전송됨
2. HFC (Hybrid Fiber Coax):
- 케이블과 광섬유의 네트워크가 가정을 ISP 라우터에 연결
- 비대칭 구조: 최대 30Mbps 하향 전송 속도, 2Mbps 상향 전송 속도
- 여러 가정이 케이블 헤드엔드로의 액세스 네트워크를 공유함
- DSL과 달리 중앙 사무실로의 전용 액세스 회선이 없음
전송률
호스트는 애플리케이션 메시지를 작은 조각들로 나누어 패킷이라고 부릅니다. 각 패킷의 길이는 L bits입니다.
그 다음 호스트는 이 L-bit 패킷들을 전송 속도 R로 접속 네트워크에 전송합니다. 여기서 R은 링크 전송 속도 또는 링크 용량, 링크 대역폭이라고도 합니다.
L-bit 패킷을 링크로 전송하는 데 걸리는 시간을 전송 지연(transmission delay) 또는 저장-전송 지연(store-and-forward delay)이라고 하며, 이는 다음과 같이 계산됩니다:
d = L (bits) / R (bits/sec)
즉, L-bit 패킷을 R bits/sec 전송 속도로 전송할 때 L/R 초가 걸린다는 의미입니다.
이렇게 호스트는 애플리케이션 메시지를 패킷 단위로 분할하고, 각 패킷을 정해진 전송 속도에 맞춰 링크에 전송함으로써 데이터를 전달하게 됩니다. 패킷 단위 전송은 네트워크 자원을 효율적으로 공유하고 에러 제어 등에 유리한 장점이 있습니다.
복습 문제
좋습니다. 위의 개념을 바탕으로 예제 문제와 복습 문제를 만들어 보겠습니다.
예제 문제:
호스트가 1.5 Mbps 전송 속도를 가진 링크를 통해 길이가 8000 bits인 패킷을 전송한다면, 전송 지연은 얼마인가?
풀이:
주어진 값:
- 패킷 길이 (L) = 8000 bits
- 링크 전송 속도 (R) = 1.5 Mbps = 1,500,000 bits/sec
전송 지연 (d) = L / R
= 8000 bits / 1,500,000 bits/sec
≈ 0.0053 sec
≈ 5.3 ms
따라서, 전송 지연은 약 5.3 밀리초(ms)입니다.
복습 문제:
1. 한 호스트가 길이가 10,000 bits인 패킷을 2 Mbps 전송 속도로 전송한다면, 전송 지연은 얼마인가?
주어진 값:
- 패킷 길이 (L) = 10,000 bits
- 링크 전송 속도 (R) = 2 Mbps = 2,000,000 bits/sec
전송 지연 (d) = L / R
= 10,000 bits / 2,000,000 bits/sec
= 0.005 sec
= 5 ms
따라서, 전송 지연은 5 밀리초(ms)입니다.
2. 호스트 A가 호스트 B로 1200 bytes의 메시지를 보내려고 합니다. 메시지는 100 bytes 길이의 패킷으로 나누어 전송되며, 링크 전송 속도는 500 Kbps입니다. 모든 패킷을 전송하는 데 걸리는 총 시간은 얼마인가? (1 byte = 8 bits)
12 패킷으로 나누어진다. 한 패킷 당 전송 속도는 100 * 8 bit / 500 * 1000 bps => 0.0016 sec이다. 이는 1.6ms이고, * 12를 해주면 19.2ms 이다.
3. 링크 전송 속도가 10 Mbps일 때, 6000 bits 길이의 패킷을 전송하는 데 걸리는 시간은 얼마인가? 만약 패킷의 길이가 두 배가 된다면 전송 지연은 어떻게 변하는가?
기존의 한 패킷을 보내는데, 6000 / 10 * 1000000 => 6 / 10000 => 0.6ms이다. 패킷 길이가 2배가 되면 전송 지연도 2배가 된다.
전송 매체
위 내용은 컴퓨터 네트워크에서 물리 계층(Physical Layer)의 전송 매체(Physical Media)에 대한 설명입니다. 전송 매체는 비트(bit)가 송신기(transmitter)와 수신기(receiver) 사이를 전파하는 물리적 경로를 의미합니다. 전송 매체는 크게 유도성 매체(guided media)와 비유도성 매체(unguided media)로 분류됩니다.
1. 유도성 매체(Guided Media):
- 신호가 고체 매체(구리, 광섬유, 동축 케이블 등)를 통해 전파됩니다.
- 꼬임쌍선(Twisted Pair, TP): 두 개의 절연된 구리 선으로 구성되며, 카테고리 5는 100Mbps, 카테고리 6은 10Gbps의 전송 속도를 지원합니다.
- 동축 케이블(Coaxial Cable): 두 개의 동심 구리 도체로 구성되며, 광대역 전송이 가능하고 여러 채널을 사용할 수 있습니다.
- 광섬유 케이블(Fiber Optic Cable): 유리 또는 플라스틱 섬유를 통해 빛 펄스를 전송하며, 각 펄스는 비트를 나타냅니다. 높은 전송 속도(수십~수백 Gbps)와 낮은 오류율, 전자기 간섭에 강한 특성을 가집니다.
2. 비유도성 매체(Unguided Media):
- 신호가 자유롭게 전파되며, 물리적인 선이 없습니다. 예를 들어 무선 전파가 있습니다.
- 전파는 전자기 스펙트럼을 통해 전달됩니다.
- 지상 마이크로파(Terrestrial Microwave): 최대 45Mbps 채널을 지원하는 양방향 링크입니다.
- LAN(예: WiFi): 11Mbps, 54Mbps 등의 속도를 지원하는 양방향 링크입니다.
- 광역(예: 셀룰러): 3G 셀룰러의 경우 몇 Mbps의 속도를 지원합니다.
- 위성(Satellite): Kbps에서 45Mbps 채널(또는 여러 개의 작은 채널)을 지원하며, 종단 간 지연은 270ms입니다. 정지 궤도 위성과 저궤도 위성이 있습니다.
전파 환경은 반사, 물체에 의한 차단, 간섭 등의 영향을 받을 수 있습니다.
이러한 물리 계층의 전송 매체는 네트워크의 성능, 전송 속도, 오류율, 비용 등에 영향을 미칩니다. 따라서 네트워크 설계 시 적절한 전송 매체를 선택하는 것이 중요합니다.
포워딩/라우팅
네트워크 코어의 두 가지 핵심 기능은 포워딩(Forwarding)과 라우팅(Routing)입니다.
1. 포워딩(Forwarding):
포워딩은 패킷을 라우터의 입력에서 적절한 라우터 출력으로 이동시키는 기능을 말합니다. 라우터는 들어오는 패킷의 헤더 정보를 검사하여 해당 패킷이 어느 출력 링크로 나가야 하는지 결정합니다. 이 과정은 일반적으로 라우터의 포워딩 테이블(Forwarding Table)을 참조하여 이루어집니다. 포워딩 테이블은 목적지 주소와 해당 목적지로 가기 위해 패킷이 전달되어야 할 출력 링크 간의 매핑 정보를 가지고 있습니다.
2. 라우팅(Routing):
라우팅은 패킷이 소스에서 목적지까지 취해야 할 경로를 결정하는 과정입니다. 라우터들은 라우팅 알고리즘을 사용하여 네트워크 토폴로지 정보를 교환하고, 이를 바탕으로 패킷의 최적 경로를 계산합니다. 라우팅 알고리즘은 링크 상태(Link State) 알고리즘, 거리 벡터(Distance Vector) 알고리즘 등이 있습니다. 라우터들은 계산된 경로 정보를 라우팅 테이블(Routing Table)에 저장하고, 이를 기반으로 포워딩 테이블을 업데이트합니다.
따라서 포워딩은 패킷을 한 라우터에서 다음 라우터로 전달하는 것에 초점을 맞추고 있는 반면, 라우팅은 소스에서 목적지까지의 end-to-end 경로를 결정하는 것에 초점을 맞추고 있다고 할 수 있습니다.
이 두 가지 기능은 네트워크 코어에서 패킷을 효과적으로 전달하기 위해 함께 작동합니다. 라우팅을 통해 결정된 경로 정보를 바탕으로 포워딩이 이루어지며, 각 라우터에서의 적절한 포워딩을 통해 패킷이 최종 목적지까지 도달할 수 있게 됩니다.
패킷 스위칭
네트워크 코어(Network Core)는 서로 연결된 라우터들의 메시(mesh)로 구성되어 있습니다. 패킷 스위칭(Packet Switching)은 호스트가 애플리케이션 계층의 메시지를 패킷으로 분할하고, 이 패킷들을 소스에서 목적지까지의 경로를 따라 한 라우터에서 다음 라우터로 전달하는 방식입니다. 각 패킷은 링크의 전체 용량으로 전송됩니다.
패킷 스위칭은 저장-전달(Store-and-Forward) 방식으로 동작합니다. 예를 들어, L 비트 크기의 패킷이 R bps의 전송 속도를 가진 링크로 전송될 때, 패킷을 링크에 밀어내는 데 L/R 초 (transmission delay)가 걸립니다. 숫자 예제로 보면, 7.5 Mbits 크기의 패킷이 1.5 Mbps 속도의 링크로 전송되면 한 홉(hop)에서의 전송 지연은 5초가 됩니다. 전체 패킷이 라우터에 도착해야만 다음 링크로 전송될 수 있기 때문에, 종단 간 지연은 2L/R이 됩니다 (전파 지연이 없다고 가정, 즉 일반적인 상황을 가정하면 전송 지연 + 전파 지연으로 생각해야 함).
큐잉 지연(Queueing Delay)과 패킷 손실(Packet Loss)도 고려해야 합니다. 링크로 들어오는 비트 속도(도착률)가 링크의 전송 속도를 일정 기간 동안 초과하면, 패킷들은 큐(대기열)에서 대기하며 링크를 통해 전송되기를 기다립니다. 만약 메모리(입력 버퍼)가 가득 차게 되면, 패킷들은 손실(dropped)될 수 있습니다. 예를 들어, 100Mb/s의 전송 속도를 가진 링크에 120Mb/s 속도로 패킷이 도착하고 있다면, 출력 링크를 기다리는 패킷들의 큐가 계속 쌓이게 될 것입니다. 큐가 가득 차면 새로 도착하는 패킷들은 손실될 수 있습니다.
이러한 개념들은 네트워크의 성능, 지연, 패킷 손실 등을 이해하는 데 중요합니다. 네트워크 설계 시 이러한 요소들을 고려하여 최적의 성능을 달성할 수 있도록 해야 합니다.
circuit switching
다음은 회선 교환(Circuit Switching)에 대한 설명입니다.
회선 교환은 패킷 교환의 대안으로 사용되는 네트워크 코어 기술입니다. 회선 교환에서는 소스와 목적지 간의 "(Call)"를 위해 엔드-투-엔드 자원이 할당되고 예약됩니다.
회선 교환의 주요 특징은 다음과 같습니다.
1. 전용 자원 (Dedicated Resources):
- 호에 할당된 회선은 다른 호와 공유되지 않습니다.
- 이를 통해 회선 교환은 보장된 성능을 제공할 수 있습니다.
2. 회선 유사 성능 (Circuit-like Performance):
- 회선 교환은 패킷 교환과 달리 지연, 지터, 패킷 손실 등의 문제가 적습니다.
- 할당된 회선은 오직 해당 호에 의해서만 사용되므로 QoS(Quality of Service)를 보장할 수 있습니다.
3. 비효율적 자원 사용 (Inefficient Resource Utilization):
- 호에 할당된 회선 구간이 사용되지 않을 때에도 다른 호와 공유되지 않습니다.
- 이로 인해 회선 교환은 자원 사용 측면에서 비효율적일 수 있습니다.
회선 교환은 전통적인 전화망(PSTN)에서 일반적으로 사용되는 방식입니다. 그러나 오늘날의 데이터 중심 네트워크에서는 패킷 교환이 더 널리 사용되고 있습니다. 패킷 교환은 통계적 다중화(Statistical Multiplexing)를 통해 링크의 용량을 더 효과적으로 공유할 수 있기 때문입니다.
패킷 스위칭 vs 서킷 스위칭
패킷 교환과 회선 교환의 비교에 대해 설명하겠습니다.
패킷 교환은 회선 교환에 비해 더 많은 사용자가 네트워크를 사용할 수 있도록 합니다. 예를 들어, 각 사용자가 "활성화" 상태일 때 100 kb/s를 사용하고 시간의 10%만 활성화 상태라고 가정해 보겠습니다.
- 회선 교환에서는 1 Mb/s 링크에 10명의 사용자가 수용(예약된 10명만 사용할 수 있다.)될 수 있습니다.
- 패킷 교환에서는 35명의 사용자가 있을 때, 동시에 10명 이상이 활성화될 확률은 0.0004 미만입니다.
여기서 0.0004라는 값은 이항 분포를 사용하여 계산된 것입니다. 35명의 사용자 중에서 10명 이상이 동시에 활성화될 확률을 나타냅니다.
만약 더 많은 사용자가 있고 낮은 확률로 동시에 10명 이상 사용하게 된다면, 패킷 교환에서는 혼잡(Congestion)이 발생할 수 있습니다. 이로 인해 패킷 지연과 손실이 발생할 수 있으며, 신뢰할 수 있는 데이터 전송을 위한 프로토콜과 혼잡 제어 메커니즘이 필요합니다.
그렇다면 패킷 교환이 완벽한 승자일까요? 패킷 교환은 버스트 데이터에 매우 적합하며, 자원 공유가 가능하고, 호 설정(Call Setup)이 필요하지 않아 더 간단합니다. 그러나 앞서 언급한 것처럼 과도한 혼잡이 발생할 수 있다는 단점이 있습니다.
반면에 회선 교환은 오디오/비디오 애플리케이션에 필요한 대역폭 보장을 제공할 수 있습니다. 패킷 교환 네트워크에서 회선과 유사한 동작을 제공하는 방법은 아직 완전히 해결되지 않은 문제로 남아있습니다.
결론적으로, 패킷 교환과 회선 교환은 각각의 장단점이 있으며, 애플리케이션의 요구사항과 네트워크의 특성에 따라 적절한 방식을 선택해야 합니다. 현대의 네트워크에서는 대부분 패킷 교환이 사용되지만, 회선 교환의 개념을 차용하여 QoS를 보장하려는 시도도 이루어지고 있습니다.
'대학수업 > 네트워크' 카테고리의 다른 글
[네트워크] 라우팅 알고리즘 (OSI 3계층) (0) | 2024.06.12 |
---|---|
[Network] Congestion Control (0) | 2024.05.31 |
TCP (0) | 2024.05.24 |
[네트워크] Network 계층 (0) | 2024.04.22 |
[네트워크] DataLink layer (0) | 2024.04.21 |