分析TCP及UDP报文格式
- 格式:doc
- 大小:696.50 KB
- 文档页数:8
实训报告UDP与TCP的对比分析1.实训目的1)熟悉UDP与TCP协议的主要特点及支持的应用协议2)理解UDP的无连接通信与TCP的面向连接通信3)熟悉TCP报文段和UDP报文的数据封装格式2.实训拓扑图3.主要操作步骤及实训结果记录(1)任务一:观察UDP无连接的工作模式步骤1:捕获UDP事件注意:本步骤仅DNS,没有UDP。
因为UDP无连接。
✧步骤2:分析UDP无连接的工作过程本步骤仅查看第4层中UDP报文段的内容。
注意观察并分析以下几项内容:●运输层的UDP发送DNS的请求之前是否有先建立连接;●记录UDP的用户数据报首部中的LENGTH字段的值,分析该报文的首部及数据部分的长度。
分析完成后单击Reset Simulation(重置模拟)按钮,将原有的事件全部清空。
事件一:事件二:事件三:事件四:(2)任务二:观察TCP面向连接的工作模式 步骤1:捕获TCP事件✧步骤2:分析TCP面向连接的工作过程本步骤仅查看第4层中TCP报文段的内容。
注意观察并分析以下几项内容:●在捕获到的第一个HTTP事件之前及最后一个HTTP事件之后是否有TCP事件;●第一个以及最后一个HTTP事件对应的TCP报文中的sequence number(序号)、ACK number(确认号)的值以及它们与data length(数据长度)的关系;●并查看TCP报文首部中固定部分的长度。
分析完成后单击Reset Simulation(重置模拟)按钮,将原有的事件全部清空。
事件一:事件二:事件三:事件四:4.实训结果分析及心得体会(1) TCP报文首部中的序号和确认号有什么作用?答:序号和确认号:是TCP可靠传输的关键部分。
序号是本报文段发送的数据组的第一个字节的序号。
在TCP传送的流中,每一个字节一个序号。
序号确保了TCP传输的有序性。
确认号,即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。
udp报文格式解析
UDP(用户数据报协议)报文格式主要由4个16位字段组成,分别是源端口、目的端口、长度和校验值。
1. 源端口:源端口字段占据UDP报文头的前16位,通常包含发送数据报
的应用程序所使用的UDP端口。
接收端的应用程序利用这个字段的值作为
发送响应的目的地址。
这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号写入该字段中。
如果不写入端口号,则把这个字段设置为0。
这样,接收端的应用程序就不能发送响应了。
2. 目的端口:接收端计算机上UDP软件使用的端口,占据16位。
3. 长度:该字段占据16位,表示UDP数据报长度,包含UDP报文头和UDP数据长度。
因为UDP报文头长度是8个字节,所以这个值最小为8。
4. 校验值:该字段占据16位,可以检验数据在传输过程中是否被损坏。
以上内容仅供参考,可以查阅专业书籍或文献获取更全面和准确的信息。
常见网络协议报文格式汇总网络协议是计算机网络通信中,用于规定通信双方传输数据的格式和规则的标准化。
协议中的报文是通信双方之间进行数据交换的载体。
下面我将简单介绍一些常见的网络协议报文格式。
1. HTTP(Hypertext Transfer Protocol)报文格式:-请求报文格式:```<Method> <Request-URI> <HTTP-Version><Headers><Entity-Body>```-响应报文格式:```<HTTP-Version> <Status-Code> <Reason-Phrase><Headers><Entity-Body>```2. TCP(Transmission Control Protocol)报文格式:-TCP报文格式如下:```Source Port Destination PortSequence Number Acknowledgment NumberData Offset Reserved Control BitsWindow Checksum Urgent PointerOptions (if any)Data```3. UDP(User Datagram Protocol)报文格式:-UDP报文格式如下:```Source Port Destination PortLength ChecksumData```4. IP(Internet Protocol)报文格式:-IPv4报文格式如下:```Version IHL Type of Service Total LengthIdentification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP AddressDestination IP AddressOptions (if any)Padding (if necessary)Data```-IPv6报文格式如下:```Version Traffic Class Flow Label Payload Length Next HeaderHop LimitSource IPv6 AddressDestination IPv6 AddressOptions (if any)Padding (if necessary)Data```5. ICMP(Internet Control Message Protocol)报文格式:-ICMP报文格式如下:```Type Code ChecksumIdentifier Sequence NumberData (Optional)```6. Ethernet报文格式:- Ethernet报文格式如下:```Destination MAC AddressSource MAC AddressEthernet TypePayload```7. DNS(Domain Name System)报文格式:-DNS报文格式如下:```DNS Message HeaderDNS Message Question SectionDNS Message Answer SectionDNS Message Authority SectionDNS Message Additional Section```8. FTP(File Transfer Protocol)报文格式:-FTP报文格式如下:```Arguments```9. SMTP(Simple Mail Transfer Protocol)报文格式:-SMTP报文格式如下:```Arguments```这些是常见的网络协议的报文格式,它们用于在计算机网络中进行数据传输和通信。
各协议报文格式介绍协议报文格式是指在网络通信中,不同协议所使用的报文的结构和格式。
不同的协议根据其功能和要求,设计了不同的报文格式来实现数据的传输和交换。
以下是几种常见的协议报文格式的介绍:1.HTTP(超文本传输协议)报文格式:HTTP报文由请求报文和响应报文组成。
请求报文包括请求行、请求头部和请求正文,用于向服务器发送请求。
响应报文包括状态行、响应头部和响应正文,用于服务器向客户端返回响应。
2.FTP(文件传输协议)报文格式:3.SMTP(简单邮件传输协议)报文格式:SMTP报文格式基于文本格式,包括邮件头和邮件体两部分。
邮件头包含了发信人、收件人、主题等信息,邮件体则包含了邮件的具体内容。
4.POP3(邮局协议版本3)报文格式:5.DNS(域名系统)报文格式:DNS报文格式包括头部和问题部分、回答部分、授权部分和附加部分。
头部包含了报文的基本信息,问题部分包含了查询的域名或IP地址,回答部分则包含了DNS服务器返回的结果。
6.TCP(传输控制协议)报文格式:TCP报文格式由TCP头部和数据部分组成。
TCP头部包含了源端口、目标端口、序列号、确认号等信息,数据部分则是传输的具体数据。
7.UDP(用户数据报协议)报文格式:UDP报文格式也由UDP头部和数据部分组成。
UDP头部包含了源端口、目标端口、长度等信息,数据部分则是要传输的数据。
8.IP(互联网协议)报文格式:IP报文格式由IP头部和数据部分组成。
IP头部包含了版本、首部长度、服务类型、源IP地址、目标IP地址等信息,数据部分则是要传输的数据。
以上是几种常见的协议报文格式的介绍。
每种协议都有自己特定的报文格式,通过报文的解析和处理,可以实现网络数据的传输和交换。
以太⽹帧格式、IP报⽂格式、TCPUDP报⽂格式1、ISO开放系统有以下⼏层:7应⽤层6表⽰层5会话层4传输层3⽹络层2数据链路层1物理层2、TCP/IP ⽹络协议栈分为应⽤层(Application)、传输层(Transport)、⽹络层(Network)和链路层(Link)四层。
通信过程中,每层协议都要加上⼀个数据⾸部(header),称为封装(Encapsulation),如下图所⽰不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame)。
数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,最后将应⽤层数据交给应⽤程序处理。
其实在链路层之下还有物理层,指的是电信号的传递⽅式,⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤等都属于物理层的概念。
3、集线器(Hub)是⼯作在物理层的⽹络设备,⽤于双绞线的连接和信号中继(将已衰减的信号再次放⼤使之传得更远)。
交换机是⼯作在链路层的⽹络设备,可以在不同的链路层⽹络之间转发数据帧(⽐如⼗兆以太⽹和百兆以太⽹之间、以太⽹和令牌环⽹之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层⾸部重新封装之后再转发。
路由器是⼯作在第三层的⽹络设备,同时兼有交换机的功能,可以在不同的链路层接⼝之间转发数据包,因此路由器需要将进来的数据包拆掉⽹络层和链路层两层⾸部并重新封装。
4、⽹络层的IP 协议是构成Internet 的基础。
IP 协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应⽤程序中提供⽀持。
传输层可选择TCP 或UDP 协议。
TCP 是⼀种⾯向连接的、可靠的协议,有点像打电话,双⽅拿起电话互通⾝份之后就建⽴了连接,然后说话就⾏了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。
数据包报文格式(IP包TCP报头UDP报头)一、IP包格式IP数据包是一种可变长分组,它由首部和数据负载两部分组成。
首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定。
数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B。
1、版本号(Version)长度为4位(bit),IP v4的值为0100,IP v6的值为0110。
2、首部长度指的是IP包头长度,用4位(bit)表示,十进制值就是[0,15],一个IP包前20个字节是必有的,后40个字节根据情况可能有可能没有。
如果IP包头是20个字节,则该位应是20/4=53、服务类型(Type of Service TOS)长度为8位(bit),其组成:前3位为优先级(Precedence),后4位标志位,最后1位保留未用。
优先级主要用于QoS,表示从0(普通级别)到7(网络控制分组)的优先级。
标志位可分别表示D(Delay更低的时延)、T(Throughput 更高的吞吐量)、R(Reliability更高的可靠性)、C(Cost 更低费用的路由)。
TOS只表示用户的请求,不具有强制性,实际应用中很少用,路由器通常忽略TOS字段。
4、总长度(Total Length)指IP包总长度,用16位(bit)表示,即IP包最大长度可以达216=65535字节。
在以太网中允许的最大包长为1500B,当超过网络允许的最大长度时需将过长的数据包分片。
5、标识符(Identifier)长度为16位,用于数据包在分段重组时标识其序列号。
将数据分段后,打包成IP 包,IP包因走的路由上不同,会产生不同的到达目地的时间,到达目地的后再根据标识符进行重新组装还原。
该字段要与标志、段偏移一起使用的才能达到分段组装的目标。
6、标志(Flags)长度为3位,三位从左到右分别是MF、DF、未用。
MF=1表示后面还有分段的数据包,MF=0表示没有更多分片(即最后一个分片)。
以太网数据格式与各种报文格式一、数据封装当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。
而再这个过程中,每一层都会对要发送的数据加一些首部信息。
整个过程如下图。
如图可以看出,每一层数据是由上一层数据+本层首部信息组成的,其中每一层的数据,称为本层的协议数据单元,即PDU.应用层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段),图示为TCP段传输层的数据(TCP段)传给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包); 图示为IP数据包网络层数据报(IP数据包)被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧),图示为以太网帧。
最后,帧被转换为比特,通过网络介质传输。
这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
二、数据格式需要注意的是,这里所说的以太网帧,与我们常说的以太网是不一样的。
下面我们就来介绍每一层数据的首部信息内容。
首先我们知道世界上有个协会叫作IEEE,即电子工程师协会,里面有个分会,叫作IEEE802委员会,是专门来制定局域网各种标准的。
而802下面还有个分部,叫作802.3.就是我们经常提到的IEEE802.3,这个部门制定的规范叫以太网规范,这个以太网规范中就定义了上面提到的“以太网首部”,这个以太网规范,实际只定义了数据链路层中的MAC层和物理层规范。
(注意数据链路层包括MAC子层和LLC子以太网帧格式:以太网常用帧格式有两种,一种是Ethernet II,另一种是IEEE 802.3 格式。
这两种格式区别是:Ethernet II中包含一个Type字段,。
其中Type字段描述了,以太网首部后面所跟数据包的类型,例如Type为0x8000时为IP协议包,Type为8060时,后面为ARP协议包。
以太网中多数数据帧使用的是Ethernet II帧格式。
TCP/UDP报文格式TCP 协议为终端设备提供了面向连接的、可靠的网络服务,UDP 协议为终端设备提供了无连接的、不可靠的数据报服务。
从上图我们可以看出,TCP 协议为了保证数据传输的可靠性,相对于UDP 报文,TCP 报文头部有更多的字段选项。
首先让我们来看一下TCP 的报文头部主要字段:每个TCP 报文头部都包含源端口号(source port)和目的端口号(destination port),用于标识和区分源端设备和目的端设备的应用进程。
在TCP/IP 协议栈中,源端口号和目的端口号分别与源IP 地址和目的IP 地址组成套接字(socket),唯一的确定一条TCP 连接。
序列号(Sequence number)字段用来标识TCP 源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一个数据字节。
如果将字节流看作在两个应用程序间的单向流动,则TCP 用序列号对每个字节进行计数。
序列号是一个32bits 的数。
既然每个传输的字节都被计数,确认序号(Acknowledgement number,32bits)包含发送确认的一端所期望接收到的下一个序号。
因此,确认序号应该是上次已成功收到的数据字节序列号加1。
TCP 的流量控制由连接的每一端通过声明的窗口大小(windows size)来提供。
窗口大小用数据包来表示,例如Windows size=3, 表示一次可以发送三个数据包。
窗口大小起始于确认字段指明的值,是一个16bits 字段。
窗口大小可以调节。
校验和(checksum)字段用于校验TCP 报头部分和数据部分的正确性。
最常见的可选字段是MSS(Maximum Segment Size,最大报文大小)。
MSS指明本端所能够接收的最大长度的报文段。
当一个TCP 连接建立时,连接的双方都要通告各自的MSS 协商可以传输的最大报文长度。
我们常见的MSS有1024(以太网可达1460 字节)字节。
实验四TCP/UDP协议分析【实验目的】1、理解与掌握TCP协议2、UDP协议通信机制【预习要求】1、复习课堂上所学习的TCP协议、UDP协议方面基本知识。
【工具软件】协议解码工具:wireshark(或sniffer pro)【实验原理】(一)TCP说明:(1)每个TCP段都包括源端和目的端的端口号,用于寻找发送端和接收端的应用进程。
这两个值加上IP首部的源端IP地址和目的端IP地址唯一确定一个TCP连接。
(2)序号用来标识从TCP发送端向接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。
如果将字节流看作在两个应用程序间的单向流动,则TCP用序号对每个字节进行计数。
(3)当建立一个新连接时,SYN标志变1。
序号字段包含由这个主机选择的该连接的初始序号ISN,该主机要发送数据的第一个字节的序号为这个ISN加1,因为SYN标志使用了一个序号。
(4)既然每个被传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。
因此,确认序号应当时上次已成功收到数据字节序号加1。
只有ACK标志为1时确认序号字段才有效。
(5)发送ACK无需任何代价,因为32位的确认序号字段和ACK标志一样,总是TCP 首部的一部分。
因此一旦一个连接建立起来,这个字段总是被设置,ACK标志也总是被设置为1。
(6)TCP为应用层提供全双工的服务。
因此,连接的每一端必须保持每个方向上的传输数据序号。
(7)TCP可以表述为一个没有选择确认或否认的华东窗口协议。
因此TCP首部中的确认序号表示发送方已成功收到字节,但还不包含确认序号所指的字节。
当前还无法对数据流中选定的部分进行确认。
(8)首部长度需要设置,因为任选字段的长度是可变的。
TCP首部最多60个字节。
(9)6个标志位中的多个可同时设置为1◆URG-紧急指针有效◆ACK-确认序号有效◆PSH-接收方应尽快将这个报文段交给应用层◆RST-重建连接◆SYN-同步序号用来发起一个连接◆FIN-发送端完成发送任务(10)TCP的流量控制由连接的每一端通过声明的窗口大小来提供。
Wireshark抓包分析TCP.IP.UDP.ICMP报⽂格式(移动互联⽹⽅向)TCP 报⽂格式分析:TCP 报⽂段的报头有 10 个必需的字段和 1 个可选字段。
报头⾄少为 20 字节。
1)源端⼝(16位):标识发送报⽂的计算机端⼝或进程。
⼀个 TCP 报⽂段必须包括源端⼝号,使⽬的主机知道应该向何处发送确认报⽂。
2)⽬的端⼝(16位):标识接收报⽂的⽬的主机的端⼝或进程。
由抓包数据可得源端⼝号为12762,⽬的端⼝号为803)序号(也叫序列号)(32位):⽤于标识每个报⽂段,使⽬的主机可确认已收到指定报⽂段中的数据。
当源主机⽤于多个报⽂段发送⼀个报⽂时,即使这些报⽂到达⽬的主机的顺序不⼀样,序列号也可以使⽬的主机按顺序排列它们。
在建⽴连接时发送的第⼀个报⽂段中,双⽅都提供⼀个初始序列号。
TCP 标准推荐使⽤以 4ms 间隔递增 1 的计数器值作为这个初始序列号的值。
使⽤计数器可以防⽌连接关闭再重新连接时出现相同的序列号。
序列号表达达到2^32 - 1后⼜从0开始,当建⽴⼀个新的连接时,SYN标志为1,系列号将由主机随机选择⼀个顺序号由图可得现序列号为25e4d8a84)确认号(32位):⽬的主机返回确认号,使源主机知道某个或⼏个报⽂段已被接收。
如果 ACK 控制位被设置为 1,则该字段有效。
确认号等于顺序接收到的最后⼀个报⽂段的序号加 1,这也是⽬的主机希望下次接收的报⽂段的序号值。
返回确认号后,计算机认为已接收到⼩于该确认号的所有数据。
由图可得现确认号为59eafa0c5)数据偏移(⾸部长度)(4位)TCP 报⽂段的数据起始处距离 TCP 报⽂段的起始处有多远,即⾸部长度。
由于 TCP 报头的长度随 TCP 选项字段内容的不同⽽变化,因此报头中包含⼀个指定报头字段的字段。
该字段以 32 ⽐特为单位,所以报头长度⼀定是 32 ⽐特的整数倍,有时需要在报头末尾补 0 。
由抓包图有偏移量在0x50中,占4bit,0x50转化为⼆进制数0101 0000 所以偏移量是 0101=5,所以TCP报⽂⾸部长度为5* 4 = 20字节。
计算机网络Wireshark抓包分析报告目录1. 使用wireshark获取完整的UDP报文 (3)2. 使用wireshark抓取TCP报文 (3)2.1 建立TCP连接的三次握手 (3)2.1.1 TCP请求报文的抓取 (4)2.1.2 TCP连接允许报文的抓取 (5)2.1.3 客户机确认连接报文的抓取 (6)2.2 使用TCP连接传送数据 (6)2.3 关闭TCP连接 (7)3. 实验心得及总结 (8)1. 使用wireshark获取完整的UDP报文打开wireshark,设置监听网卡后,使用google chrome 浏览器访问我腾讯微博的首页/welcomeback.php?lv=1#!/list/qqfriends/5/?pgv_ref=im.perinfo.pe rinfo.icon?ptlang=2052&pgv_ref=im.perinfo.perinfo.icon,抓得的UDP报文如图1所示。
图1 UDP报文分析以上的报文内容,UDP作为一种面向无连接服务的运输协议,其报文格式相当简单。
第一行中,Source port:64318是源端口号。
第二行中,Destination port:53是目的端口号。
第三行中,Length:34表示UDP报文段的长度为34字节。
第四行中,Checksum之后的数表示检验和。
这里0x表示计算机中16进制数的开始符,其后的4f0e表示16进制表示的检验和,把它们换成二进制表示为:0100 1111 0000 1110.从wireshark的抓包数据看出,我抓到的UDP协议多数被应用层的DNS协议应用。
当一台主机中的DNS应用程序想要进行一次查询时,它构成了一个DNS 查询报文并将其交给UDP。
UDP无须执行任何实体握手过程,主机端的UDP为此报文添加首部字段,并将其发出。
2. 使用wireshark抓取TCP报文2.1 建立TCP连接的三次握手建立TCP连接需要经历三次握手,以保证数据的可靠传输,同样访问我的腾讯微博主页,使用wireshark抓取的TCP报文,可以得到如图2所示的客户机和服务器的三次握手的过程。
《计算机网络基础》课程报告基于Wireshark的TCP和UDP报文分析院系:班级:学号:姓名:教师:2012年11月4日目录一 TCP连接时的三次握手 (3)二 TCP连接释放时的四次握手 (5)三 UDP报文分析 (7)3.1 UDP报文结构 (7)3.2 UDP检验和的计算 (7)四结束语 (9)一、TCP连接时的三次握手TCP 协议为终端设备提供了面向连接的、可靠的网络服务。
TCP在交换数据报文段之前要在发送方和接收方之间建立连接。
客户是连接的发起者,服务器是被动打开和客户进行联系。
具体的过程如下所述。
第一次握手:客户发送 SYN=1,seq=0的TCP报文给服务器Ps:客户的TCP向服务器发出连接请求报文段,其首部中的同步位SYN = 1。
序号 seq = 0,表明报文中未携带数据。
报文如下:源端口号:56644(56644)目的端口号:http(80)[Stream index: 0]Sequence number: 0 (relative sequence number)Header length: 32 bytesFlags: 0x02 (SYN)000. .... .... = Reserved: Not set...0 .... .... = Nonce: Not set.... 0... .... = Congestion Window Reduced (CWR): Not set.... .0.. .... = ECN-Echo: Not set.... ..0. .... = Urgent: Not set.... ...0 .... = Acknowledgement: Not set.... .... 0... = Push: Not set.... .... .0.. = Reset: Not set.... .... ..1. = Syn: Set.... .... ...0 = Fin: Not setWindow size: 8192Checksum: 0x1030 [validation disabled]Options: (12 bytes)第二次握手:服务器发送SYN=1,ACK=1,seq=0的TCP报文给客户Ps:服务器的TCP收到客户发来的连接请求报文段后,如同意,则发回确认。
2TCP报文段的格式TCP 报文段地格式lTCP 虽然是面向字节流地,但TCP 传送地数据单元却是报文段。
l TCP 报文段分为首部与数据两部分。
TCP 地全部功能都体现在它首部各字段地作用。
l TCP 报文段首部地前 20个 字节是固定地,后面有 4N 字节是根据需要而增加地选项(N 需要是整数)。
因此 TCP 首部地最小长度是 20 字节。
TCP 首部20 字节地固定首部目 地 端 口数据偏移检 验 与选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FI N 32 位S Y N R S T P S H A C K UR G 位 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP 数据部分IP 首部发送在前3TCP报文段地格式TCP 首部20字节固定首部目地端口数据偏移检验与选项(长度可变)源端口序号紧急指针窗口确认号保留F INSYNRSTPSHACKURG填充源端口与目地端口字段——各占 2 字节。
该字段定义了在主机发送与接收该报文段地应用程序所使用地端口号,用于运输层地复用与分用。
TCP报文段地格式TCP 首部20字节固定首部目地端口数据偏移检验与选项(长度可变)源端口序号紧急指针窗口确认号保留F INSYNRSTPSHACKURG填充序号字段——占 4 字节。
在一个TCP连接传送地数据流地每一个字节都按顺序进行编号。
序号字段地值则指地是本报文段所发送地数据地第一个字节地序号。
TCP报文段地格式TCP 首部20字节固定首部目地端口数据偏移检验与选项(长度可变)源端口序号紧急指针窗口确认号保留F INSYNRSTPSHACKURG填充确认号字段——占 4 字节,是期望收到对方地下一个报文段地数据地第一个字节地序号。
表示对该序号字节之前地所有字节地累积确认。
TCP报文段地格式TCP 首部20字节固定首部目地端口数据偏移检验与选项(长度可变)源端口序号紧急指针窗口确认号保留F INSYNRSTPSHACKURG填充数据偏移——占 4 位,它指出 TCP 报文段数据起始处地位置,相当于首部长度。
UDP的报文格式
1.UDP协议
UDP是网络通信协议中的一种,大数据短距离的局域网通信,数据格式如下:
UDP伪首部
32位源IP地址
32位目的IP地址
08位协议(17)16位UDP长度
UDP首部
16位源端口16位目的端口
UDP长度校验和报文数据报文
2.UDP数据包的解析
说明:
一、首部校验和(Header Checksum)
1.首先将HeaderChecksum清零
2.然后将IPv4首部的20Bytes,以16bits(2Bytes)为一组
3.把2中划分好的数值逐个相加,如果遇到进位,将进位值加到值的最低位上。
举例:(用16进制表示)0xBB5E+0xFCED=0x1B84B,可以看出在这个例子中结果有进位,所以将进位值1加到值的最低位上,得到结果是0xB84C。
4.把所有的组相加到一起后,得到的结果是一个16位的数,将这个结果取反后则得到此首部校验和。
二、校验和(Checksum)
1.首先将Checksum清零
2.然后将右图中的内容,以16bits(2Bytes)为一组
3.把2中划分好的数值逐个相加,如果遇到进位,将进位值加到值的最低位上。
举例:(用16进制表示)0xBB5E+0xFCED=0x1B84B,可以看出在这个例子中结果有进位,所以将进位值1加到值的最低位上,得到结果是0xB84C。
4.把所有的组相加到一起后,得到的结果是一个16位的数,将这个结果取反后则得到此校验和。
实
验
报
告
姓名:李冬冬
班级:RjbJava103
学号:201007092316
㈠实验目的和要求:
具体分析数据报文的格式,包括UDP、TCP、ARP等的详细信息。
㈡实验设备及要求:
抓包工具:wireshark-setup-1.0.0Wireshark(Ethereal)_网络监测㈢实验步骤:
①先用抓包工具进行抓包。
②随机找出要分析的数据报文。
③根据报文格式的不同进行具体的分析。
㈣实验结果:
⒈下面为UDP报文:
分析结果如下:
Ⅰ:UDP报文在源主机和目的主机之间进行传送时的MAC地址。
Ⅱ:UDP报文在源主机和目的主机之间进行传送时的IP地址。
Ⅲ:UDP报文在源主机和目的主机之间进行传送时的UDP协
议。
⒉下面为TCP报文:
分析结果如下:
Ⅰ:TCP报文在源主机和目的主机之间进行传送时的MAC地址。
Ⅱ:UDP报文在源主机和目的主机之间进行传送时的IP地址。
Ⅲ:TCP报文在源主机和目的主机之间进行传送时的TCP协
议。
⒊下面为ARP报文:
分析结果如下:
Ⅰ:ARP报文在源主机和目的主机之间进行传送时的MAC地址。
Ⅱ:ARP报文在源主机和目的主机之间进行传送时的IP地址。
Ⅲ:TCP报文在源主机和目的主机之间进行传送时的ARP协议。
㈤实验结果讨论及分析:
充分具体的解析了UDP、TCP、ARP报文的每一段含义。
让我
们又重新对UDP协议有了更深的了解。
UDP协议特性和UDP数据报格式UDP(User Datagram Protocol)是一种面向数据报的传输层协议,与TCP一起构成了Internet协议套件中的两个最重要的协议之一、与TCP不同,UDP是一种无连接的协议,它不需要在发送数据之前先建立连接,也不需要在数据传输结束后断开连接。
UDP具有以下几个主要的特性:1.无连接性:UDP协议是无连接的,发送端发送数据报时,不需要与接收端建立连接。
这意味着UDP不需要为数据传输的可靠性和有序性负责,因此传输效率高。
2.高效性:UDP没有建立连接和断开连接的过程,因此没有额外的开销,传输效率高于TCP。
3.数据报形式:UDP将数据按照数据报的形式进行传输。
每个UDP数据报都包含了完整的源地址、目的地址和长度等信息,接收端可以根据数据报的信息判断数据的完整性。
4.不提供拥塞控制:UDP没有拥塞控制机制,当网络拥塞时,UDP仍然会继续发送数据,可能导致丢包和分组乱序,但却减少了网络流量控制的开销。
5.支持单播、多播和广播:UDP支持单播传输(一对一通信)、多播传输(一对多通信)和广播传输(一对所有通信)。
除了上述特性,UDP还有一些其他的特点:1.报文大小限制:由于每个UDP数据报都有一个固定的大小限制,通常为64KB,因此对于大型数据的传输需要进行分片。
2.不可靠性:UDP数据报可能会在传输过程中丢失、重复、或者乱序。
3.简单性:UDP相对于TCP来说更加简单,只提供最基本的传输服务,不提供流量控制、可靠性保证、拥塞控制等机制。
4.适用场景:UDP适用于对实时性要求较高的应用,如音视频传输、视频会议等,也常常用于网络中的一些控制或查询操作。
UDP数据报格式如下:数据报字段,长度(字节),描述:------------------:,:------------------:,:--------------------------------------------:源端口地址,2,标识发送端口号的16位数字目的端口地址,2,标识接收端口号的16位数字数据报长度,2,UDP数据报长度,包括首部和数据的长度校验和,2,校验和,用于检验数据报是否正确传输UDP数据报格式包括了源端口地址、目的端口地址、数据报长度和校验和等字段。
TCP报⽂格式+UDP报⽂格式+MAC帧格式TCP和UDP的区别:1)TCP是⾯向连接的,⽽UDP是⽆连接的2)TCP提供可靠服务,⽽UDP不提供可靠服务,只是尽最⼤努⼒交付报⽂3)TCP⾯向字节流,TCP把数据看成⼀串⽆结构的字节流,⽽UDP是⾯向报⽂的(UDP数据报+IP头部=IP数据报)4)TCP有拥塞控制,UDP没有拥塞控制5)TCP只提供点对点通信,⽽UDP提供点对点,点对多点,多点对多点的通信6)TCP提供的是全双⼯的可靠信道,⽽UDP提供的是不可靠信道7)TCP的⾸部开销有20个字节,⽽UDP的⾸部开销只有8个字节TCP报⽂格式序号:该报⽂段在整个报⽂中的序号,为本报⽂段发送的第⼀个字节的序号,⽐如该报⽂段第⼀个字节的序号为100,则该报⽂段的序号为100确认序号:指明下⼀个期待收到的字节序号,⽐如当前报⽂段的序号为100,报⽂段的数据部分共有200个字节,则确认序号为100+200=300⾸部长度:TCP报⽂⾸部长度,也是TCP报⽂数据部分的偏移量,以为存在选项部分保留位:⽬前没有被使⽤,设置为0标志位:URG=1:紧急⽐特,报⽂中有紧急数据,应该尽快传递ACK=1:确认⽐特,说明该报⽂是⼀个发送⽅返回的确认报⽂PSH=1:推送⽐特,指⽰接收⽅在接收到报⽂后应该尽快交给应⽤进程,⽽不是等到整个缓存填满才发送给应⽤进程RST=1:复位⽐特,TCP连接中出现严重差错,必须释放连接,然后重新建⽴连接SYN=1:同步⽐特,表⽰TCP连接正在建⽴中,该报⽂是⼀个协商报⽂FIN=1:终⽌⽐特,发送端已完成数据传输,请求释放连接窗⼝⼤⼩:接收窗⼝的⼤⼩,表⽰接收端希望接受的字节数校验和:反码求和,发送端计算,结果存⼊校验和字段,接收端校验,校验结果和校验和字段结果不同则丢弃报⽂,相同也不代表该报⽂没有出错,所以TCP的校验机制不能检查出所有等到错误,所以我们需要在应⽤层建⽴⼀套新的数据校验机制:MD5加密,在发送数据前使⽤MD5加密,并且将MD5摘要⼀起发送,接收端接收数据后再次进⾏MD5加密,加密结果等于发送的加密密钥则数据没有出错,不等于在数据出错了,抛弃该报⽂紧急指针:仅在紧急⽐特URG=1时才有效,指明该TCP报⽂中紧急数据的字节数,同时也指明了紧急数据的末尾位置,因为紧急数据后⾯就是普通数据,即使窗⼝为0,也可以发送紧急数据选项:(TCP报⽂除开选项和数据部分,总共20个字节)UDP报⽂格式:(UDP报⽂⾸部8个字节)MAC帧格式:以太⽹的帧格式:Preamble:前导同步码7个字节+帧开始定界符1个字节=8个字节Destination MAC adress:⽬的MAC地址Source MAC adress:源MAC地址Type/Length:帧类型User date :数据信息Frame Check Sequence:帧校验序列因此以太⽹帧的范围是72-1526字节。
计算机网络原理实验报告
实验名称实验七分析TCP及UDP报文格式
队别姓名学号实验日期 2012.11.8 实验报告要求: 1.实验目的 2.实验要求 3.实验环境 4.实验作业 5.问题及解决
6.思考问题
7.实验体会
【实验目的】
一、掌握TCP协议的作用和格式;
分析数据报各字段的含义及作用;
理解三次握手的过程;
学会计算TCP校验和的方法;
了解TCP的标志字段的作用。
二、观察UDP报文
观察DNS,QQ应用时UDP的格式
【实验要求】
在进行实验的主机上运行Win7操作系统,并将它接入到校园网。
按要求用Wireshark进行以太网数据包的截获,并分析其帧格式。
【实验环境】
在装有Win7的笔记本,接入校园网,使用WireShark 1.8.2版本进行抓包。
【实验作业】
一、练习一分析TCP报文
1.打开“命令提示符”窗口,输入:netstat –n 回车。
2.观察TCP状态,记录Local Address 、Foreign Address 和State。
可以通过上图观察到,现在的TCP状态为空。
3.在浏览器输入:,在“命令提示符”窗口输入:netstat –n 回车。
4.观察TCP状态,记录Local Address 、Foreign Address 和State。
通过上图可以观察到,在TCP协议下,本地地址套接字、外部地址套接字、状态,依次列于图中。
5.比较两次记录的不同之处。
第一次由于未建立任何连接,因此没有任何TCP信息,而第二次则成功建立了TCP连接,因此有相应的TCP连接信息得到。
6.打开Wireshark,选择菜单命令“Capture” “Interfaces…”子菜单项。
弹出“Wireshark: Capture Interfaces”
对话框。
单击“Options”按钮,弹出“Wireshark: Capture Options”对话框。
单击“Start”按钮开始网络数据包捕获。
7.单击“Stop”按钮,中断网络协议分析软件的捕获进程,主界面显示捕获到的TCP数据包。
下面对94帧的TCP数据包进行分析:
由上图可以知道,TCP协议包括
源端口(2字节):http80(0050)
目的端口(2字节)49811(c293)
序号(4字节):1(相对序号)
期望得到的下一分组序号:518
确认号(4字节):
首部长度:20字节
标志(2字节):0x18(推送,确认)
数据偏移(4位)
保留(4位)
紧急URG:0
确认ACK:1
推送PSH:1
复位RST:0
同步SYN:0
终止FIN:0
窗口(2字节):7168
检验和:0x66cb
序号确认分析:正在网络中传输的序号517
TCP数据报数据分组517字节
经过上述分析可知,捕获到的TCP数据包是符合TCP协议格式的,TCP协议格式如下:TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。
TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。
1.TCP的封装
2.TCP首部格式
源端口(16比特)目的端口(16比特)
序号(32比特)
确认号(32比特)
HLEN (4比特)
保留
(6比特)
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
窗口大小(16比特)
校验和(16位)紧急指针(16比特)
选项与填充(≤40字节)
数据(必须填充成16比特的整数倍)
首部
TCP段格式
0 16 31
源端口和目的端口字段——各占2 字节。
端口是运输层与应用层的服务接口。
运输层的复用和分用功能都要通过端口才能实现。
序号字段——占4 字节。
TCP 连接中传送的数据流中的每一个字节都编上一个序号。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
确认号字段——占4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
HLEN字段——占4 bit,它指出首部长度,单位为:32 bit 字(4 字节)。
正常的TCP首部长度是20字节。
6个标志字段——占6 bit。
紧急比特URG:当URG = 1 时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
确认比特ACK:只有当
ACK = 1 时确认号字段才有效。
当ACK = 0 时,确认号无效。
推送比特PSH (PuSH):接收
TCP 收到推送比特置1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填
满了后再向上交付。
复位比特RST (ReSeT):当RST = 1 时,表明TCP 连接中出现严重差错
(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
同步比特SYN :同步比特SYN 置为1,就表示这是一个连接请求或连接接受报文。
终止比特FIN (FINal):
用来释放一个连接。
当FIN = 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运
输连接。
窗口字段——占2 字节。
窗口字段用来控制对方发送的数据量,单位为字节。
TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口
的上限。
检验和——占2 字节。
检验和字段检验的范围包括首部和数据这两部分。
在计算检验和时,要在TCP 报文段的前面加上12 字节的伪首部。
紧急指针字段——占16 bit。
紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
8.观察协议树区中TCP数据包结构,是否符合TCP报文格式。
从“会话分析”中找出此连接的三次握
手的数据包,对此数据包进行分析。
记录标志字段的值。
从以上观察可知,TCP数据包结构符合TCP报文格式。
为了实现数据的可靠传输,TCP要在应用进程间建立传输连接。
TCP使用三次握手建立连接。
从上图中可以看出,第一次握手,SYN=1,Seq=0(相对序号);
建立连接前,服务器端首先被动打开其熟知的端口(上图为80端口),对端口进行监听。
当客户端要和服务器建立连接时,发起一个主动打开端口的请求(临时端口)。
然后进入三次握手过程:
第一次握手:由要建立连接的客户向服务器发出连接请求段,该段首部的同步标志SYN被置为1,并在首部中填入本次连接的客户端的初始段序号SEQ(上图SEQ=acbdbbee,相对序号为0)。
第二次握手,
SYN=1,ACK=1(相对确认序号),Seq=0(相对序号);
第二次握手:服务器收到请求后,发回连接确认(SYN+ACK),该段首部中的同步标志SYN被置为1,表示认可连接,首部中的确认标志ACK被置为1,表示对所接收的段的确认,与ACK标志相配合的是准备接收的下一序号(ACK=acbdbbef),该段还给出了自己的初始序号(例如SEQ=1663aa4b)。
对请求段的确认完成了一个方向上连接。
第三次握手,
ACK=1(相对确认序号),Seq=0(相对序号),
第三次握手:客户向服务器发出的确认段,段首部中的确认标志ACK被置为1,表示对所接收的段的确认,与ACK标志相配合的准备接收的下一序号被设置为收到的段序号加1(ACK =1663aa4c)。
完成了另一个方向上的连接。
二、udp
由此可见UDP报文只有源端口号,目的端口号,长度和检验和
【实验中出现问题及解决方法】
【思考问题】
【实验体会】
这次实验使得我对于以太网帧格式有了深入的了解,更加明白其工作原理,以及对Wireshark截获的数据包的格式有了更加清楚的了解,比如对TCP,UDP这两个传输层的协议。
成绩优良中及格不及格
教师签名:日期:。