전체 글 (85) 썸네일형 리스트형 TCP Retransmission (feat. GPT) 본 콘텐츠는 2019년에 기록용으로 작성했던 TCP Retransmission 글 을 GPT 5.2에 제안하고 재작성했습니다. 작성된 콘텐츠의 사실관계는 파악되지 않았으니 필요하신 경우 꼭 공식문서 등을 찾아보세요.TCP Retransmission 정리 (재전송)TCP는 “신뢰성 있는 전송”을 위해 손실이나 지연이 발생하면 재전송을 수행한다.그런데 흔히 생각하는 것처럼 재전송 = 패킷 유실만은 아니다. ACK 유실, 지연, RTO 추정 실패 같은 케이스에서도 재전송이 발생한다.이 글에서는 재전송이 발생하는 대표 상황과, RTO 기반 재전송/FAST retransmit, 그리고 Karn 알고리즘(재전송 모호성)을 정리한다.1. 재전송이 발생하는 대표 상황 3가지1) Data Segment Loss (데이터.. 1300일 동안 배운 것 내가 3.6년 간 배웠던 건 시장에서 어떤 고객들의 니즈를 찾고 이에 대한 서비스를 제공하는 것 핵심은 결국 사람들이 어떤 니즈를 갖고 있냐 인데. 그걸 우리도 찾아야 했다. 그 니즈를 찾아가는 과정 중 여러가지를 경험해왔다. 고객을 설문조사 하기도 하고 기능을 제공하고 실질적인 사용량을 트래킹하기도 하고 단순하게 이 두 가지 마저도 해야하는 것들이 너무 많다 기능을 어쨌든 제공하려면 기능을 릴리즈 해야하고 기능을 릴리즈 하려면 기획과 디자인, 기획과 디자인이 생겨나게된 가설, 가설이 세워지기 까지 튀어나왔던 수 많은 커뮤니케이션들 보통 이런 커뮤니케이션은 조직 안에서 자주 언급되는 키워드에 의해서도 생기고, 그냥 동료들과 했던 시시콜콜한 이야기에서도 간혹 출몰하더라. 그 커뮤니케이션의 방법에 대해서도 .. 동시성 문제 멀티 스레드와 같은 환경에서는 공유하고 있는 데이터를 변경하거나 조회할 때, 데이터가 최신임을 보장할 수 없는 상태가 필연적으로 발생한다. 이를 보장해주기 위해서 Lock이나 Queue 같은 방법을 사용한다. 일단 간단한 코드를 보면 package com.example.lock.kotlin class KotlinCounter { var counter = 0 fun doSomething() { if (counter == 0) { println("${Thread.currentThread().name} found 0!! counter should be 10") counter += 10 } else { println("${Thread.currentThread().name} increase counter +1").. 이전 1 2 3 4 ··· 29 다음