���[�^��queue

2008/10/2-1

�C���^�[�l�b�g�ł́A���[�^(router)�ƌĂ΂��l�b�g���[�N�@�킪�p�P�b�g���o�P�c�����[�̂悤�Ɉ���ɓ͂��鎖�ŒʐM���s���܂��B �Ⴆ�΁A�Ƃɂ���SOHO���[�^�����[�^�ł��B �e���[�^�́A�󂯎�����p�P�b�g���ǂ̐ڑ��C���^�[�t�F�[�X�ɓ]�����邩�������l���ăp�P�b�g�����̃��[�^(�m�[�h�A�z�X�g)�ւƎ�n���܂��B

���[�^�́A�p�P�b�g���󂯎���Ă��玟�̃��[�^�ɓn���܂�queue(�L���[�A�҂��s��)�ɕێ����܂��B �Ⴆ�΁A����e��(�ш�)�ȏ�̓]���v�����󂯎�������ɂ́Aqueue�Ƀp�P�b�g�����X�ɗ��܂��Ă����܂��B �����āA�p�P�b�g�ɂ�鍬�G���u����ȏ㖳���I�v�Ƃ������x���ɓ��B����ƃp�P�b�g���j������Ă��܂��܂��B ���̂悤�ȍ��G���Ă���󋵂��t�s(�ӂ�����)�ƌĂ΂�܂��B

�t�s�󋵂����[�^�łǂ̂悤�ȏ��������邩�Ƃ����ۑ�ɑ΂��āAqueue������s���Ƃ�����@������܂��B �����ł́Aqueue�̐�����@�������‚��Љ�����Ǝv���܂��B

FIFO(First In First Out) queue

�����镁�ʂ�queue�ł��B �S�Ă̊�{�ł��B

�ŏ��ɓ��������̂��ŏ��ɏo�čs���܂��B ��ʓI�ɁAFIFO queue�ɂ͌��܂�������������A�p�P�b�g�����̒����ɓ��肫��Ȃ��Ɣj������܂��B ���̂��߁A�p�P�b�g���j������邩����Ȃ����́A�p�P�b�g�����������u�Ԃ�FIFO queue�̂‚܂��ɍ��E����܂��B

Tail Drop

��ԐK�����j������郂�f���ł��B ���G���Ă���FIFO queue�Ɍ�납����낤�Ƃ��Ď��s���ăp�P�b�g�������Ă��܂��Ƃ����C���[�W�ł��傤���B

Random Drop on Full

queue�����܂������_��queue�̒��ɓ����Ă���p�P�b�g�������_���ɑI�΂�Ĕj������郂�f���ł��B

FQ (Fair Queueing)

���Ȃ�Â������ł��B ���O�̒ʂ�AFair(����)�ɂ��邽�߂�queueing�����ł��B

��̓I�ɂ́A�t���[(���ꂼ��̒ʐM)����queue������Ă��܂��Ƃ��������ł��B ���ꂼ��̃t���[����queue������āA���ۂɏo�͂����p�P�b�g�͊equeue���珇�Ԃɏo�čs��round robin�����ɂȂ�܂��B ���̂悤�Ƀt���[����queue�����΁A�p�P�b�g�𑽂��o���đш������Ă���queue�͏���ɋl�܂��Ă����A�p�P�b�g�𑽂��o���Ă��Ȃ��t���[��queue�̓X�J�X�J�ɂȂ�܂��B

Fair�ɂ��邱�Ƃ��l�������A����ق�Fair�ɏo��������͂Ȃ��̂ł͂Ȃ����Ƃ������炢�e�t���[���u�����v�ɑш�𕪂������܂��B

FQ�̖��_�́A���܂�Ƀg���t�B�b�N�����߂��郋�[�^�ł͗��p���ɂ������Ƃł��B ���܂�Ƀt���[�̐��������Ȃ肷����ƁA��ʂ�queue���쐬���Ȃ��Ă͂Ȃ�Ȃ��Ȃ�A�X�P�[�����Ȃ��Ȃ�܂��B

FQ���̂��̂ł́A�t���[�Ƃ͉����͖�������Ă��Ȃ��̂ŁA�󋵂ɉ����ĉ����t���[�Ƃ��邩�͋K��ł��܂��B �Ⴆ�΁A����̃z�X�g�ƃz�X�g�̒ʐM���܂Ƃ߂ăt���[�Ƃ���̂��A����̃|�[�g�ԍ��ł�TCP�ɂ��ʐM���t���[�Ƃ���̂��͏����ݒ莟��ł��B

RED (Random Early Detection)

FQ���͐V���������ł����A���Ȃ�Â������ł��B ���ۂɂ͂��܂�g���Ă��܂��񂪁A�l�����ɔ�����������܂��B

RED�ł́Aqueue�Ɋ܂܂��p�P�b�g�������_���ɑI��Ŕj�����܂��B ��������ď����Ɖ��������s�s�ňӖ��s���ɕ������邩���m��܂��񂪁A���́u�����_���Ɏ̂Ă�v�Ƃ����Ƃ���ɂ����ARED�̃A���S���Y���Ƃ��Ă̔������͂���܂��B

RED�������_���Ƀp�P�b�g��j������̂́ATCP��O��Ƃ��Ă��邽�߂ł��B TCP�́A�p�P�b�g���X(�p�P�b�g�r��)���t�s�̒���Ƃ��đ����܂��B TCP�ł́A�t�s�����m����Ɨ��p����ш���팸���܂��B ��̓I�ɂ́A�o���p�P�b�g�̗ʂ����炵�č��G���ɘa�����悤�Ƃ��܂��B ���G���Ă���Ƃ���ɁA����ɑ����̍��G�̌�����˂����ނƁA���ǂ̓p�P�b�g��������΂�����ɂȂ��Ă��܂��āA�ʐM�������������ቺ���邽�߂ł��B �C���^�[�l�b�g���݌v���ꂽ�����́ATCP�ɂ��̂悤���t�s����@�\�͂���܂���ł������A�ɂ��������������s���Ȃ��Ȃ��Ă��܂������߂ɁATCP�ɋ������ăl�b�g���[�N�ш�����荇���@�\���܂܂��悤�ɂȂ�܂����B

RED�ł́A���́uTCP�����G������悤�Ƃ���v�d�g�݂𗘗p���Ă��܂��B queue�����܂薄�܂��Ă��炸�A�X�J�X�J�̊Ԃ̓p�P�b�g�͔j������܂���B queue�̗ʂ��������(threshold:臒l)����I�ɒ�����悤�ɂȂ�ƁARED���쓮���͂��߂܂��B queue�ɗ��܂��Ă���p�P�b�g�̗ʂ������Ȃ�΂Ȃ�قǁA�����_���ɗ��Ƃ����p�P�b�g�̊����͑������čs���A�ŏI�I�ɂ�FIFO queue��drop tail�Ɠ����悤�ɑS�Ă̓��̓p�P�b�g���j�������悤�ɂȂ�܂��B

RED�����̃����_���Ƀp�P�b�g��j�����邩�ł����A����́A�����_���ɂ���Ă���Αш�𑽂����p���Ă���ʐM�ɂ��p�P�b�g���j������₷���Ȃ邩��ł��B �����𗬂��p�P�b�g�̗ʂ�������΁A�����Ɨ��Ƃ����p�P�b�g���������Ȃ邾�낤�Ƃ����l�����ł��B

RED�̎v�z��TCP���O��ł͂���܂����ATCP�ȊO�ɑ΂��đS���Ӗ����Ȃ��Ƃ����킯�ł͂���܂���B TCP�ȊO�ł����Ă��p�P�b�g���X�����m���ė��p�ш�𒲐����Ă����ʐM�����ł���Ήe�����󂯂ė��p�ш�𒲐����Ă���܂��B �܂��A�������𕷂��Ȃ������q�̂��߂̃y�i���e�B�{�b�N�X�Ƃ������̂��K�v���R��Ȃ��Ƃ����b���ꉞ�_�����ɂ͏����Ă���܂��B

RED�́A�A���S���Y���I�ɂ͔��ɔ������̂ł����A���܂�^�p����Ă���̂��������Ƃ�����܂���B �”\�Ȍ���p�P�b�g�͗��Ƃ������Ȃ��̂��l��ł��B �܂��A�g���t�B�b�N�����ɑ�ʂɂ��郋�[�^�ł�1�‚̒ʐM�Ńp�P�b�g��j�����ď���ш���팸�������Ƃ��Ă��A���̍팸�ʂ͑S�̂��猩��ƃX�Y���̗܂ɂ��������܂���B �Ⴆ�΁A100���{�̒ʐM������Ƃ���ŁA1�{��TCP���������p�ш�����d�����Ƃ��Ă��A�S�̂ɗ^����e���͊F���ł��B

����ŁA�_���ł͗ǂ���������ł��B ����ł͔��������ǎ��^�p�ɂ͌����Ȃ������ƌ����邩���m��܂���B

�Ȃ��ARED��ECN(Explicit Congestion Notification)�ƃZ�b�g�ɂȂ�ꍇ������܂����A�܂��A����ׂ͍����b�Ȃ̂Ŋ������܂��B

CBQ (Class Based Queueing)

������Ȃ��Ȃ����j����������ł��B

CBQ�̓����Ƃ��ẮA���̖��̒ʂ�A�N���X�Ƃ����T�O�Ń����N�̑ш������U�邱�Ƃł��B �N���X�́A���ꂼ��ݒ肳�ꂽ�ш�̃V�F�A�𖞂����悤��queue����p�P�b�g��]�����Ă����܂��B �������A�l�b�g���[�N�����p����Ă��Ȃ����ɂ͐ݒ�ȏ�̃l�b�g���[�N�ш���L�ł���悤�ɂ��Ȃ��Ă��܂��B


[�_��3 Figure 2]���

����ɁA�e�N���X���ɊK�w����邱�Ƃ��o���܂��B �N���X���̉��ʃN���X�͏�ʃN���X�����p�”\�ȑш�͈͓̔��ōD���ȃt���[�ɑ΂��đш������U�鎖���ł��܂��B


[�_��3 Figure 3]���

�Ō��

�����ŏЉ�Ă�����̈ȊO�ɂ��F�X����̂ŁA������������͐[�����ׂĂ݂ĉ������B ���\�ʔ����ł��B

�Q�l����

[1] : "On packet switches with infinite storage", John Nagle, IEEE Transactions on Communications, 35(4):435-438, April 1987.

[2] : "Random Early Detection Gateways for Congestion Avoidance", Sally Floyd and Van Jacobson, IEEE/ACM Transaction on Networking, Vol.1. No.4, August 1993

[3] : "Link-sharing and Resource Management Models for Packet Networks", Sally Floyd and Van Jacobson, IEEE/ACM Transactions on Networking, Vol. 3 No. 4, pp. 365-386, August 1995

�ŋ߂̃G���g��

�ߋ��L��

�ߋ��L���ꗗ

IPv6��b����

YouTube�`�����l������Ă܂��I