=== ch06.docx
[chap]6́@mĂʑwvgR

xɊւguguV[eBOƂA܂@\ĂȂAvP[VmFƂA邢ُ͈ȃgtBbN𔭌邽߂ɃZLeB̋Ђɒ͂ƂȂǁA܂͐펞̃gtBbN̗słB̐͂ł́A펞̃lbg[NgtBbNɂăpPbgxŌĂ܂B҂TCPAUDPAIPƂŒmĂvgRA܂HTTPADHCPADNSȂǂ̂悭gAvP[VwvgRĂ傤Bꂼ̃vgR̃ZNVł͊֘ALv`t@CŒ1͏ЉĂ̂ŁA_E[hĒڂĂ݂邱Ƃł܂B{͂ł͓ɁAOSIQƃf̑1w4wɊY鉺ʑwvgRɏœ_𓖂ĂĂ܂B
̏͂́AԈႢȂ{ɂĂƂdvȏ͂łBǂݔ΂̂́AR[ubhȂɓj̗[H悤Ȃ̂łBevgR̋@\ɂāAłɂƗĂꍇłAŒƖڂʂāAꂼ̃pPbg̍\Ă܂傤B

ARPiAddress Resolution Protocolj
lbg[NʐMł́A_AhXѕAhX̗g܂B_AhXp邱ƂŁAlbg[NzɒڐڑĂȂ@Ԃł̒ʐM\ɂȂ܂BAhX́AP̃lbg[NZOgŃXCb`ʂĒڂȂĂ@Ԃ̒ʐMɎg܂B̏ꍇAʐMsɂ́Ã̗AhXAgē삷Kv܂B
lbg[N̂@ƒʐMƂ܂傤B̋@̓T[om܂񂵁At@CL[NXe[V܂BʐMn߂悤ƂĂAvP[V́AłɃ[g̃zXgIPAhXi7͂ŐDNSɂājFĂAMpPbg̑3w7w\ẑɕKvȏׂĎĂ̂Ƃ܂BłɕKvȏ́AzXgMACAhXiAhXj܂ށA2wif[^Nwj̃f[^łB
MACAhXKvȂ̂́Albg[N̋@ȂłXCb`Ã|[gɐڑĂ邷ׂĂ̋@MACAhXi[CAMiContent Addressable Memoryje[ugĂ邽߂łBXCb`́AMACAhXɑ΂gtBbNMƁÃe[ugĂǂ̃|[gɃgtBbN𑗐M邩𔻒f܂BMACAhXsȏꍇAM̋@́A܂g̃LbVɃAhXȂ𒲂ׂ܂BLbVɑ݂Ȃꍇ́Albg[Nɑ΂ĂȂʐMsƂŉ邱ƂKvɂȂ܂B

TCP/IPlbg[NiIPv4jɂāAIPAhXMACAhX߂̂ɎgvgRARPiAddress Resolution ProtocoljƌĂсARFC 826Œ`Ă܂BARṔAARPNGXgARPX|X2ނ̃pPbgg܂i}6-1jB

@RFCiRequest for CommentsjƂ́AvgR̕WIȎɂĒ`ĂIȃhLĝƂłBRFCWebTCghttp://www.rfc-editor.orgŁARFC邱Ƃł܂B

M̃zXgAu݂Ȃ񂱂ɂ́AIPAhXXX.XX.XX.XXŁAMACAhXXX:XX:XX:XX:XX:XXłBIPAhXXX.XX.XX.XX̐lɑM̂̂łAMACAhX܂BIPAhXĂAMACAhXԐMĂ܂񂩁HvƂARPNGXg𑗂Ƃ܂傤B
̃pPbg̓lbg[NZOĝׂĂ̋@ɑ܂AIPAhXȂ@̓pPbgPɔp܂BIPAhX@킾AuMAȂTĂIPAhXXX.XX.XX.XXĂ͎̂łBMACAhXXX:XX:XX:XX:XX:XXłvƂARPX|X𑗂܂B
̏ƁAM͂̋@MACIPAhX̏ŃLbVXVAf[^MJnłԂɂȂ܂B

}6-1@ARP
ARPNGXg@ARPX|X
MIP@MMAC@IP@MAC

@R}hvvgarp -aƓ͂ƁAWindowsARPe[uQƂ邱Ƃł܂B

̏ۂɍsĂƂ΁Aǂ@\邩𗝉鏕ɂȂƎv܂AOɁA܂ARPpPbgwb_ɂĐ܂B

ARPwb_
}6-2Ŏ悤ɁAARPwb_ɂ͈ȉ̃tB[h܂܂Ă܂B

n[hEFA^Cv@2w̃^CvBC[Tlbgi^Cv1jłꍇ

vgR^Cv@ARPNGXg̏ʑwvgR

n[hEFAAhX@n[hEFAAhX̒iINebg/oCgjBC[Tlbg̏ꍇ6

vgRAhX@w肳ꂽvgR^Cv̘_AhX̒iINebg/oCgj

Iy[V@ARPpPbg̋@\BNGXg̏ꍇ1AX|X̏ꍇ2

Mn[hEFAAhX@M̃n[hEFAAhX

MvgRAhX@M̏ʑw̃vgRAhX

n[hEFAAhX@̃n[hEFAAhXiARPNGXg̏ꍇ0j

vgRAhX@̏ʑw̃vgRAhX

}6-2@ARPpPbg̍\
ARPiAhXvgRj
rbgItZbg
n[hEFA^Cv
vgR^Cv
n[hEFAAhX
vgRAhX
Iy[V
Mn[hEFAAhXi擪16rbgj
Mn[hEFAAhXi216rbgj
Mn[hEFAAhXi316rbgj
MvgRAhXi擪16rbgj
MvgRAhXi216rbgj
n[hEFAAhXi擪16rbgj
n[hEFAAhXi216rbgj
n[hEFAAhXi316rbgj
vgRAhXi擪16rbgj
vgRAhXi216rbgj

arp_resolution.pcapt@CJȀĂ݂܂傤BX̃pPbgЂƂĂ܂B

pPbg1FARPNGXg
ŏ̃pPbǵA}6-3ɎARPNGXgłBPacke DetailsyCŃC[Tlbgwb_𒲂ׂ΁ÃpPbg{Ƀu[hLXgpPbgł邱ƂmFł܂B̃AhXff:ff:ff:ff:ff:ff(1)łB̓C[Tlbg̃u[hLXgAhXȂ̂ŁÄɑMꂽpPbǵÃ݂lbg[NZOgɂ邷ׂĂ̋@Ƀu[hLXg܂BC[Tlbgw̒ɂ鑗MAhXMACAhXƂĔF܂(2)B

̂̐}6-3@ARPNGXgpPbg

\猩āA͊mIPgĂC[Tlbglbg[NARPNGXgł邱Ƃ킩܂BMIPAhXi192.168.0.114jMACAhXi00:16:ce:6e:8b:24j(3)AIPAhXi192.168.0.1j(4)ƂƂɕ\Ă܂BMACAhXi肵悤ƂĂj͕sȂ̂ŁAMACAhX00:00:00:00:00:00ƂȂĂ܂(5)B

pPbg2FARPX|X
ŏ̃NGXgɑ΂郌X|Xi}6-4jł́AC[Tlbgwb_ɁAŏ̃pPbg̑MMACAhXAhXƂĊi[Ă܂B
ARPX|X̃wb_ARPNGXg̃wb_Ƃ悭Ă܂A̈Ⴂ܂B

EpPbg̃Iy[VR[hiopcodej0x0002ƂȂ(1)ANGXgł͂ȂX|Xł邱ƂĂ܂B
EAhX񂪓ւĂAMMACAhXIPAhXAMACAhXIPAhXɂȂĂ܂(2)B
EdvȂƂƂāAIPAhX192.168.0.1̃zXgMACAhXi00:13:46:0b:22:baj(3)i[Ă܂B

}6-4@ARPX|XpPbg

gratuitous ARP
uɁigratuitouslyjvsƂ̂́AےIȈӖƂ悭܂BȂgratuitous ARPiARPj͈Ӗ̂̂łB
IPAhX͕ύXꍇ悭܂BIPAhXςƁALbVɋLꂽIPAhXMACAhXƂ̃}bsO񂪕sƂȂ܂BɂʐM̃guh߁Agratuitous ARPpPbgMA󂯎@̃LbVV}bsOŋIɍXV܂i}6-5jB

}6-5@gratuitous ARP̏
MIP@192.168.0.101
MMAC@f2:f2:f2:f2:f2:f2
IP@192.168.0.101
MAC@00:00:00:00:00:00

gratuitous ARPpPbggpʂ͂܂BƂʓIȂ̂́AIPAhX̕ύXłBLv`t@Carp_gratuitous.pcapJAۂɌĂ݂ĂBgratuitous ARP\pPbg1Ȃ̂ŁAt@CɊ܂܂ĂpPbg1łi}6-6jB

}6-6@gratuitous ARPpPbg

C[Tlbgwb_𒲂ׂƁÃpPbg̓u[hLXgƂđMĂ邽߁AׂĂ̋@킪M邱Ƃ킩܂(1)Bgratuitous ARP̃wb_ARPNGXg̃wb_ƎĂ܂AMIPAhX(2)ƈIPAhX(3)ł_قȂ܂Bgratuitous ARPpPbg󂯎@́AARPe[uVIPAhXMACAhXƂ̃}bsOōXV܂BARPpPbg͈Iɑ̂łA󂯂Ƃ́AʂƂAPRLbVXV邽߁AugratuitousijvƂƂɂȂ̂łB
gratuitous ARPpPbggʂ͑ɂ܂B@IPAhX̕ύXɂĐȊOɁAꕔOS͋Ngratuitous ARP𐶐܂B܂MgtBbÑ[hoX̂߂gratuitous ARPpPbggꍇ܂B

IPiInternet Protocolj
OSIQƃfɂ3wvgR̎Ȗ́Albg[NԂŒʐMsƂłB܂ŌĂ悤ɁAMACAhX͑2w̒Plbg[Nł̒ʐMɗp܂B悤Ȍ`ŁA3w̓lbg[NԂ̒ʐMSĂ܂B̒ʐM\ɂvgR͂܂AƂʓIȂ̂IPiInternet Protocoljł傤BłRFC 791Œ`ꂽIPv4Ă܂B
IPv4̓𗝉ɂ́Albg[NԂ̃gtBbN̗𗝉Kv܂BIPv4͒ʐMSĂAGh|Cg̏ꏊɊւ炸ÅԂ̃f[^ʐMSĂ܂B
nu܂̓XCb`łׂĂ̋@킪ȂĂPȃlbg[NLANiLocal Area NetworkjƌĂт܂B2LANڑꍇ̓[^łȂ܂BGȃlbg[ŃAEɕz鉽̃[^oR鉽LANō\Ă邱Ƃ܂BC^[lbĝASɋyLANƃ[^̏ŴƂ܂B

IPAhX
IPAhX32rbg̃AhXŁAlbg[Nɐڑꂽ@ɊUꂽʔԍłB32̒10Aô͎̋ƂȂ̂ŁAIPAhX́uhbg؂10i\Lidotted-quad notationjvŋLq܂B
hbg؂10i\Lł́AIPAhX\10̐4A10iւƓ]āAA.B.C.Ď`0255܂ł̐gĕ\܂i}6-7jB1100000010101000 00000000 00000001ƂIPAhXƂ܂B̒l͂܂o܂Bhbg؂10i\Lg΁A192.168.0.1ƕ\L邱Ƃł܂B
IPAhX4̂ɂ͗R܂BIPAhX2̕Albg[NAhXƃzXgAhX琬藧Ă܂Blbg[NAhX͋@킪ڑĂLANʂ̂ŁAzXgAhX͋@킻̂̂ʂ邽߂̂̂łBIPAhX̂ǂ̕lbg[NAhXŁAǂ̕zXgAhXƂȂ邩͏ɓƂ킯ł͂܂B߂̂́Albg[N}XNilbg}XNjƌĂ΂ЂƂ̃AhXŁATulbg}XNƌĂ΂邱Ƃ܂B

}6-7@hbg؂10i\LɂIPv4AhX\L

lbg}XŃAIPAhX̂ǂ̕lbg[NAhXŁAǂ̕zXgAhXʂ܂Blbg}XN̐l32rbgłA1ɃZbgꂽerbgAlbg[NAhX̂߂ɊmۂꂽIPAhX܂Bcrbg0ɃZbgAzXgAhX܂B
Ƃ΁A2i00001010 00001010 00000001 00010110ƂȂIPAhX10.10.1.22Ƃ܂Blbg}XNɂAIPAhX2ɕ邱Ƃł܂Blbg}XN11111111 11111111 00000000 00000000Ƃ܂B̏ꍇA}6-8Ɏ悤ɁAAhX̑Oi10.10 / 00001010 00001010j̓lbg[NAhXƂȂA㔼i.1.22 / 00000001 00010110jlbg[NɂX̃zXgɂȂ܂B

}6-8@IPAhX̃rbg̔zu̓lbg}XNŌ܂
lbg[N@zXg@lbg[N@zXg

lbg}XNhbg؂10i\LŋLq邱Ƃł܂BƂ΃lbg}XN11111111 11111111 00000000 00000000́A255.255.0.0ƕ\Lł܂B
ʂIPAhXƃlbg}XŃACIDRiClassless Inter-Domain Routingj\LŋLq܂B̌`ł́AIPAhX̕\LɑA/LIPAhX̃lbg[N\rbg܂BƂIPAhX10.10.1.22Albg}XN255.255.0.0CIDR\LŋLqƁA10.10.1.22/16ƂȂ܂B

IPv4wb_
MƈIPAhXIPv4pPbgwb_̏dvȍ\łApPbgIP͂ꂾł͂܂BIPwb_́AɌARPpPbg̃wb_ƔׂƂȂ蕡GłBIPK؂ɋ@\悤̋@\荞܂Ă̂łB
}6-9Ɏ悤ɁAIPv4wb_ɂ͈ȉ̃tB[h܂B

o[W@gpĂIP̃o[W
wb_@IPwb_̒
T[rX^CviTOSj@gtBbNɗD揇ʂ邽߂ɁA[^gpDtOƃT[rXʃtO
pPbg@pPbgɊ܂܂IPwb_ƃf[^̒
ʎq@pPbg͒fЉÃpPbgQʂ邽߂ɗp鎯ʎq
tO@pPbgfЉꂽpPbg̈ꕔȂ̂ǂʂ̂ɗp
tOgItZbg@pPbgfЉĂꍇÃtB[h̒lgăpPbg𐳂ŕׂĕ
ԁiTTLj@pPbǵuv`lB[^ʉ߂ۂ̃zbv͕bŌvB
vgR@pPbg̃^Cvʂ̂ɗp
wb_`FbNT@IPwb_jĂȂ؂̂ɗpG[o@\
MIPAhX@pPbg𑗐M@IPAhX
IPAhX@pPbg̈IPAhX
IvV@ǉIPIvV̂߂ɗ\񂳂ĂB\[X[eBO^CX^ṽIvV񂪊܂܂B
f[^@IPƂƂɑMۂ̃f[^

}6-9@IPv4pPbg\
IPiC^[lbgvgRj
rbgItZbg
o[W@wb_@TOS@pPbg@ʎq@tO@tOgItZbg@TTL@vgR@wb_`FbNT@MIPAhX@IPAhX@IvV@f[^

ԁiTTLj
pPbgj܂ł̎ԁA邢̓pPbgʉ߂ł郋[^̐`̂AԁiTTLjłBTTL̓pPbg쐬Ƃɒ`AʏpPbg[^ɂē]邲ƂɁA1Ă܂BƂ΁ApPbgTTL2̏ꍇAŏɓB[^TTL1炵Ď̃[^ւƃpPbg]܂BɎ󂯎[^TTL0ւƌ炷߁ApPbg̍ŏIIȈ悪̃lbg[NɂȂꍇApPbg͔j܂i}6-10jBTTLl͒`㎞ԃx[Xł邽߁AtsĂ郋[^̏ꍇATTLl1葽Ă܂Ƃ܂Bʏ́A1̃[^ʉ߂邲ƂTTL1Ɖ肵Ė肠܂B

6-10@pPbgTTL̓[^ʉ߂邲ƂɌ


TTLl͂ȂdvȂ̂ł傤?pPbg̐ԂɂĈӎ̂́Aʏ푗M父܂łɗv鎞ԂłBȂA\̃[^oRāAC^[lbgz̈܂ŒH蒅Ȃ΂ȂȂpPbglĂ݂܂傤B̓rŐݒɌ肪郋[^ɂԂ΁AŏIIȈւƓłȂȂ\܂BƂA[^͂̂Ƃs܂A̍ŝׂ߂ɃpPbglbg[Niɂ܂悯ꍇ̂łB
vO~Ǒo܂ȂĂA[v܂܂ȖNAvOOSŜNbVĂ܂ʂ炷̂͂ł傤BƂlbg[ÑpPbgłN̂łB[^ԂXƍspPbg̐΁ADoSԂɊׂ܂ŁAlbg[N̎gp\ш͏Ղ܂B邽߂ɁAIPwb_TTLtB[hꂽ̂łB
WiresharkňĂ݂܂傤Bip_ttl_source.pcapt@Cɂ́A2ICMPpPbg܂܂Ă܂BICMPi{͂ł̂قǐ܂jIPgăpPbg𑗂Ă邱Ƃ́APacket DetailsyCIPwb_ZNVWJ邱ƂŊmFł܂i}6-11jB

}6-11@pPbgIPwb_

ł́AIP̃o[W4(1)Awb_20oCg(2)Awb_ƃyC[hpPbg60oCg(3)ATTLtB[h̒l128(4)ł邱Ƃ܂B
ICMP ping̎ȖړÍA@Ԃ̒ʐMeXgłBf[^͂@킩ʂ̋@փNGXgƂđAM@͂̃f[^X|XƂđԂȂ΂Ȃ܂B̃t@Cł́AAhX10.10.0.3̋@(5)AAhX192.168.0.128̋@(6)ւICMPNGXg𑗂Ă܂B̃Lv`t@ĆAMł10.10.0.3̋@ō쐬Ă܂B
xip_ttl_dest.pcapt@CJ܂傤B̃t@Cł́Af[^͈ł192.168.0.128ŃLv`Ă܂B擪̃pPbgIPwb_JATTLl𒲂ׂ܂i}6-12jB

}6-12@IPwb_TTL1Ă̂킩

TTLl127(1)ŁAŏTTLl1281Ȃ̂ɕ͂łBlbg[N̍\mȂĂA2̒ʐM@̊Ԃɂ1̃[^Ã[^ʉ߂ƂTTLl1ƌ_Â邱Ƃł܂B

IPtOe[VifЉj
pPbg̃tOe[VifЉj́Af[^Xg[菬ȒfЁifragmentjɕ邱ƂŁA푽lȃlbg[NłmɑM邽߂IP̋@\łB
pPbg̒fЉ́A2w̃f[^NwvgRMTUimaximum transmission unitjTCYƁȂ2wvgRgĂʐM@̐ݒɂĔ܂B̏ꍇA2wŎgĂvgR̓C[TlbgłBC[Tlbg̃ftHgMTU1500A܂C[Tlbglbg[NőMłpPbg̍őTCY1500oCgƂƂɂȂ܂iC[Tlbgwb_14oCg͏jB

@MTUɂ͕Wl܂A@MTU͎蓮ōĐݒł܂BMTUݒ̓C^tF[XƂɐݒłA[^̃C^tF[XłȂAWindowsLinuxVXełύXł܂B

ʐM@IPpPbg̑MۂɁApPbgMlbg[NC^tF[XMTUTCYƃpPbg̃f[^TCYƂrāApPbgfЉׂǂ𔻒f܂Bf[^TCYMTU傫΁ApPbg͒fЉ܂BpPbg̒fЉ͎̂悤ȃXebvōs܂B

1DʐM@킪f[^𑗐M邽߂Ƀf[^̃pPbgւƒfЉ܂B
2DfЉꂽꂼ̃f[^̃TCYɍ킹AIPwb_̃pPbgtB[hݒ肵܂B
3DŌ̃pPbgׂẴpPbgMFiMore FragmentsjtO1ɃZbg܂B
4DfЉꂽepPbgwb_̃tOgItZbgtB[hݒ肵܂B
5DpPbgM܂B

ip_frag_source.pcapt@ĆAAhX192.168.0.128̒ʐM@pingNGXg𑗐MĂAhX10.10.0.3̃zXgŎ擾ꂽ̂łBPacket ListyCInfoJɂ́AICMPipingjNGXgɑAfЉꂽIPpPbg2܂B
܂1߂̃pPbgIPwb_𒲂ׂĂ݂܂傤i}6-13jB

MFtOƃtOgItZbgtB[hÃpPbg͒fЉꂽpPbg̈ꕔł邱Ƃ܂BfЉꂽpPbǵAtOgItZbg̒lɂȂĂ邩AMFtOZbgĂ܂Bŏ̃pPbgłMFtOZbgĂ(1)̂ŁAM̋@ł͈pPbg̓҂邱ƂɂȂ܂BtOgItZbg0ɐݒ肳Ă(2)̂ŁÃpPbgfЉꂽpPbg̍ŏ̃pPbgł邱Ƃ܂B


}6-13@MFƃtOgItZbg̒lfЉꂽpPbgł邱ƂĂ

2Ԗڂ̃pPbgIPwb_i}6-14jłMFtOZbgĂ܂(1)AtOgItZbg̒l1480ł(2)B1500oCgMTUAIPwb_20oCgłB

}6-14@tOgItZbg̒l̓pPbg̃TCYɂđ

3Ԗڂ̃pPbgi}6-15jłMFtO̓ZbgĂȂ(1)̂ŁA̓f[^Xg[̍Ō̃pPbgł邱Ƃ܂BtOgItZbg̒l1480{i1500]20j2960ɐݒ肳Ă܂(2)B̒fЉꂽpPbǵAIPwb_̎ʎqtB[h̒lł(3)ƂApPbg̈ꕔłƕ܂B

}6-15@MFZbgĂȂ̂ōŌ̃pPbgł邱Ƃ

TCP
TCPiTransmission Control Protocolj̖ړÍAGh|CgԂŃf[^mɔz邱ƂłBRFC 793Œ`ĂTCṔAOSIQƃf̑4wœ삵܂BTCP̓f[^̏ƃG[sAf[^ׂꏊɊmɓ͂悤ɂ܂BʓIɎgĂAvP[VwvgȒATCPIPɂăpPbgɔzĂ܂B

TCPwb_
TCPwb_̕G݂΁AǂقǑ̋@\񋟂Ă邩킩܂B}6-16Ɏ悤ɁATCPwb_̃tB[ĥ͎悤ɂȂĂ܂B

M|[gԍ@pPbg̑Mɗp|[gԍ
|[gԍ@pPbgM̃|[gԍ
V[PXԍ@TCPZOgʂ邽߂̔ԍB̃tB[h̓f[^Xg[̌h߂Ɏg܂B
mFԍiACKԍj@ʐM̑@킩󂯎ԍŁÃpPbgɊ܂܂邱Ƃ҂V[PXԍB
tO@MꂽTCPpPbg̃^Cvʂ̂ŁAURGAACKAPSHARSTASYNAFINtOB
EBhETCY@oCgPʂ̎M̃obt@TCY
`FbNT@TCPwb_ƃf[^̓eAɕύXĂȂƂmF邽߂ɗpB
ً}|C^@URGtOZbgꍇÃtB[hɂACPUpPbg̃f[^ǂǂ݂͂߂ׂwB
IvV@TCPpPbgŎwł邳܂܂ȃIvVtB[hB

}6-16@TCPwb_
TCP
rbgItZbg
M|[gԍ
|[gԍ
V[PXԍ
ACKԍ
f[^ItZbg
\
tO
EBhETCY
`FbNT
ً}|C^
IvV


TCP|[g
ׂĂTCPʐM͑Mƈ̃|[ggčs܂BTCPwb_܂B|[gƂ́Â̓db̃WbN̂悤Ȃ̂łBdb̃Iy[^́ACgƃvOĎĂ܂BCgƁAdb̂ƂȂANɓdb̂qˁAƘbi󂯎jƂP[ułȂ܂BׂĂ̒ʘbɂ͑M|[gidb̂jƈ|[gi󂯎jKvłBTCP|[gقړ悤ɋ@\܂B
[gT[o@ɂ̃AvP[VɃf[^𑗐Mɂ́ATCPpPbg҂󂯂Ă郊[gT[rX̃|[gmĂȂ΂Ȃ܂Bݒς̃|[gȊÕ|[gɃANZX悤ƂƁAʐMɎsĂ܂܂B
M|[ǵÂƂ̒łقǏdvł͂ȂA_ɑIԂƂł܂B[gT[óAMĂX̃pPbgAʐMɎg|[g肵܂i}6-17jB

}6-17@TCP̓|[ggăf[^𑗐M
NCAg@WebT[o@80ԃ|[gő҂
M1024ԃ|[g^80ԃ|[g
M80ԃ|[g^1024ԃ|[g

NCAg@E[T[o@25ԃ|[gő҂
M3221ԃ|[g^25ԃ|[g
M25ԃ|[g^3221ԃ|[g

TCPŒʐMɎg|[g65,535Aʂ2̃O[vɕ邱Ƃł܂B

E11023܂łX^_[h|[gO[viĖ󒍁F{ł̓EFmE|[g/well-known portƌĂ΂邱ƂƎv܂jłi0͗\ς݂Ȃ̂ŏO܂jBT[rXgĂW̃|[gԍ̑AW|[gO[ṽ|[gƂȂĂ܂B
E102465535܂łGtF|[gO[vłiOSɂĂ͂̒`قȂ܂jBǂȂƂłA1̃|[gŒʐMł̂1̃T[rXȂ̂ŁAOŚA|[g̏d邽߂ɁAM|[g_ɑI܂BM|[ǵAGtF|[g͈̔͂ɓ܂B

tcp_ports.pcapt@CJāATCPpPbgmF邱ƂŁApPbggĂ|[gԍʂĂ݂܂傤B̃t@Cɂ́A2WebTCguEYĂNCAgHTTPʐM܂܂Ă܂BOq悤ɁAHTTP͒ʐMTCPgp̂ŁA͕WITCPgtBbN̂悢TvƂȂ܂B

̃t@C̍ŏ̃pPbgł́i}6-18jAŏ2̒lpPbg̑M|[gƈ|[g\Ă܂B̃pPbǵA172.16.16.128212.58.226.142֑MĂ܂BM|[g2826(1)ŁAGtF|[głiM|[gOS_ɑIƂƂvoĂBȂ_ɑIꂽԍ傫lg邱Ƃ܂jB|[g͕W̃|[gł80ԃ|[gł(2)B̃|[gHTTPgpWebT[rXp̂łB

}6-18@TCPwb_ɑM|[gƈ|[g܂܂Ă

Wiresharkł͂̃|[gslc-systemlog(2826)http(80)ƂxtĂ_ɒӂĂBWireshark̓|[gԍƁÄʓIȗpr̈ꗗǗĂ܂B̃|[g͎ɃX^_[h|[głÃGtF|[gT[rXɊ蓖ĂĂ܂B|[g̃x͔ɕɂ߁AO𖳌ɂĂ܂傤Bsɂ́A[Edit][Preferences][Name Resolusion]IA[Enable Transport Name Resolution]̉̃`FbNO܂B̋@\͗L̂܂܂ɂāAWireshark|[gʂ@ύXꍇ́AWiresharkvOfBNgɂuServicesvt@CC܂B̃t@CIANAiInternet Assigned Numbers Authorityj̈ʓIȃ|[gꗗɂĂ܂B
2Ԗڂ̃pPbǵA212.58.226.142172.16.16.128ւƑԂꂽ̂łi}6-19jBIPAhXlAMƈ|[gւĂ܂(1)B

}6-19@ԐMł͑Mƈ̃|[gԍւ

ׂĂTCPʐMA_ɑI΂ꂽM|[gm̈|[gƒʐMƂ`ōs܂Bŏ̃pPbgƁA[g̒ʐM@킪mꂽ|[ggđMƒʐM܂B
̃TṽLv`t@Cɂ́AЂƂʐMXg[܂܂Ă܂BʐMɎgpꂽ|[gԍTĂ݂܂傤B

@{ǂݐi߂ɏ]AʓIȃvgRT[rXɊ蓖Ăꂽ|[gɂĂ̒mɐ[܂ł傤B̂ɎgĂ|[g΁AgĂT[rXƒʐM@킪悤ɂȂ܂BʓIȃ|[gԍ̖ԗIȈꗗɂẮAhttp://www.iana.org/assignments/port-numbers/QƂĂB

TCP3EFCnhVFCN
TCPgpʐḾAK2̋@Ԃ̃nhVFCNŎn܂܂BnhVFCN̏ɂ́A̖ړI܂B

EM̋@킪A̋@ƊmɒʐMł悤ɂ܂B
EM̋@킪AMʐM悤ƂĂ|[gő҂󂯂sĂ邱ƂmFł悤ɂ܂B
EM̋@킪M҂ɌďV[PXԍ̑MsA@ԂŃpPbg̏ۂĂ悤ɂ܂B

}6-20Ɏ悤ɁATCPnhVFCNɂ3̃Xebv܂Bŏ̃XebvŁAʐMs@izXgAj͈izXgBjTCPpPbg𑗂܂B̍ŏ̃pPbgɂ́Aʑw̃vgRwb_ȊÕf[^͊܂܂Ă܂B̃pPbgTCPwb_ɂSYNtOZbgĂAʐMɎgŏ̃V[PXԍMSSiMaximum Segment Sizej܂܂Ă܂BzXgB͂̃pPbgɉASYNtOACKtOZbgAŏ̃V[PXԍ܂񂾓l̃pPbg𑗂Ԃ܂BŌɃzXgÁAACKtÔ݂ZbgꂽŏIpPbgzXgBɑ܂B̏ƁAʐMJnɕKvȂׂĂ̏AzXgƂɂȂ܂B

}6-20@ 3EFCnhVFCN
zXgA@zXgB 

@TCPpPbǵAZbgꂽtO̖OŌĂ΂邱Ƃ悭܂BƂSYNtOZbgꂽpPbgȂASYNpPbgƌĂт܂B܂TCPnhVFCNvZXŎgpPbǵASYNpPbgASYN/ACKpPbgAACKpPbgƂȂ܂B

tcp_handshake.pcapJȀۂɌĂ݂܂傤BWiresharkɂ́ATCPpPbg̃V[PXԍ͂₷ԍɒu@\܂Aۂ̃V[PXԍ邽߁Ał͂̋@\𖳌ɂĂ܂Bɂɂ́A[Edit][Preferences]IA[Protocols]L[TCP]I܂B[Relative Sequence Numbers][Window Scaling]iĖ󒍁FĖ҂1.8.0A1.6.8A1.0.15Ȃǂ̃o[WŊmF[Window Scaling]Ƃ`FbN{bNX݂͑܂łj̉̃{bNX̃`FbNOA[OK]NbN܂B
ŏ̃pPbgSYNpPbgłi}6-21jB̃pPbg172.16.16.1282826ԃ|[gA212.58.226.14280ԃ|[gւƑĂ܂BMꂽV[PXԍ3691127924ł邱(1)܂B

}6-21@ŏSYNpPbg

2Ԗڂ̃pPbǵA212.58.226.142̉ƂȂSYN/ACKpPbgłB̃pPbgɂ́AV[PXԍi233779340j(1)ƁAACKԍi3691127925j(2)܂܂Ă܂BACKԍ́AM瑗ĂV[PXԍ1̂ɂȂĂ܂BɎ󂯎邱Ƃ҂V[PXԍ̎wɎĝ̃tB[hłB

}6-22@SYN/ACKpPbg

Ō̃pPbǵA172.16.16.128瑗ACKpPbgłi}6-23jB̃pPbgɂ́ÃpPbgACKԍtB[hɂV[PXԍ3691127925(1)܂܂Ă܂B

}6-23@ŏIACKpPbg

TCPʐM̑Oɂ͕KnhVFCNs܂BĝႲႵLv`t@CŒʐM̎n܂ꍇASYN-SYN/ACK-ACK̃V[PXڈƂȂ܂B


TCP̃eBA_Eiؒfj
ǂȏoɂʂ͂̂łATCPnhVFCNɂeBA_E܂BTCP̃eBA_ÉAʐMI2̒ʐM@Ԃ̃RlNV𐳏ɏÎɗp̂łB̏ɂ4̃pPbgւARlNV̏ÎƂFINtOg܂B
eBA_Eł́AzXgA̓zXgBFINtOACKtOZbgꂽTCPpPbg𑗂ARlNV̏Im点܂BzXgBACKpPbgŉAFIN/ACKpPbg𑗂܂Bɑ΂zXgAACKpPbgŉAʐMI܂B̏}̂}6-24łB

}6-24@TCPeBA_Ȅ
zXgA@zXgB @

tcp_teardown.pcapt@CJāȀWiresharkŌĂ݂܂傤Bŏ̃pPbgi}6-25jɒڂƁA67.228.110.120̋@킪AFIN/ACKtOZbgꂽ(1)pPbg𑗂āAeBA_ȄJnĂ̂܂B

}6-25@FIN/ACKeBA_ȄJn

̃pPbg󂯎ƁA172.16.16.128͎MƂm点ACKpPbgŉAFIN/ACKpPbg𑗂܂B67.228.110.120ŌACK𑗐MƁA܂B2̋@Ԃ̒ʐM͏ÎŁAʐMĊJɂ͐VTCPnhVFCNsȂ΂Ȃ܂B

TCPZbg
ׂẴRlNVTCPeBA_EŐɏÎzłBۂɂ́ARlNV̓ˑȐIpɂɋN܂B́AU҂ɂ|[gXL̎sAPȂ@̐ݒ~XN肦܂BꍇARSTtOZbgTCPpPbgg܂BRSTtO̓RlNV̓ˑȐIARlNV̎s̋ۂ߂̂̂łB
tcp_refuseconnection.pcapt@ĆARSTpPbg܂񂾃lbg[NgtBbN̈łBŏ̃pPbǵA192.168.100.180ԃ|[gŒʐM悤ƂĂA192.168.100.138̋@킩瑗ꂽ̂łB̋@́A192.168.100.1Cisco[^łA80ԃ|[gő҂󂯂ĂȂƂm܂BCisco[^̏ꍇAWebC^tF[Xݒ肵ȂA80ԃ|[gŃRlNV҂󂯂T[rX݂͑܂B̒ʐM̎sɑ΂A192.168.100.1192.168.100.138ɃpPbg𑗂A80ԃ|[gł͒ʐMsȂƒm点܂B}6-26́AʐM̎s˔@IƂA2Ԗڂ̃pPbgTCPwb_łBRSTpPbgɂRSTtOACKtOȊOɂ͉܂܂Ă炸(1)Ǎ̒ʐM͂܂B
RSTpPbǵÃTv̂悤ɒʐM̎s̍ŏőꂽꍇAʐM̓rőꂽꍇ̂AʐMI܂B

}2-26@RSTtOACKtOʐMIm点

UDP
UDPiUser Datagram Protocolj́Albg[Nł悭g1̑4wvgRłBTCPG[o@\ɂM̍f[^]ړIɐ݌vĂ̂ɑ΂AUDP͍ȓ]ړIƂĂ܂B̂UDṔAxXgGtH[gł̃f[^]ŝłAʓIɁuRlNVXvgRvƌĂ΂܂BRlNVXvgŔATCP̃nhVFCNeBA_Ê悤ȁA菇ɊÂRlNV̊mIs܂B
UDP͐M̍f[^M񋟂ȂRlNVXvgRł邽߁AUDP̃gtBbŃAǂlĂMłȂ悤Ɏv܂BmɂȂ̂łAۂ̂ƂAUDPgvgŔAMۏ؂邽߂̓Ǝ̃T[rXĂAM̍ڑ邽߂ICMP@\g肵Ă܂BƂ΃pPbg̍MdDNSDHCPƂAvP[VwvgŔAUDPgX|[gwvgRƂėp܂AG[oƍđM^C}ƎɎĂ܂B

UDPwb_
UDPwb_́ATCPwb_͂邩ɏVvłB}6-27Ɏ悤ɁAUDPwb_̃tB[ĥ͎悤ɂȂĂ܂B

M|[g@pPbgMɎg|[g
|[g@pPbg̈ƂȂ|[g
pPbg@pPbg̒oCgŎ
`FbNT@UDPwb_ƃf[^̓eAɕύXĂȂƂmF邽߂ɗpB

}6-27@UDPwb_
UDP
rbgItZbg
M|[g@|[g
pPbg@`FbNT


udp_dnsrequest.pcapt@C̃pPbg1łB̃pPbgUDPgDNSNGXgłBUDPwb_JƁA4̃tB[ĥ킩܂i}6-28jB

}6-28@UDPpPbg̒g͔ɃVv

UDP̓f[^zM̐Mۏ؂ȂƂoĂĂBUDPgAvP[V́AMKvȏꍇAʂ̎iKv܂B

ICMP
ICMPiInternet Control Message Protocolj́ATCP/IP삷邽߂̕⏕IȖʂvgRŁATCP/IPlbg[N̒ʐM@AT[rXAoHȂǂgp\ǂɊւ񋟂܂Blbg[ÑguV[eBOɊւeNjbNc[̑唼AICMPbZ[W^CvgĂ܂BICMPRFC 792Œ`Ă܂B

ICMPwb_
ICMPIP̈ꕔłAbZ[W̑MIPgĂ܂BICMPwb_͔rIAړIɉĕς܂B}6-29Ɏ悤ɁAICMPwb_̃tB[h͎̒ʂłB

^Cv@RFC̋KɊÂAICMPbZ[W̃^Cv╪
R[h@RFC̋KɊÂAICMPbZ[W̉ʕ
`FbNT@MICMPwb_ƃf[^̓emF邽߂̂
f[^@^CvƃR[h̃tB[hɂĕς镔

}6-29@ICMPwb_
ICMP
rbgItZbg
^Cv
R[h
`FbNT
f[^

ICMP^CvƃbZ[W
q悤ɁAICMPpPbg\̖͂ړIɂĕςAu^CvvƁuR[hvtB[h̒lɂČ܂܂B
^CvpPbg̕ށAR[hʕނƍlƂ悢m܂BƂ΃^Cv̒l3Ȃu擞Bs\iDestination UnreachablejvӖ܂B̏񂾂ł͖ɂ͕s\łAR[h̒l3A܂u|[gBs\iPort Unreachablejvƕ΁AʐMsĂ|[gɖ肪ƌ_Â邱Ƃł܂B

@ICMP̃^CvƃR[h̖ԗIȃXgɂẮAhttp://www.iana.org/assignments/icmp-parametersQƂĂB

GR[vƃGR[
pingR}hɑ΂^AICMPő̗vƂĂ悢ł傤Bping͋@Ԃ̐ڑ̊mFɗp܂BIT̐ƂȂApingɓł͂łB
pinggɂ́AR}hvvgping <IPAhX>Ɠ͂܂B<IPAhX>́̕Albg[N̋@̎ۂIPAhXɒuĂBΏۂ̋@킪NĂAʐMoHɖ肪ȂAt@CAEH[ŒʐMubNĂȂ΁ApingR}hɑ΂鉞͂łB
}6-30ł́A4󂯎邱ƂɐĂÃTCYARTTAgpꂽTTL\Ă܂BpinǵApPbg̑MAMAɂĂ̊Tv񋟂Ă܂BʐMɎsꍇɂ́A̗RbZ[W\܂B

}6-30@ڑmFɗppingR}h

{IɁApingR}h͑̋@ɃpPbg1ĉ҂ƂŁA}6-31̂悤ɂ̋@Ƃ̐ڑ𔻒f܂B

}6-31@pingR}h2Xebv̂
GR[^pingvGR[^ping

@ping͒ɂ킽IT̕KiƂȂĂ܂AzXgx[X̃t@CAEH[̕yɂAʂ̐MߐXȂĂĂ܂B̃t@CAEH[̑AICMPpPbgւ̉}~Ă邩łBU҂pinggāA@ւ̐ڑmFsׂj~邽߁AZLeB̊ϓ_炢Αf炵̂łAɃguV[eBOĂ܂Ă܂BƒʐMłƂ킩Ă̂ɁAڑmFping𑗂ĂȂƂ̂́ACĈłB

ȒPICMPʐM̈ƂāAۂpingR}hǂ@\邩Ă݂܂傤Bicmp_echo.pcapt@C̃pPbǵApingsƉN邩Ă܂B
ŏ̃pPbgi}6-32j́AzXg192.168.100.138A192.168.100.1ɃpPbg𑗐MĂ邱ƂĂ܂(1)B̃pPbgICMPWJA^CvƃR[h̃tB[h΁ÃpPbg̎ނ܂B̃Tvł̓pPbg̃^Cv8(2)AR[h0(3)Ȃ̂ŁAGR[vł邱ƂĂ܂iWiresharkł̓^CvƃR[hɂĂ̐\܂jBGR[vipingj͑OłBIPgPICMPpPbgŁAf[^͂قƂǊ܂ł܂BICMPpPbgɂ́A^CvAR[hA`FbNTɉAvƉ΂ɂ邽߂̃V[PXԍƁAICMPpPbg̉ϕɃ_ȃeLXg񂪊܂܂Ă܂B

@GR[pingƂp͂΂΂قړӖŎg܂Aping̓c[̖̂ł邱ƂoĂ܂傤BpingICMPGR[vpPbg𑗂邽߂Ɏg܂B

}6-32@ICMPGR[vpPbg

2Ԗڂ̃pPbǵAvɑ΂鉞łi}6-33jB̃pPbgICMP̃^Cv0(1)AR[h0(2)ŁAꂪGR[ł邱ƂĂ܂BV[PXԍŏ̃pPbgƈvĂ̂(3)ÃGR[̃pPbg̃GR[vɑΉ̂ł邱Ƃ킩܂B̉pPbgɂ́AGR[vőꂽ̂Ɠ32oCg̕܂܂Ă܂(4)B192.168.100.138̃pPbg󂯎ƁAping񍐂܂iقǂ̐}6-30jB

}6-33@ICMPGR[pPbg

ping̃f[^̃TCY𑝂₷ƂŁApPbgfЉāAlbg[N̂܂܂ȃguV[eBOɗpł邱ƂoĂ܂傤BfЉ̃TCYlbg[ÑguV[eBO̍ۂɂ́AꂪKvƂȂ邩܂B

@ICMPGR[vɊ܂܂郉_ȃeLXǵAU҂̋̑ΏۂƂȂ肦܂BU҂́ȀɂWIƂ@OS˂~߂邱Ƃł邩łB܂U҂閧̒ʐMiƂāÃtB[hɏȃf[^𖄂ߍނƂ\łB

traceroute
traceroutéA@킩ʂ̋@܂ł̌oH𒲂ׂ̂ɗp܂BPȃlbg[Nł΁AoHɂ̓[^ЂƂA邢͂ЂƂȂꍇł傤BGȃlbg[NɂȂƁApPbg͍ŏIړIn֓B܂łɁA\̃[^ʉ߂Ȃ΂ȂȂ̂ŁAguꍇɂł悤ApPbǧoH𐳊mɒǐՂ邱ƂdvƂȂ܂B
ICMPgƂŁiIP̏؂ājAtraceroute̓pPbgǂoH˂~߂܂Bicmp_traceroute.pcapt@C̍ŏ̃pPbǵAقǌGR[vƂȂ悭Ă܂i}6-34jB

}6-34@TTLl1ICMPGR[vpPbg

ςƌƁÃpPbǵA192.168.100.1384.2.2.1(2)ւ́APȃGR[v(1)̂悤Ɍ܂BpPbgICMṔAGR[vpPbǧ`Ƃ܂łBȂÃpPbgIPwb_WJƁAЂƂقȒl邱ƂɋCt͂łBpPbgTTL1(3)A܂ŏ̃[^ɓ͂_ŃpPbg邱ƂӖĂ܂B4.2.2.1̓C^[lbgAhXȂ̂ŁAMƈ̊Ԃɂ͍Œ1̃[^݂͂łA܂肱̃pPbg͈֓͂ȂƂɂȂ܂B́Atraceroute͂̃pPbgŏ̃[^܂ł͂Ȃ邱Ƃŋ@\Ă̂ŁA͂܂肠܂B
2Ԗڂ̃pPbǵA\zʂŏ̃[^̉łi}6-35jBpPbg192.168.100.1̋@ɓB_ŁATTL0Ɍ炳邽߁ApPbg͂ȏ]ȂƂɂȂA[^ICMPX|XԂ܂B̃pPbg̃^Cv11(1)AR[h0(2)ŁA]̓rTTLԐ؂ɂȂĂ܂߂ɁAɓBȂƂӖĂ܂B

}6-35@oH̍ŏ̃[^ICMPX|X

ICMPpPbgICMP̖ɁAIPwb_̃Rs[(3)ƍŏ̃GR[vőꂽICMPf[^(4)܂ł邽߁Au_uwbhpPbgvƌĂ΂ꍇ܂iĖҒFĖ҂̎͂ł́Ǎď͕̂Ƃ܂łjB̏̓guV[eBO̍ۂɔɖ𗧂܂B
TTLl1ŃpPbgđMƂA7Ԗڂ̃pPbg܂2JԂ܂B7Ԗڂ̃pPbgłŏ̃pPbgƓl̂Ƃs܂AIPwb_TTLl2ɐݒ肳Ă̂ŁApPbg2Ԗڂ̃[^܂œB邱ƂɂȂ܂B\zʂA12.180.241.1̃[^A悤Ɉ擞Bs\̃bZ[WTTL؂̃bZ[WĂ܂BŏIIȈł4.2.2.1ɓB܂ŁATTLl1₵ď܂B
܂Ƃ߂ƁAtraceroutȅƂ́AoHɂe[^Ƃ肵A܂ł̌oH}쐬Ƃ̂łB}6-36̌oH}łB

@łICMP݂̂gWindowstracerouteɂĐĂ܂iĖ󒍁FWindowsł́AjIo܂ŃR}htracertƂȂĂ܂jBLinuxtraceroute͂˂ŁAoH̎擾ɑ̃vgR𗘗p邱Ƃł܂B

}6-36@traceroutȅo͗

{ʂČĂ܂AICMPɂ͑푽lȋ@\܂BViIŃpPbg͂sĂICMPɕpɂɗp邱ƂɂȂ܂B
{͂ł́ApPbg͂̃vZXŒ邱ƂɂȂvgR̒ōŏdv̂̂̈[Љ܂BIPATCPAUDPAICMP̓lbg[NʐM̊błAX̍ƂɂĕK{̂̂łB͂ł́AAvP[VwŒmĂvgRɂČĂ܂B
