3D 랩 로드 중…
레슨 로드 중…
← 인터넷의 작동 원리월드 1 · 4개 중 4번째 레슨모든 레슨 ↓

재조립과 검사
이 내용을 가르치고 있나요? 프로젝터 모드 열기
한 메시지의 패킷들은 보낸 사람을 떠날 때는 순서대로 나가지만, 반드시 순서대로 도착하는 것은 아닙니다. 서로 다른 경로, 혼잡한 연결, 또는 잃어버렸다가 다시 보내진 패킷 때문에 순서가 뒤섞일 수 있습니다. 그래서 받는 쪽에는 메시지를 다시 만들 방법이 필요합니다.
받는 쪽은 각 헤더에 있는 순서 번호를 사용합니다. 책의 번호가 매겨진 페이지처럼, 그 번호에 따라 패킷을 순서대로 놓은 다음 탑재체들을 이어 붙입니다.
예: 메시지 "네트워크는 재미있어"가 1번부터 4번까지 네 개의 패킷으로 전송됩니다. 패킷은 3, 1, 4, 2의 순서로 도착합니다. 받는 쪽은 패킷을 다시 1, 2, 3, 4의 순서로 정렬하고 전체 메시지를 읽습니다. 3번 패킷이 끝내 도착하지 않으면, 받는 쪽은 1, 2, 4번은 있지만 3번은 없다는 빈자리를 확인할 수 있습니다.
손상 찾기: 체크섬. 유선 연결과 라디오파 연결은 완벽하지 않아서 비트가 가끔 0에서 1로 바뀔 수 있습니다. 이를 알아내기 위해 보내는 쪽은 데이터에서 작은 수를 계산해 헤더에 넣습니다. 받는 쪽은 받은 데이터로 같은 수를 계산해 비교합니다.
간단한 예로, 모든 탑재체 바이트를 더한 뒤 256으로 나눈 나머지를 사용해 보겠습니다. 72, 101, 108, 108, 111의 다섯 바이트("Hello"라는 글자)의 합은 500이고, 500 − 256 = 244입니다. 전송 중 바이트 하나가 바뀌면 받는 쪽에서 계산한 합은 244가 아니므로 패킷이 손상되었다는 것을 알고 버립니다. 실제 인터넷 체크섬은 조금 더 영리하지만, 기본 생각은 같습니다. 데이터가 바뀌면 함께 바뀌는 작은 수입니다.
체크섬은 오류를 감지할 수 있습니다. 하지만 오류를 고칠 수는 없습니다. 해결 방법은 패킷을 다시 보내 달라고 요청하는 것입니다.
누락된 패킷을 알아차리는 건 누구이고, 그다음에는 무슨 일이 일어날까요? 인터넷에서는 TCP(월드 5)라는 프로토콜이 이 일을 합니다. 수신자는 어떤 데이터가 도착했는지 알려 주는 확인 메시지를 짧게 보내요. 패킷 하나가 누락되면 송신자는 그 패킷에 대한 응답을 받지 못하고, 패킷을 다시 보냅니다. 브라우저 같은 애플리케이션은 중간에 빠진 부분이나 패킷 순서가 뒤섞인 일을 전혀 알지 못해요. 그저 완성된 파일을 받을 뿐입니다.
다운로드하는 모든 것은 파일과 사진뿐 아니라 이런 방식으로 나뉩니다. 웹페이지 하나, 노래 한 곡, 검색 결과 하나도 패킷 하나에 담을 수 있는 것보다 크기 때문에 패킷으로 잘게 나뉘어요.
패킷이 3, 1, 4, 2의 순서로 도착했습니다. 수신자는 메시지를 어떻게 다시 만들까요?
체크섬은 무엇을 확인하는 데 사용하나요?
인터넷에서 패킷이 누락된 것을 알아차리는 건 누구인가요?
장난감 체크섬은 탑재체 바이트의 합을 256으로 나눈 나머지입니다. 바이트는 10, 20, 30입니다. 체크섬은 얼마일까요?