TCP / UDP는“raw ip”에 무엇을 추가합니까?


18

나는 TCP와 UDP가 모두 IP 위에 구축되어 있다는 것을 알고 TCP와 UDP의 차이점을 알고 있지만 정확히 "원시 IP"가 무엇인지 혼동합니다. TCP와 UDP는 모두 IP를 구현하지만 그 자체로는 데이터를 전송할 수 없다고 말하는 것이 공정한가? 아니면 IP는 매우 낮은 수준의 통신 형태이며 TCP와 UDP에 의해 더 추상화됩니까?


2
아래의 의견 중 일부를 더 밝히려면 (명확성을 위해 전체 답변으로는 충분하지 않음) IP는 데이터를 전송하는 프로토콜입니다. TCP 또는 UDP는 데이터를 전송하는 프로토콜입니다. TCP와 UDP는 종종 IP 위에 위치하므로 IP의 경우 데이터 페이로드는 TCP 또는 UDP 일 수 있습니다. 이더넷은 종종 IP를 운반하는 데 사용됩니다. 예를 들어 이더넷 프레임은 데이터 페이로드이므로 IP 패킷을 운반하고 IP 패킷은 페이로드 등으로 TCP 세그먼트를 운반 할 수 있습니다. 이 같은 프로토콜의 스택과 함께 결국 goo.gl/1uEYtC
jwbensley

3
IP는 확실히 데이터를 전송합니다. 예를 들어 TCP / UDP 패킷을 전달합니다. 그러나 일반적으로 응용 프로그램에서 사용할 수는 없습니다. UDP는 IP를 기반으로하는 매우 원시적 인 프로토콜이지만 이미 포트 번호를 추가 하여 여러 서비스가 시스템에서 동시에 UDP 트래픽을 처리 할 수 ​​있습니다. 그렇지 않으면 IP 주소만큼 많은 서비스가 제공됩니다.
Luaan

답변:


23

IP는 레이어 3 프로토콜입니다. TCP / UDP는 레이어 4 프로토콜입니다. 그들은 각각 다른 목적으로 사용됩니다.

계층 3은 엔드 투 엔드 전달을 담당 합니다. 유일한 기능은 한 호스트에서 다른 호스트로 패킷을 가져 오기 위해 패킷에 필요한 것을 추가하는 것입니다.

계층 4는 서비스 간 배달을 담당 합니다. 유일한 기능은 데이터 스트림을 분리하는 것입니다. 컴퓨터에는 여러 프로그램이 실행 중일 수 있으며 각 프로그램은 유선으로 비트를 송수신합니다. IE : 여러 개의 브라우저 탭, 인터넷 라디오 스트리밍, 다운로드 실행, 법적 토렌트 실행 , 채팅 응용 프로그램 등을 사용할 수 있습니다. 이러한 모든 항목은 유선에서 1과 0을 수신하고 계층 4는 각 데이터 스트림을 그들을 필요로하는 독특한 응용 프로그램. 그림은 다음과 같습니다.

L4 데이터 스트림 분리

IP가 올바른 서비스 / 응용 프로그램에 패킷을 전달할 수 없습니다. TCP / UDP는 인터넷의 한쪽 끝에서 다른 쪽 끝으로 패킷을 전달할 수 없습니다.

TCP와 IP는 모두 인터넷 통신의 "최종 목표"를 달성 할 수 있도록 함께 작동합니다.

한 호스트에서 다른 호스트로 가져와야하는 데이터는 OSI 모델의 상위 계층에 의해 생성됩니다.

이 데이터는 소스 및 대상 포트가있는 TCP 헤더와 같이 서비스에서 서비스로 데이터를 전달하는 데 필요한 정보를 추가하는 L4로 전달됩니다. 이제 데이터와 L4 헤더를 세그먼트라고합니다.

그런 다음 세그먼트가 L3으로 전달되어 소스에 대상 IP 주소가있는 IP 헤더와 같이 세그먼트를 끝에서 끝까지 전달하는 데 필요한 정보가 추가됩니다. L3 헤더 및 세그먼트는 이제 패킷으로 지칭 될 수있다.

이 프로세스를 캡슐화 및 캡슐화 해제 (또는 때때로 캡슐화 해제)라고합니다. 작동 방식은 다음과 같습니다.

Practical Networking.net의 허가를 받아 캡슐화 및 캡슐화 해제

이것이 이해가되지 않는다면, OSI 모델 과 각 계층이 어떻게 인터넷을 통해 패킷을 이동시키기 위해 서로 다른 책임을 지는지에 대해 더 읽어 볼 것을 제안 합니다 .


7
인터넷은 OSI 모델을 느슨하게 따릅니다.
user253751

2
inside an IP header is usually a TCP or UDP headerTCP / UDP 헤더가 IP 헤더 내에 있지 않고 IP 패킷의 데이터 부분에 있습니다.
Eborbob

"단일 기능은 데이터 스트림을 분리하는 것"이지만 UDP의 경우에는 대부분 사실이지만 (체크섬도 있지만 meh도 있음) TCP의 경우에는 사실이 아닙니다.
피터 그린

1
@immibis 사실이지만, OSI 모델을 따르는 것이 간극적인 구현이나 이해의 흔적으로 이어지는 곳을 아직 보지 못했습니다. 대부분의 경우, 특히 새로 인터넷 기술에 접근하는 사람에게는 OSI 모델의 제약에 따라 계속 생각하는 것이 더 중요합니다.
Eddie

@Eborbob 문장을 보는 방법에 따라 어떻게 잘못되었는지 볼 수 있습니다. 솔직히 말해서, 그 단락 전체가 reword를 사용할 수 있습니다. 지적 해 주셔서 감사합니다.
Eddie

6

IP는 데이터를 잘 전송할 수 있지만 문제는 데이터가 다른 쪽 끝에 도달 할 때 발생하는 문제입니다. 유일한 식별 정보는 호스트의 IP 주소와 프로토콜 번호입니다. 어느 쪽이 데이터의 소켓인지 구별 할 수있는 방법은 없습니다.

프로그램이 "원시 소켓"으로 알려진 것을 통해 IP를 직접 사용할 수는 있지만 데이터를 전송할 소켓을 결정하기위한 적절한 메커니즘이 부족하여 보안 및 성능 문제가 발생합니다 (커널은 모든 원시 소켓에 데이터를 보내야 함) 주어진 프로토콜 번호에 대해). 이러한 이유로 "원 소켓"을 여는 기능은 일반적으로 루트 (또는 플랫폼의 동등성)로 제한됩니다.

UDP는 IP를 통한 상당히 최소한의 계층입니다. 포트 번호를 추가하여 데이터의 소켓과 체크섬 (손상된 패킷을 거부 함)을 식별합니다. 응용 프로그램은 손실 된 패킷을 처리하고 정체를 제어하며 데이터를 적절한 크기의 패킷으로 분할하는 책임을 유지합니다.

TCP는 포트 번호와 체크섬을 제공 할뿐만 아니라 바이트 스트림을 패킷으로 분할하고 대상에서 다시 조합하여 혼잡 제어 및 복구 기능을 제공하는보다 복잡한 프로토콜입니다.


4

IP는 OSI 계층 -3 프로토콜이고 TCP와 UDP는 OSI 계층 -4 프로토콜입니다. 계층 3 프로토콜 인 IP는 다양한 계층 4 프로토콜을 전달할 수 있습니다. TCP와 UDP가 가장 일반적 일지 모르지만 유일한 것은 아닙니다. Layer-4 프로토콜은 응용 프로그램이 종단 간 연결로 사용하는 것입니다. IP는 계층 -4 프로토콜을 네트워크에서 네트워크로 (호스트 간) ​​전송합니다. 이더넷과 같은 계층 2 프로토콜은 LAN에서 계층 3 프로토콜을 전송합니다.

OSI 모델을 조사해야하지만 이는 모델 모델이며 실제 세계는 종종 정확히 일치하지 않음을 인식하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.