=== ch06.docx
[chap]6́@ʓIȉwvgR

CeV̖guV[eBOꍇ₤܂@\ȂAvP[VʂƂA邢ُ͈ȃgtBbN邽߂ɃZLeBЂɏWꍇłA܂ȃgtBbN̗słB̐͂ł́Aȃlbg[NgtBbNɂăpPbgxŌĂ܂BTCPAUDPAIPƂƂ悭gvgRA܂HTTPADHCPADNSȂǂ̃AvP[VwvgRĂ݂܂傤Bꂼ̃vgR̍ɂ͊֘ALv`t@ĈŁA_E[hĒڑ삷邱Ƃł܂B{͂ł͓ɁAOSIQƃf̃C14Ɋ֘A鉺wvgRɏœ_𓖂ĂĂ܂B
̐͂͊ԈႢȂA{ɂĂƂdvȏ͂łBǂݔ΂̂́AR[ubĥȂj̗[H悤Ȃ̂łBevgR̋@\ɂĂłɂ悭ĂƂĂAŒłƖڂʂāAꂼ̍\Ă܂傤B

ARP
lbg[NʐMł́A_ѕAhX̗g܂B_AhX̎gpɂāAlbg[NƒڐڑĂȂRs[^ԂƂ̒ʐM\ɂȂ܂BAhX́AXCb`ʂĒڂȂĂ@̒P̃lbg[NZOgł̒ʐM𑣂܂BʐMsɂ́Ã̗AhXKvƂȂꍇłB
lbg[N̂@ƒʐMƂ܂B̋@̓T[om܂񂵁At@CL[NXe[V܂BʐMn߂邽߂ɎgĂAvP[V͂łɃ[gzXgIPAhXDNSɂĔFĂ܂iɂĂ7͂ŐjB܂著MpPbg̃C3烌C7̏̍\zɕKvȂ̂AׂĎĂȂ΂ȂȂƂƂłB̎_ŕKvȏ́A^[QbgzXgMACAhXiAhXj܂񂾃C2f[^Ñf[^݂̂łB
XCb`́Ã|[gɃvOCĂ@MACAhXڂĂCAMiContent Addressable Memoryje[ugĂ܂BXCb`͓MACAhXɌꂽgtBbNMƁÃe[ugĂǂ̃|[gɃgtBbN𑗂邩𔻒f̂łBMACAhXsƁA܂LbVŒׂ܂BłȂꍇ́AɒʐMsĒׂ邱ƂɂȂ܂B
TCP/IPlbg[NiIPv4jɂāAIPAhXMACAhX߂̂ɎgvgRARPiAddress Resolution ProtocoljƌĂсARFC 826Œ`Ă܂BARṔAARPNGXgARPX|X2ނ̃pPbgg܂i}6-1jB

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

M̃Rs[^Au݂Ȃ񂱂ɂ́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܂BIPAhX@킾AuMAȂTĂIPAhXXX.XX.XX.XXĂ͎̂łBMACAhXXX:XX:XX:XX:XX:XXłvƂ܂ARPX|X𑗂܂B
̃vZXƁAM͂̋@MACIPAhX̏܂߂ăLbVXVAf[^MJn܂B

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

@R}hvvgarp ?aƓ͂ƁAWindowszXgARPe[u邱Ƃł܂B

̃vZXۂɍsĂƂ΁Aǂ@\邩łł傤BOɁAARPpPbgwb_ɂĐ܂B

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

n[hEFA^Cv@C2^CvgpBC[Tlbgłꍇi^Cv1j

vgR^Cv@ARPNGXgg荂C̃vgRB

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

vgRAhX@̃vgR^Cv̘_AhX̒iINebg/oCgjB

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

Mn[hEFAAhX@M̃n[hEFAAhXB

MvgRAhX@M̂荂C̃vgRAhXB

n[hEFAAhX@̃n[hEFAAhXiARPNGXgɏWjB

vgRAhX@̂荂C̃vgRAhXB

}6-2@ARPpPbg\
AhXvgR
rbgItZbg
n[hEFA^Cv
vgR^Cv
n[hEFAAhX
vgRAhX
Iy[V
Mn[hEFAAhXi1Ԗ16rbgj
Mn[hEFAAhXi2Ԗ16rbgj
Mn[hEFAAhXi3Ԗ16rbgj
MvgRAhXi1Ԗ16rbgj
MvgRAhXi2Ԗ16rbgj
n[hEFAAhXi1Ԗ16rbgj
n[hEFAAhXi2Ԗ16rbgj
n[hEFAAhXi3Ԗ16rbgj
vgRAhXi1Ԗ16rbgj
vgRAhXi2Ԗ16rbgj

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

pPbg1FARPNGXg
}6-3Ɏ悤ɁAŏ̃pPbgARPNGXgłBpPbgڍ׃yC̃C[Tlbgwb_𒲂ׂ΁ÃpPbg{̃u[hLXgpPbgł邱ƂmFł܂B̃AhXff:ff:ff:ff:ff:ffł@B̓C[Tlbgu[hLXgAhXȂ̂ŁÄɑMꂽ̂́Ã݂lbg[NZOgɂ邷ׂĂ̋@Ƀu[hLXg܂BC[Tlbgwb_̒ɂ鑗MAhXMACAhXƂăXgAbv܂AB

}6-3@ARPNGXgpPbg

\猩āA͊mIPgĂC[Tlbglbg[NARPNGXgł邱Ƃ킩܂BMIPAhXi192.168.0.114jMACAhXi00:16:ce:6e:8b:24jBƁAIPAhXi192.168.0.1j\Ă܂CBMACAhXi肵悤ƂĂjsȂ̂ŁAWIMACAhX00:00:00:00:00:00ƕ\Ă܂DB

pPbg2FARPX|X
ŏ̃pPbgMACAhX󂯎̂ŁAŏ̃NGXgɑ΂郌X|Xi}6-4j̃C[Tlbgwb_ɁÃAhX܂܂܂BARPX|X̃wb_ARPNGXg̃wb_Ƃ悭Ă܂AJύXĂ܂B

EpPbg̃Iy[VR[hiopcodej0x0002ƂȂ@ANGXgł͂ȂX|Xł邱ƂĂ܂B
EAhX񂪕ςĂ܂BMMACAhXIPAhXAMACAhXIPAhXɂȂĂ܂AB
EdvȂ̂́AIPAhX192.168.0.1̃zXgMACAhXi00:13:46:0b:22:bajB擾ƂłB

}6-4@ARPX|XpPbg


ARP
uŁvsƂ̂́AےIȈӖƂ悭܂BȂ疳ARP͂悢ƂłB
IPAhX͕ύXꍇ悭܂BIPAhXςƁALbVɋLꂽIPAhXMACAhXԂ̃}bsOƂȂ܂B̂ƂɂʐMG[h߁AARPpPbgMA󂯎@̃LbVV}bsOŋXV܂i}6-5jB

}6-5@ARPvZX
MIP@192.168.0.101
MMAC@f2:f2:f2:f2:f2:f2
IP@192.168.0.101
MAC@00:00:00:00:00:00

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

}6-6@ARPpPbg

C[Tlbgwb_𒲂ׂƁÃpPbg̓u[hLXgƂđMĂ邽߁AׂẴzXgMĂ邱Ƃ킩܂@BARP̃wb_ARPNGXg̃wb_ƎĂ܂AARPł͑MIPAhXAƈIPAhXBłB̃zXgARPpPbg󂯎ƁAARPe[uV̂ւƍXV܂BARPpPbg͖pPbgłA󂯂ƂAPRLbVXV邽߁AƂ݂ȂĂ̂łB
ARPpPbggʂ͑ɂ܂B@IPAhX̕ύXɂĐ̂ɉAꕔOS͋NɖARP𐶐܂B܂gtBbÑ[hoX̂߂ɖARPpPbggꍇ܂B

IP
OSIQƃfɂ郌C3̃vgR̎ȖړÍAlbg[NԂŒʐMsƂłBMACAhX̓C2̒Plbg[N̒ʐMɗp܂BlɁAC3̓lbg[NԂ̒ʐMSĂ܂B̒ʐM\ɂvgR͂܂AƂʓIȂ̂IPiInternet Protocoljł傤BłRFC 791Œ`ꂽIPv4Ă܂B
IPv4̓𗝉ɂ́Albg[NԂ̃gtBbN̗mKv܂BIPv4͒ʐMvZXɍvAGh|Cg̏ꏊ킸ÅԂ̃f[^ʐMǗĂ܂B
nu܂̓XCb`łׂĂ̋@킪ȂĂVvȃlbg[N[JGAlbg[NiLANjƌĂт܂B2LANڑꍇ̓[^łȂ܂BGȃlbg[ŃAEɕz鐔̃[^oR鐔LANō\Ă邱Ƃ܂BC^[lbĝASLANƃ[^̏WƂ܂B

IPAhX
IPAhX32rbg̃AhXŁAlbg[Nɐڑꂽ@ɊUꂽʔԍłB32̒10Âô͎̋ƂȂ̂ŁAIPAhX̓hbg؂10i\Lŋ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̕A܂lbg[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̂߂ɎuꂽIPAhX̕ʂ܂Bcrbg0ɃZbgAzXgAhXʂ܂B
Ƃ΁AoCił00001010 00001010 00000001 00010110ƂȂIPAhX10.10.1.22Ƃ܂BIPAhX̊eZNV̔zu߂̂ɁAlbg}XNKp܂B̏ꍇ̃lbg}XN11111111 11111111 00000000 00000000łB܂}6-8Ɏ悤ɁAlbg[NAhXi10.10܂00001010 00001010ĵ߂ɎuꂽIPAhX͑OŁA㔼͌X̃zXgi.1.22A܂00000001 00010110jƂƂɂȂ܂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͂̂܂܂ŁÂƂɃtH[hXbVƁAIPAhX̃lbg[N\rbg܂BƂIPAhX10.10.1.22Albg}XN255.255.0.0CIDR\LŋLqƁA10.10.1.22/16ƂȂ܂B

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

o[W@gpĂIP̃o[W
wb_@IPwb_̒
T[rXʁ@gtBbNɗD揇ʂ邽߂ɁA[^gpDtOƃT[rXʃtO
S@IPwb_ƃpPbgɊ܂܂f[^̒
ʎq@pPbg܂͒fЉpPbg̔zʂ̂ɗp鎯ʔԍ
tO@pPbgfЉꂽpPbg̈ꕔȂ̂ǂʂ̂ɗp
fЈʒu@pPbgfЉĂꍇÃtB[h̒lgăpPbg𐳂ŕׂĕ
ԁ@pPbg̗]`lB[^oRŃzbvbő
vgR@ɗpPbg̃^Cvʂ̂ɗp
wb_`FbNT@IPwb_Ɍ肪Ȃǂ؂̂ɗpG[o@\
MIPAhX@pPbg𑗐MzXgIPAhX
IPAhX@pPbg̈IPAhX
g@ǉIPIvV̂߂ɎuĂB\[X[eBO^CX^ṽIvVߍ܂B
f[^@IPAhXƂƂɑMۂ̃f[^

}6-9@IPv4pPbg\
C^[lbgvgR
rbgItZbg
o[W@wb_@T[rXʁ@S@ʎq@tO@fЈʒu@ԁ@vgR@wb_`FbNT@MIPAhX@IPAhX@g@f[^


pPbgjOɌo߂鎞ԁA邢̓pPbgʉ߂ł郋[^̍ōl`̂AԁiTTLjłBTTL̓pPbg쐬Ƃɒ`ApPbg[^ɂē]邲ƂɁA1PʂĂ܂BƂ΁ApPbgTTL2̏ꍇAŏ̃[^ɓBTTL1ƂȂA2Ԗڂ̃[^ւƓ]܂B̃[^łTTL0ւƌApPbg̍ŏIIȈ悪̃lbg[NɂȂꍇApPbg͔j܂i}6-10jBTTLl͎ԃx[Xł邽߁AɍݍĂ郋[^̏ꍇATTLl1ȏ㌸Ă܂Ƃ܂Bʏ́A1̃[^ʉ߂邲ƂTTL1Ɖ肵Ė肠܂B

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

TTLl͂ȂdvȂ̂ł傤HpPbg̐ԂCɂȂ̂́AM父܂łɂ鎞ԂɊւĂ݂̂łBȂA\̃[^oRāAzXg܂ŒH蒅Ȃ΂ȂȂpPbglĂ݂܂傤B̓rŐݒɌ肪郋[^ɂԂ΁AւƓłȂȂ\܂BƂA[^͂̂Ƃs܂A̍ŝׂ߂ɃpPbglbg[Niɂ܂悢ꍇ̂łB
vO~Ǒo܂ȂĂA[vNAvO邢OSŜNbVĂ܂ʂɂȂ̂͂ł傤BƂpPbgłN̂łB[^ԂXƍspPbg̐΁ADoSԂɊׂ܂ŁAlbg[N̎gp\ш͏Ղ܂B邽߂ɁAIPwb_TTLtB[hꂽ̂łB
WiresharkňĂ݂܂傤Bip_ttl_source.pcapt@Cɂ́AQICMPpPbg܂܂Ă܂BICMPi{͂ł̂قǐ܂jIPgăpPbg𑗂Ă邱Ƃ́ApPbgڍׂ̃yCIPwb_ZNVJΕ܂i}6-11jB

}6-11@pPbgIPwb_

IP̃o[W4@AIPwb_20oCgAAwb_ƃyC[h̑S60oCgBATTLtB[h̒l128Cł邱Ƃ܂B
ICMP ping̎ȖړÍAʐM@Ԃ̒ʐMeXgłBf[^͂zXgʂ̃zXgփNGXgƂđAMzXg͂̃f[^ƂđԂȂ΂Ȃ܂B̃t@Cł́AAhX10.10.0.3̋@DAAhX192.168.0.128̋@EւICMPNGXg𑗂Ă܂B̍ŏ̃Lv`t@ĆAMłzXg10.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_TTLPĂ̂킩

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

IPtOe[V
pPbǵ̕Af[^Xg[菬ȒfЂƂA푽lȃlbg[NłmɑM邽߂IP@\łB
C2f[^NwvgRMTUimaximum transmission unitjTCYƁÃvgRgĂʐM@̐ݒƂɁApPbg܂B̏ꍇAgvgR̓C[TlbgłBC[Tlbg̃ftHgMTU1500A܂C[Tlbglbg[NőMłpPbg̍őTCY1500oCgƂƂɂȂ܂iC[Tlbgwb_14oCg͏jB

@MTUɂ͕Wݒ肪܂A@MTU͎蓮ōĐݒł܂BMTUݒ̓C^[tF[XƂɒ߂ĂAWindowsLinuxڃVXeA܂[^̃C^[tF[XłύXł܂B

ʐM@IPpPbg̑MƂAlbg[NC^[tF[XMTUTCYƃpPbg̃f[^TCYrāApPbg𕪊ׂǂf܂Bf[^TCYMTU傫΁ApPbg͕܂BpPbg̒fЉ͎̂悤ȃXebvōs܂B

1Df[^M𐬌邽߁Af[^̃pPbgւƕ܂B
2Dꂽꂼ̃f[^̃TCYɍ킹AIPwb_̑StB[hZbg܂B
3DŏIpPbgׂẴpPbgMFiMore FragmentsjtO1ɃZbg܂B
4DfЂIPwb_̒fЈʒutB[hZbg܂B
5DpPbgM܂B

AhX192.168.0.128̒ʐM@pingNGXg𑗂ĂAhX10.10.0.3̃Rs[^ꂽ̂ip_frag_source.pcapt@CłBpPbgꗗ̃yCInfoJɕꂽIPpPbg2ǍICMPipingjNGXgĂ̂܂B
pPbg1IPwb_𒲂ׂ邱Ƃn߂܂傤i}6-13jB
MFђfЈʒutB[hÃpPbgꂽ̂̈ꕔł̂܂BꂽpPbǵAfЈʒu̒lvXɂȂ邩AMFtOZbgĂ܂Bŏ̃pPbgłMFtOZbgĂ̂Ň@AM͂̂Ƒĕʂ̃pPbgM邱ƂɂȂ܂BfЈʒu0ɃZbgĂꍇAAꂽpPbg̍ŏ̃pPbgł邱ƂӖĂ܂B

}6-13@MFƒfЈʒulfЉpPbgł邱ƂĂ

2Ԗڂ̃pPbgIPwb_i}6-14jłMFtOZbgĂ܂@AfЈʒul1480łAB1500oCgMTUAIPwb_20oCgłB

}6-14@fЈʒul̓pPbg̃TCYɂđ

3Ԗڂ̃pPbgi}6-15jłMFtO̓ZbgĂȂ̂Ň@A͍ŏIpPbgł邱ƂĂAfЈʒul1480{i1500]20j2960ɃZbgĂ܂AB̕ꂽpPbǵAIPwb_̎ʎqtB[h̒lƂBApPbg̈ꕔłƕ܂B

}6-15@MFZbgĂȂ̂ōŏIpPbgł

TCP
TCPiTransmission Control Protocolj̍ŏIڕẂAf[^mɔz邱ƂłBRFC 793Œ`ĂTCṔAOSIQƃf̃C4œ삵܂BTCP̓f[^V[PXƃG[JoAf[^ׂꏊɊmɓ͂悤ɂ܂B悭gAvP[VwvgȒATCPIPɂăpPbgɔzĂ܂B

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

M|[gԍ@pPbg̑Mɗp|[gB
|[gԍ@pPbgM̃|[gԍB
V[PXԍ@TCPZOgʂ邽߂̔ԍB̃tB[h̓f[^Xg[̑̕h߂Ɏg܂B
mFԍiACKԍj@ʐM̑葤󂯎鎟̃pPbgɊ܂܂ĂV[PXԍB
tO@MꂽTCPpPbg̃^Cvʂ邽߂́AURGAACKAPSHARSTASYNAFINtOB
EBhETCY@M̃obt@TCYoCgPʂŒm点܂B
`FbNT@TCPwb_ƃf[^̓eAɐmǂmF̂ɗp܂B
ً}|C^@URGtOZbgꍇApPbg̃f[^CPUǂǂނׂ̎wm̂ɁÃtB[h`FbN܂B
IvV@TCPpPbgŎwł邳܂܂ȃIvVtB[hB

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


TCP|[g
ׂĂTCPʐM͑Mƈ̃|[ggčsÂƂTCPwb_番܂B|[gƂ́A̔zdՂ̃WbN̂悤Ȃ̂łBzdՂ̃Iy[^́AzdՂ̃CgƃvOĎĂ܂BCgƁAdbĂƂȂANɓdb̂qˁAP[ũvOđɂȂ܂BׂĂ̒ʘbɂ͑M|[gidb̂jƈ|[gi󂯎jKvłBTCP|[gقړ悤ɋ@\܂B
[gT[o܂͒ʐM@̓̃AvP[VɃf[^𑗐Mɂ́ATCPpPbg͑҂󂯂Ă郊[gT[rX̃|[gmĂȂ΂Ȃ܂Bݒ肳ꂽ|[gȊÕ|[gɃANZX悤ƂƁAʐMr₦Ă܂܂B
M|[g͂قǏdvł͂ȂA_ɑIԂƂł܂B[gT[óAMIWĩpPbgAM|[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|[g65535Aʂ2̃O[vɕ邱Ƃł܂B

E11023܂łX^_[h|[gO[vłi0͗\ς݂Ȃ̂ŏO܂jB̃T[rXAʂɕW|[gO[vɓW|[ggĂ܂B
E102465535܂łGtF|[gO[vłiOSɂĂ͂̒`قȂ܂jBǂȂƂłA1̃|[gŒʐMł̂1̃T[rXȂ̂ŁAŋ߂OŚAʐMƎ̂̂ɂ邽߂ɁAM|[g_ɑI܂B̑M|[ǵAGtF|[g͈̔͂ɓ܂B

tcp_ports.pcapt@CJāApPbggĂ|[gԍʂĂ݂܂傤B̃t@Cɂ́A2WebTCguEYĂNCAgHTTPʐM܂BOq悤ɁAHTTP͒ʐMTCPgp̂ŁA͕WTCPgtBbN̂ƂȂ܂B
̃t@C̍ŏ̃pPbgł́i}6-18jAŏ2̒lpPbg̑M|[gƈ|[g\Ă܂B̃pPbǵA172.16.16.128212.58.226.142֑M̂łBM|[g2826@ŁAGtF|[głiM|[g̓_ȑICNg܂AOS_ɑIƂƂvoĂjB|[g͕W|[g80ԃ|[gŇAA̕W|[gHTTPgpWebT[rXp̂łB

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

Wiresharkł͂̃|[gslc-systemlog(2826)http(80)̃xĂA|[g̃XgƈʓIȗprǗĂ܂B̃|[g͎ɃX^_[h|[głAGtF|[g̑֘AT[rXŎgĂ܂B|[g̃x͔ɕɂ߁AO𖳌ɂĂ܂傤Bsɂ́A[Edit][Preferences]A[Name Resolusion]IA[Enable Transport Name Resolution]̉̃`FbNO܂B̋@\͗L̂܂܂ɂA|[gʂ@ύXꍇ́AWiresharkvOfBNgɂuServicesvt@CC܂BfBNgIANAiInternet Assigned Numbers Authorityj̈ʓIȃ|[gꗗɂĂ܂B
2Ԗڂ̃pPbǵA212.58.226.142172.16.16.128ւƑԂꂽ̂łi}6-19jBIPAhXlAMƈ|[gւĂ܂@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ȃvgRƃT[rXɊւ|[gɂĂ̒mɐ[܂ł傤B̂Ƀ|[g΁AgĂT[rXƒʐM@킪悤ɂȂ܂BʓIȃ|[g̊SȈꗗɂẮAhttp://www .iana.org/assignments/port-numbers/QƂĂB

3EFCnhVFCN
TCPgpʐḾAK2̃zXg̃nhVFCNŎn܂܂BnhVFCÑvZXɂ́A̈قȂړI܂B

EM̃zXgÃzXgƊmɒʐMł悤ɂ܂B
EM̃zXgAʐMsƂĂ|[gmFł悤ɂ܂B
EM̃zXgM҂ɌăV[PXԍ̑MJnAzXgpPbg̏K؂ɕۂĂ悤ɂ܂B

}6-20Ɏ悤ɁATCPnhVFCNɂ3̃Xebv܂Bŏ̃XebvŁAʐMs@izXgAj͈izXgBjTCPpPbg𑗂܂B̍ŏ̃pPbgɂ́AwvgRwb_ȊÕf[^͊܂܂Ă܂B̃pPbgTCPwb_ɂSYNtOZbgĂAʐMvZXɎgŏ̃V[PXԍMSSiMaximum Segment Sizej܂܂Ă܂BzXgB͂̃pPbgɉASYNtOACKtOZbgAŏ̃V[PXԍ܂񂾓l̃pPbg𑗂Ԃ܂BŌɃzXgÁAACKtÔ݂ZbgꂽŏIpPbgzXgBɑ܂B̃vZXƁ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.pcaJÃvZXۂɌĂ݂܂傤BWiresharkɂ́ATCPpPbg̃V[PXԍA͂₷ԍɒu@\܂Bۂ̃V[PXԍ邽߁Ał͂̋@\𖳌ɂĂ܂Bɂɂ́A[Edit][Preferences]IA[Protocols]L[TCP]Iт܂B[Relative Sequence Numbers][Window Scaling]̉̃{bNX̃`FbNOA[OK]NbN܂B
ŏ̃pPbgSYNpPbgłi}6-21jB̃pPbg172.16.16.1282826ԃ|[gA212.58.226.14280ԃ|[gւƑĂ܂BV[PXԍ3691127924ł邱Ƃ܂@B

}6-21@ŏSYNpPbg

2Ԗڂ̃pPbǵA212.58.226.142̉ƂȂSYN/ACKpPbgłB̃pPbgɂ́Aŏ̃V[PXԍi233779340j@ƁAmFԍi3691127925jA܂܂Ă܂BmFԍ́AM瑗ĂV[PXԍ1̂ɂȂĂ܂BMґɎ󂯎V[PXԍ̎wɎĝ̃tB[hłB

}6-22@SYN/ACKpPbg

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

}6-23@ŏIACKpPbg

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


TCPeBA_E
ǂȏoɂʂ͂̂łATCPnhVFCNɂ̓eBA_E܂BTCPeBA_ÉAʐMI2̒ʐM@Ԃ̐ڑI点̂ɗp̂łB̃vZXɂ4̃pPbgւAڑ̏IɂFINtOg܂B
eBA_Eł́AzXgA̓zXgBɁAFINtOACKtOZbgꂽTCPpPbg𑗂AʐMIm点܂BzXgBACKpPbgŉAFIN/ACKpPbg܂Bɑ΂zXgAACKpPbgŉAʐMvZXI܂B̃vZX}̂}6-24łB

}6-24@TCPeBA_ẼvZX
zXgA@zXgB @

tcp_teardown.pcapt@CJāÃvZXĂ݂܂傤B67.228.110.120̃zXgAFIN/ACKtOZbgꂽpPbg@𑗂āAeBA_ẼvZXJnĂ̂킩܂i}6-25jB

}6-25@FIN/ACKeBA_ẼvZXJn

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

TCPZbg
ׂĂ̐ڑTCPeBA_EŏIƂ̂złBۂɂ́Aڑ̓ˑȐIpɂɋN܂BƂ΁AU҂ɂ|[gXL̎sAPȂzXg̐ݒ~XN肦܂BꍇARSTtOZbgTCPpPbgg܂BRSTtO͐ڑ̓ˑȐIAڑ݂̎ۂꂽƂ߂̂̂łB
tcp_refuseconnection.pcapt@ĆARSTpPbg܂񂾃lbg[NgtBbN̈łBŏ̃pPbǵA192.168.100.180ԃ|[gŒʐM悤ƂĂA192.168.100.138̃zXg瑗ꂽ̂łB̃zXǵA80ԃ|[g҂󂯏ԂɂȂĂȂ̂m܂BCisco[^̏ꍇAWebC^[tF[Xݒ肳ĂȂƁA80ԃ|[gŐڑ҂󂯂ĂT[rX݂͑ȂłB̒ʐM݂̎ɑ΂A192.168.100.1192.168.100.138ɃpPbg𑗂A80ԃ|[gł͒ʐMsȂƒm点܂B}6-26́AʐM݂̎˔@IƂA2Ԗڂ̃pPbgTCPwb_łBRSTpPbgɂRSTtOACKtOȊOɂ͉܂܂Ă炸@Ǎ̒ʐM͂܂B
RSTpPbǵÂ̗悤ɒʐM݂̎̍ŏA܂͒ʐM̓rőAʐMI܂B

}2-26@RSTtOACKtOʐMIm点

UDP
UDPiUser Datagram Protocolj́Albg[Nł悭g1̃C4vgRłBTCPG[o@\ɂM̍f[^]ړIɐ݌vĂ̂ɑ΂AUDP͍ȓ]ړIƂĂ܂B̂UDṔAuRlNVXvgRvƌĂ΂܂BRlNVXvgŔATCP̃nhVFCNeBA_Ê悤ɁAȐڑ̊mIs܂B
M̍f[^M񋟂ȂUDP̏ꍇA肪ēR̂悤Ɏv܂BmɂȂ̂łAۂUDPgvgŔAMۏ؂邽߂̓Ǝ̃T[rXĂAM̍ڑ邽߂ICMP@\g肵Ă܂BƂ΃pPbg̍MdAAvP[VwvgRDNSDHCPȂǂ́AUDPgX|[gwvgRƂėp܂AG[oƍđM^C}[͎̂̂gĂ܂B

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

M|[g@pPbgMɎg|[g
|[g@pPbgM|[g
pPbg@pPbg̒oCgŎ
`FbNT@MUDPwb_̓emFɎg

}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@T[rXȂǂgp\ǂɊւ񋟂܂Blbg[ÑguV[eBÔقƂǂAICMPbZ[W^CvgĂ܂BICMPRFC 792Œ`Ă܂B

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

^Cv@RFCdlɊÂAICMPbZ[W̃^Cv܂͕
R[h@RFCdlɊÂ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ȂAu擞Bs\vӖ܂B̏񂾂ł͖ɂ͕s\łAR[h̒l3A܂u|[gBs\vƕ΁AʐM݂Ă|[gɖ肪ƌ_Â邱Ƃł܂B

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

GR[vƃGR[
ICMPłƂ悭mĂ̂AڑmFɎgpingR}hłBZp̐ƂȂAʏpingɓł͂łB
Pinggɂ́AR}hvvgping<IPAhX>Ɠ͂܂B̃Rs[^IɂȂĂāÃRs[^ƐڑĂAt@CAEH[ŃubNĂȂ΁ApingR}hɑ΂鉞͂łB
}6-30ł́A4󂯎邱ƂɐĂÃTCYRTTATTL\Ă܂BWindows̃[eBeBApPbgMAMȀڍׂ񋟂Ă܂BʐMɎsꍇɂ́A̗RbZ[W\܂B

}6-30@ڑmFɗppingR}h

{Iɂ͐}6-31̂悤ɁApingR}h͑ɃpPbg𑗂ĉ҂AڑĂ邩ǂ𔻒f܂B

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

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

VvICMPʐM̈ƂāAۂpingR}hǂ@\邩Ă݂܂傤Bicmp_echo.pcapt@C̃pPbǵApingsƉN邩Ă܂B
ŏ̃pPbgi}6-32j́AzXg192.168.100.138A192.168.100.1ɃpPbg𑗐MĂ邱ƂĂ܂@B̃pPbgICMPJA^CvƃR[h̃tB[h΁ÃpPbg̎ނ܂B̗ł̓pPbg̃^Cv8AAR[h0BȂ̂ŁAGR[vł邱ƂĂ܂iWiresharkł̓^CvƃR[hɂĂ̐\͂łjBGR[vipingj͑OłBIPgVvICMPpPbgŁÃf[^܂ł܂BICMPpPbgɂ́A^CvAR[hA`FbNTɉAvƉgɂ邽߂ɎgV[PXԍƁAf[^ɂ̓_ȃeLXgXgO܂܂Ă܂B

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

}6-32@ICMPGR[vpPbg

2Ԗڂ̃pPbǵAvɑ΂鉞łi}6-33jB̃pPbgICMP̃^Cv0@AR[h0AŁAꂪGR[ł邱ƂĂ܂BV[PXԍŏ̃pPbgƈvĂ̂ŇBÃGR[̃pPbg̃GR[vƈvĂ邱Ƃ킩܂B܂̉pPbgɂ́Avƈꏏɑꂽ̂Ɠ32oCg̃XgO܂܂Ă܂CB192.168.100.1382Ԗڂ̃pPbg󂯎ƁAping񍐂܂i}6-30jB

}6-33@ICMPGR[pPbg

Ping̃f[^găf[^̃TCY𑝂₵ApPbg𕪊āAlbg[N̂܂܂ȃguV[eBOɗpł邱ƂoĂ܂傤BfЂ̏߂guV[eBO̍ۂɂ́A̍ƂKvƂȂ܂B

@ICMPGR[vɎg郉_ȃeLXǵAU҂ɑ_\܂BU҂͂̏gāAWIƂVXe̓OS˂~߂邱Ƃł邩łB܂U҂閧ʐM̎@ƂāÃtB[hɏȃf[^𖄂ߍނƂ\łB

g[X[g
g[X[ǵAzXgʂ̃zXg܂ł̌oH𒲂ׂ̂ɗp܂BPȃlbg[Nł΁AoHɂ̓[^1̂݁A邢͂ЂƂȂm܂BGȃlbg[NɂȂƁApPbg͍ŏIړIn֓B܂łɁA\̃[^ʉ߂Ȃ΂ȂȂ̂ŁA肪ꍇɂł悤ApPbǧoH𐳊mɒǐՂ邱ƂdvƂȂ܂B
ICMPgiIP̏؂ājAg[X[g̓pPbgǂoH}bsO܂BƂicmp_traceroute.pcapt@C̍ŏ̃pPbǵAقǌGR[vƂȂ悭Ă܂i}6-34jB

}6-34@TTLl1ICMPGR[vpPbg

܂̃pPbǵA192.168.100.1384.2.2.1Aւ́APȃGR[v̂悤Ɍ܂@B܂pPbgICMṔAGR[vpPbǧ`Ƃ܂łBȂÃpPbgIPwb_JƁAЂƂl邱ƂɋCt͂łBpPbgTTL1BA܂ŏ̃[^ɓ͂ƂɁApPbgƂӖĂ܂B4.2.2.1̓C^[lbgAhXȂ̂ŁAMƈ̊Ԃɂ͍Œ1̃[^݂͂łA܂肱̃pPbg͈֓͂ȂƂɂȂ܂B̃pPbg͍ŏ̃[^܂łBȂƂ̃g[X[g͓`Ă̂ŁȀꍇ͓͂ȂĂ肠܂B
2Ԗڂ̃pPbg͗\zʂAŏ̃[^̉łi}6-35jBpPbg192.168.100.1̃zXgɓBATTL0ɌĂ̂ŁApPbg͂ȏ]ȂƂɂȂA[^ICMPX|XԂ܂B̃pPbg̃^Cv11@AR[h0AŁA]̓rTTLԐ؂ɂȂĂ܂߂ɁAɓBȂƂӖĂ܂B

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

ICMPpPbǵAICMP̍ŌIPwb_̃Rs[BƁAŏ̃GR[vőꂽICMPf[^C܂ł邽߁Au_uwbhpPbgvƌĂ΂ꍇ܂B̏̓guV[eBOɔɖ𗧂܂B
TTLl𑝂₵ăpPbg𑗐M邱̃vZX́A7Ԗڂ̃pPbgB܂ł2JԂ܂Błŏ̃pPbgl̂Ƃs܂AIPwb_TTLl2ɃZbgĂ̂ŁApPbg2Ԗڂ̃[^܂œB邱ƂɂȂ܂B\zʂA12.180.241.1̃[^A悤Ɉ擞Bs\̃bZ[WTTL؂̃bZ[WĂ܂BŏIIȈł4.2.2.1ɓB܂ŁATTLlPvZX܂B
܂Ƃ߂ƁAg[X[gvZXƂ́AoHɂe[^Ƃ肵A܂ł̌oH}쐬̂łB}6-36̌oH}łB

@łICMP݂̂gWindows̃g[X[gɂĐĂ܂BLinux̃g[X[g[eBeBɂ͂ėpAoH̎擾ɑ̃vgR𗘗p邱Ƃł܂B

}6-36@g[X[g[eBeB̃Tvo

{ʂČĂ܂AICMPɂ͑푽lȋ@\܂B͂ɂICMPɕpɂɗp邱ƂɂȂ܂B
{͂ł́ApPbg͂̃vZXŌƂdvȃvgR̈ꕔЉ܂BIPATCPAUDPAICMP̓lbg[NʐM̊błAX̍ƂɂĕK{̂̂łB͂ł́AAvP[VẅʓIȃvgRɂČĂ܂B

