이 글은 제가 개인적으로 컴퓨터 네트워크를 공부하기 위해 작성하는 일련의 글들로, 오류 사항이 존재할 수 있으며, 잘못된 개념이 작성될 수도 있습니다. 또한 GPT를 적극적으로 사용하여 글을 작성하고 있으며, 글이 많이 정돈된 형태가 아닙니다. 이 글의 목적은 지극히 저의 공부에 있으며, 누구를 이해시키기 위해 작성하는 글이 아니므로, 참고하시면 좋을 것 같습니다. 혹시 이 글을 읽고 있는 독자 분들이 만약 이 글들에서 오류를 발견한다면, 댓글을 남겨주세요. 글에 반영하도록 하겠습니다.
Q. DARPA Internet Protocol이 뭐야?
GPT Says:
DARPA Internet Protocol(DARPA IP)는 인터넷의 기본 프로토콜인 TCP/IP(Transmission Control Protocol/Internet Protocol)로, DARPA(Defense Advanced Research Projects Agency, 미국 국방고등연구계획국)의 연구를 통해 개발되었습니다. 이 프로토콜은 인터넷의 기반을 이루는 네트워크 통신 규약으로, 다양한 네트워크와 시스템 간의 데이터 전송을 가능하게 합니다.
주요 특징:
1. TCP (Transmission Control Protocol):
- 신뢰성 있는 데이터 전송을 보장합니다.
- 데이터가 손실되거나 순서가 뒤바뀌지 않도록 제어합니다.
- 데이터 패킷의 흐름 제어와 오류 검출을 담당합니다.
2. IP (Internet Protocol):
- 데이터 패킷의 주소 지정과 라우팅을 담당합니다.
- 네트워크 간의 데이터 전송을 가능하게 하며, 패킷이 목적지에 도달할 수 있도록 경로를 설정합니다.
개발 배경:
- 1960-70년대: ARPANET 프로젝트의 일환으로, 네트워크 상호 연결을 위한 프로토콜을 개발.
- 1970년대 후반: TCP/IP 프로토콜이 개발되어 다양한 네트워크 간의 데이터 통신을 효율적으로 관리할 수 있게 됨.
- 1980년대: TCP/IP가 표준 프로토콜로 자리잡으면서, 현재의 인터넷 기반을 형성.
주요 목적:
- 서로 다른 종류의 네트워크 시스템이 데이터 통신을 할 수 있도록 하는 것.
- 네트워크의 확장성과 유연성을 제공하여 다양한 장치와 시스템이 상호 연결될 수 있게 함.
- 데이터 전송의 신뢰성과 효율성을 보장.
DARPA IP는 현재 우리가 사용하는 인터넷의 핵심 기술로, 전 세계의 컴퓨터 네트워크를 연결하는 데 중요한 역할을 합니다.
PPT에는 다음과 같이 나와 있었다.
- The top-level goal for the DARPA Internet Architecture was to develop an effective technique for multiplexed utilization(internetworking) of existing interconnected networks.
- DARPA 인터넷 아키텍쳐의 가장 근본적인 목적은 현존하는 연결되있는 네트워크(연결망)를 "하나로 묶어서" 활용하는 효율적인 기법을 발전시키기 위함이다.
여기서 Multiplexed는 CS에서 다음과 같이 사용되는 용어인 것 같다. https://en.wikipedia.org/wiki/Multiplexing
In telecommunications and computer networking, multiplexing (sometimes contracted to muxing) is a method by which multiple analog or digital signals are combined into one signal over a shared medium. The aim is to share a scarce resource – a physical transmission medium. For example, in telecommunications, several telephone calls may be carried using one wire. Multiplexing originated in telegraphy in the 1870s, and is now widely applied in communications. In telephony, George Owen Squier is credited with the development of telephone carrier multiplexing in 1910.
앞 문단만 따왔는데, 대충 해석하면 다음과 같다.
통신 및 컴퓨터 네트워킹에서 멀티플렉싱은 여러 아날로그 또는 디지털 신호가 공유 매체를 통해 하나의 신호로 결합되는 방법입니다. 멀티플렉싱의 목적은 부족한 자원인 물리적 전송 매체를 공유하는 것입니다. 예를 들어, 통신에서는 하나의 전선을 사용하여 여러 개의 전화 통화를 전송할 수 있습니다. 멀티플렉싱은 1870년대 전신에서 시작되었으며 현재 통신에 널리 적용되고 있습니다. 전화 통신에서는 조지 오웬 스퀴어가 1910년 전화 사업자 멀티플렉싱의 개발로 인정 받고 있습니다.
그냥 선 하나로 다 전달된다는 뜻 같다.
- The components of the Internet were networks, which were to be interconnected to provide some larger service.
- 인터넷의 구성 요소는 네트워크로, 더 큰 서비스를 제공하기 위해 서로 연결되어야 했습니다.
- The technique selected for multiplexing was packet switching.
- 멀티플렉싱을 위해 선택한 기술은 패킷 스위칭이었습니다.
위의 링크에서 말한 멀티플렉싱을 위해 패킷 스위칭이라는 기술을 사용했나보다. 자세한 내용은 뒤에서 다룰 것 같다.
- The final aspect of this fundamental goal was the assumption of the particular technique for interconnecting these networks.
- The technique of store and forward packet switching.
- 이 기본 목표의 마지막 측면은 이러한 네트워크를 상호 연결하기 위한 특정 기술을 가정하는 것이었습니다.
- 바로 저장 및 전달 패킷 스위칭 기술입니다.
마찬가지의 의미를 지닌 내용인 것 같다.
- What is the Internet?
- existing interconnected networks
- 인터넷이란 무엇인가요? 기존의 상호 연결된 네트워크
우리가 알고 있는 인터넷의 정의를 이야기하고 있다.
- The fundamental structure of the Internet
- A packet switched communications facility in which a number of distinguishable networks are connected together using packet communications processors called gateways which implement a store and forward packet forwarding algorithm.
- 인터넷의 기본 구조
- "저장하고 전달하는" 패킷 전달 알고리즘을 구현하는 게이트웨이라는 패킷 통신 프로세서를 사용하여 서로 구별되는 여러 네트워크가 연결된 패킷 스위치 통신 시설입니다.
패킷 전달 알고리즘을 주로 Store and Forward라는 직관적인 이름으로 부르나보다. 주로 Gateway단위에서 일어나고, 패킷을 서로 주고 받고 저장하는 역할을 하는 것 같아 보인다. 게이트 웨이들이 서로 연결되어있는 모습들을 인터넷의 기본 구조라고 말하고 있는 것 같다.
- Postal System
- Basic Idea of Internetworking
- Layered Processing : Mail Address or Postal Code
인터네트워킹의 기본 아이디어는 우체국 시스템에서 얻을 수 있다고 한다. 내가 어떤 메시지를 우편에 담아서 전달을 하려면 이곳 저곳을 건너서 결국 도달한다. 그 기저에 깔려있는 것이 메일주소나 우편주소같은 것이다.
- The second-level goals
- Internet communication
1. must continue despite loss of networks or gateways.
2. must support multiple types (Quality of Service (QoS)) of communication services.
3. accommodate a variety of networks.
4. permit distributed management of its resources.
5. Cost-effective.
6. Host attachment with a low level of effort. (Plug and Play)
7. The resources used in the Internet architecture must be accountable.
인터넷 커뮤니케이션의 두 번째 목표에 대해서 이야기를 하고 있다.
GPT Says:
이 목록은 인터넷 아키텍처(구조)가 갖추어야 할 주요 요구사항을 나타냅니다. 각각의 항목이 의미하는 바를 설명하겠습니다:
1. 네트워크나 게이트웨이의 손실에도 불구하고 계속 작동해야 한다 (must continue despite loss of networks or gateways):
- 인터넷은 일부 네트워크나 게이트웨이가 손실되더라도 전체 시스템이 지속적으로 작동할 수 있어야 합니다. 이는 인터넷의 탄력성과 신뢰성을 보장하는 중요한 특성입니다.
2. 다양한 유형(Quality of Service, QoS)의 통신 서비스를 지원해야 한다 (must support multiple types (Quality of Service (QoS)) of communication services):
- 인터넷은 음성, 비디오, 텍스트 등 다양한 형태의 데이터를 다룰 수 있어야 합니다. 각기 다른 서비스의 품질 요구사항을 충족할 수 있어야 하며, 예를 들어 실시간 스트리밍과 같은 서비스는 지연 시간이 적어야 합니다.
3. 다양한 네트워크를 수용해야 한다 (accommodate a variety of networks):
- 인터넷은 다양한 종류의 네트워크 기술(유선, 무선, 위성 등)을 통합하고 상호 운용할 수 있어야 합니다. 이는 다양한 환경에서 인터넷을 사용할 수 있게 합니다.
4. 자원의 분산 관리를 허용해야 한다 (permit distributed management of its resources):
- 인터넷의 자원(예: IP 주소, 도메인 이름)은 중앙에서 관리되는 것이 아니라 분산된 방식으로 관리되어야 합니다. 이는 인터넷의 확장성과 유연성을 높입니다.
5. 비용 효율적이어야 한다 (cost-effective):
- 인터넷의 설계와 운영은 경제적이어야 하며, 비용 대비 효과가 높아야 합니다. 이는 널리 보급되고 유지될 수 있는 중요한 요소입니다.
6. 호스트 연결이 용이해야 한다 (low level of effort host attachment (Plug and Play)):
- 새로운 장치나 시스템을 인터넷에 연결하는 과정이 쉬워야 합니다. 복잡한 설정 없이도 쉽게 연결하고 사용할 수 있어야 합니다. 이 특징을 "Plug and Play"라고 합니다.
7. 인터넷 아키텍처에서 사용되는 자원은 책임질 수 있어야 한다 (the resources used in the Internet architecture must be accountable):
- 인터넷에서 사용되는 자원은 투명하게 관리되고, 누가 어떤 자원을 사용하는지 추적할 수 있어야 합니다. 이는 자원 남용을 방지하고, 문제 발생 시 신속하게 대응할 수 있도록 합니다.
이러한 요구사항들은 인터넷이 전 세계적으로 효과적으로 작동하고 다양한 요구를 충족시킬 수 있도록 설계된 이유를 설명합니다. 이 요구사항들을 통해 인터넷은 신뢰성, 유연성, 확장성, 비용 효율성을 모두 갖추게 되었습니다.
- Internet communication must continue despite loss of networks or gateways
게이트웨이나 네트워크가 조금 손실되더라고 계속 작동이 되야한다는 특성이다.
이를 구현하기 위해 End to End Principal을 적용하여 설계를 한다고 한다. GPT가 하는 말을 들어보자.
이 목록은 인터넷 설계 철학 중 하나인 End-to-End Principle (종단 간 원칙)에 대한 설명입니다. 각 항목이 의미하는 바를 상세히 설명해 보겠습니다:
End-to-End Principle (종단 간 원칙)
1. 모든 복잡한 기능은 종단 호스트에 배치된다 (All complex functionalities are put into the end hosts):
- 인터넷의 주요 복잡한 기능(데이터 처리, 오류 검출 및 수정, 보안 등)은 네트워크 자체가 아니라 네트워크의 끝에 있는 장치(컴퓨터, 서버 등)에서 수행됩니다. 네트워크는 단순한 데이터 전달 기능만 수행하고, 복잡한 작업은 종단 호스트가 처리합니다.
2. 종단 호스트만이 통신의 정확한 의미를 안다 (The end hosts only know the exact semantics of communications):
- 통신의 의미나 목적은 오직 통신을 주고받는 장치(종단 호스트)만이 이해합니다. 네트워크는 데이터의 내용이나 의미에 대해 알 필요가 없습니다. 네트워크는 단순히 데이터를 전달하는 역할을 합니다.
3. 운명 공유 (Fate Sharing):
- 통신 상태는 네트워크가 아닌 종단 호스트에 저장되며, 네트워크의 오류가 종단 호스트의 통신 상태에 영향을 미치지 않아야 한다는 개념입니다. 만약 문제가 발생하면, 통신에 관련된 상태 정보는 그 통신을 주고받는 종단 호스트에만 영향을 미칩니다.
4. 종단 호스트에서의 능동적인 통신 상태 (Active communication states at the end hosts):
- 통신과 관련된 모든 상태 정보(예: 연결 상태, 데이터 송수신 상태 등)는 종단 호스트가 유지합니다. 네트워크 장비는 이 상태 정보를 유지하지 않습니다.
5. 네트워크에는 통신 상태가 없다 (No communication states at networks):
- 네트워크 자체(라우터, 스위치 등)는 통신 상태 정보를 유지하지 않습니다. 이는 네트워크가 단순히 데이터를 전달하는 역할만 하게 합니다.
6. 멍청한 네트워크 (dumb network):
- 네트워크는 "멍청하다"는 표현은 네트워크가 복잡한 처리를 하지 않고 단순히 데이터를 전달하는 역할만 한다는 의미입니다. 모든 복잡한 처리는 종단 호스트가 담당합니다.
7. 네트워크 오류가 통신 상태를 방해하지 않는다 (Network faults do not disturb the communication states):
- 네트워크에서 오류가 발생해도, 통신의 상태 정보가 네트워크에 의존하지 않기 때문에 통신 자체는 방해받지 않습니다. 통신 상태는 종단 호스트가 유지하고 있기 때문에 네트워크 오류가 발생해도 복구가 용이합니다.
- 요약
End-to-End Principle은 인터넷 설계의 기본 철학 중 하나로, 네트워크를 단순하게 유지하면서 복잡한 기능은 종단 호스트에서 처리하도록 합니다. 이를 통해 네트워크의 신뢰성, 확장성, 효율성을 높이고, 네트워크 오류가 통신에 미치는 영향을 최소화할 수 있습니다. 이 원칙은 인터넷이 현재와 같은 구조로 성공적으로 발전할 수 있게 한 중요한 요소 중 하나입니다.
End-to-End Principle을 통해 게이트웨이나 네트워크가 조금 손실되도 잘 작동이 되는 것 같다.
이 그림만 봐도 Gateway의 일부가 작동하지 않거나 연결이 되어있지 않은데, 그것과는 상관 없이 모든 기능적인 부분들은 호스트(말단)에서 전부 처리를 하기 때문에 별 상관이 없음을 알 수 있다.
- Internet communication accommodate a variety of networks.
인터넷 연결은 다양한 곳에서 참여가 가능해야한다는 원칙이다.
GPT Says:
이 목록은 인터넷 통신이 다양한 네트워크를 수용하고 통합하는 방식에 대한 설명입니다. 각각의 항목이 의미하는 바를 상세히 설명해 보겠습니다:
- 인터넷 통신이 다양한 네트워크를 수용하는 방식
1. 응용 프로그램으로부터 하부 네트워크 기술을 숨긴다 (It hides underlying network technologies from applications):
- 인터넷의 설계는 응용 프로그램이 특정 네트워크 기술에 의존하지 않도록 합니다. 즉, 응용 프로그램은 네트워크의 구체적인 기술(유선, 무선, 위성 등)에 대해 알 필요가 없으며, 이는 응용 프로그램 개발을 단순화하고 네트워크 간의 상호 운용성을 높입니다.
2. IP over anything, anything over IP:
- IP(Internet Protocol)는 다양한 하부 네트워크 기술 위에서 작동할 수 있으며, 반대로 다양한 응용 프로토콜이 IP 위에서 작동할 수 있습니다. 이는 IP가 네트워크 기술과 응용 프로토콜 사이의 범용 인터페이스 역할을 함을 의미합니다.
3. 많은 기존 네트워크를 상호 연결해야 한다 (It requires to interconnect many existing networks):
- 인터넷은 다양한 종류의 기존 네트워크를 상호 연결하여 통합된 네트워크로 만들기 위해 설계되었습니다. 이는 인터넷의 확장성과 유연성을 보장합니다.
4. 각 운영 체제(OS)에 대해 표준 상호 연결 사양이 필요하다 (For each OS, it requires a standard interconnection specification):
- 서로 다른 운영 체제들이 표준화된 방식으로 네트워크에 연결될 수 있도록 하기 위해, 표준 상호 연결 사양이 필요합니다. 이는 다양한 시스템 간의 호환성을 보장합니다.
5. 네트워크는 최소한의 기능을 제공한다 (Network provides minimal functionality):
- 네트워크 자체는 데이터를 전달하는 기본적인 기능만 제공하고, 복잡한 기능(데이터 처리, 오류 수정 등)은 종단 호스트가 담당합니다. 이는 네트워크를 단순하고 효율적으로 유지합니다.
6. 그러나 IP 자체를 대체하는 것은 매우 어렵다 (But it is very difficult to replace the IP itself):
- IP는 인터넷의 핵심 프로토콜로 자리잡았기 때문에, 이를 대체하는 것은 매우 어렵습니다. 이는 IP가 널리 보급되고 사용되는 표준이기 때문입니다.
7. “좁은 허리의 저주” (The “Curse of the Narrow Waist”):
- 인터넷 아키텍처는 "좁은 허리" 구조를 가집니다. 다양한 응용 프로토콜(HTTP, FTP 등)이 IP 위에서 작동하고, IP는 다양한 하부 네트워크 기술(이더넷, Wi-Fi 등) 위에서 작동합니다. 이 구조는 유연성을 제공하지만, 동시에 IP를 대체하거나 수정하기 어렵게 만듭니다.
- 요약
이 설명들은 인터넷이 다양한 네트워크 기술과 응용 프로토콜을 어떻게 통합하고 상호 운용성을 유지하는지를 보여줍니다. 인터넷 아키텍처는 IP를 중심으로 다양한 기술을 통합하여 유연성과 확장성을 제공하지만, 동시에 IP의 핵심적 역할로 인해 이를 대체하는 것이 매우 어렵다는 점을 강조합니다. "좁은 허리의 저주"는 이러한 구조의 장점과 한계를 동시에 나타내는 표현입니다.
IP가 인터넷 아키텍쳐를 이루고 있는 핵심이고, 이미 자리 잡았기 때문에 대체할 수 없다는 뜻인 것 같다. 다양한 응용 프로토콜들이 IP위에서 동작하고 IP는 다양한 프로토콜 위에서 동작할 수 있으므로 이러한 구조를 지닌 듯 하다.
- Internet communication permit distributed management of its resources
- Each connected network may be independently managed as a set of independent “Autonomous Systems (AS)”
- Interior Routing
- Exploit the detailed network topology to forward packets within an AS
- OSPF
- Exterior Routing
- Hide the detailed network topology as much as possible to forward packets between ASs
- BGP (Border Gateway Protocol) connects ASs together
GPT Says:
이 목록은 인터넷 통신이 자원의 분산 관리를 어떻게 허용하는지를 설명합니다. 각각의 항목과 관련된 세부 사항을 설명해 보겠습니다:
인터넷 통신이 자원의 분산 관리를 허용하는 방식
1. 인터넷 통신은 자원의 분산 관리를 허용한다 (Internet communication permit distributed management of its resources):
- 인터넷은 중앙 집중식 관리 없이도 다양한 네트워크가 독립적으로 관리될 수 있도록 설계되었습니다. 이는 네트워크의 확장성과 유연성을 보장합니다.
2. 각 연결된 네트워크는 독립적인 "자율 시스템(AS)"으로 관리될 수 있다 (Each connected network may be independently managed as a set of independent “Autonomous Systems (AS)”):
- 인터넷은 여러 개의 자율 시스템(AS)으로 구성되어 있습니다. 각 AS는 자체적으로 관리되고, 독립적으로 운영됩니다. AS는 하나의 네트워크 또는 여러 네트워크의 집합으로, 단일 관리 기관에 의해 운영됩니다.
3. 내부 라우팅 (Interior Routing):
- 내부 라우팅은 AS 내부에서 패킷을 전달하기 위해 상세한 네트워크 토폴로지를 활용한다 (Exploit the detailed network topology to forward packets within an AS):
- AS 내부에서는 네트워크의 상세한 구조와 연결 상태를 이용해 패킷을 최적의 경로로 전달합니다. 이는 효율적인 데이터 전송을 가능하게 합니다.
- OSPF (Open Shortest Path First):
- OSPF는 AS 내부에서 자주 사용되는 내부 라우팅 프로토콜로, 네트워크의 최단 경로를 계산하여 패킷을 전달합니다. OSPF는 링크 상태 라우팅 프로토콜로, 네트워크의 모든 라우터가 동일한 링크 상태 정보를 공유하여 최적 경로를 결정합니다.
4. 외부 라우팅 (Exterior Routing):
- 외부 라우팅은 AS 간의 패킷 전달을 위해 네트워크의 상세한 토폴로지를 가능한 한 숨긴다 (Hide the detailed network topology as much as possible to forward packets between ASs):
- AS 간의 라우팅에서는 네트워크의 상세한 내부 구조를 숨기고, 간단한 경로 정보만을 사용해 패킷을 전달합니다. 이는 보안과 관리의 편의를 제공합니다.
- BGP (Border Gateway Protocol):
- BGP는 AS 간의 라우팅을 담당하는 프로토콜로, 여러 AS를 연결하여 인터넷 전체의 경로를 결정합니다. BGP는 경로 벡터 라우팅 프로토콜로, 각 AS가 목적지까지의 경로 정보를 교환하여 최적의 경로를 선택합니다.
- 요약
인터넷은 자원의 분산 관리를 허용하는 구조로 설계되어, 각 네트워크가 독립적인 자율 시스템(AS)으로 관리될 수 있게 합니다. 내부 라우팅 프로토콜인 OSPF는 AS 내부에서의 효율적인 데이터 전달을 가능하게 하며, 외부 라우팅 프로토콜인 BGP는 AS 간의 데이터 전달을 담당합니다. 이러한 구조는 인터넷의 확장성과 유연성을 높이며, 효율적이고 신뢰성 있는 데이터 전송을 보장합니다.
Internet communication must be Cost-effective (1)
- Circuit Switching
- Exclusively occupying network resource for a connection
- Requiring signaling for network resource allocation
- Packet Switching
- Sharing network resource among connections
- Requiring packetization
- Each packet must carry information for routing
- Causing more end-to-end transmission delay
이 목록은 인터넷 통신이 비용 효율적이어야 한다는 원칙과 이를 달성하기 위한 방법을 설명하고 있습니다. 여기에는 두 가지 주요 네트워크 기술인 회선 교환과 패킷 교환의 특징과 차이점이 포함됩니다.
인터넷 통신은 비용 효율적이어야 한다 (Internet communication must be Cost-effective)
1. 회선 교환 (Circuit Switching):
- 연결을 위해 네트워크 자원을 독점적으로 점유 (Exclusively occupying network resource for a connection):
- 회선 교환은 통신이 이루어지는 동안 네트워크 자원을 독점적으로 사용합니다. 즉, 두 지점 간의 연결이 설정되면, 그 연결이 종료될 때까지 해당 자원이 다른 통신에 사용되지 않습니다.
- 네트워크 자원 할당을 위한 신호 전달 필요 (Requiring signaling for network resource allocation):
- 회선 교환에서는 통신을 시작하기 전에 네트워크 자원을 할당하기 위한 신호(시그널링) 과정이 필요합니다. 이는 자원 예약과 연결 설정을 포함합니다.
- 비용 효율성 측면:
- 회선 교환 방식은 일정한 대역폭을 보장하지만, 자원이 유휴 상태로 있을 때도 비용이 발생하여 자원의 비효율적인 사용을 초래할 수 있습니다.
2. 패킷 교환 (Packet Switching):
- 연결들 사이에 네트워크 자원을 공유 (Sharing network resource among connections):
- 패킷 교환은 네트워크 자원을 여러 연결이 공유합니다. 데이터는 작은 패킷으로 나뉘어 전송되며, 각 패킷이 독립적으로 네트워크를 통과합니다. 이로 인해 자원의 효율적인 사용이 가능합니다.
- 패킷화 필요 (Requiring packetization):
- 데이터를 패킷 단위로 나누어 전송하기 위해서는 패킷화 과정이 필요합니다. 이는 데이터를 작은 블록으로 나누고 각 블록에 필요한 정보를 추가하는 과정입니다.
- 각 패킷이 라우팅 정보를 포함해야 함 (Each packet must carry information for routing):
- 각 패킷은 목적지 주소 등의 라우팅 정보를 포함해야 합니다. 이를 통해 패킷은 독립적으로 최적의 경로를 찾아 전달됩니다.
- 종단 간 전송 지연 증가 (Causing more end-to-end transmission delay):
- 패킷 교환 방식은 네트워크 자원을 효율적으로 사용할 수 있지만, 패킷이 독립적으로 전송되기 때문에 종단 간 전송 지연이 발생할 수 있습니다. 이는 각 패킷이 최적 경로를 찾아 이동하는 과정에서 생기는 지연입니다.
- 비용 효율성 측면:
- 패킷 교환 방식은 자원을 효율적으로 사용하여 네트워크의 전체 용량을 극대화할 수 있기 때문에 비용 효율성이 높습니다. 특히 많은 사용자와 다양한 데이터 유형을 처리할 때 효과적입니다.
- 요약
인터넷 통신에서 비용 효율성을 달성하기 위해, 회선 교환과 패킷 교환의 두 가지 기술이 사용됩니다. 회선 교환은 신뢰성과 일정한 대역폭을 제공하지만 자원의 비효율적 사용으로 인해 비용 효율성이 떨어질 수 있습니다. 반면, 패킷 교환은 자원을 공유하여 효율적인 사용이 가능하고 비용 효율성이 높지만, 각 패킷이 독립적으로 이동하면서 전송 지연이 발생할 수 있습니다. 인터넷은 주로 패킷 교환 방식을 사용하여 다양한 연결이 자원을 효율적으로 공유하도록 설계되었습니다.
-Host attachment with a low level of effort
- Autoconfiguration
- It requires several protocols to configure IP module.
- DHCP, DNS/mDNS, ARP, etc.
- Stateful Address Autoconfiguration (DHCPv6)
- Stateless Address Autoconfiguration (SLAAC)
- No routing information at the end host
- The end host just sends packets to the default router detected by autoconfiguration phase.
이 목록은 인터넷 호스트가 쉽게 연결되도록 하는 방법과 관련된 내용을 설명합니다. 여기에는 자동 구성(autoconfiguration) 프로토콜과 라우팅 정보의 처리 방식이 포함됩니다. 각각의 항목을 상세히 설명해 보겠습니다.
- 호스트 연결의 용이성 (Host attachment with a low level of effort)
인터넷에서 새로운 장치나 시스템을 연결하는 과정은 사용자 개입을 최소화하고 자동으로 설정될 수 있어야 합니다. 이를 통해 네트워크에 쉽게 연결하고 사용할 수 있습니다.
1. 자동 구성 (Autoconfiguration):
- IP 모듈을 구성하기 위한 여러 프로토콜 필요 (It requires several protocols to configure IP module):
- 호스트가 네트워크에 연결될 때 IP 주소 및 기타 네트워크 설정을 자동으로 구성하기 위해 여러 프로토콜이 사용됩니다.
- DHCP (Dynamic Host Configuration Protocol):
- DHCP는 호스트에 IP 주소, 서브넷 마스크, 게이트웨이 및 DNS 서버 정보를 동적으로 할당하는 프로토콜입니다. 이는 호스트가 네트워크에 연결될 때 자동으로 필요한 네트워크 설정을 받을 수 있게 합니다.
- DNS/mDNS (Domain Name System / Multicast DNS):
- DNS는 호스트가 도메인 이름을 통해 IP 주소를 확인할 수 있게 하는 프로토콜입니다. mDNS는 로컬 네트워크에서 이와 유사한 기능을 제공하여 네트워크 내의 다른 장치들을 쉽게 찾을 수 있게 합니다.
- ARP (Address Resolution Protocol):
- ARP는 IP 주소를 MAC 주소로 변환하는 프로토콜로, 같은 로컬 네트워크 내의 호스트 간 통신을 가능하게 합니다.
- 상태 저장 주소 자동 구성 (Stateful Address Autoconfiguration, DHCPv6):
- DHCPv6는 IPv6 네트워크에서 호스트에 IP 주소 및 기타 구성 정보를 상태 저장 방식으로 할당하는 프로토콜입니다. DHCP 서버는 각 호스트의 상태를 유지하며 필요한 정보를 제공합니다.
- 상태 비저장 주소 자동 구성 (Stateless Address Autoconfiguration, SLAAC):
- SLAAC는 IPv6 네트워크에서 라우터 광고 메시지를 사용하여 호스트가 자동으로 IP 주소를 구성하는 방식입니다. 이는 상태를 저장하지 않고 호스트가 스스로 주소를 생성하게 합니다.
2. 종단 호스트에 라우팅 정보 없음 (No routing information at the end host):
- 종단 호스트는 자동 구성 단계에서 감지된 기본 라우터로 패킷을 보낸다 (The end host just sends packets to the default router detected by autoconfiguration phase):
- 호스트는 자체적으로 라우팅 정보를 관리하지 않으며, 대신 자동 구성 과정에서 기본 라우터(default router)를 감지합니다. 호스트는 모든 패킷을 이 기본 라우터로 보내고, 라우터는 패킷을 적절한 목적지로 전달합니다. 이는 호스트의 설정을 단순화하고 네트워크 관리를 용이하게 합니다.
- 요약
인터넷 호스트 연결의 용이성을 높이기 위해 여러 자동 구성 프로토콜이 사용됩니다. DHCP, DNS/mDNS, ARP와 같은 프로토콜은 호스트가 네트워크에 쉽게 연결될 수 있도록 필요한 설정을 자동으로 구성합니다. IPv6 네트워크에서는 DHCPv6와 SLAAC를 통해 IP 주소를 자동으로 할당합니다. 또한, 호스트는 라우팅 정보를 관리하지 않고 기본 라우터로 모든 패킷을 보내어 네트워크 설정을 단순화합니다. 이러한 메커니즘은 사용자가 별다른 설정 없이 네트워크에 쉽게 연결할 수 있도록 하여 "Plug and Play" 경험을 제공합니다.
The resources used in the Internet architecture must be accountable.
- Accounting
- Billing
- How much resource of a network is used now?
- Simple Network Management Protocol (SNMP)
- Management Information Base (MIB)
- Network Configuration Protocol (NETCONF)
- Yet Another Next Generation (YANG)
이 목록은 인터넷 아키텍처에서 사용되는 자원의 책임성을 보장하는 방법을 설명하고 있습니다. 이는 주로 네트워크 자원의 사용을 모니터링하고, 이에 대한 회계와 청구를 가능하게 하는 메커니즘에 대한 내용입니다. 각 항목을 자세히 설명하겠습니다.
- 인터넷 아키텍처에서 사용되는 자원의 책임성 (The resources used in the Internet architecture must be accountable)
인터넷에서 사용되는 자원은 투명하게 관리되고 모니터링되어야 합니다. 이는 네트워크 자원의 사용을 정확하게 추적하고, 이를 기반으로 한 회계와 청구가 가능하도록 합니다.
1. 회계 (Accounting):
- 청구 (Billing):
- 네트워크 자원의 사용량을 기반으로 사용자에게 요금을 부과하는 과정입니다. 이는 인터넷 서비스 제공업체(ISP)나 네트워크 관리자에게 중요한 기능으로, 자원 사용에 대한 공정한 요금 부과를 가능하게 합니다.
2. 네트워크 자원이 현재 얼마나 사용되고 있는가? (How much resource of a network is used now?):
- 네트워크 자원의 사용량을 실시간으로 모니터링하고 관리하는 것은 네트워크 운영과 관리의 핵심입니다. 이를 위해 여러 프로토콜과 도구가 사용됩니다.
3. 단순 네트워크 관리 프로토콜 (Simple Network Management Protocol, SNMP):
- 관리 정보 베이스 (Management Information Base, MIB):
- SNMP는 네트워크 장치를 모니터링하고 관리하기 위한 표준 프로토콜입니다. MIB는 SNMP를 통해 관리되는 네트워크 장치의 정보를 구조화하여 저장하는 데이터베이스입니다. MIB는 장치의 상태, 트래픽 통계, 에러 등 다양한 정보를 포함하여 네트워크 자원의 사용량을 모니터링하는 데 사용됩니다.
4. 네트워크 구성 프로토콜 (Network Configuration Protocol, NETCONF):
- YANG (Yet Another Next Generation):
- NETCONF는 네트워크 장비의 구성과 관리를 위한 프로토콜입니다. YANG은 NETCONF에서 사용하는 데이터 모델링 언어로, 네트워크 장비의 구성 데이터를 정의하고 관리하기 위해 사용됩니다. YANG을 사용하면 네트워크 자원의 사용량을 더 정밀하게 모니터링하고, 구성 변경을 추적할 수 있습니다.
- 요약
인터넷 아키텍처에서 사용되는 자원의 책임성을 보장하기 위해, 네트워크 자원의 사용량을 모니터링하고 관리하는 것이 중요합니다. 이는 주로 SNMP와 NETCONF 같은 프로토콜을 통해 이루어집니다. SNMP는 MIB를 사용하여 네트워크 장치의 상태와 트래픽을 모니터링하고, NETCONF는 YANG을 사용하여 네트워크 장비의 구성을 관리합니다. 이러한 메커니즘은 네트워크 자원의 사용을 투명하게 관리하고, 이를 기반으로 한 공정한 청구를 가능하게 합니다.
Internet Architecture
- Standard documements for Internet Architecture
- RFC1958 (1996.06) Architectural Principles of the Internet
- RFC1122 (1989.10) Requirements for Internet Hosts -- Communication Layers
- RFC1812 (1995.06) Requirements for IP Version 4 Routers
- (RFC1958) Architectural Principles of the Internet (1996.06)
- There is no architecture, but only a tradition, which was not written down for the first 25 years at least not by the IAB
(Internet Architecture Board)
- In very general terms, the Internet community believes
1. The goal is connectivity
2. The tool is the Internet Protocol
3. The intelligence is end to end
- The current exponential growth of the network seems to show that connectivity is its own reward, and is more valuable than any individual application.
- The key to global connectivity is the inter-networking layer (OSI ISO Network Layer (L3)).
- The key to exploiting this layer over diverse hardware providing global connectivity is the "end-to-end argument"
- It is generally felt that in an ideal situation there should be one, and only one, protocol at the Internet level
- This allows for uniform and relatively seamless operations in a competitive, multi-vendor, multi-provider public network.
- In practice, there are at least two reasons why more than one network layer protocol might be in use on the public Internet.
- Firstly, there can be a need for gradual transition from one version of IP to another (Address shortage).
- Secondly, fundamentally new requirements might lead to a fundamentally new protocol (Quality of Service).
- The Internet level protocol must be independent of the hardware medium and hardware addressing
- This approach allows the Internet to exploit any new digital transmission technology of any kind, and to decouple its addressing mechanisms from the hardware.
- It allows the Internet to be the easy way to interconnect fundamentally different transmission media, and to offer a single platform for a wide variety of Information Infrastructure applications and services.
- End-to-end functions can best be realized by end-to-end protocols.
- The basic argument is that, as a first principle, certain required end-to-end functions can only be performed correctly by the end-systems themselves.
- The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the endpoints of the communication system – from [Saltzer]
- Providing that questioned function as a feature of the communication system itself is not possible.
- A specific case is that any network will be subject to failures of transmission at some statistically determined rate.
- The best way to cope with this is to accept it, and give responsibility for the integrity of communication to the end systems.
- Another specific case is end-to-end security.
- This principle has important consequences if we require applications to survive partial network failures
- An end-to-end protocol design should not rely on the maintenance of state inside the network.
- Such state should be maintained only in the endpoints, in such a way that the state can only be destroyed when the endpoint itself breaks (known as fate-sharing).
- An immediate consequence of this is that datagrams are better than classical virtual circuits.
- The network’s job is to transmit datagrams as efficiently and flexibly as possible.
이 목록은 RFC 1958에서 제시된 인터넷 아키텍처의 원칙을 설명하고 있습니다. RFC 1958은 1996년에 출판된 문서로, 인터넷 아키텍처의 철학과 설계 원칙을 다루고 있습니다. 여기에서 설명된 주요 개념들을 하나씩 자세히 살펴보겠습니다.
- 인터넷 아키텍처의 원칙 (RFC 1958)
1. 전통과 아키텍처 (Tradition and Architecture):
- 인터넷 아키텍처에는 25년 동안 문서화되지 않은 전통이 있었다고 합니다. 이는 초기 인터넷 설계가 공식적인 문서보다는 경험과 실험에 기반하여 발전되었음을 의미합니다.
2. 인터넷 커뮤니티의 신념 (Beliefs of the Internet Community):
- 목표는 연결성 (The goal is connectivity):
- 인터넷의 궁극적인 목표는 다양한 네트워크와 시스템 간의 연결성을 제공하는 것입니다.
- 도구는 인터넷 프로토콜 (The tool is the Internet Protocol):
- 인터넷 프로토콜(IP)은 이 연결성을 구현하는 핵심 도구입니다.
- 지능은 종단 간에 있다 (The intelligence is end to end):
- 네트워크의 주요 기능과 지능은 네트워크의 종단(end-to-end) 시스템에 위치하며, 네트워크 자체는 단순히 데이터를 전달하는 역할을 합니다.
3. 네트워크의 기하급수적 성장 (Exponential Growth of the Network):
- 네트워크의 기하급수적인 성장은 연결성이 그 자체로 매우 가치가 있음을 보여줍니다. 이는 특정 응용 프로그램보다 연결성 자체가 더 중요한 가치를 가진다는 의미입니다.
4. 전 세계적 연결성의 열쇠 (Key to Global Connectivity):
- 전 세계적인 연결성을 위한 핵심은 인터네트워킹 계층(OSI 모델의 네트워크 계층, L3)입니다. 이 계층은 다양한 하드웨어와 네트워크를 통합하여 연결성을 제공합니다.
5. 엔드-투-엔드 아규먼트 (End-to-End Argument):
- 네트워크가 다양한 하드웨어를 통해 글로벌 연결성을 제공하기 위해서는 "엔드-투-엔드 아규먼트"가 중요합니다. 이는 네트워크의 주요 기능이 종단 시스템에 있어야 한다는 철학입니다.
6. 단일 프로토콜 (Single Protocol):
- 이상적으로는 인터넷 수준에서 단 하나의 프로토콜만 존재해야 하며, 이는 다양한 벤더와 제공자가 있는 공공 네트워크에서 일관되고 원활한 운영을 가능하게 합니다. 하지만, 다음과 같은 이유로 여러 네트워크 계층 프로토콜이 존재할 수 있습니다:
- IP 버전 전환 필요 (예: 주소 부족)
- 새로운 요구 사항에 따라 새로운 프로토콜 필요 (예: 품질 보장)
7. 하드웨어 독립성 (Hardware Independence):
- 인터넷 프로토콜은 하드웨어 매체와 주소 지정 방식에 독립적이어야 합니다. 이는 인터넷이 새로운 디지털 전송 기술을 쉽게 수용하고, 다양한 전송 매체를 통합할 수 있도록 합니다.
8. 종단 간 기능 (End-to-End Functions):
- 종단 간 기능은 종단 간 프로토콜에 의해 가장 잘 구현됩니다. 이는 통신 시스템의 종단에 있는 응용 프로그램의 지식과 도움 없이는 올바르게 수행될 수 없습니다. 따라서 네트워크 자체에 이러한 기능을 포함시키는 것은 바람직하지 않습니다.
9. 통신의 무결성 (Integrity of Communication):
- 모든 네트워크는 일정한 확률로 전송 실패가 발생할 수 있습니다. 이를 해결하는 가장 좋은 방법은 이를 수용하고, 통신의 무결성에 대한 책임을 종단 시스템에 맡기는 것입니다.
10. 종단 간 보안 (End-to-End Security):
- 보안 역시 종단 간에 구현되어야 합니다. 이는 네트워크의 부분적인 실패가 발생해도 애플리케이션이 지속될 수 있도록 하는 데 중요합니다.
11. 상태 유지의 제한 (State Maintenance):
- 네트워크 설계는 네트워크 내부에서 상태를 유지하는 것에 의존해서는 안 됩니다. 상태는 종단 시스템에서만 유지되어야 하며, 이는 '운명 공유' 원칙을 따릅니다. 즉, 상태는 종단 시스템이 고장날 때만 파괴되어야 합니다.
12. 데이터그램 우수성 (Superiority of Datagrams):
- 데이터그램 방식은 고전적인 가상 회선보다 낫습니다. 네트워크의 역할은 데이터를 효율적이고 유연하게 전달하는 것이며, 데이터그램은 이를 효과적으로 수행합니다.
- 요약
RFC 1958에서 제시된 인터넷 아키텍처의 원칙은 인터넷의 설계 철학과 원칙을 설명합니다. 이 원칙들은 인터넷이 전 세계적으로 연결성을 제공하고, 다양한 네트워크와 하드웨어를 통합하며, 주요 기능을 네트워크의 종단에 두는 철학을 강조합니다. 이러한 원칙들은 인터넷이 현재의 성공적인 글로벌 네트워크로 성장하는 데 중요한 역할을 했습니다.
(RFC 1122) Requirements for Internet Hosts -- Communication Layers (1989.10)
(RFC 1123) Requirements for Internet Hosts -- Application and Support
(RFC1812) Requirements for IP Version 4 Routers (1995.06)
Components of the Internet Architecture (Host and Router) and Architecture Assumptions
(RFC 1122) Requirements for Internet Hosts -- Communication Layers (1989.10)
- The Internet Components
- A host computer, or simply "host," is the ultimate consumer of communication services
-An Internet communication system consists of interconnected packet networks supporting communication among host
computers using the Internet protocols
- The networks are interconnected using packet-switching computers called "gateways" or "IP routers" by the Internet community.
- Architectural Assumptions
- The Internet is a network of networks.
- Gateways do not keep connection state information.
- Routing complexity should be in the gateways
- The system must tolerate wide network variation.
RFC 1122는 인터넷 호스트(즉, 컴퓨터)가 인터넷 통신을 수행하기 위해 필요한 요구 사항을 정의한 문서입니다. 이 문서는 인터넷의 기본 구성 요소와 아키텍처 가정을 설명합니다. 주요 내용들을 하나씩 설명하겠습니다.
- 인터넷 구성 요소 (The Internet Components)
1. 호스트 컴퓨터 (Host Computer):
- 호스트 컴퓨터, 또는 간단히 "호스트"는 통신 서비스의 최종 소비자이다 (A host computer, or simply "host," is the ultimate consumer of communication services):
- 호스트는 네트워크 통신 서비스를 이용하는 최종 장치로, 이메일, 웹 브라우징 등의 서비스를 제공합니다.
2. 인터넷 통신 시스템 (Internet Communication System):
- 인터넷 통신 시스템은 호스트 컴퓨터 간의 통신을 지원하는 패킷 네트워크로 구성된다 (An Internet communication system consists of interconnected packet networks supporting communication among host computers using the Internet protocols):
- 인터넷 통신 시스템은 여러 패킷 네트워크가 상호 연결되어 있으며, 이를 통해 호스트 컴퓨터 간의 통신이 이루어집니다. 이 시스템은 인터넷 프로토콜(IP)을 사용하여 데이터를 주고받습니다.
3. 게이트웨이 또는 IP 라우터 (Gateways or IP Routers):
- 네트워크는 인터넷 커뮤니티에 의해 "게이트웨이" 또는 "IP 라우터"라고 불리는 패킷 스위칭 컴퓨터를 사용하여 상호 연결된다 (The networks are interconnected using packet-switching computers called "gateways" or "IP routers" by the Internet community):
- 네트워크는 게이트웨이 또는 IP 라우터를 통해 상호 연결됩니다. 이 장치들은 네트워크 간의 데이터 패킷을 라우팅하고 전달합니다.
- 아키텍처 가정 (Architectural Assumptions)
1. 인터넷은 네트워크의 네트워크이다 (The Internet is a network of networks):
- 인터넷은 다양한 독립적인 네트워크가 상호 연결되어 형성된 네트워크입니다. 이러한 구성은 인터넷의 확장성과 유연성을 보장합니다.
2. 게이트웨이는 연결 상태 정보를 유지하지 않는다 (Gateways do not keep connection state information):
- 게이트웨이 또는 라우터는 데이터 전송 과정에서 개별 연결에 대한 상태 정보를 유지하지 않습니다. 이는 네트워크의 단순성과 안정성을 증가시킵니다.
3. 라우팅 복잡성은 게이트웨이에 있어야 한다 (Routing complexity should be in the gateways):
- 네트워크 간의 라우팅 복잡성은 게이트웨이에서 처리되어야 합니다. 이는 네트워크의 종단 시스템(호스트)이 단순한 역할을 수행할 수 있게 합니다.
4. 시스템은 광범위한 네트워크 변화를 수용할 수 있어야 한다 (The system must tolerate wide network variation):
- 인터넷은 다양한 네트워크 환경과 조건을 수용할 수 있어야 합니다. 이는 네트워크의 다양성과 복잡성을 처리할 수 있도록 설계되어야 함을 의미합니다.
- 요약
RFC 1122는 인터넷 호스트와 네트워크 간의 통신을 설명하는 중요한 문서로, 인터넷의 기본 구성 요소와 아키텍처 가정을 정의합니다. 호스트는 통신 서비스의 최종 소비자이며, 인터넷 통신 시스템은 패킷 네트워크의 상호 연결로 구성됩니다. 게이트웨이 또는 IP 라우터는 네트워크 간의 데이터를 전달하는 역할을 하며, 상태 정보를 유지하지 않습니다. 인터넷은 네트워크의 네트워크로서 다양한 네트워크 환경을 수용할 수 있도록 설계되어야 하며, 라우팅 복잡성은 게이트웨이에 집중되어야 합니다. 이러한 원칙들은 인터넷의 효율적이고 안정적인 운영을 가능하게 합니다.