=== ch07.docx
[chap]7́@ʓIȏʑwvgR

̏͂ł́AX̃vgR̋@\ƁÃvgRWiresharkłǂ̂悤Ɍ邩ɂČĂ܂Bł͍łʓIȏʑwi7wjvgRłDHCPADNSAHTTP3ɂĐ܂B

DHCP
̂̃lbg[Nł́Albg[NŒʐMs΁A@ɎƂŃAhX蓖ĂKv܂Blbg[Ng傷ɂA̎Ƃ̏͂܂ʓ|Ȃ̂ւƂȂĂ܂B̖邽߂ɊJꂽ̂Albg[Nɐڑ@ɎIɃAhX蓖ĂBOOTPiBootstrap ProtocoljłB̂BOOTṔAꂽDHCPiDynamic Host Configuration ProtocoljɂĒu܂B
DHCṔA@킪IIPAhXiDNST[o⃋[^Ȃǂ̑̏dvȃlbg[ÑAhXj擾ł悤ɂAAvP[VwvgRłBDHCPT[ôقƂǂ́Albg[ÑftHgQ[gEFCDNST[õAhXƂNCAgɒ񋟂Ă܂B

DHCPpPbg\
DHCPpPbǵAʂ̏NCAgɒ񋟂܂B}7-1Ɏ悤ɁADHCPpPbgɂ͈ȉ̃tB[h܂B

IyR[hiOpCodej@pPbgDHCPvDHCP܂
n[hEFA^Cv@n[hEFAAhX̃^Cvi10MBC[TlbgAIEEE 802AATMȂǁj
n[hEFAAhX@n[hEFAAhX̃AhX
zbv@DHCPT[o̔⏕郊[G[WFggp܂
gUNVID@vƉ΂ɂ邽߂Ɏg郉_Ȑ
oߕb@NCAgDHCPT[oɃAhXvĂ̕b
tO@DHCPNCAg󂯎gtBbÑ^CvijLXgAu[hLXgȂǁj
NCAgIPAhX@NCAgIPAhXiIPAhXtB[h瓾ꂽ́j
蓖IPAhX@DHCPT[o񋟂ꂽIPAhXiŏIIɂ̓NCAgIPAhXtB[hlƂȂ܂j
T[oIPAhX@DHCPT[oIPAhX
Q[gEFCIPAhX@lbg[ÑftHgQ[gEFCIPAhX
NCAgn[hEFAAhX@NCAgMACAhX
T[ozXg@T[õzXgiIvVj
u[gt@C@DHCPgu[gt@CiIvVj
IvV@DHCP̋@\g邽߂ɁApPbg̍\ĝɗp܂

}7-1@DHCPpPbg\
rbgItZbg
IyR[h@n[hEFA^Cv@n[hEFAAhX@zbv
gUNVID
oߕb@tO
NCAgIPAhX
蓖IPAhX
T[oIPAhX
Q[gEFCIPAhX
NCAgn[hEFAAhXi16oCgj
T[ozXgi64oCgj
u[gt@Ci128oCgj
IvV

DHCPXV
DHCP̎ȖړÍAXVŃNCAgɃAhX蓖Ă邱ƂłBXV́Adhcp_nolease_renewal.pcapt@CɎ悤ɁÃNCAgDHCPT[oԂŔ܂BDHCPXV́A}7-2̂悤DISCOVERAOFFERAREQUESTAACKNOWLEDGMENT4ނDHCPpPbgg߁ADORAƂĂ΂Ă܂BꂼDORApPbgĂ݂܂傤B

}7-2@DHCP DORA
DHCPNCAg@DHCPT[oiҒ@p̃XyɃ~XBDCHPɂȂĂ܂Ė:{łł̓XyCĂj

DHCPDISCOVERpPbg
Lv`t@Cŕ悤ɁAŏ̃pPbg0.0.0.068ԃ|[g255.255.255.25567ԃ|[gւƑ܂BȂ0.0.0.0Ȃ̂ƂƁÃNCAgɂ͂܂IPAhXȂłBpPbg255.255.255.255ɑ̂́ÃAhXlbg[NɈˑȂu[hLXgAhXłApPbglbg[Nׂ̂Ă̋@Ɋmɓ͂悤ɂĂ邩łB@DHCPT[õAhXmȂ̂ŁAŏ̃pPbǵA҂󂯂ĂDHCPT[o邽߂ɑ܂B
Packet DetailsyCƁA܂DHCPgX|[gwvgRƂUDPgĂ邱ƂɋCÂ܂BDHCP̓NCAgvM܂ł̑DHCPxɏdĂ邽߂łB܂DHCP͐Mێ@\Ă邽߁AUDPœKȂ̂łBPacket DetailsyCōŏ̃pPbgDHCPZNV𒲂ׂ΁ADISCOVEȐڍׂ邱Ƃł܂i}7-3jB

@WiresharḱA݂łDHCPBOOTPƂĈĂ邽߁APacket DetailsyCł́ADHCPZNV̑Bootstrap ProtocolZNVmFł܂BA{ł́ApPbgDHCPZNVƂĈ܂B

}7-3@ DHCPDISCOVERpPbg

̃pPbgNGXgł̂́AMessage TypetB[h1ł邱Ƃ킩܂y1zBNGXgpPbĝقƂǂ̃tB[h́AÕZNVDHCPtB[ḧꗗɊÂAiIPAhXtB[hy2ẑ悤Ɂj󔒂A΂ݒɂȂĂ܂B̃pPbg̗v_4̃IvVtB[hɂ܂B

DHCP Message Type@̓IvV^Cvu53it=53jvłA1Al1ƂȂĂ܂y3zB̒lDHCPDISCOVERpPbgł邱ƂĂ܂B
Client Identifier@IPAhXvĂNCAgɂĂ̒ǉ񋟂܂B
Requested IP Address@NCAg蓖ĂvIPAhX񎦂܂iʏ͈ȑOgIPAhXjB
Parameter Request List@NCAgDHCPT[o󂯎肽ݒ荀ځidvȃlbg[N@IPAhXj̈ꗗB

DHCPOFFERpPbg
2Ԗڂ̃pPbgIPwb_ɂ͐KIPAhẌꗗ܂܂ĂÃpPbg192.168.0.1192.168.0.10֑Ă邱ƂĂ܂i}7-4jBNCAgɂ͂܂192.168.0.10̃AhX蓖ĂĂȂ̂ŁAT[o͂܂ARP񋟂ꂽn[hEFAAhXgăNCAgƂ̒ʐMs܂BʐMłȂꍇ́Au[hLXgs܂B

}7-4@DHCPOFFERpPbg

2Ԗڂ̃pPbgDHCṔuOFFERpPbgvƌĂ΂AMessage Typeł邱ƂĂ܂y1zBpPbgɂ͂قǂ̃pPbgƓgUNVID܂܂Ă̂Ły2zẢvɑ΂̂łƕ܂B
OFFERpPbǵADHCPT[oNCAgɃT[rX񋟂邽߂ɑ̂łBpPbgɂ́ADHCPT[og̏ƁANCAgɒ񋟂AhX̏Ƃ܂܂Ă܂B}7-4ł́A蓖āiNCAgjIPAhX̃tB[hŁA192.168.0.10NCAgɒ񋟂Ă܂y3zBNext Server IP AddresstB[hɂ192.168.0.1Ƃly4źADHCPT[oƃftHgQ[gEFCIPAhXLĂ邱ƂĂ܂B
ŏ̃IvV̓pPbgDHCP OfferƂĔFĂ邱ƂĂ܂y5zB̌ɑIvVɂAT[oNCAgIPAhXȊO̒ǉ񂪒񋟂Ă邱Ƃ킩܂B񋟂Ă͎̂̂悤ȏłB

ETulbg}XN255.255.255.0
EXVԂ30
EăoCfBOiREBINDINGjԂ5230b
EIPAhX[XԂ1
EDHCPT[oʎq192.168.0.1

DHCPREQUESTpPbg
NCAgDHCPT[o̒ʒm󂯎ƁA}7-5̂悤DHCPREQUESTpPbg𑗂܂B

}7-5@ DHCPREQUESTpPbg

܂IPAhX̎擾vZXĂȂ̂ŁA3Ԗڂ̃pPbgIPAhX0.0.0.0瑗܂y1zApPbǵAMDHCPT[omĂ܂B
Message TypetB[h́ApPbgvpPbgł邱ƂĂ܂y2zBLv`t@C̃pPbgׂ͂ĈA̍XV\Ă܂AVȗv/gUNVƂȂ邽߁AVgUNVIDt^Ă܂y3zBIPAhX񂪂ׂċ󔒂ɂȂĂƂ_ŁADHCPDISCOVERpPbgƎĂ܂B
OptiontB[hy4zAꂪDHCPREQUESTpPbgł邱Ƃ킩܂BRequested IP Address󔒂łȂȂADHCP Server IdentifiertB[hɂAhXĂ܂B

DHCPACKpPbg
̍ŏIiKƂDHCPT[óA}7-6̂悤ɗvꂽIPAhXNCAgDHCPACKpPbgőȀf[^x[XɋL^܂B

}7-6@ DHCPACKpPbg

ŃNCAgIPAhX蓖ĂAʐMn߂邱Ƃ\ɂȂ܂B

DHCP̃[XXV
DHCPT[o@IPAhX蓖Ă邱ƂANCAgIPAhX[Xi݂ojƂ܂B܂NCAg͈ԂIPAhXgpłAgpꍇ̓[X̍XVKvɂȂ܂BqDORAvZX́ANCAg߂IPAhX擾ꍇA[X؂ĂꍇɔȀꍇ@̃[X؂Ă̂ƂĈ܂B
IPAhX[X̃NCAgċNƁAIPAhXēxv邽߂DORAvZX̊ȗłsȂ΂Ȃ܂B̃vZX[XXVƌĂт܂B
[XXVł́ADHCPDISCOVERYpPbgDHCPOFFERpPbg͕svłB[X؂XVłDORAƔrƁA[XXVłREQUESTACKpPbg̃XebvKv܂B[XXṼTṽLv`t@Cdhcp_inlease_renewal.pcapɂ܂B

DHCPIvVƃbZ[W^Cv
DHCP̏_́ÃIvVɂ܂B̂ƂÃTCYe푽lɂ킽Ă܂BpPbgŜ̑傫́AgpIvV̑gݍ킹ɂĕςĂ܂BDHCPIvV̖ԗIȈꗗɂẮAhttp://www.iana.org/assignments/bootp-dhcp-parameters/QƂĂB
ׂĂDHCPpPbgɕK{ƂȂB̃IvVAMessage TypeIvViIvV53jłB̃IvV́ApPbgɊ܂܂ADHCPNCAg܂̓T[oǂ̂悤ɏ邩ʂ܂B\7-1̂悤ɁAMessage TypeIvV8ނ܂B

\7-1@DHCP Message TypeIvV
^Cvԍ@bZ[W^Cv@@
DISCOVER@NCAggp\DHCPT[o邽߂̃bZ[W
OFFER@NCAgT[o֑DISCOVERpPbgւ̉bZ[W
REQUEST@NCAgT[o֑ݒvbZ[W
DELINE@NCAgT[o֑ݒ񖳌ʒmbZ[W
ACK@T[oNCAg֑ݒ̒񋟃bZ[W
NAK@NCAgT[o֑ݒ̒񋟋ۃbZ[W
RELEASE@NCAgT[o֑郊[X̒fbZ[WBɂݒ񂪉B
INFORM@NCAgłIPAhX擾ĂۂɁAݒNCAgT[oɖ₢킹郁bZ[W

DNS
DNSiDomain Name Systemj́AC^[lbgvgR̒łŏdvȂ̂̂ЂƂłBDNSwww.google.comȂǂ̂悤ȖOiDNSj74.125.159.99̂悤IPAhXɕϊ܂BɂAʐMlbg[N@IPAhX킩ȂłADNSŃANZX邱Ƃł܂B
DNST[oIPAhXDNS̑Ήtsu\[XR[hvƂf[^x[XANCAg⑼DNST[oƋLĂ܂B

@DNST[õA[LeN`͂Ȃ蕡GȂ̂ŁAł͈ʓIDNSgtBbN܂Bhttp://www.isc.org/community/reference/RFCs/DNSŁADNS֘Â܂܂RFCQƂ邱Ƃł܂B

DNS̃pPbg\
}7-7番悤ɁADNS̃pPbg\́AقǂDHCPƂ͎኱قȂ܂BDNSpPbg̃tB[ĥ͎悤ɂȂĂ܂B

DNSʎq@DNSNGɑ΂郌X|XΉt邽߂ɗp܂B
QRiQuery/Responsej@pPbgDNSNGȂ̂AX|XȂ̂܂B
OpCode@bZ[WɊ܂܂Ɖ̃^Cv`܂B
AAiAuthoritative AnswersjX|XpPbgł̒lZbgĂꍇAhCɌЂ̂l[T[õX|Xł邱Ƃ܂B
TCiTruncationjX|XăpPbgɎ܂Ȃ߁A؂߂ꂽƂӖ܂B
RDiRecursion DesiredjDNSNGɂ̒lZbgĂƁADNSNCAg͖ړĨl[T[oɑ΂āAv񂪂ȂꍇɍċANGv܂B
RAiRecursion AvailablejX|Xɂ̒lZbgĂƁAl[T[oċANGT|[gĂ邱Ƃ܂B
ZiReservedjRFC 1035ŁAׂ0ɃZbg邱ƂK肳Ă܂BRCodetB[h̊gƂėpꍇ܂B
RCodeiResponse CodejDNSX|XŎgAG[̗L܂B
Question Count@QuestionZNVɊ܂܂ĂGgB
Answer Count@AnswerZNVɊ܂܂ĂGgB
Name Server Count@AuthorityZNVɊ܂܂Ăl[T[õ\[XR[hB
Additional Records Count@Additional InformationZNVɊ܂܂Ă邻̑̃\[XR[hB
QuestionZNV@DNST[oɑꂽ1ȏ̃NG܂މϒZNVB
AnswersZNV@NG̃X|XƂȂ1ȏ̃\[XR[h܂މϒZNVB
AuthorityZNV@OpۂɎgpł錠Ђl[T[o\[XR[h܂މϒZNVB
Additional InformationZNV@NG̃X|XƂĕK{ł͂Ȃ֘Aێ郊\[XR[h܂މϒZNVB

}7-7@DNS̃pPbg\
DNS
rbgItZbg
DNSʎq@QR@OpCode@AA@TC@RD@RA@Z@RCode
Question Count@Answer Count@
Name Server Count   Additional Records Count
QuestionZNV@AnswersZNV
AuthorityZNV@Additional InformationZNV


PDNSNG
DNS̓NG/X|X̌`ŋ@\܂BDNSIPAhXɕϊNCAgDNST[oɃNG𑗐MAT[o̓X|XƂėvꂽԋp܂BLv`t@Cdns_query_response.pcap番悤ɁAƂPȏꍇȀɕKvȂ̂2̃pPbĝ݂łB
ŏ̃pPbǵA}7-8Ɏ悤ɁANCAg192.168.0.114T[o205.152.37.2353ԃ|[giDNS̕W|[gjɑꂽDNSNGłB

}7-8@DNS̃NGpPbg

̃pPbg̃wb_𒲂ׂƁADNS܂UDPgĂ̂܂y1zB
pPbgDNSƁA擪̂ق̏ȃtB[hAЂƂ̃tOZNVւƏW񂳂Ă̂킩܂B̃ZNVWJƁAbZ[WWNGły2zA؂l߂Ă炸AċAvĂ邱Ƃ܂iċAɂĂ͌Ő܂jBQueriesZNVWJƁANGЂƂmFł܂Bł́Awireshark.orgƂOɑ΂zXgitype AjC^[lbgiINjAhX̃NGmFł܂y3zB܂肱̃pPbǵuwireshark.orghCɊ蓖ĂꂽIPAhX́HvƐq˂Ă킯łB
̃NGXgɑ΂郌X|XA}7-9Ɏ2Ԗڂ̃pPbgłB̃pPbgɂ͓̎ʎqtĂ̂Ły1zAX̃NGɑΉ񓚂܂܂Ă邱Ƃ܂B

}7-9@DNS̃X|XpPbg

FlagsZNV݂ƁAꂪX|XłAKvł΍ċA\ȂƂ܂y2zB̃pPbgɂ͂ЂƂ̖₢킹ƂЂƂ̃\[XR[h܂܂Ă炸y3zAX̖₢킹Ƃ̃X|XĂ܂BAnswersZNVWJƁAwireshark.orgIPAhX128.121.50.122ƂNGɑ΂郌X|XmFł܂y4zBNCAg͂̏ƂɁAIPpPbg𐶐Awireshark.orgƂ̒ʐMJn܂B

DNS̖₢킹^Cv
TypetB[h́ADNS̃NGƃX|XŎgA\[XR[h̃^Cv܂BʓIȃ\[XR[h̃^Cv\7-2ɂ܂Ƃ߂܂Bʏ̃gtBbN{ʂẴ^Cvڂɂ邱ƂɂȂł傤B

\7-2@ʓIȃ\[XR[h̃^Cv
l@^Cv@
IPv4zXg̃AhX
Ђ̂l[T[o
zXg̕ʖiGCAXj
[T[o
eLXg
IPv6zXg̃AhX
][]
S][]

\7-2͖ԗIȈꗗł͂܂BDNS̃\[XR[h̃^CvԗIɎQƂꍇ́Ahttp://www.iana.org/assignments/dns-parameters/QƂĂB

DNS̍ċA
C^[lbgDNS͊KwIȍ\ƂĂ邽߁ANCAg瑗ꂽNGɑ΂郌X|X𑗐Mł́ADNST[omʐMKv܂BDNST[óA[J̃CglbgT[oDNSIPAhX̑Ήt͒mĂ͂łAGoogleDellIPAhX͒m悵܂B
DNST[oIPAhXꍇANGXgsNCAg̑㗝ƂĕʂDNST[oɃNGs܂BDNST[oNCAĝ悤ɍs邱̏uċAvƌĂт܂B
DNSNCAgDSNT[o̗̎_ōċAvZXQƂ邽߂ɁAdns_recursivequery_client.pcapt@CJĂ݂܂傤B̃t@Cɂ́ANCAgDNSgtBbNLv`ӂ̃pPbg܂܂Ă܂Bŏ̃pPbg͐}7-10Ɏ悤ɁADNSNCAg172.16.0.8ADNST[o172.16.0.102ւƑꂽNGłB
̃pPbgDNSJƁAꂪwww.nostarch.comƂDNSy1zA^CvR[hɑ΂WNGł邱Ƃ킩܂BFlagsZNVWJƁÃpPbg̏ڍׂ킩AċAvĂ邱Ƃ܂y2zB
2Ԗڂ̃pPbǵA\zʂŏ̃NGɑΉ̂łi}7-11jB
̃pPbg̃gUNVID̓NGIDƈvĂy1zAG[Ȃ̂ŁAwww.nostarch.comA\[XR[h󂯎܂y2zB

}7-10@ċAvrbgZbgꂽDNSNG

}7-11@DNSNG̃X|X

̃NGċAɂĉĂ̂mFB̕@́Adns_recursivequery_server.pcapt@Cɂ悤ɁAċANGsꂽۂDNST[õgtBbNLv`邱ƂłB̃t@ĆANGsꂽۂ̃[JDNST[õgtBbNLv`̂łBŏ̃pPbǵAقǃLv`t@CŌNGƓłBDNST[o̓NG󂯂ƂA[J̃f[^x[XƏƉ܂ADNSinostarch.comjƈvIPAhX͉Ƃ₢킹̉񓚂܂łBpPbgɂ͍ċAvrbgZbgĂ̂ŁADNST[o邽߂ɂقDNST[oɖ₢킹Ă̂A2Ԗڂ̃pPbg番܂B
2Ԗڂ̃pPbgŁA172.16.0.102DNST[o4.2.2.1ɐVȃNG𑗂Ă܂ÃT[o͐}7-12̂悤ɁANGXgʂDNST[oɓ]悤ݒ肳Ă܂B̃NG͌X̃NG琶ꂽ̂ŁADNST[oNCAgւƕϖe܂B

}7-12@ċANG

قǂ̃Lv`t@CƂ̓gUNVIDقȂ邽߁AꂪVȃNGł邱Ƃ킩܂BT[o4.2.2.1̃pPbg󂯎ƁA[JDNST[o͐}7-13̂悤ȃX|X󂯂Ƃ܂B

}7-13@ċANGւ̃X|X

X|X󂯎ƁA[JDNST[o4ڂ̍Ō̃pPbgɗvꂽi[āADNSNCAgɑM܂B
̗ł͍ċA1񂾂łA1DNSvōċAxs邱Ƃ܂BłDNST[o4.2.2.1񓚂󂯎܂ADNST[o͉񓚂𓾂邽߂ɁAقDNST[o ċANGđMꍇ܂BЂƂ̊ȒPȃNGŏIIɓK؂ȉ񓚂𓾂܂łɁAE邱Ƃ̂łB}7-14͍ċANG̏}Ă܂B

}7-14@ċANG
DNSNCAg@[JDNST[o@ODNST[o
ċANG@NG̃X|X@ċANG@NG̃X|X

DNS][]
DNS][Ƃ́ADNST[oǗCꂽOԁiDNS̃O[vjłBɁuEmma's DinervAemmasdiner.comǗDNST[oĂƂ܂傤B̏ꍇAemmasdiner.comIPAhXƉ悤ƂO̒ʐM@́Ã][ɌĂYDNST[oƂƂ肷Kv܂BEmma's DinerADNSOԂ̃[imail.emmasdiner.comƂĂ܂j߂ɁA2ԖڂDNST[oǉꍇÃT[omailTuhCɌƂɂȂ܂B}7-15̂悤ɁATuhCƕKvɂȂ΁ADNST[oǉ邱Ƃł܂B
][]́Aʏ璷sړI2̋@̊ԂŃ][f[^]ۂɔ܂BƂΕDNST[ogD̊Ǘ҂́AʏvC}DNST[o~ꍇɔAvC}DNST[oDNS][̕ێ悤ZJ_DNST[oݒ肵Ă܂B][]ɂ2̎ނ܂B

S][]iAXFRj
@ԂŃ][Ŝ]B
][]iIXFRj
][̈ꕔ݂̂]B

t@Cdns_axfr.pcapɂ́A172.16.16.164172.16.16.139Ƃ̋@Ԃł̊S][]̗Ⴊ܂܂Ă܂B
̃t@C߂ČƁAUDPpPbgł͂ȂTCPpPbĝŁAԈt@CĴł͂ȂƎvm܂BmDNSUDPg܂A][]Ȃǂ̈ꕔ̃^XNɂĂTCPg܂Bʂ̃f[^]ꍇATCP̂قMxłB̃Lv`t@C̍ŏ3̃pPbǵATCP3EFCnhVFCNłB

}7-15@DNS][͖OԂ̐ӔC͈͂𕪊

4ڂ̃pPbǵA172.16.16.164172.16.16.139Ԃ̃][]NGXgŎn܂Ă܂B̃pPbgDNS͊܂܂Ă܂BuTCP segment of reassembled PDUvƂȂĂ̂́A][]NGXg̃f[^ÃpPbgőꂽ߂łB4Ԗڂ6Ԗڂ̃pPbgɃf[^܂܂Ă܂B5Ԗڂ̃pPbg4Ԗڂ̃pPbg󂯎ƂACKpPbgłBpPbĝ悤ɕ₷`ŕ\̂Wireshark̋@\̂ЂƂłB}7-16Ɏ悤ɁA6Ԗڂ̃pPbgSDNS][]NGXgƂĎQƂ邱Ƃł܂B
][]v͕WNGły1zAAXFRƂR[h^CvЂƂv܂y2zB́AT[oDNS][Ŝ̎MvƂӖɂȂ܂BT[õX|X́A}7-177Ԗڂ̃pPbĝ悤ɁA][Ŝ̃R[h܂܂ꂽ̂ƂȂ܂B][]ł͂Ȃ̗ʂ̃f[^肳܂A͂܂PȗłB][]ƁATCPeBA_EŏI܂B

}7-16@DNSS][]v

}7-17@DNSS][]̎s

x@][]Ɋ܂܂f[^ӂl̎ɓnƔɊ댯łBDNST[oɌĂŁAlbg[N̑S̍\`Ă܂łB

HTTP
HTTPiHypertext Transfer Protocolj́AWorld Wide Web̔zM@\łAWebuEUWebT[oɐڑWeby[W{sׂĂ܂B̑gDł́AHTTP̃gtBbNʂƔrĔєđȂĂ܂BGoogleŌATwitterŃcC[gA邢̓P^bL[w̃oXPbg̓_ESPN.comŃ`FbN肷xɁAHTTPgĂ̂łB
HTTP̃pPbg\́Ał͈܂BpPbg̓e͖ړIɂĂȂ̈Ⴂ邽߁ÅmF͓ǎ҂ɂC܂BłHTTP̎Ă܂傤B

HTTPŃuEY
HTTPWebuEUgWeby[W{ۂɂ悭p܂BLv`t@Chttp_google.pcapɂ́ATCPgX|[gwvgRƂėpHTTPgtBbN܂܂Ă܂BʐM̓NCAg172.16.16.128GoogleWebT[o74.125.95.104Ƃ̊Ԃ3EFCnhVFCNŎn܂܂B
ʐMmƁAŏHTTPpPbgA}7-18̂悤ɃNCAgT[oւƑ܂B

}7-18@ŏHTTP GETNGXgpPbg

HTTPpPbgTCPAHTTPʐM̕W|[gł80ԃ|[gy1zi8080Ԃ悭g܂jɑ΂đ܂B
HTTPpPbgɂ8̃\bhiHTTP 1.1Œ`Ă܂jAɂăpPbgMMŎsANV܂܂B}7-18ł́AGET\bhsĂANGXgURIiUniform Resource Indicatorj/ANGXgo[WHTTP/1.1ƂȂĂ܂y2zB̏񂩂ANCAgHTTP̃o[W1.1gĂWebT[õ[gWebfBNgi/j_E[hiGETj郊NGXg𑗐MĂ邱Ƃ܂B
ANCAg͎g̏WebT[oɑ܂Bɂ͎gpĂ郆[UG[WFgiuEUjAuEUΉ\ȌiAccept-LanguagejAcookieiLv`̖jȂǂ܂܂܂BT[o͂̏𗘗pāA݊𖞂ŁANCAgɂǂ̃f[^ԋpׂ𔻒f܂B
T[o4Ԗڂ̃pPbgHTTP GETNGXg󂯎ATCP ACKX|XƂĕԋpA6Ԗڂ11Ԗڂ̃pPbggăNGXgꂽf[^̓]Jn܂BHTTP̓NCAgƃT[oԂŃAvP[Vw̃R}h𔭍s邽߂ɂ̂ݎgp܂Bf[^]̒iKɂȂƁAf[^Xg[̐擪ƖȊOł́AAvP[Vw̐܂B
}7-19ƁAT[õf[^6Ԗڂ7Ԗڂ̃pPbgőƁANCAgACK8Ԗڂ̃pPbgłA9Ԗڂ10Ԗڂ̃pPbgŃf[^ƁA11Ԗڂ̃pPbgƂACKĂ܂Bf[^]HTTPsĂ܂AWiresharkł͂̃pPbgׂ͂HTTPł͂ȂATCPƂĕ\܂B

}7-19@NCAg̃uEUWebT[oԂTCPf[^]

f[^]ƁAč\zꂽf[^Xg[}7-20̂悤ɕ\܂B

}7-20@Xe[^XR[h200ƂȂĂ閖HTTPpPbg

HTTP͒`ĂXe[^XR[h̔ԍpăNGXg\bh̐ۂ܂B̗ł̓Xe[^XR[h200ły1zA̓NGXg\bh̐Ӗ܂BpPbgɂ́A^CX^v͂߁ARec̕WebT[õp[^ݒɊւǉ̏܂܂Ă܂BNCAg̃pPbg󂯎ƁAgUNV܂B

HTTPŃf[^POST
WebT[of[^_E[h鏈Ă̂ŁAx̓Abv[hقĂ݂܂傤Bt@Chttp_post.pcapɂ́A[UWebTCgɃRg𓊍eƂAɒPȃAbv[h̗Ⴊ܂܂Ă܂Bŏ3EFCnhVFCN̂ƁANCAgi172.16.16.128j́A}7-21̂悤ɁAWebT[oi69.163.176.56jHTTPpPbg𑗂܂B

}7-21@HTTP POSTpPbg

pPbgPOST\bhgāy1zWebT[oɃf[^Abv[h܂BPOST\bhł́AURIƂ/wp-comments-post.phpy2zARequest versionƂHTTP1.1w肳Ă܂BAbv[hꂽf[^̓eɂ́ApPbgLine-based text dataJ܂y3zB
POSTŃf[^MƁAACKpPbg܂B}7-22̂悤ɁAT[o6Ԗڂ̃pPbgŁAXe[^XR[h302y1zufoundv𑗐MăX|XԋpĂ܂B

}7-22@HTTPXe[^XR[h302̓_CNgɎg

Xe[^XR[h302́AHTTPł͒ʏ탊_CNg܂BpPbgLocationtB[hANCAg̃_CNgĂ܂y2zBł́ARgeꂽŏWeby[W_CNgƂȂĂ܂BŌɃT[oXe[^XR[h200𑗂Ay[W̃Rec̃pPbggē]āA܂B

܂Ƃ
̏͂ł́AAvP[Vw̃gtBbN𒲍ۂɂ悭ڂɂAʓIȃvgRЉ܂B̌ɑ͂ł́A푽l̎HIȃViIʂĐVvgRɂĊwԂƂƂɁA{͂ŏЉvgRɂĂAЉ̂܂܂ȋ@\ɂĐĂ܂B
X̃vgRɏڂm肽΁A֘ARFCǂނA܂́uTCP/IP GuideviCharles KozeriokANo Starch Press 2005NjQƂĂB܂t^̃\[XꗗQlɂĂB
