답변:
TCP와 IP (v4 & v6)는 확실히 분리 가능하며 TCP over IPX ( RFC 1791 ) 의 예에서 입증 된 것처럼 하나는 다른 것을 의미하지 않습니다 .
그러나 TCP는 모든 네트워크 프로토콜을 통해 구축 될 수 없습니다 . 두 가지 이유 :
TCP 사양 RFC 793 은이 질문을 결정하기에 좋은 소스가 아닙니다. 하위 계층과의 인터페이스가 크게 지정되지 않았기 때문입니다.
참고 a) TCP가 작은 종이에 인쇄 된 데이터 그램을 다시 조립하려면 (비둘기 또는보다 지능적인 corvid 네트워크에 의해 운반 되든) 페이로드의 크기는 표준 위치에 기록되어야합니다. 대안 적으로, 적응 계층은 경험적으로 세그먼트 크기를 결정할 수있다. 조류 캐리어 사양 ( RFC 1149 ) 의 호스트 스택의 구현에 사용 된 광학 스캐너 는 그러한 휴리스틱 적응 계층을 포함하지만, 문서화되지 않은 채 남아있다.
전체 RFC를 읽지는 않았지만 1.4 절의 언어는 "더 낮은 수준의"프로토콜을 사용할 수 있다고 제안하는 것 같습니다.
TCP와 하위 수준 프로토콜 사이의 인터페이스는 두 수준이 서로 비동기 적으로 정보를 전달할 수있는 메커니즘이 있다고 가정하는 것을 제외하고는 기본적으로 지정되어 있지 않습니다. 일반적으로 하위 수준 프로토콜이이 인터페이스를 지정해야합니다. TCP는 상호 연결된 네트워크의 매우 일반적인 환경에서 작동하도록 설계되었습니다. 이 문서 전체에서 가정되는 하위 수준 프로토콜은 인터넷 프로토콜입니다.
TCP는 TCP / IP의 약자입니다.
TCP / IP는 종종 " Internet Protocol Suite " 라는 속기 방식으로 사용되며 일반적으로 다른 표준 프로토콜을 포함합니다. 사람들이 TCP / IP를 말할 때 일반적으로 UDP over IP (TCP 대신 UDP가 사용됨)와 ARP, ICMP, DNS, SNMP 및 기타 응용 프로그램 계층 프로토콜과 같은 다른 많은 프로토콜을 포함합니다.
응용 프로그램은 SMTP (이메일 용)와 같은 응용 프로그램 계층 프로토콜을 사용합니다. 이것들은 TCP와 UDP의 두 가지 전송 계층 프로토콜 중 하나에 있습니다. 일부 응용 프로그램 계층 프로토콜은 UDP와 TCP 중 하나 또는 둘 다를 사용하지만 대부분 하나의 전송 계층 프로토콜과 함께 사용됩니다.
TCP 및 UDP는 Internet Protocol Suite에서 사용되는 두 가지 전송 계층 프로토콜입니다. 다른 사람들이 있다면 나는 그들에 대해 모르고 다른 사람들은 거의 작은 전문가 사용을 나타냅니다. 다른 전송 계층 프로토콜이 정의되었습니다. 사용량은 아마도 전 세계 IP 트래픽의 작은 비율 일뿐입니다 †
이론적으로 IP 이외의 다른 TCP를 사용하는 것이 가능할 수도 있지만 실제로 TCP는 항상 IP (인터넷 프로토콜)를 통해 사용됩니다. IP는 네트워크간에 패킷을 이동합니다 (여러 LAN을 함께 연결하는 것으로 생각합니다)
이더넷은 TCP / IP가 전달되는 가장 유명한 저수준 링크 계층 프로토콜 제품군이지만 TCP / IP는 ATM 및 기타에서도 널리 사용됩니다.
Internet Protocol Suite를 사용하는 네트워크에서 유일하게 사용되는 전송 계층 프로토콜은 TCP 및 UDP입니다.
† 재미있게, NetBIOS (TCP를 통한), SSH, Rsync, 이메일, 소프트웨어 업데이트, DNS, 일반적인 Windows 박스 채터 및 기타 몇 가지 유형의 트래픽을 포함하여 (매우) 작은 LAN에서 트래픽을 측정했습니다.
QUIC 프로토콜에 대한 Google FAQ 의이 내용도 참고하십시오.
UDP를 사용하지 않고 완전히 새로운 프로토콜을 구축하지 않은 이유는 무엇입니까? 오늘날 인터넷의 중간 상자는 TCP 또는 UDP 트래픽이 아닌 경우 일반적으로 트래픽을 차단합니다.
(내 강조)
TCP / IP가 일반적인 약어 (UDP / IP 또는 SCTP / IP와 달리) 인 이유는 두 프로토콜이 함께 설계되었고 Vint Cerf와 Bob Kahn의 원본 논문에서 두 가지 개념이 있었기 때문입니다. 단일 프로토콜로 결합되었습니다. 그 후 그들은 흐름 제어, 멀티플렉싱, 오류 감지 등을 제공하기 위해 라우팅과 TCP를 제공하기 위해 IP로 나뉘어졌습니다. 6 년이 지난 후에 UDP가 도입되어 "경량"멀티플렉싱 레이어를 제공하기 시작했습니다. TCP와 관련된 오버 헤드.
여전히 TCP와 IP는 서로 분리되어 있으며 완전히 의도적으로 독립적입니다. TCP가 IP를 필요로하지 않는다는 사실은 TCP가 완전히 다른 두 가지 프로토콜 인 IPv4와 IPv6 모두에서 수정되지 않은 상태로 실행될 수 있다는 사실과 함께 즉시 드러납니다.
약간의 작업만으로도 동일한 목적에 부합하는 IP에 대한 경쟁 프로토콜을 만들 수 있지만 동일한 기능을 모두 포함하지는 않더라도 대부분을 포함해야 할 것이며 아마도 어쨌든 IP와 비슷하게 보일 수 있습니다. IPSec과 같은 IP 확장은 실질적으로 대체 계층 3 프로토콜이라고 주장 할 수 있습니다.
TCP와 IP는 빵 위에 버터와 같습니다.
두 프로토콜 중 하나와 작동하는 다른 항목을 페어링 할 수 있지만이 두 가지가 보완 적이므로 데이터 를 전송 하고 배를 인터넷 데이터로 채울 수 있는 맛있는 방법 입니다. 다른 건조 식품 및 데이터 핸드 쉐이킹이이 페어링을 지원할 수 있도록 튜브에 그리스를 도포합니다. 그러나 결코 독점적 인 것은 아닙니다.
Q 그러나 IP 이외의 다른 프로토콜 위에 TCP를 구축 할 수 없습니까?
A 가능합니다. 나는 IP가없는 TCP의 모스 부호와 비둘기 예제를 좋아합니다.
TCP는 항상 TCP / IP의 약자라고 들었습니다.
실제로 그것은 인터넷 프로토콜을 통한 전송 제어 프로토콜의 약자
그들은 같은 것을 의미합니다.
맞지 않습니다.
첫째, 이더넷은 실제 하드웨어 부품의 작동 방식을 제어하는 저수준 하드웨어 시스템입니다.
다음으로 IP 를 전화 시스템 또는 교통 표지로 생각하십시오 . 시스템을 두 지점으로 연결하는 기본 제어 기능을 제공합니다.
반면에 TCP 는 메시지 / 자동차를 올바른 지점으로 보내는 메시징 시스템 또는 트래픽 제어 담당자와 비슷합니다.
TCP / IP는 두 개의 연결된 장치간에 데이터를 안정적으로 전송하는 시스템을 제공합니다.
인터넷에서 데이터를 보내거나받을 때 시스템의 IP 부분은 실제 하드웨어 연결을 유선 (또는 무선 전파)으로 제어하는 부분입니다. 시스템의 TCP 부분은 데이터를 가져 와서 분해, 전송, 수신 된 데이터를 재 조립하고 데이터를 확인하고 필요한 경우 다시 전송하는 소프트웨어입니다.
있다 수많은 설명 특히에서 유추 가능한 기술적 인 세부 사항, 비디오 형태 . DifferenceBetween.net은이 정확한 주제 에 대해 특히 좋은 것을 가지고 있습니다.
그러나 IP 이외의 다른 프로토콜 위에 TCP를 구축 할 수 없습니까?
예, 실제로 IP를 사용 하는 TCP에 대체 시스템을 만들 수 있습니다 . 자세한 내용 은 Internet Protocol Suite 를 참조하십시오.
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?
psusi는 "!"를 사용하여 영리하려고합니다. "연산자 아님"으로 그의 의견은 "TCP가 아닌 것이 IP를 통과 할 수 있다는 사실이 TCP가 IP가 아닌 것을 통과 할 수 있다는 것을 의미하지는 않습니다"라고 읽어야합니다. "대체 시스템에서 TCP"가 있음을 보여주는 답의 마지막 문장을 참조하여 작성되었습니다. 그러나 TCP에 대한 대안이 존재한다는 것을 보여주는 것이 반드시 IP에 대한 대안이 존재한다는 것을 암시하거나 암시하지는 않습니다.
TCP는 계층 4 프로토콜입니다. 컴퓨터의 한 프로세스에서 동일한 / 다른 컴퓨터의 다른 프로세스로 순서가 지정된 스트림 형태로 데이터를 안전하게 전송합니다.
IP는 계층 3 프로토콜입니다. 한 호스트에서 다른 호스트로의 운송을 제공합니다.
호스트 간 데이터 전송을 수행 할 수있는 프로토콜이 있으면 TCP가 작동합니다.
따라서 모든 프로토콜을 통해 TCP를 구현할 수 있지만 IP 만 만들었습니다. IP는 간단하고 작동합니다.
다른 레이어 3 프로토콜이 필요하지 않습니다.
네트워크를 설계 할 때 다양한 "계층"(네트워크 설계자가 원하는 다른 추상화 레벨로 생각할 수있는) 각각에 대해 프로토콜 세트 (기본적으로 머신 간의 통신 규칙 세트)를 선택해야합니다. 프로토콜을 만들고 결합 할 때 유의하십시오.)
간단한 버전 : 프로토콜은 메시지를 넣는 상자와 같습니다 . 이 상자는 크기가 다르며 가장 작은 상자에 메시지를 넣은 다음 조금 더 큰 상자에 가장 작은 상자를 넣습니다. 프로토콜 집합을 선택하는 것은 각 상자에 사용할 상자 종류를 선택하는 것입니다. 메시지를 둘러싼 '레이어'
TCP와 IP는 함께 만들어지고 함께 사용할 수있는 두 개의 독립 계층에 대한 프로토콜입니다. 그러나 다른 프로토콜과도 잘 사용할 수 있습니다. 즉 매우 자주 발생 : 당신은 비 IP 프로토콜과 함께 비 TCP 프로토콜 또는 TCP와 함께 IP를 사용할 수 있습니다 .
TCP / IP가 일반적인 약어 인 이유는이 두 프로토콜이 함께 인터넷의 기초를 형성하고 성공의 열쇠이기 때문 입니다.
(TCP와 IP에는 함께 작동하도록 특별히 설계된 일부 기능이 있습니다. 이는 순수 주의자들이 자주 불평하는 문제이지만 실제로 다른 프로토콜과 인터페이스하는 것을 방해하지는 않습니다)
소 급히 가고 싶다면 TCP over IPX 전송을 실행할 수 있다고 생각합니다.
그러나 IP 이외의 다른 프로토콜 위에 TCP를 구축 할 수 없습니까?
고전적인 TCP / IPv4 및 TCP / IPv6 외에도 다음과 같은 몇 가지 실험 프로토콜이 설계되었습니다.
고속, 대기 시간이 긴 네트워크를 통한 대량 전송을 개선하기위한 Net100 및 프로브 노력의 일환으로 UDP를 통해 실행되는 계측 가능하고 조정 가능한 TCP 버전을 개발했습니다. UDP TCP 유사 전송은 TReno와 유사한 응용 프로그램 수준에서 TCP 유사 컨트롤을 실험하기위한 테스트 하니스 역할을합니다.
그리고 iproxy : UDP를 통해 TCP 서비스를 실행 하는 것이 더 재미 있습니다.
iproxy는 임의의 TCP / IP 서비스가 브로드 캐스트, 멀티 캐스트 또는 유니 캐스트 UDP를 통해 실행될 수 있도록하는 클라이언트 측 프록시와 서버 측 프록시로 구성됩니다. 원래 웹 기반 인터페이스를 사용하여 LAN에서 IP 주소가 제공되지 않은 서버를 구성하는 방법으로 고안되었습니다.
유니 캐스트 UDP의 TCP, 브로드 캐스트 또는 멀티 캐스트 UDP의 TCP조차도 볼 수 있습니다 .
AFAIK 만 TCP / IPv4 및 TCP / IPv6 만 대규모 배포를 즐길 수 있습니다.
내 대답은 아니오 야! 예를 들어 TCP over IPX를 설명하는 오래된 RFC가 있습니다. http://tools.ietf.org/html/rfc1791
추억이 짧은 사람들을 위해 IPX는 Novell Netware 프로토콜이었습니다. http://en.wikipedia.org/wiki/Internetwork_Packet_Exchange
기본 데이터 그램의 전송을 지원하는 다양한 프로토콜 위에 TCP 구현이 이미 존재합니다. 실제로 라우팅 정보를 지정할 필요조차 없습니다 (TCP는 IP를 사용할 필요조차 없으며 암시 적 수신자와의 세 릴라 링크만으로도 충분합니다).
따라서 UDP 위에 TCP가 구현되어 있습니다 (이점 : "서버"쪽에서 단일 포트를 사용하거나 다양한 멀티플렉싱 된 채널을 전송하는 기존 연결에 포함 할 수 있음). IP 수준 만 라우팅을 제공하지만 TCP에는 필요하지 않습니다. 중요한 것은 MTU의 개념이 하위 계층에 의해 제공된다는 것입니다.
이를 통해 프로토콜은 특정 호스트에 대한 UPnP 변환 포트를 등록 할 필요없이 NAT 통과의 제한을 무시할 수 있습니다. 이를 통해 각 중간 공유 라우터 대신 각 클라이언트에 최적화 된 MTU 및 MSS를 독립적으로 조정할 수 있습니다. 다른 라우팅 프로토콜도 가능합니다 (멀티 캐스트 및 브로드 캐스트 네트워크를 통한 전송 포함). 보안 메커니즘을 선택할 수 있습니다.
사용 예는 Gogo6.net (UDP v4를 통한 TCP의 재 구현을 사용하여 TCP 세션을 통해 IPv6 전송 채널을 구현 함) (여전히 IPv4 주소 만 있고 항상 UPnP 방법을 지원하지는 않는 대부분의 가정 액세스 라우터에서 작동 함) ; 실행 중이 아니더라도 애플리케이션에 고유 한 일정한 포트 번호를 사용하여 사용자가 구성 할 필요가 없음)
다른 예는 기본적으로 "스트리밍 된"확장명으로 TCP over HTTP (또는 HTTPS) 버전 1.1을 캡슐화하는 것입니다. 인터넷을 통한 브리징 네트워크를 허용하는 대부분의 VPN은 동일하게 작동합니다. 브리지는 이더넷, PPP, IPv4 및 IPv6 (로컬 LAN 또는 이더넷 세그먼트 만 확장), NetBEUI / LanMan, 라우터 검색 (브리지 네트워크 내), 원시 모드 (DHCPv4 또는 DHCPv6 허용) 등 여러 프로토콜을 캡슐화 할 수도 있습니다. 브리지 된 네트워크. HTTPS를 통한 캡슐화는 브리지 설정 및 보안을위한 암호화 및 인증을 허용하지만 브리지 된 네트워크를 통한 클라이언트 및 서버에 대한 엔드 투 엔드 인증 / 암호화는 필요하지 않으며 라우터는 HTTP에 최적화되어 있기 때문에 HTTPS가 사용됩니다. 그리고 HTTPS.