인터넷 프로토콜 모음

Internet protocol suite

일반적으로 TCP/IP로 알려진 인터넷 프로토콜 스위트인터넷 및 유사한 컴퓨터 네트워크에서 사용되는 통신 프로토콜의 집합을 기능적 기준에 따라 구성하기 위한 프레임워크입니다.제품군의 기본 프로토콜은 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP) 및 인터넷 프로토콜(IP)입니다.이 네트워킹 모델의 초기 버전은 국방부(DoD) 모델로 알려져 있었는데, 이는 연구 개발이 DARPA를 통해 미국 국방부의 자금 지원을 받았기 때문입니다.

인터넷 프로토콜 제품군은 데이터를 패킷화, 주소 지정, 전송, 라우팅 및 수신하는 방법을 지정하는 엔드 투 엔드 데이터 통신을 제공합니다.이 기능은 4개의 추상화 계층으로 구성되어 있으며, 각 프로토콜의 네트워킹 범위에 따라 모든 관련 프로토콜을 분류합니다.[1][2]특정 애플리케이션에 대한 계층의 구현은 프로토콜 스택을 형성합니다.계층들은, 단일 네트워크 세그먼트(link) 내에 남아 있는 데이터에 대한 통신 방법들을 포함하는 링크 계층(link layer); 인터넷 계층, 독립적인 네트워크들 간의 인터워킹 제공; 트랜스포트 계층, 호스트간 통신 처리; 및 애플리케이션 계층,응용프로그램에 대한 프로세스 간 데이터 교환을 제공합니다.

인터넷 프로토콜 제품군과 그 구성 프로토콜의 기초가 되는 기술 표준은 인터넷 엔지니어링 태스크 포스(IETF)에 의해 유지됩니다.인터넷 프로토콜 제품군은 일반적인 네트워킹 시스템을 위한 보다 포괄적인 참조 프레임워크인 OSI 모델보다 앞선다.

역사

초기연구

최초의 인터넷 접속 다이어그램
SRI International Packet Radio Van, 최초의 3방향 인터넷 망 전송에 사용됨

처음에 DOD 인터넷 아키텍처 모델이라고 불렸던 인터넷 프로토콜 제품군은 1960년대 후반 국방 고등 연구 프로젝트 기관(DARPA)의 후원을 받은 연구 개발에 그 뿌리를 두고 있습니다.[3]1969년 DARPA가 선구적인 ARPANET을 시작한 후, Steve Crocker는 호스트-호스트 프로토콜인 네트워크 제어 프로그램(NCP)을 개발하는 "네트워킹 워킹 그룹"을 설립했습니다.[4]1970년대 초, DARPA는 모바일 패킷 라디오, 패킷 위성 서비스, 지역 네트워크 및 공공 및 민간 영역의 기타 데이터 네트워크를 포함한 여러 가지 다른 데이터 전송 기술에 대한 연구를 시작했습니다.1972년, Bob Kahn은 DARPA Information Processing Technology Office에 입사하여 위성 패킷 네트워크와 지상 무선 패킷 네트워크 모두에서 작업했으며, 두 네트워크를 통해 통신할 수 있다는 가치를 인식했습니다.1973년 봄, 빈튼 서프는 ARPANET의 다음 프로토콜 세대를 설계하여 인터넷 작업을 가능하게 할 목표로 칸에 합류했습니다.[5][6]그들은 ARPANET 연구 커뮤니티와 Cerf가 의장을 맡은 International Networking Working Group의 경험을 바탕으로 합니다.[7]

1973년 여름까지, Kahn과 Cerf는 기본적인 개혁안을 마련하였는데, 이는 공통적인 인터넷 작업 프로토콜을 사용함으로써 지역 네트워크 프로토콜들 간의 차이를 숨기고, 기존의 ARPANET 프로토콜과 같이 네트워크가 신뢰성을 책임지는 대신, 이 기능은 호스트에게 위임되었습니다.Cerf는 CYCLADES 네트워크의 디자이너인 Louis PouzinHubert Zimmermann이 이 디자인에 중요한 영향을 끼쳤다고 평가합니다.[8][9]새로운 프로토콜은 1974년에 전송 제어 프로그램으로 구현되었습니다.[10]

처음에는 전송 제어 프로그램(인터넷 프로토콜은 별도의 프로토콜로 존재하지 않았습니다)은 데이터그램이 아닌 신뢰할 수 있는 바이트 스트림 서비스만을 사용자에게 제공했습니다.[11]프로토콜에 대한 경험이 늘어남에 따라, 협력자들은 사용자들이 데이터그램 서비스에 직접 접근할 수 있도록 기능을 서로 다른 프로토콜 계층으로 나눌 것을 권고했습니다.옹호자들 중에는 패킷 음성 작업에 필요했던 Danny Cohen; 의견 요청서(RFC)를 편집했던 Southern California 대학 정보 과학 연구소Jonathan Postel;인터넷 개발을 문서화하고 촉매화한 기술적이고 전략적인 문서 시리즈;[12] 그리고 제록스 PARCRobert Metcalfe의 연구 그룹.[13][14]포스텔은 "우리는 계층화의 원칙을 위반함으로써 인터넷 프로토콜의 설계를 망치고 있습니다."라고 말했습니다.[15]다양한 메커니즘의 캡슐화는 상위 계층이 하위 계층에서 필요한 것에만 접근할 수 있는 환경을 만들기 위한 것이었습니다.단일 설계는 유연성이 떨어지고 확장성 문제로 이어질 수 있습니다.1978년에 작성된 TCP 버전 3에서 Cerf, Cohen 및 Postel은 전송 제어 프로그램을 두 개의 별개의 프로토콜로 나누었습니다. 즉, 인터넷 프로토콜을 무접속 계층으로, 전송 제어 프로토콜을 신뢰할 수 있는 연결 지향 서비스로.[nb 1][16]

네트워크 설계에는 엔드 노드 간 트래픽을 효율적으로 전송하고 라우팅하는 기능만 제공해야 하며 다른 모든 인텔리전스는 네트워크 가장자리, 엔드 노드에 위치해야 한다는 인식이 포함되었습니다.이러한 설계를 엔드 투 엔드 원칙이라고 합니다.이 설계를 이용하여 다른 지역 특성과 상관없이 동일한 원리를 사용하는 ARPANET에 다른 네트워크를 연결하는 것이 가능하게 되었고, 이를 통해 Kahn의 초기 인터넷 작업 문제를 해결할 수 있었습니다.유명한 표현은 Cerf와 Kahn의 작품의 궁극적인 산물인 TCP/IP가 "두 개의 깡통과 한 개의 끈" 위에 달릴 수 있다는 것입니다.[citation needed]수년 후 농담으로 AIBAR(AI Carrier) 공식 프로토콜 사양이 개발되어 테스트에 성공했습니다.

DARPA는 BBN Technologies, Stanford University, University College London과 계약하여 여러 하드웨어 플랫폼에서 프로토콜 운영 버전을 개발했습니다.[17]프로토콜을 개발하는 동안 패킷 라우팅 계층의 버전 번호는 버전 1에서 버전 4로 진행되었으며, 후자는 1983년 ARPANET에 설치되었습니다.현재의 후속 프로토콜인 인터넷 프로토콜 버전 6(IPv6)과 함께 인터넷에서 여전히 사용되고 있는 프로토콜로서 인터넷 프로토콜 버전 4(IPv4)로 알려지게 되었습니다.

조기구현

1975년에 Stanford와 University College London 사이에 두 개의 네트워크 IP 통신 테스트가 수행되었습니다.1977년 11월 미국, 영국, 노르웨이 사이트 간에 3개 네트워크 IP 테스트를 실시했습니다.1978년에서 1983년 사이에 여러 연구 센터에서 여러 개의 다른 IP 프로토타입이 개발되었습니다.

라우터라고 불리는 컴퓨터는 각 네트워크에 대한 인터페이스를 제공합니다.네트워크 패킷을 앞뒤로 전달합니다.[18]원래 라우터를 게이트웨이라고 불렀지만 다른 유형의 게이트웨이와 혼동을 피하기 위해 용어가 변경되었습니다.[19]

입양

1982년 3월 미국 국방부는 TCP/IP를 모든 군사용 컴퓨터 네트워킹의 표준으로 선언했습니다.[20]같은 해, 유니버시티 칼리지 런던NORSARPeter Kirstein의 연구 그룹은 이 의정서를 채택했습니다.[17]ARPANET의 NCP에서 TCP/IP로의 이동은 새로운 프로토콜이 영구적으로 활성화된 1983년 1월 1일 플래그데이에 공식적으로 완료되었습니다.[21]

1985년, 인터넷 자문 위원회(이후 인터넷 아키텍처 위원회)는 컴퓨터 산업을 위해 3일간의 TCP/IP 워크숍을 개최하여 250명의 공급업체 대표가 참석하여 프로토콜을 홍보하고 상업적 사용을 증가시켰습니다.1985년, 최초의 인터롭 컨퍼런스는 TCP/IP를 보다 광범위하게 채택함으로써 네트워크 상호 운용성에 초점을 맞추었습니다.이 회의는 초기 인터넷 활동가인 댄 린치에 의해 설립되었습니다.처음부터 IBM, DEC 등 대기업들이 참석했습니다.[22]

IBM, AT&T 및 DEC는 경쟁적인 독점 프로토콜에도 불구하고 TCP/IP를 채택한 최초의 주요 기업이었습니다.IBM에서는 1984년부터 Barry Appelman의 그룹이 TCP/IP 개발을 수행했습니다.이들MVS, VMOS/2를 비롯한 다양한 IBM 시스템을 위한 TCP/IP 제품의 스트림을 얻기 위해 기업 정치를 탐색했습니다.동시에 FTP 소프트웨어Wollongong Group과 같은 몇몇 소규모 회사들은 도스마이크로소프트 윈도우를 위한 TCP/IP 스택을 제공하기 시작했습니다.[23]최초의 VM/CMS TCP/IP 스택은 University of Wisconsin에서 나왔습니다.[24]

초기 TCP/IP 스택 중 일부는 몇몇 프로그래머에 의해 한 손으로 작성되었습니다.IBM Research의 Jay Elinsky와 Oleg Vishnepolsky는 각각 VM/CMS 및 OS/2용 TCP/IP 스택을 작성했습니다.[citation needed]1984년에 MIT의 Donald Gillies는 1983-84년에 MIT의 John Romkey에 의해 유지되는 IP/Packet Driver 계층에서 실행되는 다중 연결 TCP를 작성했습니다.롬키는 FTP 소프트웨어가 설립된 1986년에 이 TCP를 활용했습니다.[25][26]1985년 필 칸은 햄 무선 시스템을 위한 다중 접속 TCP 응용 프로그램(KA9Q TCP)을 개발했습니다.[27]

TCP/IP의 확산은 1989년 6월 캘리포니아 대학교 버클리BSD UNIX용으로 개발된 TCP/IP 코드를 퍼블릭 도메인에 넣기로 합의하면서 더욱 촉진되었습니다.IBM을 포함한 다양한 기업 공급업체들은 이 코드를 상용 TCP/IP 소프트웨어 릴리스에 포함시켰습니다.마이크로소프트는 윈도우 95에서 네이티브 TCP/IP 스택을 출시했습니다.이 이벤트는 IBM의 SNA(Systems Network Architecture)와 Digital Equipment CorporationDECnet, OSI(Open Systems Interconnection) 및 Xerox Network Systems(XNS)와 같은 기타 플랫폼을 포함한 Microsoft 기반 네트워크의 다른 프로토콜에 대한 TCP/IP의 지배력을 강화하는 데 도움이 되었습니다.

그러나 1980년대 후반과 1990년대 초반에는 OSI 모델과 인터넷 프로토콜 제품군 중 어느 표준이 가장 우수하고 강력한 컴퓨터 네트워크를 가져올지에 대한 문제로 엔지니어, 조직 및 국가들이 양극화되어 있었습니다.[28][29][30]

정식 규격 및 규격

인터넷 프로토콜 제품군과 그 구성 프로토콜의 기초가 되는 기술 표준은 인터넷 엔지니어링 태스크 포스(IETF)에 위임되었습니다.

인터넷 프로토콜 제품군의 특징적인 아키텍처는 핵심 기능을 구성하는 프로토콜의 운영 범위로 크게 구분되는 것입니다.제품군의 정의 사양은 RFC 1122이며, 4개의 추상화 계층을 폭넓게 설명합니다.[1]IETF가 이 구조를 수정한 적이 없기 때문에 이것들은 시간의 시험을 견뎌냈습니다.그러한 네트워킹 모델로서, 인터넷 프로토콜 제품군은 일반적인 네트워킹 시스템을 위한 보다 포괄적인 참조 프레임워크인 OSI 모델보다 앞서 있습니다.[30]

주요 아키텍처 원칙

각각의 라우터 간의 링크에 의해 연결된 두 호스트(AB)의 단순한 네트워크 토폴로지에서 개념적인 데이터 흐름.각 호스트의 애플리케이션은 프로세스가 일종의 데이터 파이프에 의해 서로 직접 연결된 것처럼 읽기 및 쓰기 작업을 실행합니다.이 파이프를 구축한 후, 통신의 기본 원칙들이 하위 프로토콜 계층들에서 구현되기 때문에, 통신의 대부분의 세부사항들은 각 프로세스들로부터 숨겨집니다.이와 유사하게 전송 계층에서 통신은 응용 프로그램 데이터 구조와 연결 라우터에 대한 지식 없이 호스트 대 호스트로 나타나며, 반면 인터넷 작업 계층에서는 개별 네트워크 경계가 각 라우터에서 교차합니다.
RFC 1122에 기술된 계층들을 통해 내려오는 애플리케이션 데이터의 캡슐화

엔드 투 엔드 원칙은 시간이 지남에 따라 발전해 왔습니다.원래 표현은 상태 유지와 전반적인 지능을 가장자리에 두었고, 가장자리를 연결하는 인터넷은 상태를 유지하지 않고 속도와 단순성에 집중한다고 가정했습니다.방화벽, 네트워크 주소 변환기, 웹 콘텐츠 캐시 등에 대한 현실적인 요구는 이 원칙에 변화를 강요했습니다.[31]

강건성 원칙은 다음과 같이 말합니다. "일반적으로, 구현은 전송 행위에 있어서 보수적이어야 하고, 수신 행위에 있어서는 자유적이어야 합니다.즉, 잘 형성된 데이터그램을 전송하는 것은 주의해야 하지만 해석할 수 있는 모든 데이터그램을 받아들여야 합니다(예: 의미가 여전히 명확한 기술적 오류에 반대하지 않음)."[32] 원칙의 두 번째 부분은 거의 중요합니다. 다른 호스트의 소프트웨어가 합법적이지만 모호한 프로토콜을 사용하는 것을 현명하지 않게 만드는 결함을 포함할 수 있습니다.이목구비."[33]

캡슐화는 프로토콜과 서비스의 추상화를 제공하는 데 사용됩니다.캡슐화는 일반적으로 프로토콜 제품군을 일반 기능의 계층으로 분할하여 정렬됩니다.일반적으로 응용프로그램(모델의 가장 높은 수준)은 일련의 프로토콜을 사용하여 데이터를 계층 아래로 보냅니다.데이터는 각 레벨에서 추가로 캡슐화됩니다.

초기의 건축 문서는 호스트 요구사항(Host Requirements)이라는 제목의 RFC1122는 계층화보다 아키텍처 원칙을 강조합니다.[34]RFC 1122는 계층을 참조하는 섹션으로 구성되어 있지만, 문서는 다른 많은 구조 원리를 참조하고 있으며 계층화를 강조하지 않습니다.다음과 같이 숫자가 아닌 이름을 가진 4계층 모델을 대략적으로 정의합니다.

  • 응용프로그램 계층은 응용프로그램 또는 프로세스가 사용자 데이터를 생성하고 이 데이터를 다른 호스트 또는 동일한 호스트의 다른 응용프로그램에 전달하는 범위입니다.애플리케이션은 기본 하위 계층에서 제공하는 서비스, 특히 다른 프로세스에 신뢰할 수 있거나 신뢰할 수 없는 파이프를 제공하는 전송 계층을 활용합니다.통신 파트너는 클라이언트-서버 모델 피어-투-피어 네트워킹과 같은 애플리케이션 아키텍처를 특징으로 합니다.SMTP, FTP, SSH, HTTP와 같은 모든 응용프로그램 프로토콜이 작동하는 계층입니다.프로세스는 본질적으로 서비스를 나타내는 포트를 통해 처리됩니다.
  • 전송 계층은 로컬 네트워크 또는 라우터로 구분된 원격 네트워크에서 호스트 간 통신을 수행합니다.[35]애플리케이션의 커뮤니케이션 요구를 위한 채널을 제공합니다.UDP는 신뢰할 수 없는 무연결 데이터그램 서비스를 제공하는 기본 전송 계층 프로토콜입니다.전송 제어 프로토콜은 흐름 제어, 연결 설정 및 신뢰성 있는 데이터 전송을 제공합니다.
  • 인터넷 계층은 네트워크 경계를 넘어 데이터그램을 교환합니다.기본 네트워크 연결의 실제 토폴로지(레이아웃)를 숨기는 균일한 네트워킹 인터페이스를 제공합니다.그러므로 그것은 또한 인터넷 네트워킹을 구축하는 계층이기도 합니다.실제로, 그것은 인터넷을 정의하고 확립합니다.이 계층은 TCP/IP 프로토콜 모음에 사용되는 주소 지정 및 라우팅 구조를 정의합니다.이 범위의 기본 프로토콜은 IP 주소를 정의하는 인터넷 프로토콜입니다.라우팅에서의 기능은 데이터그램을 다음 호스트로 전송하는 것이며, IP 라우터의 기능을 하며, 최종 데이터 대상에 가까운 네트워크에 연결할 수 있습니다.
  • 링크 계층은 라우터를 개입시키지 않고 호스트가 통신하는 로컬 네트워크 링크의 범위 내에서 네트워킹 방법을 정의합니다.이 계층에는 로컬 네트워크 토폴로지를 설명하는 데 사용되는 프로토콜과 인터넷 계층 데이터그램을 다음 이웃 호스트로 전송하는 데 필요한 인터페이스가 포함됩니다.

링크 계층

링크 계층의 프로토콜은 호스트가 연결된 로컬 네트워크 연결 범위 내에서 작동합니다.이 체제는 TCP/IP 구문에서 링크라고 불리며 제품군 중 가장 낮은 구성 요소 계층입니다.이 링크에는 라우터를 거치지 않고 액세스할 수 있는 모든 호스트가 포함됩니다.따라서 링크의 크기는 네트워킹 하드웨어 설계에 따라 결정됩니다.원칙적으로 TCP/IP는 하드웨어 독립적으로 설계되며 사실상 모든 링크 계층 기술 위에 구현될 수 있습니다.여기에는 하드웨어 구현뿐만 아니라 가상 사설 네트워크네트워킹 터널과 같은 가상 링크 계층도 포함됩니다.

링크 계층은 동일한 링크에 있는 서로 다른 두 호스트의 인터넷 계층 인터페이스 간에 패킷을 이동하는 데 사용됩니다.링크에서 패킷을 송수신하는 과정은 네트워크 카드의 장치 드라이버에서뿐만 아니라 펌웨어에서 또는 특수한 칩셋에서 제어할 수 있습니다.이것들은 전송을 위해 인터넷 계층 패킷들을 준비하기 위해 프레이밍과 같은 기능들을 수행하고, 마지막으로 프레임들을 물리 계층으로 그리고 전송 매체를 통해 전송합니다.TCP/IP 모델에는 인터넷 프로토콜에서 사용하는 네트워크 주소 지정 방법을 MAC(Media Access Control) 주소와 같은 링크 계층 주소로 변환하기 위한 사양이 포함되어 있습니다.그러나 해당 수준 이하의 다른 모든 측면은 암묵적으로 존재하는 것으로 가정되며 TCP/IP 모델에 명시적으로 정의되지 않습니다.

TCP/IP 모델의 링크 계층은 OSI 모델의 Layer 2에서 해당 기능을 갖습니다.

인터넷 계층

인터넷 작업을 하려면 소스 네트워크에서 대상 네트워크로 데이터를 전송해야 합니다.이 프로세스를 라우팅이라고 하며 계층적 IP 주소 지정 시스템을 사용하여 호스트 주소 지정 및 식별을 지원합니다.인터넷 계층은 데이터그램들을 그것의 목적지에 추가적으로 중계하기 위해 적절한 넥스트 홉 라우터에 포워딩함으로써 잠재적으로 다른 IP 네트워크에 위치한 호스트들 사이에 신뢰할 수 없는 데이터그램 전송 기능을 제공합니다.인터넷 계층은 여러 네트워크를 통해 패킷을 전송할 책임이 있습니다.이 기능을 통해 인터넷 계층은 다양한 IP 네트워크 간의 연동을 가능하게 하고 인터넷을 기본적으로 구축합니다.

인터넷 계층은 다양한 전송 계층 프로토콜을 구분하지 않습니다.IP는 다양한 상이한 상위 계층 프로토콜에 대한 데이터를 운반합니다.이러한 프로토콜들은 각각 고유한 프로토콜 번호로 식별됩니다. 예를 들어, ICMP(Internet Control Message Protocol)와 IGMP(Internet Group Management Protocol)는 각각 프로토콜 1과 프로토콜 2입니다.

인터넷 프로토콜은 인터넷 계층의 주요 구성 요소이며, 네트워크 호스트를 식별하고 네트워크 상에서 이들을 찾기 위한 두 개의 주소 지정 시스템을 정의합니다.ARPANET과 그 후속인 인터넷의 원래 주소 체계는 인터넷 프로토콜 버전 4 (IPv4)입니다.32비트 IP 주소를 사용하므로 약 40억 개의 호스트를 식별할 수 있습니다.이 제한은 128비트 주소를 사용하는 인터넷 프로토콜 버전 6(IPv6)의 표준화에 의해 1998년에 사라졌습니다.IPv6 프로덕션 구현은 대략 2006년에 등장했습니다.

수송층

전송 계층은 응용 프로그램이 작업별 데이터 교환에 사용하는 기본 데이터 채널을 설정합니다.계층은 기본 네트워크에 독립적이고 사용자 데이터의 구조 및 정보 교환의 물류에 독립적인 엔드 투 엔드 메시지 전송 서비스의 형태로 호스트간 연결을 수립합니다.전송 계층에서의 연결은 TCP에서 구현되는 연결 중심 또는 UDP에서 구현되는 연결 없는 연결로 분류될 수 있으며, 이 계층의 프로토콜은 오류 제어, 세그먼트화, 흐름 제어, 혼잡 제어 및 응용프로그램 어드레싱(포트 번호)을 제공할 수 있습니다.

계층은 응용 프로그램에 프로세스별 전송 채널을 제공하기 위한 목적으로 네트워크 포트의 개념을 설정합니다.이것은 응용 프로그램이 필요로 하는 각 통신 채널에 대해 특별히 할당된 번호가 매겨진 논리적 구성입니다.많은 유형의 서비스에서 이러한 포트 번호는 서비스 검색 또는 디렉토리 서비스의 개입 없이 클라이언트 컴퓨터가 서버 컴퓨터의 특정 서비스를 처리할 수 있도록 표준화되었습니다.

IP는 최상의 노력만을 제공하기 때문에 일부 전송 계층 프로토콜은 신뢰성을 제공합니다.

TCP는 신뢰할 수 있는 바이트 스트림을 제공하는 데 있어 수많은 신뢰성 문제를 해결하는 연결 지향 프로토콜입니다.

  • 데이터가 순서대로 도착합니다.
  • 데이터에 최소한의 오류(즉, 정확성)가 있습니다.
  • 중복된 데이터가 폐기됩니다.
  • 손실되거나 폐기된 패킷이 다시 전송됨
  • 교통 혼잡 제어를 포함합니다.

최신 SCTP(Stream Control Transmission Protocol)도 신뢰할 수 있는 연결 지향 전송 메커니즘입니다.TCP처럼 바이트 스트림 중심이 아닌 메시지 스트림 중심이며 단일 연결을 통해 다중화된 여러 스트림을 제공합니다.또한 멀티호밍 지원 기능을 제공하는데, 연결 끝은 여러 IP 주소(여러 물리적 인터페이스를 나타냄)로 표현할 수 있으므로, 하나가 실패해도 연결이 중단되지 않습니다.처음에는 전화 응용 프로그램(IP를 통해 SS7을 전송하기 위해)을 위해 개발되었습니다.

또한 HDLC(High-Level Data Link Control)와 같은 신뢰할 수 있는 데이터 링크 프로토콜을 통해 IP를 실행함으로써 신뢰성을 달성할 수 있습니다.

UDP(User Datagram Protocol)는 연결이 없는 데이터그램 프로토콜입니다.IP와 마찬가지로 신뢰할 수 없는 최선의 노력입니다.신뢰성은 체크섬 알고리즘을 사용한 오류 탐지를 통해 해결됩니다.UDP는 일반적으로 신뢰성보다 정시 도착이 더 중요한 스트리밍 미디어(오디오, 비디오, Voice over IP 등)와 같은 애플리케이션 또는 신뢰성 있는 연결 설정에 따른 오버헤드가 불균형적으로 큰 DNS 룩업과 같은 단순 질의/응답 애플리케이션에 사용됩니다.RTP(Real-time Transport Protocol)는 UDP를 통해 사용되는 데이터그램 프로토콜로 스트리밍 미디어와 같은 실시간 데이터를 위해 설계되었습니다.

임의의 지정된 네트워크 주소의 응용 프로그램은 TCP 또는 UDP 포트로 구별됩니다.일반적으로 잘 알려진 특정 포트는 특정 응용프로그램과 연결됩니다.

TCP/IP 모델의 전송 또는 호스트 대 호스트 계층은 OSI 모델의 네 번째 계층(전송 계층이라고도 함)에 대략 해당합니다.

QUIC는 대체 전송 프로토콜로 급부상하고 있습니다.기술적으로는 UDP 패킷을 통해 전송되지만 TCP와 관련하여 향상된 전송 연결을 제공하려고 합니다. HTTP/3는 QUIC를 통해서만 작동합니다.

응용 계층

애플리케이션 계층은 하위 수준 프로토콜에 의해 설정된 네트워크 연결을 통해 사용자 서비스를 제공하거나 애플리케이션 데이터를 교환하기 위해 대부분의 애플리케이션이 사용하는 프로토콜을 포함합니다.여기에는 라우팅 프로토콜 및 호스트 구성과 같은 기본적인 네트워크 지원 서비스가 포함될 수 있습니다.응용 계층 프로토콜의 예로는 HTTP(Hypertext Transfer Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol), DHCP(Dynamic Host Configuration Protocol) 등이 있습니다.[36]응용 계층 프로토콜에 따라 코딩된 데이터는 전송 계층 프로토콜 유닛(TCP 스트림 또는 UDP 데이터그램과 같은)으로 캡슐화되며, 이는 다시 하위 계층 프로토콜을 사용하여 실제 데이터 전송을 효과적으로 수행합니다.

TCP/IP 모델은 데이터의 포맷 및 프레젠테이션에 대한 구체적인 사항을 고려하지 않으며 OSI 모델(프레젠테이션 및 세션 계층)에서와 같이 애플리케이션 계층과 전송 계층 간의 추가 계층을 정의하지 않습니다.TCP/IP 모델에 따르면, 그러한 기능은 라이브러리응용 프로그램 인터페이스의 영역입니다.TCP/IP 모델의 애플리케이션 계층은 OSI 모델의 다섯 번째(세션), 여섯 번째(프레젠테이션) 및 일곱 번째(애플리케이션) 계층의 조합과 비교되는 경우가 많습니다.

응용 프로그램 계층 프로토콜은 종종 특정 클라이언트-서버 응용 프로그램과 연관되며, 일반 서비스는 IANA(Internet Assigned Numbers Authority)에 의해 예약된 잘 알려진 포트 번호를 가지고 있습니다.예를 들어 HyperText Transfer Protocol은 서버 포트 80을 사용하고 Telnet은 서버 포트 23을 사용합니다.서비스에 연결하는 클라이언트는 일반적으로 임의로 또는 애플리케이션에 구성된 특정 범위에서 트랜잭션 기간 동안에만 할당된 포트 번호인 ephemeral 포트를 사용합니다.

TCP/IP 모델은 응용 계층에서 사용자 프로토콜지원 프로토콜을 구분합니다.[37]지원 프로토콜은 네트워크 인프라의 시스템에 서비스를 제공합니다.사용자 프로토콜은 실제 사용자 응용프로그램에 사용됩니다.예를 들어 FTP는 사용자 프로토콜이고 DNS는 지원 프로토콜입니다.

애플리케이션은 대개 엔드포인트 IP 주소 및 포트 번호와 같은 전송 계층 연결의 주요 특성을 알고 있지만, 애플리케이션 계층 프로토콜은 일반적으로 전송 계층(및 하위) 프로토콜을 통신할 수 있는 안정적인 네트워크 연결을 제공하는 블랙박스로 취급합니다.전송 계층과 하위 계층은 응용 계층 프로토콜의 세부 사항과 무관합니다.라우터와 스위치는 일반적으로 캡슐화된 트래픽을 검사하지 않으며, 캡슐화된 트래픽을 위한 통로를 제공할 뿐입니다.그러나 일부 방화벽대역폭 조절 응용 프로그램에서는 심층 패킷 검사를 사용하여 응용 프로그램 데이터를 해석합니다.RSVP(Resource Reservation Protocol)를 예로 들 수 있습니다.[citation needed]또한 NAT의 영향을 받는 애플리케이션의 경우 애플리케이션 페이로드를 고려해야 하는 경우도 있습니다.

문헌에서의 계층화 진화와 표현

인터넷 프로토콜 제품군은 일정 기간 동안 자금을 지원받은 연구 개발을 통해 발전했습니다.이 과정에서 프로토콜 구성요소의 세부사항과 그 계층화가 변경되었습니다.또한 업계 협회들의 병행 연구 및 상업적 관심사들이 디자인 특징과 경쟁을 벌였습니다.특히, 국제표준화기구에서의 노력은 비슷한 목표를 가져왔지만, 전반적으로 네트워킹의 범위가 넓었습니다.표면적으로는 비슷하지만 세부적으로는 확연히 다른 두 주요 계층화 학교를 통합하려는 노력은 독립적인 교과서 저자들로 하여금 가교적인 교수 도구를 만들어 내도록 이끌었습니다.

다음 표는 다양한 네트워킹 모델을 보여줍니다.층의 수는 세 개에서 일곱 개 사이로 다양합니다.

Arpanet 참조 모델
(RFC 871)
인터넷 표준
(RFC 1122)
인터넷 모델
(Cisco Academy[38])
TCP/IP 5계층 참조모델
(코지에록,[39] 코머[40])
TCP/IP 5계층 참조모델
(타넨바움[41])
TCP/IP 프로토콜 모음 또는 5계층 인터넷 모델
(포루잔,[42] 쿠로세[43])
TCP/IP 모델
(스톨링[44])
OSI 모델
(ISO/IEC 7498-1:1994[45])
삼단 사겹 사겹 4단+1단 5단 5단 5단 칠단
응용/프로세스 어플 어플 어플 어플 어플 어플 어플
발표
세션
호스트 대 호스트 운송 운송 운송 운송 운송 호스트와 호스트 또는 전송 운송
인터넷 인터넷망 인터넷 인터넷 네트워크 인터넷 네트워크
네트워크 인터페이스 링크 네트워크 인터페이스 데이터링크 (네트워크인터페이스) 자료링크 자료링크 네트워크 접속 자료링크
(하드웨어) 물리적. 물리적. 물리적. 물리적.

네트워킹 모델 중 일부는 RFC 1122 및 다른 IETF 1차 소스의 의도와 상충될 수 있는 2차 소스인 교과서에서 가져온 것입니다.[46]

IMT2000 3GPP - TCP/IP 계층과 OSI 계층의 비교

OSI 모델의 3개 최상위 계층, 즉 응용 계층, 프레젠테이션 계층, 세션 계층은 전송 계층 위에만 응용 계층이 존재하는 TCP/IP 모델에서 구분되지 않습니다.X.400과 같은 일부 순수 OSI 프로토콜 애플리케이션도 이를 결합했지만 TCP/IP 프로토콜 스택이 전송 계층 위에 단일 아키텍처를 부과해야 할 필요는 없습니다.예를 들어, NFS 애플리케이션 프로토콜은 XDR(External Data Representation) 프레젠테이션 프로토콜을 통해 실행되며, 이 프로토콜은 RPC(Remote Procedure Call)라는 프로토콜을 통해 실행됩니다.RPC는 신뢰할 수 있는 기록 전송을 제공하여 최상의 노력으로 UDP 전송을 안전하게 사용할 수 있습니다.

서로 다른 저자들은 TCP/IP 모델을 다르게 해석하고 있으며, 링크 계층 또는 TCP/IP 모델의 어떤 측면이 OSI 계층 1(물리 계층) 문제를 포함하는지, 또는 TCP/IP가 링크 계층 아래에 하드웨어 계층이 존재한다고 가정하는지에 대해서도 의견이 다릅니다.

OSI 모델의 계층 1과 계층 2는 현대 표준에서 일반적으로 참조되기 때문에(예를 들어 IEEEITU에서) 여러 저자들이 TCP/IP 모델에 통합하려고 시도했습니다.이로 인해 링크 계층 또는 네트워크 액세스 계층이 OSI 모델의 계층 1과 2로 분할되는 5개의 계층으로 구성되는 모델이 종종 발생합니다.

IETF 프로토콜 개발 노력은 엄격한 계층화와는 무관합니다.일부 프로토콜은 OSI 모델에 적합하지 않을 수 있지만 RFC에서는 이를 참조하고 종종 이전 OSI 계층 번호를 사용합니다.IETF는 인터넷 프로토콜과 아키텍처 개발이 OSI를 준수하도록 의도된 것은 아니라고 여러 차례 밝혔습니다[citation needed].RFC 3439는 인터넷 아키텍처를 참조하여 "유해로 간주된 계층화"라는 제목의 섹션을 포함합니다.

예를 들어, OSI 제품군의 세션 및 프레젠테이션 계층은 TCP/IP 제품군의 애플리케이션 계층에 포함되는 것으로 간주됩니다.세션 계층의 기능은 HTTPSMTP와 같은 프로토콜에서 찾을 수 있으며 Telnet 및 SIP(Session Initiation Protocol)와 같은 프로토콜에서 더욱 명확하게 확인할 수 있습니다.세션 계층 기능은 TCP/IP 제품군의 전송 계층에 포함된 TCP 및 UDP 프로토콜의 포트 번호 지정을 통해 구현됩니다.표현 계층의 기능은 데이터 교환 시 MIME 표준을 적용한 TCP/IP 어플리케이션에서 구현됩니다.

다른 차이점은 라우팅 프로토콜의 처리에 있습니다.OSI 라우팅 프로토콜 IS-IS는 네트워크 계층에 속하며, 한 라우터에서 다른 라우터로 패킷을 전달하는 CLNS에 의존하지 않고 자체 계층-3 캡슐화를 정의합니다.반대로, OSPF, RIP, BGP 및 IETF에 의해 정의된 다른 라우팅 프로토콜은 IP를 통해 전송되며, 라우팅 프로토콜 패킷을 송수신하기 위한 목적으로 라우터가 호스트 역할을 합니다.그 결과, RFC 1812는 응용 계층에 라우팅 프로토콜을 포함합니다.Computer Networks의 Tanenbaum과 같은 일부 저자는 라우팅 프로토콜이 라우터의 포워딩 프로세스에 의해 결정된 사항을 알려준다고 추론하면서 IP와 같은 계층의 라우팅 프로토콜을 설명합니다.

IETF 프로토콜은 GRE(Generic Routing Encapsulation)와 같은 터널링 프로토콜에 의해 입증되는 바와 같이 재귀적으로 캡슐화될 수 있습니다.GRE는 OSI가 네트워크 계층에서 터널링에 사용하는 것과 동일한 메커니즘을 사용합니다.

구현

인터넷 프로토콜 제품군은 특정 하드웨어 또는 소프트웨어 환경을 가정하지 않습니다.하드웨어와 컴퓨터 네트워크에서 패킷을 주고받을 수 있는 소프트웨어 계층만 있으면 됩니다.그 결과, 이 제품군은 본질적으로 모든 컴퓨팅 플랫폼에 구현되었습니다.TCP/IP의 최소한의 구현은 다음과 같습니다.인터넷 프로토콜(IP), 주소 해결 프로토콜(ARP), 인터넷 제어 메시지 프로토콜(ICMP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 인터넷 그룹 관리 프로토콜(IGMP).IP, ICMP, TCP, UDP, Internet Protocol 버전 6에는 NDP(Neighbor Discovery Protocol), ICMPv6 및 MLD(Multicast Listener Discovery)가 필요하며 종종 통합 IPSec 보안 계층이 함께 제공됩니다.

참고 항목

메모들

  1. ^ Abbate, Inventing the Internet, 129–30; 및 . TCP/IP 분할에 이르는 토론 기록은 Internet Experiment Notes Index에서 Internet Experiment Notes 시리즈를 참조하십시오.

참고문헌

  1. ^ a b Braden, R., ed. (October 1989). Requirements for Internet Hosts – Communication Layers. doi:10.17487/RFC1122. RFC 1122.
  2. ^ Braden, R., ed. (October 1989). Requirements for Internet Hosts – Application and Support. doi:10.17487/RFC1123. RFC 1123.
  3. ^ Cerf, Vinton G. & Cain, Edward (October 1983). "The DoD Internet Architecture Model". Computer Networks. North-Holland. 7 (5): 307–318. doi:10.1016/0376-5075(83)90042-9.
  4. ^ Reynolds, J.; Postel, J. (1987). The Request For Comments Reference Guide. doi:10.17487/RFC1000. RFC 1000.
  5. ^ Hafner, Katie; Lyon, Matthew (1996). Where wizards stay up late : the origins of the Internet. Internet Archive. New York : Simon & Schuster. p. 263. ISBN 978-0-684-81201-4.
  6. ^ Russell, Andrew L. (2014). Open standards and the digital age: history, ideology, and networks. New York: Cambridge Univ Press. p. 196. ISBN 978-1107039193. Archived from the original on December 28, 2022. Retrieved December 20, 2022.
  7. ^ Abbate, Janet (2000). Inventing the Internet. MIT Press. pp. 123–4. ISBN 978-0-262-51115-5. Archived from the original on January 17, 2023. Retrieved May 15, 2020.
  8. ^ Cerf, V.; Kahn, R. (1974). "A Protocol for Packet Network Intercommunication" (PDF). IEEE Transactions on Communications. 22 (5): 637–648. doi:10.1109/TCOM.1974.1092259. ISSN 1558-0857. Archived (PDF) from the original on October 10, 2022. Retrieved October 18, 2015. The authors wish to thank a number of colleagues for helpful comments during early discussions of international network protocols, especially R. Metcalfe, R. Scantlebury, D. Walden, and H. Zimmerman; D. Davies and L. Pouzin who constructively commented on the fragmentation and accounting issues; and S. Crocker who commented on the creation and destruction of associations.
  9. ^ "The internet's fifth man". Economist. December 13, 2013. Archived from the original on April 19, 2020. Retrieved September 11, 2017. In the early 1970s Mr Pouzin created an innovative data network that linked locations in France, Italy and Britain. Its simplicity and efficiency pointed the way to a network that could connect not just dozens of machines, but millions of them. It captured the imagination of Dr Cerf and Dr Kahn, who included aspects of its design in the protocols that now power the internet.
  10. ^ Cerf, Vinton; Dalal, Yogen; Sunshine, Carl (December 1974). Specification of Internet Transmission Control Protocol. doi:10.17487/RFC0675. RFC 675.
  11. ^ Cerf, Vinton (March 1977). "Specification of Internet Transmission Control Protocol TCP (Version 2)" (PDF). Archived (PDF) from the original on May 25, 2022. Retrieved August 4, 2022.
  12. ^ 인터넷 명예의 전당
  13. ^ Panzaris, Georgios (2008). Machines and romances: the technical and narrative construction of networked computing as a general-purpose platform, 1960–1995. Stanford University. p. 128. Archived from the original on January 17, 2023. Retrieved September 5, 2019.
  14. ^ Pelkey, James L. (2007). "Yogen Dalal". Entrepreneurial Capitalism and Innovation: A History of Computer Communications, 1968–1988. Archived from the original on October 8, 2022. Retrieved October 8, 2020.
  15. ^ Postel, Jon (August 15, 1977), 2.3.3.2 Comments on Internet Protocol and TCP, IEN 2, archived from the original on May 16, 2019, retrieved June 11, 2016
  16. ^ Russell, Andrew L. (2007). "Industrial Legislatures": Consensus Standardization in the Second and Third Industrial Revolutions (PDF) (PhD thesis). Johns Hopkins University. Archived (PDF) from the original on December 28, 2022. Retrieved December 28, 2022.
  17. ^ a b by Vinton Cerf, as told to Bernard Aboba (1993). "How the Internet Came to Be". Archived from the original on September 26, 2017. Retrieved September 25, 2017. We began doing concurrent implementations at Stanford, BBN, and University College London. So effort at developing the Internet protocols was international from the beginning. ... Mar '82 - Norway leaves the ARPANET and become an Internet connection via TCP/IP over SATNET. Nov '82 - UCL leaves the ARPANET and becomes an Internet connection.
  18. ^ Baker, F. (June 1995). Requirements for IP Version 4 Routers. doi:10.17487/RFC1812. RFC 1812.
  19. ^ Crowell, William; Contos, Brian; DeRodeff, Colby (2011). Physical and Logical Security Convergence: Powered By Enterprise Security Management. Syngress. p. 99. ISBN 9780080558783.
  20. ^ Ronda Hauben. "From the ARPANET to the Internet". TCP Digest (UUCP). Archived from the original on July 21, 2009. Retrieved July 5, 2007.
  21. ^ "TCP/IP Internet Protocol". Archived from the original on January 1, 2018. Retrieved December 31, 2017.
  22. ^ Leiner, Barry M.; et al. (1997), Brief History of the Internet (PDF), Internet Society, p. 15, archived (PDF) from the original on January 18, 2018, retrieved January 17, 2018
  23. ^ "Using Wollongong TCP/IP with Windows for Workgroups 3.11". Microsoft Support. Archived from the original on January 12, 2012.
  24. ^ "A Short History of Internet Protocols at CERN". Archived from the original on November 10, 2016. Retrieved September 12, 2016.
  25. ^ Baker, Steven; Gillies, Donald W. "Desktop TCP/IP at middle age". Archived from the original on August 21, 2015. Retrieved September 9, 2016.
  26. ^ Romkey, John (February 17, 2011). "About". Archived from the original on November 5, 2011. Retrieved September 12, 2016.
  27. ^ Phil Karn, KA9Q TCP 다운로드 웹사이트
  28. ^ Andrew L. Russell (July 30, 2013). "OSI: The Internet That Wasn't". IEEE Spectrum. Vol. 50, no. 8. Archived from the original on August 1, 2017. Retrieved February 6, 2020.
  29. ^ Russell, Andrew L. "Rough Consensus and Running Code' and the Internet-OSI Standards War" (PDF). IEEE Annals of the History of Computing. Archived from the original (PDF) on November 17, 2019.
  30. ^ a b Davies, Howard; Bressan, Beatrice (April 26, 2010). A History of International Research Networking: The People who Made it Happen. John Wiley & Sons. ISBN 978-3-527-32710-2. Archived from the original on January 17, 2023. Retrieved November 7, 2020.
  31. ^ Blumenthal, Marjory S.; Clark, David D. (August 2001). "Rethinking the design of the Internet: The end-to-end arguments vs. the brave new world" (PDF). Archived (PDF) from the original on October 8, 2022. Retrieved October 8, 2022.
  32. ^ Jon Postel, ed. (September 1981). Internet Protocol DARPA Internet Program Protocol Specification. p. 23. doi:10.17487/RFC0791. RFC 791.
  33. ^ R. Braden, ed. (October 1989). Requirements for Internet Hosts – Communication Layers. p. 13. doi:10.17487/RFC1122. RFC 1122.
  34. ^ B. Carpenter, ed. (June 1996). Architectural Principles of the Internet. doi:10.17487/RFC1958. RFC 1958.
  35. ^ Hunt, Craig (2002). TCP/IP Network Administration (3rd ed.). O'Reilly. pp. 9–10. ISBN 9781449390785.
  36. ^ Stevens, W. Richard (February 1994). TCP/IP Illustrated: the protocols. ISBN 0-201-63346-9. Archived from the original on April 22, 2012. Retrieved April 25, 2012.
  37. ^ "1.1.3 Internet Protocol Suite". Requirements for Internet Hosts – Communication Layers. 1989. p. 9. doi:10.17487/RFC1122. RFC 1122.
  38. ^ Dye, Mark; McDonald, Rick; Rufi, Antoon (October 29, 2007). Network Fundamentals, CCNA Exploration Companion Guide. Cisco Press. ISBN 9780132877435. Retrieved September 12, 2016 – via Google Books.
  39. ^ Kozierok, Charles M. (January 1, 2005). The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference. No Starch Press. ISBN 9781593270476. Retrieved September 12, 2016 – via Google Books.
  40. ^ Comer, Douglas (January 1, 2006). Internetworking with TCP/IP: Principles, protocols, and architecture. Prentice Hall. ISBN 0-13-187671-6. Retrieved September 12, 2016 – via Google Books.
  41. ^ Tanenbaum, Andrew S. (January 1, 2003). Computer Networks. Prentice Hall PTR. p. 42. ISBN 0-13-066102-3. Retrieved September 12, 2016 – via Internet Archive. networks.
  42. ^ Forouzan, Behrouz A.; Fegan, Sophia Chung (August 1, 2003). Data Communications and Networking. McGraw-Hill Higher Education. ISBN 9780072923544. Retrieved September 12, 2016 – via Google Books.
  43. ^ Kurose, James F.; Ross, Keith W. (2008). Computer Networking: A Top-Down Approach. Pearson/Addison Wesley. ISBN 978-0-321-49770-3. Archived from the original on January 23, 2016. Retrieved July 16, 2008.
  44. ^ Stallings, William (January 1, 2007). Data and Computer Communications. Prentice Hall. ISBN 978-0-13-243310-5. Retrieved September 12, 2016 – via Google Books.
  45. ^ ISO/IEC 7498-1:1994 Information technology — Open Systems Interconnection — Basic Reference Model: The Basic Model.
  46. ^ Bush, R.; Meyer, D., eds. (December 2002). Some Internet Architectural Guidelines and Philosophy. doi:10.17487/RFC3439. RFC 3439.

서지학

외부 링크