Wireshark에서 TCP 대화와 TCP 스트림 간의 관계

Wireshark에서 TCP 대화와 TCP 스트림 간의 관계

나는 다음과 같은 내용을 읽었습니다.대화그리고TCP 스트림하지만 같은 레이어에 있는 경우 서로 어떻게 관련되어 있는지는 여전히 잘 모르겠습니다.

다른 계층의 경우 IP 대화가 여러 TCP 스트림으로 구성될 수 있다는 것이 분명합니다.

TCP 대화가 여러 TCP 스트림으로 구성될 수 있나요? 그리고 반대로, TCP 스트림에 여러 TCP 대화가 포함될 수 있습니까? 왜?

답변1

이 경우, A대화TCP 수준(전송)에서 발생하며 두 포트 간의 TCP 연결과 동의어입니다.

이 컨텍스트에서 "TCP 스트림"은 대화에서 전달된 애플리케이션 메시지의 집합입니다. 예를 들어 링크의 스트림에는 다음을 실행하는 내부 호스트가 표시됩니다.UPNP- 가능 프로그램, 라우터에 포트 5000을 전달하도록 요청하면 라우터가 응답합니다. 따라서 실제로는 TCP 세그먼트의 데이터 필드입니다. 그렇기 때문에 이름이 좋지 않다고 생각합니다. 모든 TCP 정보가 제거되어 두 호스트의 소프트웨어가 보내고 받는 메시지만 남습니다. 그들은 그럴 수도 있다HTTPGET 및 응답,FTPPUT,SMTPMAIL 또는 기타 응용 프로그램의 기본 명령 언어입니다.

개인적으로 이 문서에서 Wireshark의 용어가 마음에 드는지는 잘 모르겠지만 프로토콜 분석기로서의 관점에는 적합합니다. 애플리케이션은 기본 프로토콜에 관계없이 두 끝점 간의 소켓 연결을 IO 스트림으로 간주합니다.

참고로 저는 IP가 "대화"를 하는 것에 동의하지 않는다고 말하고 싶습니다. IP는 가상 회선을 유지하는 데 필요한 데이터를 전달하지 않으며 이를 상위 계층에 맡깁니다. TCP는 엄격한 회로를 처리하고 UDP는 매우 느슨한 회로를 처리하므로 순서, 오류 수정 및 흐름 제어는 응용 프로그램에 맡깁니다.

답변2

TCP대화와 TCP 스트림~해야 한다동일한 수준에 있지만 적어도 일부 Wireshark 버전에서는 다른 코드를 사용하여 어떤 패킷이 대화/스트림의 일부인지 식별하므로 다른 답변을 제공할 수 있습니다.

예를 들어, 그 중 하나는 두 끝점 사이의 TCP 연결 중 하나가 닫히고 다른 하나가 우연히 열리는 경우에도 두 끝점(IP 주소/포트 쌍) 간의 모든 트래픽을 동일한 대화/스트림의 일부로 처리할 수 있습니다. 동일한 캡처 내의 동일한 두 끝점(포트가 즉시 재사용되는 경향이 없기 때문에 불가능하지는 않지만) 반면 다른 끝점은 연결이 닫히는 것을 인식하고 이를 별도의 대화/스트림으로 표시할 수 있습니다.

동일한 코드를 사용하지 않는다면 버그일 가능성이 높지만 아직 아무도 수정하지 않은 것일 수도 있습니다.

확실히,IP두 사람 사이의 '대화'IP엔드포인트(2개의 IP 주소)는 TCP 대화/스트림과 다릅니다. 아시다시피 두 개의 IP 끝점 사이에 여러 개의 TCP 대화, UDP 대화 등이 있을 수 있으므로 여러 개의 TCP/UDP/등이 있을 수 있습니다. 동일한 IP 대화의 대화.

답변3

링크한 페이지의 예만 보면 용어가 기능적으로 다른 것 같지는 않습니다. 둘 다 단일 네트워크 연결의 길이인 것 같습니다.

대화 페이지는 여러 연결을 요약하지 않으며 실제로 시간 길이 및 바이트 수와 함께 각 개별 연결을 표시합니다. 스트림 창에는 전송된 실제 데이터의 세부정보만 표시됩니다.

관련 정보