RFC: 793

TRANSMISSION CONTROL PROTOCOL
DARPA INTERNET PROGRAM
PROTOCOL SPECIFICATION

September 1981

prepared for

Defense Advanced Research Projects Agency
Information Processing Techniques Office
1400 Wilson Boulevard
Arlington, Virginia 22209

by

Information Sciences Institute
University of Southern California
4676 Admiralty Way
Marina del Rey, California 90291

TABLE OF CONTENTS

����

1. ����
�@1.1 ���@
�@1.2 �T�v
�@1.3 ���̃h�L�������g�ɂ‚���
�@1.4 �C���^�t�F�[�X
�@1.5 �I�y���[�V����

2. ����
�@2.1 ���ݓ���V�X�e���̗v�f
�@2.2 �I�y���[�V�����̃��f��
�@2.3 �z�X�g�‹�
�@2.4 �C���^�t�F�[�X
�@2.5 ���̃v���g�R���Ƃ̊֌W
�@2.6 �M���ł���ʐM
�@2.7 �R�l�N�V�����̊m���Ɖ��
�@2.8 TITLE="2.8"�f�[�^�ʐM
�@2.9 �D��x�ƃZ�L�����e�B
�@2.10 �拭���̌���

3. �@�\�K��
�@�@3.1 �w�b�_�`��
�@�@3.2 �p��
�@�@3.3 �V�[�P���X�ԍ�
�@�@3.4 �R�l�N�V�����m��
�@�@3.5 �R�l�N�V�������
�@�@3.6 �D��x�ƃZ�L�����e�B
�@�@3.7 �f�[�^�ʐM
�@�@3.8 �C���^�t�F�[�X
�@�@3.9 �C�x���g����

�p��
�Q��

����

���̃h�L�������g�́ADoD �W�� Transmission Control Protocol (TCP) ���K�肵�Ă���B���̕W������Â��Ă��� �O�� ARPA TCP �K��́A9 �‚̔ł��������B�����Č��݂̃e�L�X�g�́A������������Ă���B�T�O��e�L�X�g�̗����Ɋւ��āA���̍�Ƃɑ����̊񏑂��������B���̕ҏW�́A��‚��̏ڍׂ𕪗ނ��Ă���B�����āA�I�[�����̃o�b�t�@�T�C�Y�̒��� (end-of-letter buffer-size adjustments) ���폜���A�������J�j�Y���� push �@�\�Ƃ��čċK�肵�Ă���B

Jon Postel
Editor

1. ����

�]������v���g�R�� (TCP: Transmission Control Protocol) �́A�p�P�b�g�����R���s���[�^�ʐM�l�b�g���[�N���ŁA�����Ă��̗l�ȃl�b�g���[�N�̑��ݐڑ��V�X�e���ɂ����āA�z�X�g�Ԃ̍����M���ł��� host-to-host �v���g�R���Ƃ��Ďg�p���邱�Ƃ��Ӑ}���Ă���B

���̃h�L�������g�́ATransmission Control Protocol �ɂ���Ď��s�����@�\�A�������������v���O�����A���̃T�[�r�X��v������v���O���������p�҂ւ̃C���^�t�F�[�X�ɂ‚��ċL�q���Ă���B

1.1. ���@

�R���s���[�^�ʐM�V�X�e���͌R���A�����A�s���‹��ɂ����đ����‚‚���d�v�Ȗ�����S���Ă���B���̃h�L�������g�͊�{�I�ɁA�R���R���s���[�^�ʐM�̗v���A���ɐM���̖����ʐM�ɂ�����M�����̋����A���G���̌������ɓI���i���Ă���B�����̖��͂̑����́A�s���␭���̏�ʂł�������B

�헪�I�A��p�I�R���s���[�^�ʐM�l�b�g���[�N���J�����ꓱ�������ɂ‚�āA�����𑊌ݐڑ������i��A�L�͈͂ȃA�v���P�[�V�������T�|�[�g�ł���W���I�ȑ��ݏ����ʐM�v���g�R����񋟂��邱�Ƃ��s�Œ��ɂȂ��Ă���B���̗l�ȕW���̕K�v�������z���āA���h���������Z�p�ψ��� (Deputy Undersecretary of Defense for Research and Engineering) �́A�����ŋK�肳��Ă��� Transmission Control Protocol (TCP) ���ADoD-wide �ȑ��ݏ����ʐM�v���g�R���W���̊�b�ł��邱�Ƃ�錾�����B

TCP �́A�R�l�N�V�����^�ŃG���h�c�[�G���h�̐M���ł���v���g�R���ł���A�}���`�l�b�g���[�N�A�v���P�[�V�������T�|�[�g����v���g�R���̑w�ɕ����ꂽ�K�w�ɍ��킹�邽�߂ɐ݌v���ꂽ�BTCP �́A�ʁX�������݂ɐڑ����ꂽ�R���s���[�^�ʐM�l�b�g���[�N�ɐڑ����ꂽ�z�X�g�R���s���[�^�ŁA��g�̃v���Z�X�Ԃ̐M���ł��鑊�ݏ����ʐM��񋟂���BTCP �w�ȉ��̒ʐM�v���g�R���̐M�����ɂ‚��ẮA�قƂ�Ǒz�肵�Ă��Ȃ��BTCP �́A���ʃ��x���̃v���g�R������A�P���Ő��ݓI�ɐM���ł��Ȃ��f�[�^�O�����T�[�r�X���󂯂��邱�Ƃ�z�肵�Ă���B�����I�ɁATCP �̓n�[�h�g�ݍ��ݐڑ�����p�P�b�g�����A���͉�������l�b�g���[�N�܂ł́A�L�͈͂ȒʐM�V�X�e���̃X�y�N�g����ň�����ׂ��ł���B

TCP �́A[1] �� Cerf and Kahn �ɂ���čŏ��ɋK�肳�ꂽ�T�O�Ɋ�Â��Ă���BTCP �͊�{�I�� Internet Protocol [2] �̒���ɁA�w�ŕ�����ꂽ�v���g�R���̌n�ɓK�����Ă���AInternet Protocol �� TCP ���C���^�[�l�b�g�f�[�^�O������ "����" �ɓ������ꂽ�A�•ϒ��̏��̃Z�O�����g�𑗎�M������@��񋟂���B�C���^�[�l�b�g�f�[�^�O�����́A�قȂ�l�b�g���[�N���ɂ��鑗�M���ƈ���� TCP ���A�h���X�t�������i��񋟂���BInternet Protocol �͖��A�����̃l�b�g���[�N�⑊�ݐڑ��Q�[�g�E�F�C��ʂ��ē]���Ɣz�����������邽�߂ɗv�����ꂽ TCP �Z�O�����g�̃Z�O�����g���ƍđg�ݗ��Ă������Ă���B����� Internet Protocol �́ATCP �Z�O�����g�̗D��x�A�Z�L�����e�B���ށA�敪�Ɋւ�������^�ԁB����Ă��̏��́A�����̃l�b�g���[�N�ɓn���ăG���h�c�[�G���h�ɓ`�B���邱�Ƃ��ł���B

+---------------------+
|     higher-level    |
+---------------------+
|        TCP          |
+---------------------+
|  internet protocol  |
+---------------------+
|communication network|
+---------------------+

Figure 1

���̃h�L�������g�̑唼�́A�z�X�g�R���s���[�^���̏�ʃ��x���v���g�R���Ɠ������Ă��� TCP �����̃R���e�L�X�g�ŋL�q����Ă���B����R���s���[�^�V�X�e���́A�l�b�g���[�N����\�t�g�E�F�A�����łȂ��ATCP �� Internet Protocol ����������Ă��� front-end �R���s���[�^���o�R���ăl�b�g���[�N�ɐڑ�����邩������Ȃ��BTCP �K��́A�K�؂� host-to-front-end �v���g�R������������Ă������Afront-end �̏ꍇ�����������ł���悤�ȏ�ʃ��x���v���g�R���ւ̃C���^�t�F�[�X���K�肵�Ă���B

1.2. �T�v

TCP �́A�}���`�l�b�g���[�N���ł́A�M���ł��� process-to-process �ʐM�T�[�r�X��񋟂��邱�Ƃ��Ӑ}���Ă���BTCP �́A�����̃l�b�g���[�N�ŋ��ʂŎg�p����� host-to-host �̃v���g�R���ł��邱�Ƃ��Ӑ}���Ă���B

1.3. ���̃h�L�������g�ɂ‚���

���̃h�L�������g�́A��ʃ��x���v���g�R���Ƃ̑��ݓ���ƁA���� TCP �Ƃ̑��ݓ���̗��ʂɊւ���S�Ă� TCP �̎����ɗv�����ꂽ�U�镑���̋K���\���Ă���B���̐߂̎c��́A�v���g�R���C���^�t�F�[�X�Ə����̔��ɊȌ��Ȋϓ_��񋟂��Ă���B�� 2 �߂́ATCP �݌v�̍��{�I�v�z��v�񂵂Ă���B�� 3 �߂́A�l�X�ȃC�x���g (�V���ȃZ�O�����g�̓��B�A���p�҂̃R�[���A�G���[��) �������������� TCP �ɗv�����ꂽ����̏ڍׂȋK��� TCP �Z�O�����g�̃t�H�[�}�b�g�̏ڍׂ̗�����񋟂��Ă���B

1.4. �C���^�t�F�[�X

TCP �́A����ł͗��p�҂��A�v���P�[�V�����̃v���Z�X�ւ́A��������ł͗Ⴆ�� Internet Protocol �̗l�ȉ��ʃ��x���v���g�R���ւ̋��n��������B

�A�v���P�[�V�����v���Z�X�� TCP �Ԃ̃C���^�t�F�[�X�́A�����I�ɏڂ����}������Ă���B���̃C���^�t�F�[�X�́A�t�@�C�����������߂ɃI�y���[�e�B���O�V�X�e�����A�v���P�[�V�����v���Z�X�ɒ񋟂��Ă���R�[���ɁA���ɂ悭�����R�[���̃Z�b�g����\�������B�Ⴆ�΁A�m�����ꂽ�R�l�N�V������Ńf�[�^�𑗎�M���邽�߂ɁA�R�l�N�V�������I�[�v��/�N���[�Y����R�[��������B�� TCP �́A�񓯊��ŃA�v���P�[�V�����v���O�����ƒʐM�ł��邱�Ƃ����҂���Ă���B�������̃I�y���[�e�B���O�V�X�e���‹��ɓK�����C���^�t�F�[�X��݌v���邽�߂ɁA���Ȃ�̎��R�x�� TCP �̎����҂ɋ�����Ă��邪�A�S�Ă̐����������� TCP/user �C���^�t�F�[�X�ɂ����āA�ŏ����̋@�\���͋��߂���B

TCP �Ɖ��ʃ��x���v���g�R���Ԃ̃C���^�t�F�[�X�́A2 �‚̃��x�������݂��ɔ񓯊��ɏ���n���������J�j�Y�������݂���Ƃ����z��������A�{���I�ɋK�肵�Ȃ��B��ʓI�ɁA���ʃ��x���̃v���g�R���ł��̃C���^�[�t�F�[�X���K�肷�邱�Ƃ����҂����BTCP �́A���ݐڑ����ꂽ���Ɉ�ʓI�Ȋ‹��œ��삷�邽�߂ɐ݌v����Ă���B���̃h�L�������g��ʂ��đz�肳��鉺�ʃ��x���̃v���g�R���́AInternet Protocol [2] �ł���B

1.5. �I�y���[�V����

��L�Ŏ�����Ă���l�ɁATCP �̎�v�ړI�́A��g�̃v���Z�X�ԂŐM���ł��ĕۏ؂ł���_������T�[�r�X�A���邢�̓R�l�N�V�����T�[�r�X��񋟂��邱�Ƃł���B�M�����̔����C���^�[�l�b�g�ʐM�V�X�e���̍ŏ�ʂł��̃T�[�r�X��񋟂��邽�߂ɁA�ȉ��̕���ɂ�����ݔ����K�v�ł���B

��{�f�[�^�]�� (Basic Data Transfer)
�M���� (Reliability)
�t���[���� (Flow Control)
���d�� (Multiplexing)
�R�l�N�V���� (Connections)
�D��x�ƃZ�L�����e�B (Precedence and Security)

�����̕���̊e�X�ɂ����� TCP �̊�{�����́A�ȉ��̃p���O���t�ɋL�q����Ă���B

��{�f�[�^�]�� (Basic Data Transfer)

TCP �́A���‚̃I�N�e�b�g���C���^�[�l�b�g�V�X�e����ʂ��ē]�����邽�߂̃Z�O�����g�Ƀp�b�P�[�W���O���邱�Ƃɂ���āA�I�N�e�b�g�̘A���I�X�g���[���𗘗p�ҊԂ̊e�X�̕����ɓ]�����邱�Ƃ��ł���B�ʏ� TCP �́A���ƒf�[�^���u���b�N������]�����邩�����g�̕֋X�Ō��肷��B

���X���p�҂́ATCP �ɓn�����f�[�^�̑S�Ă��]�����ꂽ���Ƃ��m���߂�K�v������B���̖ړI�̂��߂� push �@�\����`����Ă���BTCP �ɓn���ꂽ�f�[�^�����ۂɓ]�����ꂽ���Ƃ��m���߂邽�߂ɁA���M�����p�҂� TCP �ɁA��M�����p�҂� push ����Ǝw������Bpush �́ATCP �ɂ��̃|�C���g�܂ł̃f�[�^����M���ɑ����ɑ��M/�z��������B���m�� push �|�C���g�͎�M�����p�҂ɂ͌����Ȃ���������Ȃ��B�܂� push �@�\�́A���R�[�h���E�̃}�[�J���������Ȃ��B

�M���� (Reliability)

TCP �́A�C���^�[�l�b�g�ʐM�V�X�e���ɂ���Ĕj�����󂯂���A����������A�d��������A���Ԓʂ�ɔz������Ă��Ȃ��f�[�^���񕜂����Ȃ���΂Ȃ�Ȃ��B����́A�]������e�X�̃I�N�e�b�g�ɃV�[�P���X�ԍ������蓖�āA��M�� TCP ����̍m�艞�� (ACK: positive acknowledgment) ��v�����邱�Ƃɂ���Ď��������B���� �^�C���A�E�g�Ԋu�ȓ��� ACK ����M���Ȃ���΁A���̃f�[�^�͍đ������B��M���ł́A���Ԓʂ�Ɏ�M���Ă��Ȃ���������Ȃ��Z�O�����g�𐳂��������t������A�d������菜�����߂ɃV�[�P���X�ԍ����g�p����B�j���́A�]������Z�O�����g�̊e�X�Ƀ`�F�b�N�T����t�����A��M���ł�����`�F�b�N���āA�j��������Z�O�����g�͔j�����邱�Ƃɂ���ď��������B

TCP ���K�؂ɋ@�\�������A�C���^�[�l�b�g�V�X�e�������S�ɕ�������Ȃ�����A�]���G���[������ȃf�[�^�̔z���ɉe�����邱�Ƃ͂Ȃ����낤�BTCP �́A�C���^�[�l�b�g�ʐM�V�X�e���ُ̈킩��񕜂�����B

�t���[���� (Flow Control)

TCP �́A��M�҂����M�҂ɂ���đ��M�����f�[�^�ʂ�}�������i��񋟂���B����́A����Ɏ�M�����ŏI�Z�O�����g�ȍ~�̎���ł���V�[�P���X�ԍ��͈̔͂������S�Ă� ACK �ŁA"�E�B���h�E" ��Ԃ����Ƃɂ���Ď��������B�E�B���h�E�́A���M�҂����̋��‚��󂯂�O�ɓ]�����Ă��悢�I�N�e�b�g���������B

���d�� (Multiplexing)

�P��̃z�X�g���ő����̃v���Z�X�� TCP �ʐM�ݔ��𓯎��Ɏg�p�”\�ɂ��邽�߂ɁATCP �͊e�z�X�g���ŃA�h���X���|�[�g�̃Z�b�g��񋟂���B�C���^�[�l�b�g�ʐM�w����̃l�b�g���[�N�ƃz�X�g�̃A�h���X��A�����āA�\�P�b�g���`������B�\�P�b�g�̃y�A�͊e�X�̃R�l�N�V���������j�[�N�Ɏ��ʂ���B���Ȃ킿�A�\�P�b�g�͕����̃R�l�N�V�����œ����Ɏg�p���Ă��悢�B

�|�[�g�̃v���Z�X�ւ̌��ѕt�� (binding) �́A�e�X�̃z�X�g�ɂ���ēƗ����ď��������B�������A���΂��Ύg�p�����v���Z�X (�Ⴆ�� "logger" �⎞�����T�[�r�X) ���A���ɒm���Ă���Œ�̃\�P�b�g�Ɋ��蓖�Ă邱�Ƃ́A�֗��ł��邱�Ƃ��������Ă���B�����̃T�[�r�X�́A���m�̃A�h���X��ʂ��ăA�N�Z�X���邱�Ƃ��ł���B���̃v���Z�X�̃|�[�g�A�h���X��݂�����m�邱�Ƃ́A��蓮�I�ȃ��J�j�Y���𔺂���������Ȃ��B

�R�l�N�V���� (Connections)

��L�Ɏ�����Ă���M�����ƃt���[���䃁�J�j�Y���́ATCP ���e�X�̃f�[�^�X�g���[���ɑ΂��邠��X�e�[�^�X�������������Ĉێ����邱�Ƃ�K�v�Ƃ���B�\�P�b�g��V�[�P���X�ԍ��A�E�B���h�E�T�C�Y���܂ނ����̏��̃R���r�l�[�V�����́A�R�l�N�V�����ƌĂ΂��B�e�X�̃R�l�N�V�����́A���҂����ʂ����΂̃\�P�b�g�ɂ���ă��j�[�N�Ɏw�肳���B

2 �‚̃v���Z�X���ʐM���邱�Ƃ�]�ގ��A������ TCP �͂܂��n�߂ɃR�l�N�V�������m�����Ȃ���΂Ȃ�Ȃ� (�e�X�̑��ŃX�e�[�^�X��������������)�B�����̒ʐM�������������A�R�l�N�V�������I�����̓N���[�Y���āA���Ŏg�p���邽�߂Ɏ������������B

�R�l�N�V�����́A�M���ł��Ȃ��z�X�g�ԂŁA�M���ł��Ȃ��C���^�[�l�b�g�ʐM�V�X�e����Ŋm�����Ȃ���΂Ȃ�Ȃ��̂ŁA�N���b�N�Ɋ�Â��V�[�P���X�ԍ����������n���h�V�F�[�N���J�j�Y�����A�R�l�N�V�����̏������ُ������邽�߂ɗ��p�����B

�D��x�ƃZ�L�����e�B (Precedence and Security)

TCP �̗��p�҂́A���̒ʐM�̃Z�L�����e�B�ƗD��x���w�����Ă��悢�B�����̓������K�v�łȂ����Ɏg�p�����f�t�H���g�l���݂����Ă���B

2. ����

2.1. ���ݓ���V�X�e���̗v�f

���݃l�b�g���[�N�‹��́A�Q�[�g�E�F�C���o�R���đ��ݐڑ������l�b�g���[�N�ɐڑ����ꂽ�z�X�g�ō\�������B�l�b�g���[�N�̓��[�J���l�b�g���[�N (�Ⴆ�� Ethernet) ����K�̓l�b�g���[�N (�Ⴆ�� ARPANET) �̂ǂ��炩�ł��邱�Ƃ��z�肳��邪�A������̃P�[�X���p�P�b�g�����Z�p�Ɋ�Â��Ă���B���b�Z�[�W�𐶐�������銈���G�[�W�F���g�́A�v���Z�X�ł���B�l�b�g���[�N���̃v���g�R����Q�[�g�E�F�C��z�X�g�̗l�X�ȃ��x���́A�v���Z�X�|�[�g�Ԃ̘_���ڑ���� 2 �����f�[�^�t���[��񋟂��鑊�ݏ����ʐM�V�X�e�����T�|�[�g����B

�p�P�b�g�Ƃ������t�́A�z�X�g�ƃl�b�g���[�N�Ԃ� 1 �g�����U�N�V�����̃f�[�^���Ӗ����邽�߂ɁA���̓I�ɂ����ł͎g�p�����B�l�b�g���[�N���Ō��������f�[�^�u���b�N�̃t�H�[�}�b�g�́A�ʏ��X�ɂ͊֌W�Ȃ��B

�z�X�g�́A�l�b�g���[�N�ƌ��т‚����R���s���[�^�ł���A�ʐM�l�b�g���[�N�̊ϓ_���猩��ƃp�P�b�g�̑��M���ƈ���ł���B�v���Z�X�́A�z�X�g�R���s���[�^���ł͊����������v�f�Ƃ��Č����� (���s�v���O�����Ƃ��Ẵv���Z�X�̌����ȋ��ʒ�`�ɏ]����)�B�[����t�@�C�����͑��� I/O �f�o�C�X�ł����A�v���Z�X�̎g�p��ʂ��Č݂��ɒʐM���Ă���l�Ɍ�����B����āA�S�Ă̒ʐM�͑��݃v���Z�X�ʐM�Ƃ��Č�����B

�v���Z�X�́A�������g�Ƒ��̃v���Z�X�Ƃ̊Ԃ̊�‚��̒ʐM�X�g���[���̒��ŋ�ʂ���K�v������̂ŁA�e�X�̃v���Z�X�͐������̃|�[�g�������A������ʂ��đ��̃v���Z�X�̃|�[�g�ƒʐM���邾�낤�B

2.2. �I�y���[�V�����̃��f��

�v���Z�X�́ATCP ���Ăяo���A�A�[�M�������g�Ƃ��ăf�[�^�̃o�b�t�@��n�����Ƃɂ���ăf�[�^��]������BTCP �́A�����̃o�b�t�@����f�[�^���Z�O�����g�ɕ�ݍ��ށB��M�� TCP �́A�f�[�^���Z�O�����g�����M�����[�U�̃o�b�t�@�ɒu���A��M�����[�U�ɒʒm����BTCP �́A�M���ł��鏇���̃f�[�^�]����ۏ؂��邽�߂Ɏg�p���鐧������A�Z�O�����g���Ɋ܂ށB

�C���^�[�l�b�g�ʐM�̃��f���́A���[�J���l�b�g���[�N�ւ̃C���^�t�F�[�X��񋟂���e TCP �Ɍ��ѕt���� Internet Protocol ���W���[�������݂��邱�Ƃł���B���̃C���^�[�l�b�g���W���[���́ATCP �Z�O�����g���C���^�[�l�b�g�f�[�^�O�����̓����Ƀp�P�b�g�����A�����̃f�[�^�O����������C���^�[�l�b�g���W���[�����A���邢�͒��Ԃ̃Q�[�g�E�F�C�ɐU�蕪����B���[�J���l�b�g���[�N��ʂ��ăf�[�^�O������]�����邽�߂ɁA����̓��[�J���l�b�g���[�N�p�P�b�g�ɖ��ߍ��܂��B

�p�P�b�g�����́A���[�J���p�P�b�g�̈���C���^�[�l�b�g���W���[���ւ̔z����B�����邽�߂ɁA�X�Ȃ�p�P�b�g���A�Z�O�����g���A���邢�͑��̏��������s���邩������Ȃ��B

�l�b�g���[�N�Ԃ̃Q�[�g�E�F�C�ɂ����ẮA�C���^�[�l�b�g�f�[�^�O�����̓��[�J���p�P�b�g���� "��݂��J����� (unwrapped)"�A�ǂ̃l�b�g���[�N��ʂ��ăC���^�[�l�b�g�f�[�^�O���������ɑ��邩�����肵�悤�Ǝ��݂�B���̌�A�C���^�[�l�b�g�f�[�^�O�����́A���̃l�b�g���[�N�ɓK�������[�J���p�P�b�g�� "��܂� (wrapped)"�A���̃Q�[�g�E�F�C�����͍ŏI����ɐU��������B

�Q�[�g�E�F�C�́A�������̃l�b�g���[�N��ʂ��Ă̓]���ɕK�v�ł���΁A�C���^�[�l�b�g�f�[�^�O�������A��菬�����C���^�[�l�b�g�f�[�^�O�����̃t���O�����g�ɕ������Ă��悢�B������s�����߂ɁA�Q�[�g�E�F�C�� 1 �Z�b�g�̃C���^�[�l�b�g�f�[�^�O�����𐶐����A�e�X 1 �‚̃t���O�����g���^�ԁB���̃t���O�����g�́A���̃Q�[�g�E�F�C�ŁA��菬�����t���O�����g�ɍX�ɕ�������邩������Ȃ��B�C���^�[�l�b�g�f�[�^�O�����̃t���O�����g�`���́A����C���^�[�l�b�g���W���[�����t���O�����g���C���^�[�l�b�g�f�[�^�O�����ɍđg�ݗ��Ăł���悤�ɐ݌v����Ă���B

����C���^�[�l�b�g���W���[���́A(�K�v������΍đg�ݗ��Ă��s������) �f�[�^�O��������Z�O�����g�������A���� TCP �ɓn���B

���̒P���ȏ������f���́A�����̏ڍׂ����U���B��‚̏d�v�ȓ����̓T�[�r�X�^�C�v�ł���B����́A�Q�[�g�E�F�C (���̓C���^�[�l�b�g���W���[��) �ɁA���̃Q�[�g�E�F�C�ɔz������̂Ɏg�p�����T�[�r�X�p�����^��I������ۂ̎w�W�ƂȂ����񋟂���B�T�[�r�X���̃^�C�v�Ɋ܂܂����̂́A�f�[�^�O�����̗D��x�ł���B�f�[�^�O�����́A�������x���̃Z�L�����e�B�‹��ʼn^�p�����z�X�g��Q�[�g�E�F�C���A�Z�L�����e�B���l�����ēK�؂Ƀf�[�^�O���������ʉ����邱�Ƃ��”\�ɂ��邽�߂ɁA�Z�L�����e�B�����^�Ԃ�������Ȃ��B

2.3. �z�X�g�‹�

TCP �́A�I�y���[�e�B���O�V�X�e�����̃��W���[���ł���Ƒz�肳���B���p�҂́A�t�@�C���V�X�e���ɃA�N�Z�X����̂ƂقƂ�Ǔ����l�� TCP �ɃA�N�Z�X����BTCP �́A�Ⴆ�΃f�[�^�\�����Ǘ����邽�߂ɁA���̃I�y���[�e�B���O�V�X�e���̋@�\���Ă�ł��悢�B�l�b�g���[�N�ւ̎��ۂ̃C���^�t�F�[�X�́A�f�o�C�X�h���C�o���W���[���ɂ���Đ��䂳���Ƒz�肳���BTCP �́A�l�b�g���[�N�f�o�C�X�h���C�o�𒼐ڌĂ΂��A����Ƀf�o�C�X�h���C�o���ĂԂł��낤�C���^�[�l�b�g�f�[�^�O�����v���g�R�����W���[�����ĂԁB

TCP �̃��J�j�Y���́Afront-end �v���Z�b�T�ɂ����� TCP �̎��������O���Ă��Ȃ��BTCP �̃��J�j�Y���́Afront-end �v���Z�b�T�ɂ����� TCP �̎��������O���Ă��Ȃ��B�������������������ł́Ahost-to-front-end �v���g�R���́A���̃h�L�������g�ŋK�肳��Ă��� TCP ���[�U�C���^�t�F�[�X�̃^�C�v���T�|�[�g����@�\��񋟂��Ȃ���΂Ȃ�Ȃ��B

2.4. �C���^�t�F�[�X

TCP/���[�U�C���^�t�F�[�X�́ATCP ��ŗ��p�҂��R�l�N�V������ OPEN �� CLOSE ������A�f�[�^�� SEND �� RECEIVE ������A�R�l�N�V�����ɂ‚��Ă� STATUS ���擾���邽�߂̌Ăяo����񋟂���B�����̌Ăяo���́A�Ⴆ�΃t�@�C���� open, read, close �̂悤�ȁA�I�y���[�e�B���O�V�X�e����̃��[�U�v���O��������̑��̌Ăяo���Ǝ������̂ł���B

TCP/internet �C���^�t�F�[�X�́A�C���^�[�l�b�g�V�X�e�����̂�����z�X�g�̒��ɂ��� TCP ���W���[���ɃA�h���X�t����ꂽ�f�[�^�O�����𑗎�M����Ăяo����񋟂���B�����̌Ăяo���́A�A�h���X��T�[�r�X�^�C�v�A�D��x�A�Z�L�����e�B�A���̐����񓙂�n���p�����^�����B

2.5. ���̃v���g�R���Ƃ̊֌W

�ȉ��̐}�́A�v���g�R���K�w���ł� TCP �̏ꏊ�������Ă���B

+------+ +-----+ +-----+       +-----+                    
|Telnet| | FTP | |Voice|  ...  |     |  Application Level 
+------+ +-----+ +-----+       +-----+                    
      |   |         |             |                       
     +-----+     +-----+       +-----+                    
     | TCP |     | RTP |  ...  |     |  Host Level        
     +-----+     +-----+       +-----+                    
        |           |             |                       
     +-------------------------------+                    
     |    Internet Protocol & ICMP   |  Gateway Level     
     +-------------------------------+                    
                    |                                     
       +---------------------------+                      
       |   Local Network Protocol  |    Network Level     
       +---------------------------+                      

Protocol Relationships

Figure 2.

TCP ����ʃ��x���̃v���g�R���������I�ɃT�|�[�g�ł��邱�Ƃ����҂����BARPANET Telnet �� TCP �ւ� AUTODIN II THP �̂悤�ȁA��ʃ��x���v���g�R���ւ̃C���^�t�F�[�X�����‚��Ƃ͊ȒP�Ȃ͂��ł���B

2.6. �M���ł���ʐM

TCP �R�l�N�V������ő��M�����f�[�^�̃X�g���[���́A�M����������A���Ԓʂ�Ɉ���ɔz�������B

�V�[�P���X�ԍ��ƍm�艞���𗘗p���邱�Ƃɂ���āA�M���ł���]�����s����B�T�O��ł́A�f�[�^�̊e�I�N�e�b�g�ɃV�[�P���X�ԍ������蓖�Ă���B�f�[�^�̈�Ԗڂ̃I�N�e�b�g�̃Z�O�����g���̃V�[�P���X�ԍ��́A���̃Z�O�����g�Ƌ��ɓ]������A�Z�O�����g�V�[�P���X�ԍ��ƌĂ΂��B�Z�O�����g�́A���Ɋ��҂����t�����]���̃f�[�^�I�N�e�b�g�̃V�[�P���X�ԍ��ł���m�F�ԍ����^�ԁBTCP ���f�[�^���܂�ł���Z�O�����g��]�����鎞�A�đ��L���[�ɃR�s�[��u���A�^�C�}�[���J�n����B���̃f�[�^�ɑ΂���m�艞������M�������A���̃Z�O�����g���L���[����폜�����B�����^�C�}����������܂łɍm�艞������M���Ȃ���΁A���̃Z�O�����g�͍đ������B

TCP �ɂ��m�艞���́A�f�[�^���G���h���[�U�ɓ͂������Ƃ͕ۏ؂��Ă��炸�A��M�� TCP ���f�[�^���G���h���[�U�ɓ͂���ӔC�����邱�Ƃ�ۏ؂��Ă��邾���ł���B

TCP �Ԃ̃f�[�^�̗���𓝎����邽�߂ɁA�t���[���䃁�J�j�Y�������������B��M�� TCP �́A���M�� TCP �� "�E�B���h�E" ��ʒm����B���̃E�B���h�E�́A��M�� TCP �Ɍ��ݎ�M���鏀��������Ă���I�N�e�b�g�̐� (�m�F�ԍ�����n�܂�) �������Ă���B

2.7. �R�l�N�V�����̊m���Ɖ��

TCP ��������������Ȃ��ʁX�̃f�[�^�X�g���[�������ʂ��邽�߂� TCP �̓|�[�g���ʎq��񋟂���B�|�[�g���ʎq�͊e�X�� TCP �ɂ���ēƎ��ɑI�������̂ŁA�����̓��j�[�N�łȂ��Ƃ��悢�B�e TCP ���Ń��j�[�N�ȃA�h���X��񋟂��邽�߂ɁA��X�� TCP �����ʂ���C���^�[�l�b�g�A�h���X���|�[�g���ʎq�ƘA�����āA�݂��ɐڑ����ꂽ�S�Ẵl�b�g���[�N��ʂ��ă��j�[�N�ł���\�P�b�g�𐶐�����B

�R�l�N�V�����́A�ŏI�I�ɂ̓\�P�b�g�̃y�A�ɂ���Ċ��S�Ɏw�肳���B���[�J���\�P�b�g�́A�ʁX�̊O���̃\�P�b�g�ւ̐������̃R�l�N�V�����ɎQ�����Ă��悢�B�R�l�N�V�����͗������Ƀf�[�^���^�Ԃ̂Ɏg�p�ł���B���Ȃ킿 "�S��d" �ł���B

TCP �͂ǂ̂悤�ɑI�������ł���A���R�Ƀ|�[�g���v���Z�X�Ɋ��蓖�Ă邱�Ƃ��ł���B�������A��‚��̊�{�I�ȊT�O���A����������ɕK�v�ł���BTCP �������i�ɂ���� "�K�؂�" �v���Z�X�݂̂Ɋ��蓖�Ă�A�悭�m��ꂽ (well-known) �\�P�b�g�����݂��Ȃ���΂Ȃ�Ȃ��B�v���Z�X�̓|�[�g�� "���L" ���A�v���Z�X�͎��珊�L���Ă���|�[�g��ɂ̂݃R�l�N�V�������N���ł���Ƒz�肷��B(���L�������������i�̓��[�J���Ȗ��ł���B�������A�|�[�g�v�� (Request Port) �̃��[�U�R�}���h��A�w�肳�ꂽ�v���Z�X�ւ̃|�[�g�̃O���[�v�����j�[�N�Ɋ��蓖�Ă���@�A�Ⴆ�΃|�[�g���̍����r�b�g���w�肳�ꂽ�v���Z�X�Ɋ��蓖�Ă铙�A���z�肳���)�B

�R�l�N�V�����́A���[�J���|�[�g�ƊO�̃\�P�b�g�A�[�M�������g�ɂ�� OPEN �R�[���Ŏw�肳���B���Ԃ��� TCP �́A���[�U���ȍ~�̌Ăяo���ŃR�l�N�V�������Q�Ƃ��� (�Z��) ���[�J���R�l�N�V��������񋟂���B�R�l�N�V�����Ɋւ��Ċo���Ă����Ȃ���΂Ȃ�Ȃ����̂���‚�����B���̏���~�ς��邽�߂ɁA��X�͓]������u���b�N (TCB: Transmission Control Block) �ƌĂ΂��f�[�^�\��������Ƒz������B��‚̎����헪�́A���̃R�l�N�V�����ɑ΂��� TCB �ւ̃|�C���^�ł��郍�[�J���ȃR�l�N�V�����������‚��Ƃł���BOPEN �R�[���́A�R�l�N�V�����m����ϋɓI�ɐ��s���邩�A���ɓI�ɑ҂‚����w�肷��B

���ɓI OPEN �v���Ƃ́A�v���Z�X���R�l�N�V�����̋N�������݂�̂ł͂Ȃ��A���̓R�l�N�V�����v���̎�M��]��ł��邱�Ƃ��Ӗ�����B���ɓI OPEN ��v�����Ă���v���Z�X�́A�����锭�Ď҂���̃R�l�N�V�����v�����������B���̏ꍇ�A���w��̃\�P�b�g�ł��邱�Ƃ��������߂ɁA�S�� 0 �̊O���̃\�P�b�g���g�p�����B���w��̊O���\�P�b�g�͏��ɓI OPEN �݂̂Ɏg�p�ł���B

���m�̑��v���Z�X�ɑ΂���T�[�r�X��񋟂������v���Z�X�́A�O���\�P�b�g���w�肹���ɏ��ɓI OPEN �v���𔭍s���邾�낤�B��������΁A���̃��[�J���\�P�b�g�ɃR�l�N�V������v�����������Ȃ�v���Z�X�Ƃł��A�R�l�N�V�������m�����邱�Ƃ��ł���B�����A���̃��[�J���\�P�b�g�����̃T�[�r�X�Ɋ��蓖�Ă��Ă��邱�Ƃ��m���Ă���΁A�𗧂‚ł��낤�B

�悭�m��ꂽ�\�P�b�g�́A�\�P�b�g�A�h���X��W���I�ȃT�[�r�X�ɗD��I�Ɋ��蓖�Ă�̂ɕ֗��ȃ��J�j�Y���ł���B�Ⴆ�΁A"Telnet �T�[�r�X" �v���Z�X�́A�i�v�I�ɂ������̃\�P�b�g�Ɋ��蓖�Ă��Ă���A���̃\�P�b�g�� File Transfer �� Remote Job Entry, Text Generator, Echoer, Sink �v���Z�X�Ƃ��ė\�񂳂�Ă���B(�Ō�� 3 �‚̓e�X�g�̂��߂̂��̂ł���B) �\�P�b�g�A�h���X�́A�V���ɍ쐬���ꂽ�T�[�r�X���񋟂����ł��낤�A�������̃\�P�b�g��Ԃ� "Look-Up" �T�[�r�X�ւ̃A�N�Z�X�Ƃ��ė\�񂳂�邩������Ȃ��B

�v���Z�X�͏��ɓI OPEN �𔭍s���A���̃v���Z�X����ϋɓI OPEN ���󂯂�̂�҂‚��Ƃ��ł���B�����āA�R�l�N�V�������m�����ꂽ���ATCP �ɂ���Ēʒm�����B�݂��ɓ����ɐϋɓI OPEN �𔭍s���� 2 �‚̃v���Z�X�́A�������ڑ������ł��낤�B���̗Z�ʐ��́A�R���|�[�l���g���݂��ɔ񓯊��œ��삷�镪�U�R���s���[�e�B���O�̃T�|�[�g�ɂƂ��ďd�v�ł���B

�����̏��ɓI OPEN ��O���̐ϋɓI OPEN �ł̃\�P�b�g���ƍ����邽�߂ɁA2 �‚̌����I�ȃP�[�X������B��–ڂ́A�����̏��ɓI OPEN �����S�ɊO���̃\�P�b�g���w�肷��P�[�X�ł���B���̏ꍇ�A���m�Ɉ�v���Ȃ���΂Ȃ�Ȃ��B��–ڂ́A�����̏��ɓI OPEN ���O���̃\�P�b�g���w�肵�Ȃ��܂܂Ƃ���P�[�X�ł���B���̏ꍇ�A�����̃\�P�b�g����v����΂�����O���\�P�b�g������ł���B

TCB �� (���̗l�� TCB �����݂���Ȃ��) ��v����ł��낤�B �����A����̎����\�P�b�g�Ŋ�‚��̃y���f�B���O�ɂȂ��Ă�����ɓI OPEN (TCB �ɋL�^����Ă���) �����݂���Ȃ�΁A�O���̐ϋɓI OPEN �́A���w��̊O���\�P�b�g�� TCB ��I������O�ɁA�O���̐ϋɓI OPEN �Ŏw�肳�ꂽ�O���\�P�b�g�� TCB �ƈ�v���邾�낤 (���̗l�� TCB �����݂���Ȃ��)�B

�R�l�N�V�������m�����邽�߂̎葱���͓��� (SYN: synchronize) ����t���O�𗘗p���A3 �‚̃��b�Z�[�W�������s���B���̌����� 3 �����n���h�V�F�[�N [3] �Ɩ��t�����Ă���B

�R�l�N�V�����́ASYN ���܂ރZ�O�����g�̓����ƁA���[�U OPEN �R�}���h�ɂ���Ċe�X�������ꂽ TCB �G���g���̑҂��Ƃ̑҂����킹�ɂ���ċN�������B�����ƊO���̃\�P�b�g�̏ƍ��́A���ƒR�l�N�V�������N�����ꂽ�������肷��B���̃R�l�N�V�����́A�V�[�P���X�ԍ����������œ������Ƃ�ꂽ���� "�m���� (established)" �ɂȂ�B

�R�l�N�V�����̃N���A���Z�O�����g�̌������s���B���̏ꍇ FIN ����t���O���^�ԁB

2.8. �f�[�^�ʐM

�R�l�N�V������ɗ����f�[�^�́A�I�N�e�b�g�̃X�g���[���ƍl������B���M�����[�U�͊e�X�� SEND �R�[���ŁA���̃R�[�� (�Ƃ������s�R�[��) ���̃f�[�^�𑦍��Ɏ�M�����[�U�ɉ����o���ׂ����ۂ����APUSH �t���O��ݒ肷�邱�Ƃɂ���Ďw������B

���M�� TCP �́Apush �@�\���ʒB�����܂ŁA���M�����[�U����̃f�[�^���W�߁A�Z�O�����g���̃f�[�^��s���̗ǂ����ɑ��M���邱�Ƃ��ł���Bpush �@�\���ʒB�����ƑS�Ă̖����M�f�[�^�𑗐M���Ȃ���΂Ȃ�Ȃ��B��M���� TCP �� PUSH �t���O�����o������A��M���̃v���Z�X�ɂ��̃f�[�^��n���O�ɑ��M�� TCP ����f�[�^���X�ɑ҂��Ă͂Ȃ�Ȃ��B

push �@�\�ƃZ�O�����g���E�̊Ԃ́A�K�������֌W�͂Ȃ��B�������̃Z�O�����g���̃f�[�^�́A���̑S�Ă��邢�͈ꕔ���� 1 �‚� SEND �R�[���̌��ʂ�������Ȃ����A������ SEND �R�[���̌��ʂ�������Ȃ��B

push �@�\�� PUSH �t���O�̖ړI�́A���M�����[�U�����M�����[�U�Ƀf�[�^�������o�����Ƃł���B�L�^�T�[�r�X�͒񋟂��Ȃ��B

push �@�\�� TCP/���[�U�C���^�t�F�[�X��n��f�[�^�̃o�b�t�@�̎g�p�͘A�������B��M�����[�U�̃o�b�t�@�ɓ������f�[�^�� PUSH �t���O���t���Ă��邽�тɁA���̃o�b�t�@�͂��Ƃ���t�ɂȂ��Ă��Ȃ��Ă��A�������邽�߂Ƀ��[�U�ɕԂ����B�����APUSH �����o����O�Ƀ��[�U�o�b�t�@����t�ɂ���f�[�^�����B������A���̃f�[�^�̓o�b�t�@�T�C�Y�̒P�ʂŃ��[�U�ɓn�����B

TCP �́A��M�������ݓǂݍ���ł���f�[�^�X�g���[���̍X�ɐ�̃|�C���g�ɋً}�̃f�[�^�����݂��邱�Ƃ��A�f�[�^�̎�M���ɒʒm�����i���񋟂���BTCP �ً͋}�f�[�^�̃y���f�B���O��ʒm����ۂɁA���[�U�������I�ɉ����s�������`���邱�Ƃ͎��݂Ă��Ȃ��B�������A��M���v���Z�X���ً}�̃f�[�^�������ɏ������铮������s���邾�낤�Ƃ����Ƃ͒ʏ�l������B

2.9. �D��x�ƃZ�L�����e�B

TCP �́A1 �R�l�N�V�������� TCP ���[�U�ɗD��x�ƃZ�L�����e�B��񋟂��邽�߂ɁAInternet Protocol �T�[�r�X�^�C�v�t�B�[���h�ƃZ�L�����e�B�I�v�V�������g�p����B�S�Ă� TCP ���W���[�����������x���̃Z�L�����e�B�‹��̋@�\��K�v�Ƃ���킯�ł͂Ȃ��B������͕̂��ނ��Ȃ��g�p�݂̂Ɍ��肷�邩������Ȃ����A�܂�������̂� 1 �‚̃Z�L�����e�B���x����R���p�[�g�����g�ł̂ݏ������邩������Ȃ��B����āATCP �̎����ƃ��[�U�ւ̃T�[�r�X�́A�������x���̃Z�L�����e�B�P�[�X�̃T�u�Z�b�g�Ɍ��肳��邩������Ȃ��B

�������x���̃Z�L�����e�B�‹��ŏ������� TCP ���W���[���́A�Z�L�����e�B�A�R���p�[�g�����g�A�D��x�����o�̓Z�O�����g��K�؂Ƀ}�[�N���Ȃ���΂Ȃ�Ȃ��B�������� TCP ���W���[���̓��[�U��ATelent �� THP ���̏�ʃ��x���̃v���g�R���ɁA�]�܂����R�l�N�V�����̃Z�L�����e�B���x���A�R���p�[�g�����g�A�D��x�̎w����”\�ɂ��邽�߂̃C���^�t�F�[�X��񋟂��Ȃ���΂Ȃ�Ȃ��B

2.10. �拭���̌���

TCP �̎����́A�拭���̈�ʌ���: ����s�����Ƃɂ͐T�d�ɁA������󂯓������̂ɂ͊���ɁA�ɏ]���B

3. �@�\�K��

3.1. �w�b�_�`��

TCP �Z�O�����g�̓C���^�[�l�b�g�f�[�^�O�����Ƃ��đ��M�����BInternet Protocol �w�b�_�́A���M���ƈ���z�X�g�A�h���X [2] ���܂ފ�‚��̏��t�B�[���h���^�ԁBTCP �w�b�_�̓C���^�[�l�b�g�w�b�_�̎��ɑ����A TCP �v���g�R���ɓ��L�̏���񋟂���B���̋敪���ɂ��ATCP �ȊO�̃z�X�g���x���̃v���g�R�������݂ł���B

 0                   1                   2                   3   
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Source Port          |       Destination Port        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Sequence Number                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Acknowledgment Number                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Data |           |U|A|P|R|S|F|                               |
| Offset| Reserved  |R|C|S|S|Y|I|            Window             |
|       |           |G|K|H|T|N|N|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Checksum            |         Urgent Pointer        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options                    |    Padding    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             data                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 3. TCP Header Format

���L: ��؂�}�[�N�� 1 �r�b�g�������B

Source Port: 16 bits

���M���|�[�g�ԍ�

Destination Port: 16 bits

����|�[�g�ԍ�

Sequence Number: 32 bits

���̃Z�O�����g���̈�Ԗڂ̃f�[�^�I�N�e�b�g�̃V�[�P���X�ԍ� (SYN ���񋟂���Ă��鎞������)�B���� SYN ���񋟂���Ă���΁A�V�[�P���X�ԍ��͏����V�[�P���X�ԍ� (ISN) �ŁA��Ԗڂ̃f�[�^�I�N�e�b�g�� ISN+1 �ł���B

Acknowledgment Number: 32 bits

�����AACK ����r�b�g���ݒ肳��Ă���΁A���̃t�B�[���h�̓Z�O�����g�̑��M�҂���M�����҂��Ă��鎟�̃V�[�P���X�ԍ��̒l���܂ށB��U�R�l�N�V�������m�������ƁA����͏�ɐݒ肳���B

Data Offset: 4 bits

TCP �w�b�_�� 32 �r�b�g�P�ʂ̌��B����̓f�[�^�̎n�܂�ꏊ�������BTCP �w�b�_�́A(�I�v�V�������܂�ł�����̂ł���) 32 �r�b�g���̐����̐��ł���B

Reserved: 6 bits

�����̎g�p�̂��߂ɗ\��B0 �łȂ���΂Ȃ�Ȃ��B

Control Bits: 6 bits (������E��):

URG: �ً}�|�C���^�t�B�[���h����
ACK: �m�F�t�B�[���h����
PSH: Push �@�\
RST: �R�l�N�V�����̃��Z�b�g
SYN: �����V�[�P���X�ԍ�
FIN: ���M������̃f�[�^�͖���

Window: 16 bits

�m�艞���t�B�[���h�Ŏ������ԍ�����J�n���āA���̃Z�O�����g�̑��M������M�”\�ȃf�[�^�I�N�e�b�g�̐��B

Checksum: 16 bits

�`�F�b�N�T���t�B�[���h�́A�w�b�_�ƃe�L�X�g�̑S�Ă� 16 �r�b�g�P�ʂ� 1 �̕␔�̍��v�� 16 �r�b�g�� 1 �̕␔�ł���B�����A�Z�O�����g���`�F�b�N�����w�b�_�ƃe�L�X�g�̃I�N�e�b�g������‚��܂ނȂ�΁A�Ō�̃I�N�e�b�g�́A�`�F�b�N�T�����s���ړI�� 16 �r�b�g�P�ʂ��`�����邽�߂ɁA�E���� 0 �Ńp�f�B���O�����B�p�f�B���O�́A�Z�O�����g�̈ꕔ�Ƃ��đ��M����Ȃ��B�`�F�b�N�T�����Z�o����ہA�`�F�b�N�T���t�B�[���h���g�́A0 �Œu����������B

�`�F�b�N�T���́ATCP �w�b�_�̑O�ɊT�O�I�ɕt�����ꂽ 96 �r�b�g�̋^���w�b�_���J�o�[����B���̋^���w�b�_�́A���M���A�h���X�A����A�h���X�A�v���g�R���ATCP �����܂ށB����ɂ��A�U�����Ɏ��s�����Z�O�����g�ɑ΂��� TCP �ł̖h�䂪�”\�ɂȂ�B���̏��� Internet Protocol �ʼn^�΂�ATCP/Network �C���^�t�F�[�X��ʂ��āATCP �� IP �ւ̃R�[���̃A�[�M�������g�����ʂő��M�����B

+--------+--------+--------+--------+
|           Source Address          |
+--------+--------+--------+--------+
|         Destination Address       |
+--------+--------+--------+--------+
|  zero  |  PTCL  |    TCP Length   |
+--------+--------+--------+--------+

TCP ���́ATCP �w�b�_���Ƀf�[�^�̃I�N�e�b�g�������������� (����͖����I�ɓ]�������ʂł͂Ȃ��A�v�Z�ɂ�����) �ŁA�^���w�b�_�� 12 �I�N�e�b�g�͐����Ȃ��B

Urgent Pointer: 16 bits

���̃t�B�[���h�ً͋}�|�C���^�̌��݂̒l���A���̃Z�O�����g�̃V�[�P���X�ԍ�����̐��̃I�t�Z�b�g�Ƃ��Ēʒm����B�ً}�|�C���^�́A�ً}�f�[�^�̌�ɑ����I�N�e�b�g�̃V�[�P���X�ԍ����w���B���̃t�B�[���h�́AURG ����r�b�g���ݒ肳�ꂽ�Z�O�����g�ł̂݉��߂����B

Options: �•�

�I�v�V������ TCP �w�b�_�̍Ō�̕������߁A������ 8 �r�b�g�̔{���ł���B�S�ẴI�v�V�����́A�����Ȃ�I�N�e�b�g���E�Ŏn�܂��Ă��悢�B�I�v�V�����̌`���ɂ͓�‚̃P�[�X������B

Case 1: �I�v�V������ʂ̒P��I�N�e�b�g

Case 2: �I�v�V������ʂ� 1 �I�N�e�b�g�A�I�v�V�����̒��������� 1 �I�N�e�b�g�A���ۂ̃I�v�V�����f�[�^�̃I�N�e�b�g�B

�I�v�V�������́A�I�v�V�����f�[�^�I�N�e�b�g�����łȂ��A�I�v�V������ʂƃI�v�V�������̓�‚̃I�N�e�b�g��������B

�I�v�V�����̃��X�g�́A�f�[�^�I�t�Z�b�g�t�B�[���h�������Ă��钷�����Z���Ă��悢�B�I�v�V�����ŏI�I�v�V�����𒴂����w�b�_�̒��g�́A�w�b�_�p�f�B���O (�‚܂� 0) �łȂ���΂Ȃ�Ȃ��B

TCP �͑S�ẴI�v�V�������������Ȃ���΂Ȃ�Ȃ��B

���ݒ�`����Ă���I�v�V�����́A�ȉ����܂� (��ʂ� 8 �i)�B

��� �����Ӗ�
0
-
End of option list
1
-
No-Operation.
2
4
Maximum Segment Size.

����̃I�v�V������`

�I�v�V�������X�g�̍ŏI

+--------+
|00000000|
+--------+
��� = 0

���̃I�v�V�����R�[�h�́A�I�v�V�������X�g�̍ŏI�������B����́A�f�[�^�I�t�Z�b�g�t�B�[���h�ɏ]���� TCP �w�b�_�̍ŏI�Ƃ͈�v���Ȃ���������Ȃ��B����́A�e�I�v�V�����̍Ō�Ŏg�p�����̂ł͂Ȃ��A�S�I�v�V�����̍Ō�Ŏg�p�����B�I�v�V�����̍Ōオ TCP �w�b�_�̍Ō�ƈ�v���Ȃ��ꍇ�ɂ̂ݎg�p����K�v������B

����Ȃ�

+--------+
|00000001|
+--------+
��� = 1

���̃I�v�V�����R�[�h�́A�Ⴆ�Ό㑱����I�v�V�����̊J�n�����[�h���E�ɒ������邽�߂ɁA�I�v�V�����̊ԂŎg�p���Ă��悢�B���M�҂����̃I�v�V�������g�p����ۏ؂͂Ȃ��B����Ď�M���́A���Ƃ����[�h���E�Ŏn�܂��Ă��Ȃ��Ă��I�v�V�����������ł���悤�A�������Ă��Ȃ���΂Ȃ�Ȃ��B

�ő�Z�O�����g�T�C�Y

+--------+--------+---------+--------+
|00000010|00000100|   max seg size   |
+--------+--------+---------+--------+
��� = 2, ���� = 4

�ő�Z�O�����g�T�C�Y�̃I�v�V�����f�[�^: 16 bits

�����A���̃I�v�V�������񋟂��ꂽ��A���̃Z�O�����g�𑗐M���� TCP �ŁA�ő��M�Z�O�����g�T�C�Y��ʐM����B���̃t�B�[���h�́A�����R�l�N�V�����v���ł̂ݑ��M�ł��� (���Ȃ킿�ASYN ����r�b�g���ݒ肳�ꂽ�Z�O�����g)�B�������̃I�t�V�������g�p����Ȃ���΁A�����Ȃ�Z�O�����g�T�C�Y���������B

�p�f�B���O: �•�

TCP �w�b�_�p�f�B���O�́ATCP �w�b�_�̍ŏI�ƃf�[�^���̊J�n�� 32 �r�b�g���E�ɂ��邱�Ƃ�ۏ؂��邽�߂Ɏg�p�����B�p�f�B���O�́A0 ���琬��B

3.2. �p��

TCP �̈����ɂ‚��āA���Ȃ葽���̂��Ƃ�_���邽�߂ɁA��‚��̗p����ڍׂɏЉ��K�v������BTCP �R�l�N�V������ێ炷�邽�߂ɁA��‚��̕ϐ����o���Ă����K�v������B�����̕ϐ��́A�]������u���b�N (TCB: Transmission Control Block) �ƌĂ΂��R�l�N�V�������R�[�h�̒��Ɋi�[�������̂Ƒz�肷��BTCB �Ɋi�[�����ϐ��̒��ɂ́A�����Ƒ��葤�̃\�P�b�g�ԍ���Z�L�����e�B�A�R�l�N�V�����̗D��x�A���[�U������M�����o�b�t�@�ւ̃|�C���^�A�đ��L���[�⌻�Z�O�����g�ւ̃|�C���^������B�����āA����M�V�[�P���X�ԍ��ɑ��������‚��̕ϐ��� TCB �Ɋi�[�����B

���M�V�[�P���X�ϐ�

SND.UNA - �m�F���̑��M
SND.NXT - ���̑��M
SND.WND - �E�B���h�E�̑��M
SND.UP - �ً}�|�C���^�̑��M
SND.WL1 - �Ō�̃E�B���h�E�̍X�V�Ɏg�p�����Z�O�����g�V�[�P���X�ԍ�
SND.WL2 - �Ō�̃E�B���h�E�̍X�V�Ɏg�p�����Z�O�����g�m�F�ԍ�
ISS - �������M�V�[�P���X�ԍ�

��M�V�[�P���X�ϐ�

RCV.NXT - ���̎�M
RCV.WND - �E�B���h�E�̎�M
RCV.UP - �ً}�|�C���^�̎�M
IRS - ������M�V�[�P���X�ԍ�

�ȉ��̐}�́A�����̕ϐ��̊�‚����V�[�P���X��ԂɊ֘A������̂ɏ����ɂȂ邾�낤�B

���M�V�[�P���X���

     1         2          3          4      
----------|----------|----------|---------- 
       SND.UNA    SND.NXT    SND.UNA        
                            +SND.WND        

1 - �m�F�ς̌Â��V�[�P���X�ԍ�
2 - �m�F���̃V�[�P���X�ԍ�
3 - �V�����f�[�^�̓]���Ŏg�p�ł���V�[�P���X�ԍ�
4 - �܂��g�p�ł��Ȃ������̃V�[�P���X�ԍ�

Figure 4. - Send Sequence Space

���M�E�B���h�E�́A�} 4 �̃V�[�P���X��Ԃ̃��x�� 3 �̏��ł���B

��M�V�[�P���X���

    1          2          3      
----------|----------|---------- 
       RCV.NXT    RCV.NXT        
                 +RCV.WND        

1 - �m�F�ς̌Â��V�[�P���X�ԍ�
2 - �V���Ɏ�M�ł���V�[�P���X�ԍ�
3 - �܂��g�p�ł��Ȃ������̃V�[�P���X�ԍ�

Figure 5. - Receive Sequence Space

��M�E�B���h�E�́A�} 5 �̃V�[�P���X��Ԃ̃��x�� 2 �̏��ł���B

�܂��A���Z�O�����g�̃t�B�[���h����l����邱�Ƃ�_����ۂɁA���΂��Ύg�p����邢���‚��̕ϐ�������B

���Z�O�����g�ϐ�

SEG.SEQ - �Z�O�����g�V�[�P���X�ԍ�
SEG.ACK - �Z�O�����g�m�F�ԍ�
SEG.LEN - �Z�O�����g��
SEG.WND - �Z�O�����g�E�B���h�E
SEG.UP - �Z�O�����g�ً}�|�C���^
SEG.PRC - �Z�O�����g�D��x�l

�R�l�N�V�����́A���̐������Ԓ��̈�A�̏�Ԃ�ʂ��Đi�s����B

��Ԃɂ́ALISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT �Ƌ[���I�ȏ�Ԃ� CLOSED ������BCLOSED �͋[���ł���B�Ƃ����̂́ACLOSED ��ԂƂ� TCB �������A�‚܂�R�l�N�V������������Ԃ�\������ł���B��Ԃ̋�̓I�ȈӖ��͈ȉ��̒ʂ�B

LISTEN - �����郊���[�g TCP ��|�[�g����̃R�l�N�V�����v����҂��Ă��邱�Ƃ�\���B

SYN-SENT - �R�l�N�V�����v���𑗐M������A����Ɉ�v����R�l�N�V�����v����҂��Ă��邱�Ƃ�\���B

SYN-RECEIVED - �R�l�N�V�����v���𑗎�M������A���̃R�l�N�V�����v���m�F (ACK) �̍m�艞����҂��Ă��邱�Ƃ�\���B

ESTABLISHED - �R�l�N�V�����̃I�[�v����\���A��M�����f�[�^�����[�U�ɔz�����邱�Ƃ��ł���B�R�l�N�V�����̃f�[�^�]���t�F�[�Y�ɂƂ��Ă̒ʏ�̏�Ԃł���B

FIN-WAIT-1 - �����[�g TCP ����̃R�l�N�V�����I���v�����A�O�ɑ��M�����R�l�N�V�����I���v���̍m�艞����҂��Ă��邱�Ƃ�\���B

FIN-WAIT-2 - �����[�g TCP ����̃R�l�N�V�����I���v����҂��Ă��邱�Ƃ�\���B

CLOSE-WAIT - ���� TCP ����̃R�l�N�V�����I���v����҂��Ă��邱�Ƃ�\���B

CLOSING - �����[�g TCP ����̃R�l�N�V�����I���v���̍m�艞����҂��Ă��邱�Ƃ�\���B

LAST-ACK - �����[�g TCP �ɑO�ɑ��M�����R�l�N�V�����I���v���̍m�艞����҂��Ă��邱�Ƃ�\�� (����́A�R�l�N�V�����I���v���̍m�艞�����܂�)�B

TIME-WAIT - �����[�g TCP ���R�l�N�V�����I���v���̍m�艞������M�������Ƃ�ۏ؂���̂ɏ\���Ȏ��ԑ҂��Ă��邱�Ƃ�\���B

CLOSED - �R�l�N�V�����̏�Ԃ��S���������Ƃ�\���B

TCP �R�l�N�V�����́A�C�x���g�ɉ����Ă����Ԃ���ʂ̏�Ԃɐi�s����B�C�x���g�Ƃ́AOPEN, SEND, RECEIVE, CLOSE, ABORT, STATUS �̃��[�U�R�[����A���̓Z�O�����g (�{�� SYN, ACK, RST, FIN �t���O���܂�ł���) ��^�C���A�E�g�ł���B

�} 6 �̏�Ԑ}�́A�����ƂȂ�C�x���g�⌋�ʂƂ��čs���A�N�V�����Ƌ��ɁA��ԑJ�ڂ������Ă���B�������A��ԑJ�ڂɌ��т‚��Ȃ��G���[�̏�����A�N�V�����͎����Ă��Ȃ��B�C�x���g�ɑ΂��� TCP �̃��A�N�V�����Ɋւ���ڍׂ́A��̃Z�N�V�����Ŏ�����Ă���B

���L:���̐}�͗v��ɉ߂����A�K��S�̂Ƃ��Ĉ����Ă͂Ȃ�Ȃ��B

                              +---------+ ---------\      active OPEN  
                              |  CLOSED |            \    -----------  
                              +---------+<---------\   \   create TCB  
                                |     ^              \   \  snd SYN    
                   passive OPEN |     |   CLOSE        \   \           
                   ------------ |     | ----------       \   \         
                    create TCB  |     | delete TCB         \   \       
                                V     |                      \   \     
                              +---------+            CLOSE    |    \   
                              |  LISTEN |          ---------- |     |  
                              +---------+          delete TCB |     |  
                   rcv SYN      |     |     SEND              |     |  
                  -----------   |     |    -------            |     V  
 +---------+      snd SYN,ACK  /       \   snd SYN          +---------+
 |         |<-----------------           ------------------>|         |
 |   SYN   |                    rcv SYN                     |   SYN   |
 |   RCVD  |<-----------------------------------------------|   SENT  |
 |         |                    snd ACK                     |         |
 |         |------------------           -------------------|         |
 +---------+   rcv ACK of SYN  \       /  rcv SYN,ACK       +---------+
   |           --------------   |     |   -----------                  
   |                  x         |     |     snd ACK                    
   |                            V     V                                
   |  CLOSE                   +---------+                              
   | -------                  |  ESTAB  |                              
   | snd FIN                  +---------+                              
   |                   CLOSE    |     |    rcv FIN                     
   V                  -------   |     |    -------                     
 +---------+          snd FIN  /       \   snd ACK          +---------+
 |  FIN    |<-----------------           ------------------>|  CLOSE  |
 | WAIT-1  |------------------                              |   WAIT  |
 +---------+          rcv FIN  \                            +---------+
   | rcv ACK of FIN   -------   |                            CLOSE  |  
   | --------------   snd ACK   |                           ------- |  
   V        x                   V                           snd FIN V  
 +---------+                  +---------+                   +---------+
 |FINWAIT-2|                  | CLOSING |                   | LAST-ACK|
 +---------+                  +---------+                   +---------+
   |                rcv ACK of FIN |                 rcv ACK of FIN |  
   |  rcv FIN       -------------- |    Timeout=2MSL -------------- |  
   |  -------              x       V    ------------        x       V  
    \ snd ACK                 +---------+delete TCB         +---------+
     ------------------------>|TIME WAIT|------------------>| CLOSED  |
                              +---------+                   +---------+

TCP Connection State Diagram
Figure 6.

3.3. �V�[�P���X�ԍ�

�݌v�ɂ������{�I�ȍl�����́ATCP �R�l�N�V������ő��M�����f�[�^�̑S�ẴI�N�e�b�g�̓V�[�P���X�ԍ������‚Ƃ������Ƃł���B�S�ẴI�N�e�b�g�͏��Ԓʂ�ɕ��ׂ���̂ŁA�����̊e�X�ɑ΂��Ċm�F���邱�Ƃ��ł���B�񋟂����m�F���J�j�Y���͗ݐς������̂Ȃ̂ŁA�V�[�P���X�ԍ��� X �̊m�F�́AX ���܂܂Ȃ� X �܂ł̑S�ẴI�N�e�b�g����M�������Ƃ������B�Z�O�����g���̃I�N�e�b�g�̔ԍ��t���ɂ����ẮA�x�b�_�̒���ɑ�����Ԗڂ̃f�[�^�I�N�e�b�g�ɍł��������ԍ����t�����A����ɑ����I�N�e�b�g�͘A�ԂɂȂ�B

���ۂ̃V�[�P���X�ԍ���Ԃ͔��ɑ傫�����A�L���ł��邱�Ƃ��o���Ă������Ƃ͏d�v�ł���B���̋�Ԃ́A0 ���� 2 �� 32 �� - 1 �͈̔͂ł���B��Ԃ��L���Ȃ̂ŁA�V�[�P���X�ԍ��������S�Ă̌v�Z�́A2 �� 32 ��̃��W���������s���Ȃ���΂Ȃ�Ȃ��B���̕��������̌v�Z�́A2 �� 32 �� - 1 ���� 0 �ɍĂъ‚��ăV�[�P���X�ԍ��̊֌W��ۂB���W�����v�Z���Z�o����I���ȕ��@����‚�����̂ŁA�唼�͂��̒l�̔�r�v���O���~���O�ɒ��ӂ�������ׂ��ł���B"=<" �̋L���́A"�ȉ�" ���Ӗ����� (���W���� 2 �� 32 ��)�B

TCP �����s���Ȃ���΂Ȃ�Ȃ��T�^�I�Ȏ�ނ̃V�[�P���X�ԍ��̔�r�́A�ȉ����܂ށB

  1. �m�艞�����A���M���ꂽ���܂��m�F����Ă��Ȃ���‚��̃V�[�P���X�ԍ����w���Ă��邩���߂�B

  2. �Z�O�����g�ɂ���Đ�߂�ꂽ�S�ẴV�[�P���X�ԍ����m�F���ꂩ���߂� (�Ⴆ�΁A�đ��L���[����Z�O�����g���폜���邽�߂�)�B

  3. ���̓Z�O�����g�����҂����V�[�P���X�ԍ����܂�ł��邩���肷�� (�‚܂�A�Z�O�����g����M�E�B���h�E�Ɏ��܂��Ă��邩)�B

���M�f�[�^�ɑ΂��鉞���ŁATCP �͍m�艞������M���邾�낤�B�m�艞�����������邽�߂Ɉȉ��̔�r���K�v�ł���B

SND.UNA = �ł��Â����m�F�̃V�[�P���X�ԍ�
SND.NXT = ���M����鎟�̃V�[�P���X�ԍ�
SEG.ACK = ��M�� TCP ����̍m�艞�� (��M�� TCP �Ɋ��҂���鎟�̃V�[�P���X�ԍ�)
SEG.SEQ = �Z�O�����g�̍ŏ��̃V�[�P���X�ԍ�
SEG.LEN = �Z�O�����g���Ńf�[�^�ɐ�߂�ꂽ�I�N�e�b�g�̐� (SYN �� FIN ���܂�)
SEG.SEQ+SEG.LEN-1 = �Z�O�����g�̍ŏI�V�[�P���X�ԍ�

�V�����m�艞�� ("����”\�� ACK" �ƌĂ΂��) �ɂ‚��ẮA�ȉ��̕s�������������邩

SND.UNA < SEG.ACK =< SND.NXT

�����đ��L���[��̃Z�O�����g�̃V�[�P���X�ԍ��ƒ����̍��v�����̓Z�O�����g���̊m�F�̒l�ȉ��ł���΁A�đ��L���[��̃Z�O�����g�͊��S�Ɋm�F����Ă���B

�f�[�^����M�������A�ȉ��̔�r���K�v�ł���B

RCV.NXT = ���̓Z�O�����g��Ŋ��҂���鎟�̃V�[�P���X�ԍ��ŁA��M�E�B���h�E�̍��[�����[�ł���B
RCV.NXT+RCV.WND-1 = ���̓Z�O�����g��Ŋ��҂����ŏI�V�[�P���X�ԍ��ŁA��M�E�B���h�E�̉E�[����[�ł���B
SEG.SEQ = ���̓Z�O�����g�ɐ�߂�ꂽ�ŏ��̃V�[�P���X�ԍ�
SEG.SEQ+SEG.LEN-1 = ���̓Z�O�����g�ɐ�߂�ꂽ�ŏI�V�[�P���X�ԍ�

�ȉ��̏ꍇ�ɁA�Z�O�����g�͐�������M�V�[�P���X��Ԃ̈ʒu���߂Ă���Ɣ��f�����B

RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND
����
RCV.NXT =< SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND

��Ԗڂ̃e�X�g�́A�Z�O�����g�̊J�n���E�B���h�E�͈͓̔��ɂ��邩�ۂ����`�F�b�N����B��Ԗڂ̃e�X�g�́A�Z�O�����g�̍ŏI���E�B���h�E�͈͓̔��ɂ��邩�ۂ����`�F�b�N����B�Z�O�����g�����̂ǂ��炩�̃e�X�g�Ƀp�X����΁A���̃Z�O�����g�̓E�B���h�E�͈͓̔��̃f�[�^���܂�ł���B

���ۂ́A��������኱���G�ł���B0 �E�B���h�E�� 0 ���̃Z�O�����g�̏ꍇ�A��M�”\�ȓ��̓Z�O�����g�́A�ȉ��� 4 �‚̃P�[�X�ł���B

Segment Length Receive Window Test
0 0SEG.SEQ = RCV.NXT
0>0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND
>00��M�s��
>0>0 RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND
or
RCV.NXT =< SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND

���L: ��M�E�B���h�E�� 0 �ł��鎞�AACK �Z�O�����g�������ǂ̃Z�O�����g������ł��Ȃ��B����āA�f�[�^�𑗐M���� ACK ����M����ԁATCP ����M�E�B���h�E 0 ���ێ����邱�Ƃ͂��蓾��B�������A���Ƃ���M�E�B���h�E�� 0 �ł����Ă��ATCP �͑S�Ă̓��̓Z�O�����g�� RST �� URG �t�B�[���h���������Ȃ���΂Ȃ�Ȃ��B

���鐧�����ی삷�邽�߂ɂ��A�ԍ��t�X�L�[���̗��_�𓾂Ă���B����́A���鐧��t���O���V�[�P���X��ԂɈÖٓI�Ɋ܂߂邱�Ƃɂ���ĒB�������B����āA�����͍������邱�ƂȂ��đ����m�F���邱�Ƃ��ł��� (�Ⴆ�΁A����̃R�s�[����‚������s����邾�낤)�B������́A�����I�ɂ̓Z�O�����g�̃f�[�^��Ԃʼn^�΂�Ȃ��B�]���āA��X�͐���ɃV�[�P���X�ԍ����ÖٓI�Ɋ��蓖�Ă邽�߂̋K����K�p���Ȃ���΂Ȃ�Ȃ��BSYN �� FIN ���A���̕ی��K�v�Ƃ���B��̐���ł���A�����̐���̓R�l�N�V�������I�[�v�����̓N���[�Y���鎞�ɂ̂ݎg�p�����B�V�[�P���X�ԍ��̏����ɍۂ��ASYN �͂��ꂪ�\���Z�O�����g�̈�ԍŏ��̎��f�[�^�I�N�e�b�g�̑O�ɕ\���ƌ��Ȃ����B����AFIN �͂��ꂪ�\���Z�O�����g�̈�ԍŌ�̎��f�[�^�I�N�e�b�g�̌�ɕ\���ƌ��Ȃ����B�Z�O�����g�� (SEG.LEN) �́A������߂Ă���f�[�^�ƃV�[�P���X��Ԃ̗������܂ށBSYN ���񋟂���鎞�ASEG.SEQ �� SYN �̃V�[�P���X�ԍ��ł���

Initial Sequence Number Selection

�v���g�R���́A����̃R�l�N�V�������J��Ԃ��g�p���邱�Ƃɉ��̐������݂��Ȃ��B�R�l�N�V�����͈�g�̃\�P�b�g�ɂ���Ē�`�����B�R�l�N�V�����̐V�����C���X�^���X�́A�R�l�N�V�����̉��g (incarnation) �Ƃ��ĎQ�Ƃ����B����ɂ��N������́A"TCP �͂ǂ̂悤�ɂ��āA�R�l�N�V�����̑O�̉��g����̏d���Z�O�����g����ʂ��邩 ?" �ł���B���̖��́A�����R�l�N�V�������I�[�v������A�����đ����ɃN���[�Y���ꂽ��A���邢�́A�����R�l�N�V�������������s���ʼn��A�ēx�m�����ꂽ�畂�����肠����B

����������邽�߂ɁA�O�̃Z�O�����g���܂��l�b�g���[�N���ɑ��݂��Ă��邩������Ȃ��ԁA�R�l�N�V������ 1 ���g����̃Z�O�����g�ɑO�̉��g�̃Z�O�����g�Ɠ����V�[�P���X�ԍ����g�p����邱�Ƃ�h���Ȃ���΂Ȃ�Ȃ��B���Ƃ� TCP ���N���b�V�����āA�g�p���Ă����V�[�P���X�ԍ��̑S�Ă̒m���������Ă��A����͕ۏ؂������B�V�����R�l�N�V��������������鎞�A�����V�[�P���X�ԍ� (ISN: initial sequence number) �����@���p�����A�V���� 32 �r�b�g ISN ��I������B�����@�́A���̉��ʃr�b�g�������悻 4 �}�C�N���b���Ƃɉ��Z����� (�����炭�^���I��) 32 �r�b�g�N���b�N�Ɍ��ѕt������B����āAISN �͂��悻 4.55 ���Ԗ��Ɉ��肷��B�Z�O�����g�͂��������ő�Z�O�����g�������� (MSL: Maximum Segment Lifetime) �܂ł����l�b�g���[�N���Ɏc�������AMSL �� 4.55 ���Ԉȉ��ł���Ƒz�肵�Ă���̂ŁAISN �����j�[�N�ɂȂ邾�낤�ƌ����I�ɑz�肷�邱�Ƃ��ł���B

�e�X�̃R�l�N�V�����ɑ΂��āA���M�V�[�P���X�ԍ��Ǝ�M�V�[�P���X�ԍ������݂���B�������M�V�[�P���X�ԍ� (ISS) �́A�f�[�^�𑗐M���� TCP �ɂ���đI�������B�����āA������M�V�[�P���X�ԍ� (IRS) �́A�R�l�N�V�����m���̎葱���̊Ԃɒm�炳���B

�m���܂��͏����������R�l�N�V�����ɑ΂��āA��‚� TCP �͂��݂��̏����V�[�P���X�ԍ��𓯊������Ȃ���΂Ȃ�Ȃ��B����́A"SYN" (����) �ƌĂ΂�鐧��r�b�g�Ə����V�[�P���X�ԍ����ݒ肳�ꂽ�R�l�N�V�����m���̃Z�O�����g�̌����ōs����B�ȗ�������ƁASYN �r�b�g��ݒ肵���Z�O�����g�� "SYNs" �Ƃ��Ă΂��B����ĉ������@�Ƃ��ẮA�����V�[�P���X�ԍ���I�����AISN ����������኱���G�ȃn���h�V�F�[�N�̂��߂̓K�؂ȃ��J�j�Y�����K�v�ł���B

�����́A�e�X�������̏����V�[�P���X�ԍ��𑗐M���A���肩�炻�̍m�艞������M����K�v������B�e�X������̏����V�[�P���X�ԍ�����M���A������m�F����m�艞���𑗐M���Ȃ���΂Ȃ�Ȃ��B

1) A �� B SYN ���̃V�[�P���X�ԍ��� X
2) A �� B ACK ���Ȃ��̃V�[�P���X�ԍ��� X
3) A �� B SYN ���̃V�[�P���X�ԍ��� Y
4) A �� B ACK ���Ȃ��̃V�[�P���X�ԍ��� Y

�X�e�b�v 2 �� 3 �͈�‚̃��b�Z�[�W�Ō����ł���̂ŁA����� 3 ���� (3 ���b�Z�[�W) �n���h�V�F�[�N�ƌĂ΂��B

�V�[�P���X�ԍ����l�b�g���[�N�ŃO���[�o���ȃN���b�N�Ɍ��т‚����ATCP �� ISN ��I�����邽�߂̈قȂ郁�J�j�Y�������‚�������Ȃ��̂ŁA3 �����n���h�V�F�[�N�͕K�v�ł���B�ŏ��� SYN �̎�M���́A���̃R�l�N�V�����Ŏg�p���ꂽ�Ō�̃V�[�P���X�ԍ����o���Ă����Ȃ���� (��ɉ”\�ł͂Ȃ�)�A�Z�O�����g���Â��x�ꂽ���̂��ۂ���m����@���Ȃ��B����āA���M���ɂ��� SYN �������ł��邩�q�˂Ȃ���΂Ȃ�Ȃ��B3 �����n���h�V�F�[�N�ƃN���b�N�d�|���̃X�L�[�����_�́A[3] �Ř_������B

Knowing When to Keep Quiet

TCP ���A�l�b�g���[�N���Ɏc���Ă���Â��Z�O�����g�Əd�����邩������Ȃ��V�[�P���X�ԍ����^�ԃZ�O�����g�𐶐����Ȃ����Ƃ�ۏ؂��邽�߂ɁATCP �͊J�n�����A�g�p����V�[�P���X�ԍ��̃����������������悤�ȃN���b�V������̉񕜎��ɁA�ő�Z�O�����g�������� (MSL: maximum segment lifetime) �̊ԁA���炩�̃V�[�P���X�ԍ������蓖�Ă�O�ɖق��Ă��Ȃ���΂Ȃ�Ȃ��B���̋K��ł́AMSL�� 2 ���ł���B����͋Z�p�҂ɂ��I���ł���A�����o����]�܂����̂ł���ΕύX���Ă��悢�B���� TCP �����闝�R�ōċN������A�܂��g�p����V�[�P���X�ԍ��̃��������c���Ă�����ATCP �͑S���҂•K�v�͂Ȃ��A�ł��ŋߎg�p�����ԍ������傫���V�[�P���X�ԍ����g�p���邱�Ƃ̂ݕۏ؂���B

The TCP Quiet Time Concept

���̋K��ł́A�e���� (���Ȃ킿�ǂł͂Ȃ�) �R�l�N�V������ő��M�����Ō�̃V�[�P���X�ԍ��̒m����ێ������� "�N���b�V��" �����z�X�g�́A���Ȃ��Ƃ��z�X�g���Q�����Ă���C���^�[�l�b�g�V�X�e���œ��ӂ���Ă���ő�Z�O�����g�������Ԃ̊ԁATCP �Z�O�����g�̔��s��x�点�Ȃ���΂Ȃ�Ȃ��B�ȉ��̒i���ł́A���̋K��̐������s���Ă���BTCP �����҂� "�ق��Ă��鎞��" �̐�����`���Ă��悢���A�C���^�[�l�b�g�V�X�e�����̎�M���ŌÂ��f�[�^���V�����f�[�^�Ƃ��Ď�������A���邢�͌Â��f�[�^�Əd���������߂ɐV�����f�[�^�����ۂ����댯���͂���B

TCP �́A�Z�O�����g����������A���M���z�X�g���Ńl�b�g���[�N�o�̓L���[�ɓ��͂���邽�тɃV�[�P���X�ԍ���Ԃ������BTCP �v���g�R���ɂ�����d�����o�ƃV�[�P���X�t���A���S���Y���́A�����̃V�[�P���X�ԍ��Ɋ��蓖�Ă�ꂽ�Z�O�����g�f�[�^�����M����A���ꂪ��M�҂ɂ���Ċm�F����A�Z�O�����g�̏d�����������S�Ă��C���^�[�l�b�g���� "�r�o" �����O�ɁA�V�[�P���X�ԍ��͑S�Ă� 2**32 �l��ʂ��Ĉ��肵�Ȃ��͈͂ŁA�Z�O�����g��ԂɃZ�O�����g�f�[�^�����j�[�N�Ɋ����Ă邱�Ƃɗ���B���̉��肪�Ȃ���΁A2 �‚̕ʌ‚� TCP �Z�O�����g�͋��炭�������d�������V�[�P���X�ԍ������蓖�Ă��A�ǂ̃f�[�^���V�����Ăǂ̃f�[�^���Â����ɂ‚��Ď�M���̍����������N�������ƂɂȂ邾�낤�B�e�X�̃Z�O�����g�́A�Z�O�����g�̃f�[�^�I�N�e�b�g�����݂������A�A�������V�[�P���X�ԍ������蓖�Ă��邱�Ƃ��o���Ă������ƁB

�ʏ�̏����ɂ����āA��ԖڂɎg�p�����ԍ����m�F�����O�ɃV�[�P���X�ԍ�������Ďg�p����邱�Ƃ�����邽�߂ɁATCP �͔��s���鎟�̃V�[�P���X�ԍ��ƍł��Â��m�艞���҂����L�^���Ă����B���ꂾ���ł́A�Â��d���f�[�^���l�b�g���[�N����r�o����邱�Ƃ�ۏ؂��Ă��Ȃ��B�]���āA���܂悤�d���f�[�^�������������Ƃɂ��g���u���̉”\�������炷���߂ɁA�V�[�P���X��Ԃ��ƂĂ��傫���Ȃ�B2 ���K�r�b�g/�b�̏ꍇ�A�V�[�P���X��Ԃ� 2**32 �I�N�e�b�g���g�p����̂� 4.5 ���Ԃ�����B�l�b�g���[�N���̍ő�Z�O�����g�������Ԃ́A2,30 ���b�𒴂��邱�Ƃ͂Ȃ��̂ŁA���Ƃ��f�[�^���[�g�� 10 ���K�r�b�g/�b�Ɋg�傳��Ă��A�\���”\�ȃl�b�g���[�N�ł͏\���Ȗh��ł���ƍl������B100 ���K�r�b�g/�b�ł́A�T�C�N�����Ԃ� 5.4 ���ŏ������������A�ˑR�Ƃ��ė��R�͈͓̔��ł���B

�������A�������M�� TCP ���^����ꂽ�R�l�N�V������ōŌ�Ɏg�p���ꂽ�V�[�P���X�ԍ����L�����Ă��Ȃ���΁ATCP �̊�{�I�ȏd�����o�ƃV�[�P���X�A���S���Y���͑ʖڂɂȂ�B�Ⴆ�΁A���� TCP ���S�ẴR�l�N�V�������V�[�P���X�ԍ� 0 �ŊJ�n���A�N���b�V��/�ċN��������������ATCP �͑O�̃R�l�N�V�������Đ����� (���炭���I�[�v���R�l�N�V�����̉�����)�A����̃V�[�P���X�ԍ������‚��A����R�l�N�V�����̑O�̉��g��ɔ��s���ꂽ�l�b�g���[�N���̃p�P�b�g�Əd������p�P�b�g�𔭍s����B����̃R�l�N�V������Ŏg�p���ꂽ�V�[�P���X�ԍ��ɂ‚��Ă̒m���������ꍇ�ATCP �K��́A�O�̃R�l�N�V�����̉��g����̃Z�O�����g���V�X�e������r�o����邱�Ƃ��”\�ɂ��邽�߂ɁA���M�����Z�O�����g���R�l�N�V������ɔ��s����O�� MSL �b�Ԓx�点�Ă邱�Ƃ𐄏�����B

���Ԃ��L���ł��Ă��āA����������V�[�P���X�ԍ��̒l��I������̂Ɏg�p���Ă���z�X�g�ł����Ă��A���̖�肩��Ƃ��킯�ł͂Ȃ� (���Ƃ��e�X�̐V�����R�l�N�V�����̉��g�ɑ΂��ď����V�[�P���X�ԍ���I������̂Ɏ��Ԃ��g�p���Ă��Ă�)�B

�Ⴆ�΁A�R�l�N�V�������V�[�P���X�ԍ� S �ŊJ�n���ăI�[�v�������Ɖ��肷��B�����āA���̃R�l�N�V�����͂��܂�g�p���ꂸ�A���Ǐ����V�[�P���X�ԍ��֐��� ISN(t) ���A���� TCP �ɂ���đ��M���ꂽ�Ō�̃Z�O�����g�Ɠ������V�[�P���X�ԍ� (�‚܂� S1) �����Ɖ��肷��B����ɁA���̏u�ԃz�X�g���N���b�V�����A�������A�����ĐV�����R�l�N�V�����̉��g���m������Ƃ���B�I������鏉���V�[�P���X�ԍ��� S1 = ISN(t)�A�Â��R�l�N�V������̉��g�ōŌ�Ɏg�p���ꂽ�V�[�P���X�ԍ��ł���B�����񕜂��\�����΂₭��������΁AS1 �ɋ߂��V�[�P���X�ԍ����^��ł���l�b�g���[�N���ŌÂ��d�������B���A�V�����R�l�N�V�����̉��g�̎�M���ɂ���ĐV�����p�P�b�g�Ƃ��Ĉ�����B

���̖��́A�񕜂����z�X�g���ǂ̂��炢�̊ԃN���b�V�����Ă������A�����đO�̃R�l�N�V�����̉��g����V�X�e�����ɂ܂��Â��d���f�[�^���c���Ă��邩�ۂ���������Ȃ��Ƃ������Ƃł���B

���̖��ɑΏ������‚̕��@�́A�N���b�V������񕜂�����A1 MSL �̊ԃZ�O�����g�̔��s���̈ӂɒx�点�邱�Ƃł���B���ꂪ "�ق��Ă��鎞��" �̋K��ł���B�҂‚��Ƃ���������z�X�g�́A�w�肳�ꂽ��M���ŐV���̃p�P�b�g�����݂��邩������Ȃ��댯�����}�킸�A"�ق��Ă��鎞��" �̊ԑ҂��Ȃ����Ƃ�I�����Ă��悢�B�����҂� TCP ���p�҂ɁA�N���b�V��������ɑ҂‚��ۂ����R�l�N�V�������ɑI������\�͂�񋟂��Ă��悢���A�S�ẴR�l�N�V�����ɑ΂��Ĕ������ "�ق��Ă��鎞��" ���������Ă��悢�B���炩�ɗ��p�҂� "�҂�" ���Ƃ�I�������ꍇ�ł����Ă��A���Ȃ��Ƃ� MSL �b�������ăz�X�g�� "�����オ����" ��͂���͕K�v�Ȃ��B

�v��: ���s���ꂽ�S�ẴZ�O�����g�́A�V�[�P���X��Ԃɂ������ˆȏ�̃V�[�P���X�ԍ����L���A�Z�O�����g�ɂ���Đ�L���ꂽ�ԍ��� MSL �b�o�߂���܂� "�r�W�[" �� "�g�p��" �ƂȂ�B�����ăN���b�V���������A����Ԃ̃u���b�N�͍Ō�ɔ��s���ꂽ�Z�O�����g�̃I�N�e�b�g�ɐ�L�����B�����V�����R�l�N�V���������ɑ����J�n����A�O�̃R�l�N�V�����̉��g�̍ŏI�Z�O�����g�̎���Ԃ̑��Ւ��̃V�[�P���X�ԍ����g�p������A��M�����������邩������Ȃ����ݓI�ȃV�[�P���X�ԍ��̏d������̈悪���݂���B

�‚Â�