还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
.传输层协议分析2数据包捕获分析部分
2.A实验目的
2.1理解报文首部格式和字段的作用,连接的建立和释放过程,TCP TCP数据传输中编号与确认的作用TCP实验内容
2.2应用应用程序传输文献,截取报文,分析报文首部信TCP TCP TCP息,连接的建立过程,数据的编号和确认机制TCP TCP实验原理
2.3协议是传输控制协议的简称,工作在网络层协议之上,是面向连接的,可靠的,端到端的TCP传输层协议1的报文格式TCP报文段分为头部和数据两部分,如图TCP1:图报文段的总体结构1TCP首部数据部分TCP TCP报文段首部又分为固定部分和选项部分,固定部分为如图所示,这些字段的组TCP20B,2合实现了的所有功能TCP图报文段的首部2TCP unsignedchar*dbuf=udppkt+sizeofstruct udp_hdr;memcpydbutbufjen;Uh-source=htonss_port;Uh-dest=htonsd_port;Uh-len=htonssizeofstruct udp_hdrO+len;Uh-check=O;Un-check=udpcksumdjp d_port,sjp udppkt,sizeofstruct udp_hdr+len;//return udppkt;}源端口目的端口序号确认号A F头部U PR S长度R CS SY1保存窗口4bitG KH TNN校验和紧急指针选项长度可变填充采用传输输连接的方式传送报文,传输连接涉及连接建立、数据传输和连接释放三个TCP TCP阶段2连接的建立TCP连接建立采用次握手”方式TCP“3一方面,主机的向主机的发出连接请求报文段,其首部中的同步位应A TCPB TCPSYN置同时选择一个序号表白在后面传送数据时的第一个数据字节的序号是如图所示1,X,X+1,3主机A主机B客户服务器进程进程和彬打开被动打开SYN=1,ACK=O,SEQ=1200连挎请求SYN=1,ACK=1,SEQ=4800,AN=1201角认SYN,ACK=1,SEQ=1201,AN=4801确认图连接建立的次握手过程3TCP3然后,主机的收到连接请求报文段后,若批准,则发回确认在确认报文段中应将B TCP和都置确认号应为同时也为自己选择一个序号SYN ACK1,X+1,Yo最后,主机的收到的确认后,要向发回确认,其置确认号为而自A TCPB B ACK LY+1,己的序号为的标准规定,置的报文段都要消耗掉一个序号同时,运营客户进X+l TCPSYN1程的主机的告知上层应用进程,连接已经建立当主机向发送第一个数据报文段A TCP A B时,其序号仍为由于前一个确认报文段并不消耗序号X+1,当运营服务器进程的主机的收到主机的确认后,也告知其上层应用进程,连接已经建B TCPA立此外,在连接建立的过程中,还运用报文段首部的选项字段进行双方最大报文段长度TCP TCP协商,拟定报文段的数据字段的最大长度双方都将自己可以支持的写入选项字段,MSS MSS比较之后,取较小的值赋给并应用于数据传送阶段MSS,3数据的传送TCP为了保证传输的可靠性,采用面向字节的方式,将报文段的数据部分进行编号,每个TCP TCP字节相应一个序号并在连接建立时,双方商定初始序号在报文段首部中,序号字段和数据部分长度可以拟定发送方传送数据的每一个字节的序号,确认号字段则表达接受方希望下次收到的数据的第一个字节的序号,即表达这个序号之前的数据字节均已收到这样既做到了可靠传输,又做到了全双工通信当然,数据传送阶段有许多复杂的问题和情况,如流量控制、拥塞控制、重传机制等,本次实验不探究连接的释放4JTCP在数据传输结束后,通信的双方都可以发出释放连接的请求连接的释放采用次握TCP“4手”如图口飞
②-SEQ XQFIN,应用进程释放连接-------------------------------------------------------------------►通6主1应用进根不再A发送报文V------------A型SEQ-AWX+1--------------------------确认J一应用进程/FIN,ACK,SEQ=Y,ACK=X+1___________v放连接确认ACK,SEQ=X+1,ACK=Y+1不再»B发送报文图连接释放的次握手过程4TCP4一方面,设图中主机的应用进程先向其发出释放连接的请求,并且不再发送数据4A TCP告知对方要释放从到这个方向的连接,将发往主机的报文段首部的中止位置TCPA B B TCP1,其序号等于前面已传送过的数据的最后一个字节的序号加X lo主机的收到释放连接告知后即发出确认,其序号为确认号为同时告知高层应BTCPY,X+1,用进程,如图中的箭头
①这样从到的连接就被释放了,连接处在半关闭状态,相称于主A B此机对主机说“我已经没有数据发送了但是假如你尚有数据要发送,我仍然接受”AB后,主机不再接受发来的数据但若主机尚有一些数据要发给B AB则可以继续发送(这种情况很少)主机只要对的收到数据,仍A,A然向发送确认B若主机不再向主机发送数据,其应用进程就告知释放连接,如B A TCP图中的箭头
②主机发出的连接释放报文段必须将中止位和确B FIN认位置并使其序号仍为丫(由于署名发送的确认报文段不消耗ACK1,序号),但是还必须反复上次已经发送过的主机必须对ACK=X+1A此发出确认,将置而自己的序号仍然是由于根ACK1,ACK=Y+1,X+1,据标准,前面发送过的报文段要消耗掉一个序号这样就把TCP FIN到的反方向的连接释放掉主机的再向其应用进程报告,BAATCP整个连接已经所有释放实验环节44环节在中设立过滤条件,协议为地址为本机一〉并开始截获报文;1Wireshark TCPHTTP,any,环节打开完毕后,保存截获的报文并命名为学号”,分析捕获的报文
2.com.,“TCP这里,的连接和建立采用的是三次握手方式,本机是,远端主机TCP
192.
168.
3.3是
192.
168.
3.183环节分析连接建立过程的前个报文,填写下表3TCP31表建立过程的三个报文信息1TCP字段名称第一条报文第二条报文第三条报文报文序号170417161718Sequence Nunber830849835ACK Number289291237ACK12911SYN111No.Time SourceDestination ProtocolLengthInfo
123.
125.
54.248TCP664893r80[SYN]Seq=0Win=8192Len=0MSS=1460WS=256SACK_PERM=1TCP6680-4893[SYN,ACK]Seq=0Ack=lWin=14600Len=0MSS=1448SACK_PERM=1WS=512TCP544893-80[ACK]Seq=lAck=lWin=66560Len=0HTT565GET/static/a/
144.
7259.gif79698591975HTTP/
1.1P6080-4893[ACK]Seq=lAck=512Win=15872Len=0TCP397MTTP/
1.1200OKGIF89aHTT544893r80[ACK]Seq=512Ack=344Win=66048Len=0P565GET/static/a/
144.
7259.gif76919915220HTTP/
1.1TCP397HTTP/
1.1200OKGIF89a103HTCTTP544893-80[ACK]Seq=1023Ack=687Win=65792Len=0113PTCP664894r80[SYN]Seq=0Win=8192Len=0MSS=1460W5=256SACK_PERM=
1.2239HTCTTP6680-4894[SYN,ACK]Seq=0Ack=lWin=5840Len=0MSS=1448SACK_PERM=1WS=12133PTCP544894-»80[ACK]Seq=lAck=lWin=66560Len=08143HTTP311GET/favicon.icoHTTP/
1.115239TCP6080-4894[ACK]Seq=lAck=258Win=6912Len=016239TCP365[TCPsegmentofareassembledPDU]17239TCP1502[TCPsegmentofareassembledPDU]183TCP544894-80[ACK]Seq=258Ack=1760Win=66560Len=019239TCP1502[TCPsegmentofareassembledPDU]20239TCP1502[TCPsegmentofareassembledPDU]21239HTTP1140HTTP/
1.1200OKimage/x-icon223TCP544894-80[ACK]Seq=258Ack=5742Win=66560Len=0233HTTP565GET/static/a/
144.
8189.gif76520702108HTTP/
1.1环节分析截获报文中数据发送部分的第一条报文及其确认报文,将报文中的字段值填写4TCP在表格中2■
10.
000000000192168.
3.
3123.
125.
54.248TCP664893-80[SYN]Seq=0Win=8192Len=0MSS=1460WS=256SACK_PERM=1£Frame1:66bytesonwire528bits,66bytescaptured528bitsoninterface03EthernetII,Src:Elitegro_9b:9b:dc10:78:d2:9b:9b:de.Dst:Tp-LinkT_b8:50:fO00:19:eO:b8:50:f0□InternetProtocolVersion4,Src:
192.
168.
3.
3192.
168.
3.3,Dst:
123.
125.
54.
248123.
125.
54.248Version:4HeaderLength:20bytessDifferentiatedServicesField:0x00DSCP0x00:Default;ECN:0x00:Not-ECTNotECN-CapableTransportTotalLength:52Identification:0x3e8316003i±iFlags:0x02DontFragmentFragmentoffset:0Timetolive:64Protocol:TCP6田Headerchecksum:0x0000[validationdisabled]Source:192,
168.
3.
3192.
168.
3.3Destination:
123.
125.
54.
248123.
125.
54.248[SourceGeoIP:Unknown][DestinationGeoIP:unknown]臼TransmissionControlProtocol,SrcPort:48934893,DstPort:8080,Seq:0,Len:0SourcePort:48934893DestinationPort:8080[Streamindex:0][TCPSegmentLen:0]Sequencenumber:0relativesequencenumberAcknowledgmentnumber:0HeaderLength:32bytesa|....000000000010=Flags:0x002SYNWindowsizevalue:8192[Calculatedwindowsize:8192]Urgentpointer:0Options:12bytes,Maximumsegmentsize,No-OperationNOP,Windowscale,No-OperationNOP,No-OperationNOP,SACKpermittednchecksum:0x7647[validationdisabled]表报文首部信息2TCP字段名长度字段值字段意义发送报文确认报文源端口16发送目的端口16确认端标语是唯一标记序号32确认好32确认头部长度4保存6保存字段窗口16校验和16紧急指针16选项(长度可变)环节连接建立时,其报文首部与其它报文不同,有一个字段,它的作用是什么?结5TCP TCPoption合协议规定的以太网最大帧长分析此数据是怎么得出来的?IEEE
802.3环节分析数据传送阶段的前个报文,将报文信息填入表6TCP
833744.
8044020222192.
168.
3.185HTTP ion]NotModified
3754.
8044510192168.
3.185TCP66[TCPDupACK357#1]1704-80[ACK]Seq=830Ack=289Win=66320Len=0SLE=1SRE=
289.
3764.
8097750222192.
168.
3.185HTTP344[TCPRetransmission]HTTP/
1.1304NotModified
3774.8097980192TCP66[TCPDupACK356#1]1716-80[ACK]Seq=849Ack=291Win=66316Len=0SLE=15RE=
2913784.8129650222HTTP290[TCPRetransmission]HTTP/
1.1304NotModified
3794.8129910192TCP66[TCPDupACK358#1]1718-80[ACK]Seq=835Ack=237Win=66372Len=0SLE=1SRE=237•
3804.8147490222HTTP290HTTP/
1.1304NotMod jfjed
3814.8147500222HTTP290HTTP/
1.1304NotModified
3824.
8149700222.HTTP343[TCPRetransmission]HTTP/
1.1304NotModified
3834.8149910192TCP66[TCPDupACK359#1]1706-80[ACK]Seq=841Ack=290Win=66316Len=0SLE=1SR£=290表数据传送部分的前个报文3TCP8报文报文种类序号字段确认号字数据长度被确认报文序号窗口序号段3744确认28932428912313754发送1066165803764确认344291123113784发送1066165793794确认23729023712313804发送066165931确认38142890290290167683824确认290129029016768实验总结55在实验中,通过度析截获的报文首部信息,可以看到首部中的序号、确认号等字段是TCPTCP可靠连接的基础分析头部信息,分析次握手”过程通过对数据传送阶段报文的初步分析,了解数据的TCP“3编码和确认机制总之,协议中的各项设立都是为了在数据传输时提供可靠的面向连接的服务TCP编程构造数据包部分
2.B UDP使用语言构造数据包程序C UDP首部和伪首部结构体定义1UDP/*UDP首部*///UDP中校验使用的伪首部struct udphdr{struct pseudo_headerunsigned shortu_src;{int srclp;unsigned shortu_dst;short udpjen;unsigned shortujen;char rsv;unsigned shortu_cksum;char protocol;char u_data[U_MAXLEN];unsigned shortsrc_port;;unsigned shortdsc_port;unsigned shortlen;unsigned shortcheck_sum;char data
[2];;构建报文数据2UDPint build_udp_Packagestruct socket_pair*sp,const unsigned char*buf,int len,unsignedchar*udpPacket[]Jnt*udpPacketLen{*udpplen=sizeofstruct udp_hdr+len;struct udp_hdr*uh=struct udp_hdr*udppkt;。