RDT 2.2 동작 방식 정리
네트워크 운영 관점에서 RDT 2.2 동작 방식 정리의 목적, 구성 흐름, 실행 전 확인할 항목을 정리한 기술 노트입니다. 원문 핵심: [rdt 2.2] [sender의 TCP가 application에게 message를 받아서 seq0인 segment를 생성하기 위해 대기중인 상태에서 시작] 1(sender). rdt_send(data)...
핵심 요약
- 네트워크 운영 업무에서 RDT 2.2 동작 방식 정리를 빠르게 검토할 수 있도록 원문을 운영 절차 중심으로 재구성했습니다.
- 실습/설정/로그 내용은 보존하되, 적용 범위와 검증 포인트를 먼저 확인할 수 있게 정리했습니다.
- 원문 핵심: [rdt 2.2] [sender의 TCP가 application에게 message를 받아서 seq0인 segment를 생성하기 위해 대기중인 상태에서 시작] 1(sender). rdt_send(data) : application에서 waiting(TCP가 application에게 message(data)를 받아서 seq0인 segment를 생성하기 위해 기다림)상태인 TCP에게 message를 보냄 - event...
적용 범위
이 글은 네트워크 운영 영역에서 RDT 2.2 동작 방식 정리를 검토하는 사람을 위한 정리본입니다. 원문은 네이버 블로그에 작성된 실습/메모를 기반으로 하며, 현재 환경에 적용할 때는 명령어와 설정값을 반드시 재검증해야 합니다.
정리된 본문
[rdt 2.2]


[sender의 TCP가 application에게 message를 받아서 seq0인 segment를 생성하기 위해 대기중인 상태에서 시작]
1(sender). rdt_send(data) :
application에서 waiting(TCP가 application에게 message(data)를 받아서 seq0인 segment를 생성하기 위해 기다림)상태인 TCP에게 message를 보냄 - event
2(sender). sndpkt=make_pkt(0, data, checksum) :
TCP가 application에게 받은 message에 seq0과 checksum을 붙혀 segment(packet)을 생성
3(sender). udt_send(sndpkt) :
TCP가 IP에게 segment(packet)을 보내고 (동시에 보내는 segment를 버퍼에 임시 저장) IP 에게서 올 receiver의 TCP가 seq0인 segment까지 잘받았다는 의미로 보내는 ACK0의 수신을 기다리는 상태가 됨
4(receiver). rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) :
waiting(TCP가 IP에게 seq0인 segment를 받길 기다림)상태인 TCP가 IP에게 segment(packet)을 받는데 해당 segment가 손실이 없고 seq0인 경우 - event
5(receiver). extract(rcvpkt, data) :
IP에게 받은 segment(packet)에서 message(data)를 추출
6(receiver). deliver_data(data) :
TCP가 application에게 message(data)를 보냄
7(receiver). sndpkt=make_pkt(ACK0, chksum) :
seq0까지의 segment를 잘받았다는 의미로 ACK0과 chksum을 붙혀 segment를 생성
8(receiver). udt_send(sndpkt) :
TCP가 IP에게 segment(packet)을 보내고 waiting(TCP가 IP에게 seq1인 segment를 받길 기다림)상태로 돌아감
9(sender). rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) :
TCP가 IP에게 segment(packet)을 받는데 해당 segment가 손상이 없고 ACK0인 경우 action없이 waiting(TCP가 applicationd에게 message(data)를 받아서 seq1인 segment를 생성하기 위해 기다림)상태로 돌아감 - event
A : 1~3번을 거쳐온 segment가 훼손됐거나 4~8번을 거쳐온 seq0인 segment를 받은 경우 ( sender의 TCP가 IP를 통해 seq0번 segment에 대한 ACK0을 받지 못하면 seq0번 segment를 재전송함 )
A-1(receiver). rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq0(rcvpkt)) :
waiting(TCP가 IP에게 seq1인 segment를 받길 기다림)상태인 TCP가 IP에게 segment를 받는데 해당 segment가 손상이 있거나 seq0인 segment를 받은 경우 - event
A-2(receiver). udt_send(sndpkt) :
TCP가 IP에게 segment(ACK0)를 보내고 waiting(TCP가 IP에게 seq1인 segment를 받길 기다림)상태로 돌아감
이후 segment가 정상적으로 전송된다면 9번 진행
9(sender). rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0)
segment에 손상이 생길 경우 B번 진행
B : 4~8번을 거쳐온 segment가 훼손됐거나 C번을 거쳐 재전송된 ACK1이 담긴 segment를 받은 경우 ( 현재 sender의 TCP는 IP에게서 올 seq0 segment에 대한 ACK0을 수신 대기중인데 ACK1이 왔다는 것은 seq0 segment가 제대로 전송되지 못했다는 것을 의미하므로 seq0 segment를 재전송함 )
B-1(sender). rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || isACK(rcvpkt,1)) :
receiver의 TCP에서 seq0인 segment까지 잘 받았다는 의미로 보내는 ACK0을 sender의 TCP가 IP에게서 받기를 기다리는 상태일때 온 segment가 훼손됐거나 ACK1이 온 경우 - event
B-2(sender) : udt_send(sndpkt) :
TCP가 버퍼에 저장한 seq0인 segment를 IP에게 재전송하고 다시 ACK0의 수신을 기다리는 상태가 됨
이후 A번 진행
운영 체크리스트
- 대상 OS, 네트워크 대역, 계정 권한, 패키지 버전이 현재 환경과 맞는지 확인합니다.
- 운영 장비에서 실행하기 전 랩 환경 또는 읽기 전용 명령으로 먼저 검증합니다.
- 설정 변경, 서비스 재시작, 방화벽 변경, 디스크 작업은 백업과 롤백 경로를 준비한 뒤 진행합니다.
- 본문의 IP, 계정명, 경로, 장비명은 예시 또는 당시 실습 환경 기준이므로 실제 환경 값으로 치환합니다.
원문 출처
원문: https://blog.naver.com/hermes_u/222431081795
네이버 카테고리: Network
원문 작성일: 2021-07-14T10:27:00.000+09:00
Paid Launch Help
If this article connects to a real product, infrastructure workflow, web app, or game launch, I can turn the rough signal into a small paid deliverable.
- $1 Korean Launch Signal Audit: three friction points, three concrete fixes, and one Korea/global buyer angle for one URL or page.
- $100 Launch Conversion Sprint: a 48-hour audit, compact copy rewrite, implementation handoff, and 7-day action list.
Best fit for network diagnosis, packet flow, routing, and service exposure review related to RDT 2.2 동작 방식 정리. No login, private source code, production credential, or sensitive customer data is required for the first pass.