더북(TheBook)

수신자가 패킷을 받아 올바르게 처리하려면, 패킷 조각 하나하나가 최종 호스트까지 전달되어 원래의 쪼개지기 전 패킷으로 재조립되어야 한다. 네트워크 혼잡이나 라우팅 테이블 변동 또는 기타 이유로, 패킷 조각이 순서대로 도착하지 않고, 그 호스트나 여타 호스트가 보낸 완전히 다른 내용의 패킷과 뒤섞여 올 가능성도 있다. 패킷 조각 중 어떤 것이든 처음 도착할 때, 수신자의 IP 모듈이 그 분열 필드를 살펴보면 이것이 완전한 패킷이 아니라 조각임을 확인할 수 있다. 패킷 조각은 MF 플래그가 설정되어 있거나 분열 오프셋 필드 값이 0이 아닐 터이다. 이렇게 패킷 조각을 받으면, 수신자 IP 모듈은 64kB(IP 패킷의 최대 크기) 버퍼를 만들고 조각의 데이터를 버퍼상 정확한 오프셋 위치에 복사해 넣는다. 버퍼에는 발신자의 IP 주소와 분열 식별자 번호를 붙여두어, 이후 추가로 패킷 조각을 받으면 조각의 발신자와 식별자를 토대로 해당하는 버퍼를 끄집어내어 새로 받은 데이터를 복사해 나간다. MF 플래그가 꺼져 있는 조각을 받으면 원래 패킷의 길이를 계산할 수 있는데, 조각의 길이에 조각의 오프셋을 더하면 된다. 패킷 하나를 온전히 조립해내도록 모든 데이터 조각을 받으면, IP 모듈은 조립된 패킷을 윗단 계층에 넘겨 계속 처리하게 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.