2024. 6. 2. 17:48ㆍCS/네트워크
참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초
TCP 연결은 착각이다?
TCP 연결이 착각이라는 말은 무슨 말일까.
만약 파일을 다운로드 중, LAN 케이블을 분리했다가 다시 연결하면 TCP 연결은 어떻게 될까?
결론부터 말하면 연결은 잠시 유지된다. 연결이 유지되는 것이 아니라 잠시 유지되는 것이다.
즉, 이 말은 물리적인 연결이 제거되어도 논리적인 연결은 잠시 유지된다는 것이다. TCP 연결은 논리적인 개념이다.
다른 예시로 무선 Wifi를 왔다갔다 다른 것으로 변경해도 보고있는 영상을 인터넷이 완전 끊기지 않은 이상 잠시동안 볼 수 있다.
이는 물리적인 충격을 가해도 버퍼를 통해 잠시나마 데이터를 보관할 수 있기 때문이다.
어째든 잠시동안은 유지가 된다. 그런데 계속 유지하지는 않는다. 연결이 끊겨있는 상태에서는 송신 측에서 새로운 TCP Connection을 시도해도 수신 측에서는 받지 못한다. 이 때 재전송 타이머가 작동하고 대략 3초 정도 작동한다.(OS에서는 1초 미만)
재전송 타이머가 만료된 후에도 ACK를 받지 못한다면 송신 측에서 세그먼트를 다시 전송하고 RTO(Retransmission Time-Out)값은 두 배로 증가한다. 처음에는 1초를 기다렸다가 2초, 4초, 8초... 이렇게 RTO가 증가한다. 그리고 보통 최대 5회 재전송 시도 후, 5회 이상 모두 실패하면 Transmission Error가 발생한다.
그리고 연결의 소프트웨어적 조건만 맞다면 즉, 논리적인 조건만 맞다면 상대방이 누구든지 연결을 유지한다는 것이다.
다른 말로 TCP 연결은 보안성을 갖추지 않았다는 말이다.
예를 들어 철수가 영희한테 전화를 건다. 철수가 "너 영희맞아?"라고 말하면 영희는 "어, 맞아."라고 답한다.
그런데 영희가 사실 아니였던 것이다. 미숙인데 영희 목소리를 흉내내면서 영희인 척 한 것이다.
그래도 철수는 영희라고 믿고 있다. 영희와 연결되었다고 믿고 있다는 것이다.
그래서 TCP 연결은 End-point의 주관적인 판단에 불과하다는 것이다.
해당 챕터까지 복습했으면 이 포스팅에 대해 반드시 다시 한번 복습하고 넘어가자.
'CS > 네트워크' 카테고리의 다른 글
URL과 URI (1) | 2024.06.03 |
---|---|
DNS (0) | 2024.06.02 |
L4 ▶ TCP Header / UDP Header (0) | 2024.06.02 |
L4 ▶ TCP 연결 / 종료 과정 (1) | 2024.06.02 |
L4 ▶ TCP / UDP (0) | 2024.05.26 |