Apache HTTP Server Version 2.2
����: | �� ��û���� ������ �ĺ��ڸ� ������ ȯ�溯���� �����Ѵ� |
---|---|
����: | Extension |
����: | unique_id_module |
�ҽ�����: | mod_unique_id.c |
�� ����� � Ư���� ��Ȳ������ "���" ��û�߿���
�����ϵ��� ����� �ĺ���(identifier)�� ��� ��û�� �����Ѵ�.
������ �� �ĺ��ڴ� Ư���ϰ� ������ Ŭ�������� ���� ��ǻ�͵�
�߿����� �����ϴ�. �� ��û���� ȯ�溯��
UNIQUE_ID
�� �����Ѵ�. ������ �ĺ��ڴ� ��������
�뵵�� ����� �� ������, ������ �� ������ ������ �Ѿ��.
���� ���н� �ý��ۿ��� ����ġ ������ ��� �����ϴ��� ������ ���캸��. Windows NT�� ���� �� ����� �������� �ʴ´�. ���н����� ����ġ�� ���� �ڽ��� �����, �ڽ� ���μ����� �ѹ��� �� ��û�� ó���Ѵ�. �ڽ��� �����߿� ���� ��û�� ó���Ѵ�. ���⼭ �߿��� ���� �ڽĵ��� ���� �ڷḦ �������� �ʴ´ٴ� ���̴�. ������ �ڽ��� httpd ���μ������ �Ѵ�.
���� ��ǻ�ͷ� ������Ʈ�� �����Ѵٸ� Ŭ������(cluster)��� �θ���. �� ��ǻ�ʹ� ���� ����ġ�� ������ �� �ִ�. �̵� ��θ� "����"�� ����, Ŭ�����Ϳ� �ִ� ��ǻ�͵鰣�� ���� ��ž��� �� ��û���� ���ֿ��� ������ �ĺ��ڸ� ���� �� �ִ�.
Ŭ�����Ϳ� �ִ� ��ǻ�ʹ� ���� �䱸������ �����ؾ� �Ѵ�. (��ǻ�� �Ѵ븸 ����ϴ��� ��ǻ�� �ð��� NTP�� �����ؾ� �Ѵ�.)
�ü������ pid (���μ��� id)�� 32��Ʈ�� ���ٰ� �����Ѵ�. �ü���� pid�� 32��Ʈ �̻��� ����Ѵٸ� ���������� �ڵ带 �����ؾ� �Ѵ�.
�̷� �����Ͽ� �츮�� � �������� Ŭ�������� � ��ǻ�Ϳ� �ִ� � httpd ���μ����� �ٸ� ��� httpd ���μ������ ������ �� �ִ�. ��ǻ���� IP �ּҿ� httpd ���μ����� pid�����ε� ����� ������ �� �ִ�. ���� ��û�� ���� ������ �����ڸ� ������� �ð����� ������ ���� ������ �ȴ�.
�ð��� �����ϱ����� ���н� �ð�(timestamp, ���� ǥ�ؽ÷� 1970�� 1�� 1�� ���� ���� ��)�� 16��Ʈ ī���� ����Ѵ�. ���н� �ð��� �ʴ����̰�, ī���ʹ� �� �ʵ��� 65536���� �����Ѵ�. ( ip_addr, pid, time_stamp, counter ) ������ � httpd ���μ������� �� �ʵ��� 65536 ��û�� ������ �� �ִ�. ���� ī���ʹ� pid�� �����ϴ� ������ �ذ��ؾ� �Ѵ�.
httpd �ڽ��� ����� ī���ʹ� ( ���� �и��� ������ 10 )�� 65536���� ���� �������� �ȴ�. (��� �ý����� �и��� �ð����� ���� ��Ʈ�� ��ġ�����ʴ� ���������� �� ������ �������.) ������ �ĺ��ڸ� ���鶧 ����ϴ� �ð��� �������� ��û�� ���� �ð��̴�. ī���ʹ� �ĺ��ڸ� ���鶧���� �����Ѵ� (���� �ٽ� �����Ѵ�).
Ŀ���� ���μ����� ��ũ�Ҷ�(fork) �� ���μ����� pid�� �Ҵ��ϰ�, pid�� �ٽ� ������ �� �ִ�. (pid�� ���� ���н����� 16��Ʈ������, �ֱ� �ý����� 32��Ʈ�� Ȯ���ߴ�.) ���� �ð��� ������ ���� pid�� ������ �� �ִ�. ���� ���� �ð��� pid�� �������� �ʴ´ٸ� ���� ������ �����ϴ�. ��, �츮�� �ý����� ���ʵ��� ���μ����� 65536�� �̻� ������ �ʴ´ٰ� �����Ѵ�. (� ���н������� 32768�� �̻� ���μ����� ����� pid ���� ������ ���� �� ������, �̰������� �Ͼ �Ͱ��� �ʴ�.)
�ð��� � ���������� �ݺ��ȴٰ� �����غ���. ��, �ý��� �ð谡 ������ �ð��� ���ŷ� ���ư��� (Ȥ�� �ð谡 �ʹ� �ռ����� �ùٷ� �缳������ �̷��� ���� �ð��� �Ǵ�) ����. �� ��� pid�� �ð��� ��� ������ �� �ִ�. ī������ �ʱ�ȭ ������ �� ������ �ذ��Ϸ��� ���ȵǾ���. �츮�� ���� ������ ���ڷ� ī���� �ʱ�ȭ�ϱ� ��������, ���� �ý��ۿ��� �̷� ���� ���� ���� �� ����. (���� ���, seed�� �ʿ��ϱ���� rand()�� ����� �� ����, �ð��� �ּ��� ���� �����̱���� �ð����� seed�� ����� �� ����.) �� �Ϻ��� �ذ�å�� ����.
�� �� ����� �� ��������? ��ǻ���� �ϳ��� ��û�� �ʴ� �ִ� 500�� (�ý����� �Ϲ������� ������ ������ �����ϴ� �� �̻��� �۾��� �ϹǷ� �� ���� ���� �������� ����� ���� ���̴�.) �����Ѵٰ� ��������. ���ÿ� ��ŭ�� Ŭ���̾�Ʈ�� ó���ϴ°��� ���� �ڽ��� ������ �����ȴ�. ���� �츮�� ��������� �� �ڽ��� ��û�� �ʴ� 500�� ó���� �� �ִٰ� �����Ѵ�. ������ pid�� ���� �ڽ��� 500�� ��û�� ���� �ڽ��� 500�� ��û�� ī���Ͱ��� ��ĥ �� �ִ� ī���� ���۰� ������ 1000���̴�. ���� (�ʴ�������) �ڽ��� ī���Ͱ��� �ݺ��Ͽ� ���ϼ��� ���� Ȯ���� 1.5%�̴�. �̰��� �ſ� ������� �����̸�, ���� �̷� ���� ����� �� ����. ���� �ý��ۿ��� �̷� ���� ���� �� ���ٸ� (�ҽ��� �����Ͽ�) ī���� 32��Ʈ�� ������.
����Ÿ�Ӷ����� �ð谡 "�ڷ� ����" ���� ���������� ��. ���� ���⼭ ����ϴ� �ð��� ���� ǥ�ؽ�(UTC), �� �ð��� "��" ������ ���Ƿ� ������ ����. x86��� ���н������� ������ ������ �ʿ��ϴ�. ���κ��� �ð谡 UTC�� ����ϵ��� �����ؾ� �Ѵ�. ���� NTP�� ����Ѵٸ� ������� ���� ������ UTC �ð��� �ùٷ� �����.
ȯ�溯�� UNIQUE_ID
�� MIME base64 ���ڵ���
����� ������� 112��Ʈ (32��Ʈ IP �ּ�, 32��Ʈ pid, 32��Ʈ
�ð�, 16��Ʈ ī����) ������ ���ĺ� [A-Za-z0-9@-]
��
ǥ���Ѵ�. ���� MIME base64 ���ĺ���
[A-Za-z0-9+/]
������ +
��
/
�� URL���� Ư���� �ǹ̷� ����ϹǷ� �����ߴ�.
��� ���� ��Ʈ�� ����Ʈ������ ���ڵ��ϱ���� �ٸ� ����Ʈ������
����ϴ� ��Ű���İ��� ���� ����. ���� ���ڵ� ������
�ð�, IP �ּ�, pid, ī���� �����̴�. �� �������� � ������
������, ���α��� ���ڵ� ������ �����Ͽ� ������ �м��ϸ�
�ȵ��� �����Ѵ�. ���α��� ���ڵ��� UNIQUE_ID
��ü�� �� ������ �����ϰ�, �ٸ� UNIQUE_ID
��
���������� ���� �� �ִ�.
������ ������ ������ UNIQUE_ID
�����ͺ��̽���
�浹�� ���������ʰ� ���ڵ��� ������ �� �ֵ��� �����ߴ�.
���ο� ���ڵ��� ù ������ �ð��� ����ϰų�, ���� ���ĺ���
��Ʈ ���̸� ����� ���� �ִ�. �ð��� �⺻������ �����ϴ� ���̹Ƿ�
Ŭ�����Ϳ� �ִ� ��� ��ǻ�Ͱ� ��û ���� �ߴ��ϰ� ����
���ڵ� ������ �� ����ϱ����� ���� ��(flag second)������
����ϴ�. ���� ��û�� ����ϰ� ���ο� ���ڵ��� ������ ��
�ִ�.
�츮�� �� ����� �� ������ ���Ͽ� ��������� ���ð����� �ذ�å�̶�� �ϴ´�. �� ����� Windows NT�� ���� ��Ƽ������ �ý������� Ȯ���� �� �ְ�, ������ �뵵�� ���� Ȯ���� �� �ִ�. �̷��� �ʿ��Ѹ�ŭ �� �� �ĺ��ڸ� ���� �� �ֱ���� ������ �ĺ��ڴ� �⺻������ ������ ������ ������. �⺻������ Ŭ�������� ��ǻ�͵� ���̿� ����� �ʿ���� (���ϰ� ���� NTP ���⸸ �ʿ��ϴ�), httpd ���μ��� ���̿� ��ŵ� �ʿ���� (Ŀ���� �ο��ϴ� pid���� �Ϲ����� ����̴�). �ſ� Ư���� ��Ȳ�̶�� �ν��� ũ�⸦ ���� �� ������ �� ���� ������ �����ؾ� �Ѵ�. (���� ���, � ����Ʈ���� 32��Ʈ IP �ּ� ������ ���ʿ��ϰ� ũ����, �̸� ���̴� ����� ��Ȳ�� ���� �ٸ���.)