2013-03-24 1 views
21

내 지식에 따르면 인터넷 응용 프로그램을 설계해야한다면 우리는 연결 지향 서비스 또는 연결없는 서비스 중 하나를 사용해야하지만 둘 다 사용해서는 안됩니다.TCP가 연결 지향형 인 이유는 패킷이 다른 경로를 따르는 이유는 무엇입니까?

인터넷의 연결 지향 서비스는 TCP이고 연결없는 서비스는 UDP이며 둘 다 인터넷 프로토콜 스택의 전송 계층에 있습니다.

인터넷의 유일한 네트워크 계층은 연결없는 서비스 인 IP입니다. 따라서 우리가 디자인 한 애플리케이션이 결국 IP를 사용하여 패킷을 전송한다는 의미입니다.

연결 지향 서비스는 동일한 경로를 사용하여 모든 패킷을 전송하며 연결이 필요하지 않습니다.

따라서 내 문제는 연결 지향적 애플리케이션을 설계 한 경우, 그것은 동일한 경로를 사용하여 패킷을 전송한다

이다. 그러나 IP는 다른 경로를 사용하여 규칙을 위반합니다. 그런 의미에서 TCP와 IP가 어떻게 함께 작동합니까? 그것은 완전히 나를 혼란스럽게합니다.

+7

"연결 지향 서비스는 모든 패킷을 전송할 때 동일한 경로를 사용합니다." 그렇지 않습니다. 방금 그걸 만들었 어. – EJP

+2

100 일 이상 동일한 주소로 하루에 한 글자를 올리면 100 글자가 도착할 가능성이 있습니다. 당신이 제안하고있는 것은 게시에 항상 동일한 우편함을 사용하고 편지가 모두 같은 목적지에 도착했기 때문에 동일한 우편 배달부, 밴, 트럭 등이 모든 편지에 사용되고 있기 때문입니다. –

답변

27

당신, 내 친구는 두 개의 다른 레이어의 기능을 혼란스럽게합니다.

TCP는 연결 설정이 있다는 의미에서 연결 지향적입니다. 두 개체 사이의 혼잡 제어 메커니즘과 같은 다른 것들을 협상 할 수 있습니다.
전송 계층 프로토콜의 일반적인 목적은 경로에 대해 모르는 것을 의미하는 프로세스 간 전달을 제공하는 것입니다. 패킷이 최종 시스템에 도달하는 방법은 범위를 벗어납니다. 두 프로세스간에 패킷이 전송되는 방식 만 고려합니다.

IP 반면에 인터넷의 네트워크 계층 프로토콜은 최종 시스템 간의 데이터 전달과 관련이 있지만 연결이없고 연결이 유지되지 않으므로 각 패킷이 다른 패킷과 독립적으로 처리됩니다.
시스템을 떠나면 각 라우터는 각 패킷에 맞는 경로를 선택하며이 경로는 가용성/정체에 따라 변경 될 수 있습니다.

어떻게 답변합니까?
TCP는 패킷이 다른 프로세스에 도달하는지 확인합니다. 패킷이 어떻게 처리되는지 상관하지 않습니다.
IP는 다른 쪽 끝까지 도달했는지 상관하지 않을 것이고, 특정 패킷에 가장 잘 맞는 것으로 각 패킷을 전달할 것입니다.

참고 :
IP는 연결 지향적이라고 가정 해 봅시다. 패킷이 동일한 경로를 따름을 의미합니까? 반드시 보안과 관련된 특정 옵션을 협상하는 것을 의미하는 경우이 계층에서 '연결'이라는 단어가 의미하는 바에 달려 있습니다. 예를 들어 인터넷을 통해 다른 경로를 통해 모든 패킷을 전달할 수 있습니다.

편집 :
그래도 당신을 혼동하지, 아래 대부분의 연결 지향 네트워크 계층에서 서비스와 설립 연결, 또한 대한 모든 '패킷'따라야 가상 경로를 설정한다는 것을 의미 추가 정보에 대한 읽기 :
Virtual circuitframe-relay networks

+0

"TCP는 패킷이 다른 프로세스에 도달하는지 확인합니다. 패킷이 어떻게 처리되는지 상관하지 않습니다." 그러나 연결 지향 서비스는 모든 패킷이 동일한 경로를 따르기 때문에 정의됩니다. 그 부분은 여전히 ​​나를 혼란스럽게한다 – Assasins

+4

좀 늦은 답장을 위해 실례합니다; 그 진술은 오도 된 일반화가 아닙니다. 패킷 경로는 전송 계층이 아닌 네트워크 계층의 관심사이므로 전송 계층의 연결 방향은 패킷 경로에 아무런 차이가 없음을 인식해야합니다. – Fingolfin

1

TCP 프로토콜은 전송/수신 시스템에 의해 구현됩니다. 패킷이 전송 시스템을 떠나면 TCP에 대해 전혀 알지 못하는 라우터가 IP를 사용하여 소스에서 대상으로 패킷을 가져옵니다. 그런 다음 TCP를 사용하여 모든 패킷이 도착하고 올바른 순서로 도착하는지 확인하는 것이 대상 시스템 작업입니다. 인터넷 그 자체는 TCP에 대해 아무것도 모릅니다. 연결이없는 매체 (인터넷)에 연결하는 계층 (소프트웨어) 일뿐입니다.

패킷이 목적지를 떠날 때, 상위 수준 프로토콜 (예 : TCP 또는 UDP)에 상관없이 패킷이 목적지에 도달하는 한 대부분의 경로를 따라 갈 수 있습니다.

내 말은, 그때는 좀 더 복잡하지만, 그것이 내가 생각할 수있는 한 일반적인 아이디어입니다.

+0

ok 그러면 연결 지향 서비스가 실제 일어나지 않을 때 같은 경로를 통해 패킷을 보내는 이유는 무엇입니까? – Assasins

+1

@Fazian 우리는 그렇게 말하지 않습니다. 당신은 그 말을 한 유일한 사람입니다. 너는 그것을 만들었다. 왜 그렇게했는지 설명 할 수는 없어요. – EJP

3

를이 링크는 "S처럼되고 꽤 잘 http://www.tcpipguide.com/free/t_ConnectionOrientedandConnectionlessProtocols-3.htm

어떤 사람들이 (TCP)을 고려하여 질문에 대한 대답 높은 네트워크 계층에서 회선 교환의 "모방"; 이것은 아마도 모호한 유추 일 것입니다. TCP 연결을 사용하여 장치간에 데이터를주고받을 수 있지만 실제로 모든 데이터는 여전히 패킷으로 전송됩니다. 장치 사이에는 실제 회로가 없습니다. 즉, TCP는 데이터 손실 가능성이나 잘못된 순서로 데이터 조각을받을 가능성과 같은 패킷 교환 통신의 모든 잠재적 함을 처리해야합니다.

TCP 프로토콜은 단일 FIFO 채널을 통해 도착한 느낌을주기 위해 도착하지 못하거나 손실되는 IP 패킷의 문제를 처리합니다. 네, TCP는 그렇게하기에 충분히 똑똑합니다. 전용 기본 채널이 필요 없습니다.

+1

나는 이것이 내가 찾고있는 대답이라는 것을 저지해야한다. –

0

라우터는 3 개의 계층 (물리적, 데이터 링크 및 네트워크 계층)에서만 작동하므로 라우터는 정보에만 의존하여 결정을 내립니다. 따라서 네트워크 계층 (IP 프로토콜)의 TCP 또는 UDP에 대한 정보는 라우터에서 수신되지 않습니다.

관련 문제