RFC815: IP Defragmentation 요약

용어 정의
  • hole.first: 빈 공간의 첫번째 바이트 번호
  • hole.last: 빈 공간의 마지막 바이트 번호
  • hole descriptor: hole.first와 hole.last의 쌍
  • hole descriptor list: hole descriptor의 목록
알고리즘 개요
  • 패킷이 도착하면 hole descriptor list 조회
  • 빈 공간이 메워지는 경우 해당 hole descriptor를 list에서 제거
  • hole descriptor list가 완전히 비워지는 경우 재조립 처리 가능
경우의 수
  • 빈 공간에 완전히 딱 맞아떨어지는 경우
  • 앞이나 뒤의 일부분만 채우는 경우
  • 중간에 끼어들어서 남은 공간을 둘로 쪼개는 경우 
재조립 알고리즘 (4번의 비교 필요)
  1. hole descriptor list에서 hole descriptor 선택, 더 이상 없으면 8번 단계로
  2. fragment.first가 hole.last보다 크면 1번 단계로
  3. fragment.last가 hole.first보다 작으면 1번 단계로
  4. hole descriptor list에서 현재 항목 삭제
  5. fragment.first가 hole.first보다 크면, [hole.first, fragment.first – 1] hole descriptor를 새로 생성
  6. fragment.last가 hole.last보다 작고 More Fragment가 참이면, [fragment.last + 1, hole.last] hole descriptor를 새로 생성
  7. 1번 단계로
  8. 재조립 완료
by xeraph | 2009/10/20 02:04 | 학술 | 트랙백 | 덧글(0)
트랙백 주소 : http://xeraph.com/tb/5100548
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글