그 해법은 바로 여러 번 참조될 법한 객체에 고유 식별자 혹은 ID를 부여해 두었다가 이들 객체를 직렬화할 때 오로지 식별자 값만 직렬화하는 것이다. 일단 수신자가 모든 객체 데이터를 복원한 뒤, 수정 루틴을 돌려 각 식별자에 대응되는 참조 객체를 찾아 적절한 멤버 변수에 끼워 넣는다. 이렇게 객체를 사후에 링크(link), 즉 연결해 주는 방식이므로 이 절차를 링킹(linking)9이라 부른다.
이후 5장에서 고유 ID를 각 객체에 할당하고 네트워크상에 전송하는 방법, 그리고 ID 대 객체의 매핑을 유지하는 법 등을 자세히 다룰 것이다. 그에 앞서 여기서는 일단 각 스트림에 코드 4-7의 LinkingContext가 연결되어 있다고 치자. 이 LinkingContext에 네트워크 ID 대 객체의 최신 매핑이 수록되어 있다고 가정한다.
9 역주 C+ + 코드를 컴파일할 때 링커(linker)가 바로 이러한 일을 수행한다.