2024.09.23 - [CS/Network] - What does Internet look like? & What happens on the Internet? - 1
STRUCTURE OF NETWORK CORE
- End systems은 ISP(인터넷 서비스 제공자)를 통해 인터넷에 연결된다.
- 가정용, 기업용, 대학교용 ISP들이 이에 해당된다.
- access ISP들은 서로 연결되어야 한다.
- 이를 통해 어떤 두 호스트(컴퓨터)라도 서로 패킷을 보낼 수 있게 된다.
- 이로 인해 형성된 네트워크의 네트워크는 아주 복잡하다.
- 이러한 진화는 경제적 요인과 국가 정책에 의해 주도되었다.
- 모든 ISP들을 연결하는건 너무 복잡하며 너무 많은 연결을 필요로 한다.
- 각 Access ISP들을 global transit ISP에 연결시키는 방법?
- 고객 ISP와 공급자 ISP 간에 경제적 계약이 맺어진다.
- 하지만, 하나의 Global ISP만으로는 사업이 성립될 수 없기에 경쟁 업체들이 등장할 것이다.
- 그렇기에 Global ISP들은 그들 간에 데이터를 주고받기 위한 상호연결이 필요하다.(ISP 자체의 중요한 데이터도 따로 빼기 위해서?)
- `IXP`는 Internet exchange point로 ISP들이 정보 교환을 할 수 있는 포인트이다.
- `peering link`는 두 개의 인터넷 서비스 제공자(ISP) 간에 데이터를 직접 교환하기 위한 물리적 또는 논리적 연결이다.
- 그리고 지역 네트워크가 액세스 네트워크를 ISP에 연결하기 위해 생길 수 있다.
- 각 지역의 액세스 네트워크(가정, 학교, 회사 등)를 인터넷 서비스 제공업체 (ISP)와 연결하는 역할을 할 수 있다.
- 이를 통해 다양한 지역이 보다 효율적으로 인터넷에 연결될 수 있다.
- 그리고 Content provider network(구글, 마이크로소프트, 아카나미)는 서비스와 콘텐츠를 사용자에게 더 가깝게 제공하기 위해 자체 네트워크를 운영할 수 있다.
- 이는 대형 콘텐츠 제공 업체들이 더 빠르고 효율적인 서비스와 콘텐츠 제공을 위해
- ISP를 통하지 않고 직접 자신들의 네트워크 인프라를 구축하여 운영할 수 있음을 의미한다.
- 이를 통해 사용자와 가까운 곳에 데이터 센터를 설치하고 서비스를 더 빠르게 전달할 수 있다.
- 자기 회사만의 데이터를 보존하려고 하는 것도 있다.
- 이는 대형 콘텐츠 제공 업체들이 더 빠르고 효율적인 서비스와 콘텐츠 제공을 위해
PROTOCOL, LAYERS, SERVICE MODELS
Protocol
두 개의 통신하는 주체가 성공적으로 소통하기 위해서는 관련된 주체 간의 몇 가지 합의가 필요하다.
- 무엇을 전달할 것인지,
- 어떻게 전달할 것인지,
- 언제 전달할 것인지.
이러한 규칙의 집합을 프로토콜이라고 한다.
프로토콜은 네트워크 주체 간에 전송 및 수신되는 메시지의 형식과 순서,
그리고 메시지가 전송되거나 수신될 때 수행되는 행동을 정의한다.
PROTOCOL "LAYERS"
- 네트워크는 복잡하다.
- 많은 조각들
- 호스트들
- 라우터들
- 다양한 미디어의 연결
- 애플리케이션들
- 프로토콜들
- 하드웨어, 소프트웨어
INTERNET PROTOCOL STACK
- Application: supporting network applications
- FTP, SMTP, HTTP
- Transport: process-process data transfer
- TCP, UDP
- Network: routing of datagrams from source to destination
- IP, routing protocols
- Link: data transfer between neighboring network elements
- Ehternet, 802.11 (WiFi), PPP
- Physical: bits "on the wire"
위는 TCP/IP 모델으로, 인터넷의 실제 작동 원리를 바탕으로 하여, 실용적이고 효율적인 통신을 위해 사용한다.
아래는 이론적이고 포괄적인 접근을 제공하여 네트워크 통신 과정을 상세히 이해할 수 있는 모델이다.
ISO/OSI REFERENCE MODEL
- Presentation: allow application to interpret meaning of data(애플리케이션이 데이터의 의미를 해석하는것을 허용)
- encryption
- compression
- machine-specific conventions
- Sessions: synchronization, checkpointing, recovery of data exchange
- Internet stack "missing" these layers!
- 만약, 필요하다면 애플리케이션 레이어에 구현해야 한다.
PROTOCOL STACK
WHY LAYERING?
복잡한 시스템들을 다루기 위해서이다.
- 명시적인 구조는 복잡한 시스템의 구성 요소들 간의 식별과 관계를 허용한다.
- 모듈화는 시스템의 유지 관리와 업데이트를 용이하게 한다.
- 따라서, 레이어 서비스의 구현 변경이 시스템의 나머지 부분에 투명하게 이뤄진다.
- 송신자가 한국말로 메시지를 보낸다.
- 그걸 영어로 번역한다
- 한국 통신 회사가 중국 통신 회사에게 보낸다.
- 중국 회사가 받는다.
- 영어를 중국어로 번역한다.
- 수신자는 중국어로 번역된 메시지를 받는다.
이처럼, Protocol 마다 해야할 일이 정해져있어 다른 Layer에서 일어나는 일은 신경 쓰지 않는다.
- 영어로 번역하는거 대신 중국어로 번역을 하여도 한국에서의 Message는 동일하게 보내면 된다.
- 중간에 통신 회사가 바뀌어도 아무 상관이 없다.
ENCAPSULATION
- Source TCP/IP Layer마다 특별한 헤더가 붙어 전달된다.
- Application - Message
- Transport - Segment
- Network - Datagram
- Link - Frame
- Switch의 경우 Link Layer까지만 보면 MAC을 알 수 있어 어디로 전달해야 하는지 알 수 있다.
- Router의 경우 Network까지만 보면 IP를 아는 것이 가능하다.
- 최종적으로 Destination에서 Header의 역순으로 확인하며 최종적으로 Message를 전달받는다.
INTERSECTION BETWEEN THE LAYER
- A는 C에 전달하기 위해 Router인 R1로 데이터를 나눠서 전달한다.
- R1은 A에서 C로 전달하는 것을 Network Layer에서 확인한 뒤 R1에서 R2로 전달한다.
- 최종적으로, C에 도착시 Network Layer에서는 "아 나한테 온 것이구나"를 인식하고 나눈 데이터를 다시 합친다.
DELAY, LOSS, THROUGHPUT
LOSS AND DELAY
- Packets queue in rotuer buffers
- Packet arrival rate to link (temporarily) exceeds output link capacity
- Packets queue, wait for turn
SOURCES OF PACKET DELAY
- Processing delay
- 계산 딜레이라고 생각하면 된다.
- Check Bit errors 확인
- Output link 결정
- 전형적으로 < msec
- 계산 딜레이라고 생각하면 된다.
- Queueing delay
- Output 링크로의 Transmission을 위해 기다리는 시간을 말한다.
- 라우터의 혼잡 레벨에 의존한다.
- Transmission delay
- 패킷의 총 비트수가 L이라고 가정하면 그걸 R이라는 링크 대역폭으로 보내야 하므로 `L / R`을 갖는다.
- Propagation delay
- 전파 딜레이로 실제 물리적인 링크로 전달할 때 걸리는 딜레이이다.
QUEUEING DELAY
- R: Link bandwidth (bps)
- L: packet length (bits)
- a: average packet arrival rate(packets per second)
- 즉, Transmission delay는 `L / R`로 정해저있는데 `alpha`가 많아질수록 `Queueing Delay`가 우려된다.
PACKET LOSS
- Queue proceeding link in buffer has finite capacity(큐는 제한된 Capacity를 갖는다)
- Packet arriving to full queue dropped(aka lost)
- Lost packet may be retransmitted by previous node, by source end system, or not at all
- 손실된 패킷은 이전 노드에 의해 재전송될 수도 있고, 출발지 End system에 의해 재전송될 수도 있으며,
혹은 아예 전송되지 않을 수도 있다.
- 손실된 패킷은 이전 노드에 의해 재전송될 수도 있고, 출발지 End system에 의해 재전송될 수도 있으며,
THROUGHTPUT
- Throughput(처리량): 송신자와 수신자 간에 비트가 전송되는 속도(비트 / 시간 단위)
- 순간 처리량(Instantaneous): 특정 시점에서의 전송 속도
- 평균 처리량(Average): 더 긴 시간 동안의 평균 전송 속도
Throughput vs Bandwidth
- Bandwidth(대역폭)
- 네트워크가 최대로 전달할 수 있는 데이터 전송 용량을 의미한다.
- 즉, 특정 시간 단위 동안 네트워크 링크가 전송할 수 있는 데이터의 최대 양을 말한다.
- 보통 bps(bits per second)로 표시된다.
- Throughput(처리량)
- 실제로 네트워크를 통해 송신자에서 수신자로 전달된 데이터의 속도를 나타낸다.
- 즉, 특정 시간 동안 성공적으로 전송된 데이터의 양이다.
- Bandwidth와 마찬가지로 bps(bits per second)로 측정되지만, 실제 전송 속도를 의미한다.
- 차이점
- Bandwidth는 이론적인 최대 용량을 나타내고, Throughput은 실제 데이터 전송 속도를 의미한다.
- Throughput은 Bandwidth보다 낮을 수 있다.
- 네트워크 혼잡, 패킷 손실, 지연 등 다양한 요인으로 인해서
- 예시
- 네트워크의 Bandwidth가 `100Mbps`일 때, 실제로 전송되는 데이터는 네트워크 상태에 따라 `80Mbps`의 처리량을 가질 수 있다.
그럼 위 사진의 경우에 `Throughput`은 어떻게 될까?
Rs(송신자), Rc(수신자)
- Rs < Rc이므로, 송신자는 네트워크가 제공하는 최대 용량을 활용하지 못한다.
(평균 end-to-end throughput = Rs) - Rs > Rc이므로, 수신자는 송신자의 모든 데이터를 처리할 수 없으므로, `병목 현상`이 발생한다.
(평균 end-to-end throughput = Rc)
요약
- Rs < Rc 일 때, 송신자 속도에 의해 처리량이 결정되므로 `throughput = Rs`
- Rs > Rc 일 때, 네트워크 용량이 병목이 되어 `throughput = Rc`
- bottleneck link
- 송신자와 수신자 간의 경로에서 전체 처리량을 제한하는 링크를 말한다.
- 즉, 송신자와 수신자 간의 경로에서 가장 낮은 전송 속도를 가진 링크이다.
- 예를 들어, 여러 링크를 거쳐 데이터를 전송할 때, 각각의 링크가 `100Mbps`, `50Mbps`, `10Mbps`의 속도를 갖고 있다고 하자.
- 이 경로에서 `10Mbps` 링크가 병목 구간이 되어 전체 네트워크의 처리량이 `10Mbps`로 제한된다.
- 따라서, 송신자가 빠르게 데이터를 보내도, 병목 구간의 속도보다 빠르게 데이터를 처리할 수 없게 된다.
- bottleneck link는 네트워크 성능을 결정짓는 중요한 요소이다.
'CS > Network' 카테고리의 다른 글
What does Internet look like? & What happens on the Internet? - 1 (0) | 2024.09.23 |
---|---|
What is Computer Network & Internet? (0) | 2024.09.20 |
[HTTP] GET, POST, PUT, PATCH에 대해 알아보자 (0) | 2024.03.24 |
[HTTP] OPTIONS 헤더, Preflight, CORS (0) | 2024.03.05 |
[HTTP] Cross Origin Resource Sharing, CORS (0) | 2024.03.05 |