이 글에서 다룰 문제에 대한 잠재적 인 오해 나 오해가 있습니다.
다이어그램 2에서는 컴퓨터 (PC)가 인터넷을 통해 다른 컴퓨터로 메시지를 작성, 처리 및 전송하는 데 사용할 소프트웨어 "스택" 을 나타냅니다.
스마트 폰 / TV / 게임 콘솔 등 모든 종류의 컴퓨터가이 형식을 사용 합니까?
(이 점에서) 셀룰러 인터넷 과 Wi-Fi / 이더넷 간에 차이가 있습니까?
"응용 프로그램"레이어가없는 단일 기능 장치 ( 예 : 웹 연결 카메라, 조명 스위치 또는 온도 조절 장치)는 어떻습니까?
이러한 오해의 존재는 다음에 대한 설명의 포함을 필요로한다 (이후 논의의 맥락을 제공하기 위해).
- 인터넷이란
- TCP / IP 프로토콜 제품군
- 응용 프로그램
그런 다음 질문이 직접 해결됩니다.
중요성과 복잡성을 감안할 때 전체 시리즈의 책은 TCP / IP 프로토콜 제품군에 작성되었습니다. 여기에서의 정의와 설명은 주로 Wikipedia, TCP / IP Illustrated Volume 1 Second Edition : Stevens and Fall 의 프로토콜 , IBM의 TCP / IP 학습서 및 기술 개요 에서 주로 설명합니다 .
1. 인터넷
인터넷은 기술적으로 WAN (광역 네트워크) 이지만 인터넷 을 생각하는 데 도움이되는보다 유용한 방법은 일종의 슈퍼 네트워크 (네트워크 네트워크) 또는 서로 다른 여러 연결된 네트워크 의 집합체입니다 . 다음은 인터넷의 일부를 통한 라우팅 경로 그림입니다.
- 인터넷은 많은 연결된 네트워크로 구성됩니다
- 네트워크는 하나 이상의 시스템 ( host )으로 구성 될 수 있습니다
- 연결된 시스템은 일반적으로 일종의 하드웨어 플랫폼에서 실행됩니다.
- 네트워크에 연결된 시스템 유형과 시스템에서 실행되는 하드웨어에 상당한 차이가 있습니다.
인터넷의 작동 방식에 대한 재미있는 내용은 Arstechnica 기사 인터넷 작동 방식 : 해저 섬유, 병 속의 뇌 및 동축 케이블에서 찾을 수 있습니다 .
그렇다면 서로 다른 네트워크에 연결된 서로 다른 하드웨어 플랫폼에서 실행되는 서로 다른 시스템이 어떻게 서로 통신 할 수 있습니까? 이렇게 광대 한 이기종 시스템과 네트워크 간의 통신은 어떻게 가능합니까? 이 모든 것이 어떻게 동시에 일어날 수 있습니까?
2. 인터넷 프로토콜 스위트
대답은 인터넷 프로토콜 제품군, 즉 TCP / IP 프로토콜 제품군에서 제공합니다. 이 질문들은 인터넷 아키텍처의 설계 과정에서 고려되었습니다 (TCP / IP 일러스트, 섹션 1.1 : 건축 원칙) :
인터넷 아키텍쳐 생성을위한 몇 가지 목표가있었습니다. [C88]에서 기본 목표는 "기존의 상호 연결 네트워크의 다중 이용을위한 효과적인 기술을 개발한다."로 클락 재검 것을이 말씀의 본질이 있다는 것이다 인터넷 아키텍처는 여러 개의 서로 다른 네트워크를 상호 연결 할 수 있어야하고 여러 활동을해야 상호 연결된 결과 네트워크에서 동시에 실행할 수 있어야합니다 .
에서 인터넷 프로토콜 스위트 (위키 백과)
인터넷 프로토콜 제품군은 인터넷 및 유사한 컴퓨터 네트워크에서 사용되는 개념적 모델 및 통신 프로토콜 집합입니다.
인터넷 프로토콜 제품군은 데이터의 패킷 화, 주소 지정, 전송, 라우팅 및 수신 방법을 지정하는 종단 간 데이터 통신을 제공합니다 . 이 기능은 관련된 네트워킹 범위에 따라 모든 관련 프로토콜을 정렬하는 데 사용되는 4 개의 추상화 계층으로 구성됩니다.
TCP / IP 프로토콜 제품군을 생각하는 한 가지 방법은 다른 시스템과 다른 네트워크에서 실행중인 프로세스가 서로 통신 할 수있는 방법에 대한 사양입니다. 본질적으로 TCP / IP 프로토콜 제품군은 프로세스 간 통신을위한 표준을 제공합니다.
TCP / IP 프로토콜 제품군을 올바르게 구현하는 모든 시스템은 프로세스가 인터넷을 통해 통신 할 수 있도록 제공하는 기능을 사용할 수 있습니다. 실제로 프로세스가 인터넷을 통해 다른 네트워크의 원격 시스템에서 실행되는 다른 프로세스와 통신 하려면 시스템 이 표준 호환 TCP / IP 스위트 프로토콜을 사용해야 합니다.
3. 응용
에서 응용 소프트웨어 (위키 백과)
응용 프로그램 (응용 프로그램 또는 응용 프로그램)은 사용자의 이익을 위해 조정 된 기능, 작업 또는 활동 그룹을 수행하도록 설계된 컴퓨터 프로그램입니다. 응용 프로그램의 예로는 워드 프로세서, 스프레드 시트, 회계 응용 프로그램, 웹 브라우저, 미디어 플레이어, 항공 비행 시뮬레이터, 콘솔 게임 또는 사진 편집기가 있습니다. 집합 명사 응용 프로그램 소프트웨어는 모든 응용 프로그램을 통칭합니다. 이것은 주로 컴퓨터 실행과 관련된 시스템 소프트웨어와 대조됩니다.
응용 프로그램은 시스템에서 실행 되는 사용자 공간 프로세스 로 생각할 수 있습니다 . 위에 나열된 예 외에도 (비 커널 모드) 컴퓨터 바이러스, 웹 서버, 카메라 응용 프로그램 및 센서 데이터 집계 프로그램과 같은 프로그램이 포함될 수 있습니다.
응용 프로그램이 인터넷을 통해 데이터를 송수신 할 때는 호스트 시스템의 TCP / IP 프로토콜 제품군 구현을 사용해야합니다 . 에서 응용 프로그램 층 (위키 백과)
TCP / IP에서 응용 프로그램 계층에는 인터넷 프로토콜 (IP) 컴퓨터 네트워크를 통한 프로세스 간 통신에 사용되는 통신 프로토콜 및 인터페이스 방법이 포함되어 있습니다. 응용 프로그램 계층은 통신 만 표준화하고 기본 전송 계층 프로토콜에 따라 호스트 간 데이터 전송 채널을 설정하고 클라이언트-서버 또는 P2P 네트워킹 모델에서 데이터 교환을 관리합니다.
TCP / IP 프로토콜 제품군의 응용 프로그램 계층에는 FTP (File Transfer Protocol), DNS (Domain Name System) 및 HTTP (Hypertext Transfer Protocol)와 같은 프로토콜이 포함됩니다.
예를 들어, 응용 프로그램 계층 프로토콜 HTTP는 클라이언트 시스템, 웹 브라우저 및 서버 응용 프로그램, 웹 서버 프로세스 등 서로 다른 시스템에서 실행되는 두 프로세스간에 데이터가 전송되는 방식을 지정합니다.
잠재적 인 오해의 명확화
다이어그램 2에서는 컴퓨터 (PC)가 인터넷을 통해 다른 컴퓨터로 메시지를 작성, 처리 및 전송하는 데 사용할 소프트웨어 "스택" 을 나타냅니다 .
TCP / IP 프로토콜 제품군은 소프트웨어 스택이 아닙니다. 에서 Technopedia :
소프트웨어 스택은 결과를 생성하거나 공통의 목표를 달성하기 위해 함께 작동하는 프로그램 그룹입니다. 소프트웨어 스택은 또한 공통 목표를 향해 특정 정의 된 순서로 작동하는 응용 프로그램 집합 또는 집합으로 작동하는 유틸리티 또는 일상 응용 프로그램 그룹을 나타냅니다. 설치 가능한 파일, 제품의 소프트웨어 정의 및 패치는 소프트웨어 스택에 포함될 수 있습니다. 널리 사용되는 Linux 기반 소프트웨어 스택 중 하나는 LAMP (Linux, Apache, MYSQL, Perl 또는 PHP 또는 Python)입니다. WINS (Windows Server, Internet Explorer, .NET, SQL Server)는 널리 사용되는 Windows 기반 소프트웨어 스택입니다.
오히려 프로토콜 스택이며 일반적으로 커널에 의해 구현됩니다 ( Technopedia 에서도 ).
프로토콜 스택은 네트워크 프로토콜 제품군의 구현에 사용되는 동시에 실행되는 프로토콜 그룹을 나타냅니다.
스택의 프로토콜은 OSI 또는 TCP / IP 모델과 같은 계층화 된 네트워크 모델에 대한 상호 연결 규칙을 결정합니다. 스택이 되려면 프로토콜이 상호 운용 가능해야 네트워크의 계층간에 수직으로 그리고 각 전송 세그먼트의 끝점간에 수평으로 연결할 수 있어야합니다.
모든 종류의 컴퓨터 (스마트 폰 / TV / 게임 콘솔 등)가이 형식을 사용 합니까?
TCP / IP 프로토콜 제품군은 형식이 아니라 하드웨어 및 운영 체제 독립적 통신 사양입니다 . 하나의 하드웨어 플랫폼에서 실행되는 프로세스가 다른 하드웨어 플랫폼의 원격 시스템에서 실행되는 프로세스와 통신해야하고 인터넷을 통해 통신이 이루어지는 경우 시스템은
- TCP / IP 프로토콜 제품군을 올바르게 구현하고
- 이 제품군 내의 적절한 프로토콜을 사용하여 프로세스 간 통신을 수행 해야합니다.
(이 점에서) 셀룰러 인터넷 과 Wi-Fi / 이더넷 간에 차이가 있습니까?
이 질문에 대한 나의 해석은 "모바일 장치가 GSM 네트워크에 연결되는 방식과 모바일 장치가 WiFi 네트워크에 연결하는 방식에 차이가 있습니까?"입니다.
차이점은 네트워크 인터페이스 계층에 있습니다.
이 질문은 질문에 링크 된 기사의 다이어그램에서 TCP / IP 프로토콜 제품군의 잘못된 표현을 나타냅니다. 참고로 다이어그램은 다음과 같습니다.
"하드웨어"라고하는 가장 낮은 계층은 링크 계층 , MAC (Media Access Control) 계층 또는 네트워크 인터페이스 계층이라고 합니다.
IBM의 "TCP / IP 학습서 및 기술 개요"페이지 34에서 :
링크 계층 또는 데이터 링크 계층이라고도하는 네트워크 인터페이스 계층은 실제 네트워크 하드웨어에 대한 인터페이스입니다. 이 인터페이스는 안정적인 전달을 제공하거나 제공하지 않을 수 있으며, 패킷 또는 스트림 지향적 일 수있다. 실제로 TCP / IP는 여기서 프로토콜을 지정하지 않지만 사용 가능한 거의 모든 네트워크 인터페이스를 사용할 수 있으며 이는 IP 계층의 유연성을 보여줍니다. 예를 들어 IEEE 802.2, X.25 (자체적으로 신뢰할 수 있음), ATM, FDDI 및 SNA가 있습니다.
다음은 정확하고 우수한 묘사입니다 ( TCP / IP 안내서 참조 ).
네트워크 인터페이스 계층에 대한 논의가 관련된 이유는 셀룰러 / 모바일 장치가 GSM 네트워크와 WiFi 네트워크에 연결하는 방식에 차이가 있기 때문에이 계층에 있기 때문입니다.
"응용 프로그램"레이어가없는 단일 기능 장치 ( 예 : 웹 연결 카메라, 조명 스위치 또는 온도 조절 장치)
앞에서 설명한 것처럼 TCP / IP 프로토콜 제품군의 응용 프로그램 계층에있는 프로토콜은 응용 프로그램 데이터가 프로세스간에 교환되는 방법에 대한 표준을 제공합니다.
레이어는 개념적입니다. 시스템이나 하드웨어 플랫폼에 상주하지 않습니다.
웹에 연결된 카메라, 조명 스위치 및 온도 조절기는 원격 시스템에서 실행되는 프로세스 (펌웨어 업데이트 확인, 서버와의 데이터 교환 등)와 인터넷을 통해 통신하는 프로세스를 실행할 수 있습니다. 이러한 프로세스 또는 응용 프로그램은 TCP / IP 프로토콜 제품군의 구현을 활용하여이 프로세스 간 통신을 수행합니다.
TCP / IP 프로토콜 제품군 및 임베디드 시스템 ( "IoT")
기존의 PC 또는 서버에서 실행되는 서로 다른 응용 프로그램 계층 프로토콜을 사용하는 다양한 응용 프로그램이 있지만 하드웨어 플랫폼이 해당 액세스 포인트 (네트워크 인터페이스 / 데이터 링크 계층)에 연결되는 방식에는 큰 차이가 없습니다. 주로 이더넷을 통해 유선 또는 무선으로 수행됩니다.
TCP / IP를 통해 통신하는 다양한 임베디드 시스템의 경우 상황이 다소 다릅니다. 다음은 Postscapes 의 그림입니다 .
자세한 내용은 다음 기사를 참조하십시오.
사물 인터넷 뒤의 프로토콜 이해
IoT 표준 및 프로토콜
IoT 기술 가이드 북