TCPIP等协议报文格式
- 格式:docx
- 大小:18.04 KB
- 文档页数:10
常见网络协议报文格式汇总网络协议是计算机网络通信中,用于规定通信双方传输数据的格式和规则的标准化。
协议中的报文是通信双方之间进行数据交换的载体。
下面我将简单介绍一些常见的网络协议报文格式。
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报⽂格式转载⾃1.TCP报⽂格式TCP报头中的源端⼝号和⽬的端⼝号同IP数据报中的源IP与⽬的IP唯⼀确定⼀条TCP连接序号(4字节=32位):37 59 56 75⽤来标识TCP发端向TCP收端发送的数据字节流确认序号(4字节=32位):由于该报⽂为SYN报⽂,ACK标志为0,故没有确认序号(ACK标志为1时确认序号才有效)TCP协议规定,只有ACK=1时有效,也规定连接建⽴后所有发送的报⽂的ACK必须为1⼀旦连接建⽴,该值将始终发送(同ACK标志)头部长度:该字段占⽤4位,⽤来表⽰报⽂⾸部的长度,单位是4Byte。
如:headLen = ((packet[12]>>4)&0x0F)*4;预留6位:长度为6位,作为保留字段,暂时没有什么⽤处。
URG:长1位,表⽰紧急指针字段有效;ACK:长1位,置位表⽰确认号字段有效;TCP协议规定,只有ACK=1时有效,也规定连接建⽴后所有发送的报⽂的ACK必须为1PSH:长1位,表⽰当前报⽂需要请求推(push)操作;RST:长1位,置位表⽰复位TCP连接;SYN:长1位,在连接建⽴时⽤来同步序号。
当SYN=1⽽ACK=0时,表明这是⼀个连接请求报⽂。
对⽅若同意建⽴连接,则应在响应报⽂中使SYN=1和ACK=1. 因此,SYN置1就表⽰这是⼀个连接请求或连接接受报⽂。
FIN:长1位,⽤于释放TCP连接时标识发送⽅⽐特流结束;即完,终结的意思,⽤来释放⼀个连接。
当 FIN = 1时,表明此报⽂段的发送⽅的数据已经发送完毕,并要求释放连接。
窗⼝⼤⼩:长度为16位,2个字节。
校验和:长度为16位,2个字节。
紧急指针:长度为16位,2个字节。
以上是TCP包头必须要有的字段,也称固有字段,长度为20个字节。
2.TCP三次握⼿TCP怎样才能保证可靠的传输任务,就是通过三次握⼿⾸先由Client发出请求连接即 SYN=1 ACK=0 (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗⼀个序号,因此声明⾃⼰的序号是 seq=x然后 Server 进⾏回复确认,即 SYN=1 ACK=1 seq=y, ack=x+1,再然后 Client 再进⾏⼀次确认,但不⽤SYN 了,这时即为 ACK=1, seq=x+1, ack=y+1.3.TCP四次挥⼿ 当客户A 没有东西要发送时就要释放 A 这边的连接,A会发送⼀个报⽂(没有数据),其中 FIN 设置为1, 服务器B收到后会给应⽤程序⼀个信,这时A那边的连接已经关闭,即A不再发送信息(但仍可接收信息)。
TCPIP协议三次握⼿与四次握⼿流程解析⼀、TCP报⽂格式TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。
下⾯是TCP报⽂格式图:图1 TCP报⽂格式上图中有⼏个字段需要重点介绍下:(1)序号:Seq序号,占32位,⽤来标识从TCP源端向⽬的端发送的字节流,发起⽅发送数据时对此进⾏标记。
(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:(A)URG:紧急指针(urgent pointer)有效。
(B)ACK:确认序号有效。
(C)PSH:接收⽅应该尽快将这个报⽂交给应⽤层。
(D)RST:重置连接。
(E)SYN:发起⼀个新连接。
(F)FIN:释放⼀个连接。
RST信息,则是client向server发送数据请求,但是server并没有运⾏.则client会收到来⾃对⽅主机发送的RST信息.11个状态中,除了ESTABLISHED外,还有2个⽐较重要的状态:CLOSED_WAIT和TIME_WAIT.CLOSE_WAIT状态时有对⽅主动调⽤close,向本地(这⾥本地,并不⼀定说的是client)发送FIN,本地接收到FIN,并向对⽅发送ACK之后,本地状态会变成CLOSE_WAIT状态.那么,本地如果需要从CLOSE_WAIT状态变成CLOSED状态,需要本地向对⽅发送FIN,也就是需要本地主动调⽤close,本地进⼊LAST_ACK,在本地接收到ACK之后,就进⼊CLOSED状态.需要注意的是:(A)不要将确认序号Ack与标志位中的ACK搞混了。
(B)确认⽅Ack=发起⽅Req+1,两端配对。
⼆、三次握⼿所谓三次握⼿(Three-Way Handshake)即建⽴TCP连接,就是指建⽴⼀个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建⽴。
以太网数据格式与各种报文格式一、数据封装当我们应用程序用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/IP协议就像是这个城市里的主干道交通规则。
它把数据分成一个个小的数据包,就像把一个大货物分成一个个小包裹。
这些小包裹都按照TCP/IP这个规则来标记自己要去的地方、自己是从哪儿来的。
而报文格式呢,在TCP/IP里也有明确的规定。
比如说IP报文,它就有固定的头部格式。
这个头部就像是包裹的标签,上面写着源地址(就像是寄件人的地址)、目的地址(收件人的地址),还有一些其他的信息,像这个包裹的类型啊之类的。
以太网数据包分类及格式解析1、以太网数据链路层帧格式(MAC 帧)——即CPU 通过MII/RMII 接口发给PHY 芯片的数据2、ARP (Address Resolution Protocol ——地址解析协议)协议数据包格式硬件类型:一般为0x0001:表示MAC 帧中“目的地址”的类型为以太网MAC地址。
协议类型:表示要映射的协议地址类型。
0x0800表示映射为IP 地址。
硬件地址长度:表示“目的地址”的长度,MAC 地址为0x06。
协议地址长度:表示IP 地址长度,为0x04。
OP :表示操作类型。
ARP 请求:0x01;ARP 应答:0x02;RARP 请求:0x03;RARP应答:0x04。
发送端以太网地址:同“源地址”。
发送端IP 地址:即“源地址”对应的IP 地址。
目的以太网地址:同“目的地址”,对ARP 请求来说,为0。
目的IP 地址:ARP 包要发往的对象IP 地址。
3、IP 数据包格式4位版本:对于IPv4,该值为4;对于IPv6,该值为6。
4位首部长度:记录首部长度,以字为单位。
对于不含选项的IP报头,该值为5。
8位服务类型:用来描述IP数据包急需的服务类型,如最小延时、最大吞吐量等。
本字段在LWIP中没用。
16位总长度:描述了整个IP数据报包括IP报头的总字节数。
16位标识:用来标识IP层发送出去的每一份IP数据报,每发送一份报文,该值加1。
3位标志和13位偏移:用于IP数据包分片时使用。
8位生存时间(TTL):描述了该IP数据包最多能被转发的次数,每经过一次转发,该值减1,当该值为0时,一个ICMP报文会被返回至源主机。
8位协议:用来描述该IP数据包是来自于上层的哪个协议。
1:ICMP;2:IGMP;6:TCP;17:UDP。
16位首部校验和:针对IP首部的校验和,并不包括数据部分。
数据部分的校验是由上层协议负责的。
32位源IP地址:发送该IP包的主机IP地址。
(转)tcpip协议的简单理解--ip报⽂和tcp报⽂的格式-TCP头部0. ⽂件传输的过程分析
1.概念:
TCP/IP协议通信的过程其实就对应着数据⼊栈与出栈的过程。
⼊栈的过程,数据发送⽅每层不断地封装⾸部与尾部,添加⼀些传输的信息,确保能传输到⽬的地。
出栈的过程,数据接收⽅每层不断地拆除⾸部与尾部,得到最终传输的数据。
2.ip报⽂格式
我感兴趣的只是那⼋位的TTL字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过多少个路由之后才会被抛弃
(这⾥就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过⼀个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被⾃动抛弃。
版本(Version):IP协议的版本,⽬前的IP协议版本号为4,下⼀代IP协议版本号为6。
2.tcp报⽂格式
三次握⼿,四次断开:
你们互相打招呼(TCP中的SYN / ACK)
https:///u012371712/article/details/80795297 good article:
##################
package 与 frame 的区别
4. TCP头部 https:///a/194039067_505818。
通讯协议及报文格式
通讯协议是指在计算机网络中,不同设备之间进行数据交换所共同遵守的一种规则或约定。
它定义了数据如何在网络中传输、如何进行交互以及如何处理错误等细节。
常见的通讯协议包括TCP/IP协议、HTTP协议、FTP协议、SMTP协议等。
报文格式是指通讯协议中数据的组织形式。
一般来说,报文格式由报文头部和报文体组成。
报文头部包含了一些元数据,用于描述报文的属性和特征,如版本号、报文长度、报文类型、源地址、目标地址等等。
报文体是实际传输的数据内容,其格式根据不同的应用场景和协议不同而有所区别。
例如,HTTP协议中的报文体可以是HTML文档、图片文件、视频等等。
在某些通讯协议中,报文格式采用特定的标记符号来进行分割,如HTTP协议中使用回车换行符(\r\n)将报文头部和报文体
分开。
总之,通讯协议定义了数据交换的规则,而报文格式规定了数据的组织形式,两者共同约定了数据在网络中的传输方式。
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 报文段数据起始处地位置,相当于首部长度。
以太网帧,IP,TCP,UDP首部结构1.以太网帧的格式以太网封装格式2.IP报头格式IP是TCP/IP协议簇中最为重要的协议。
所有的TCP,UDP, ICMP 和IGMP数据都以IP数据报格式传输。
IP提供的是不可靠、无连接的协议。
普通的IP首部长为20个字节,除非含有选项字段。
4位版本:目前协议版本号是4,因此IP有时也称作IPV4.4位首部长度:首部长度指的是首部占32bit字的数目,包括任何选项。
由于它是一个4比特字段,因此首部长度最长为60个字节。
服务类型(TOS):服务类型字段包括一个3bit的优先权字段(现在已经被忽略),4bit的TOS子字段和1bit未用位必须置0。
4bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小费用。
4bit中只能置其中1比特。
如果所有4bit均为0,那么就意味着是一般服务。
总长度:总长度字段是指整个IP数据报的长度,以字节为单位。
利用首部长度和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。
由于该字段长16bit,所以IP数据报最长可达65535字节。
当数据报被分片时,该字段的值也随着变化。
标识字段:标识字段唯一地标识主机发送的每一份数据报。
通常每发送一份报文它的值就会加1。
生存时间:T T L(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。
它指定了数据报的生存时间。
T T L的初始值由源主机设置(通常为 3 2或6 4),一旦经过一个处理它的路由器,它的值就减去 1。
当该字段的值为 0时,数据报就被丢弃,并发送 I C M P报文通知源主机。
首部检验和:首部检验和字段是根据 I P首部计算的检验和码。
它不对首部后面的数据进行计算。
I C M P、I G M P、U D P和T C P在它们各自的首部中均含有同时覆盖首部和数据检验和码。
3.TCP首部格式尽管T C P和U D P都使用相同的网络层( I P),T C P却向应用层提供与U D P完全不同的服务。
1、IP报文格式IP协议是TCP/IP协议族中最为核心的协议。
它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。
在局域网环境,IP协议往往被封装在以太网帧(见本章1.3节)中传送。
而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。
如图2-3所示:图2-3TCP/IP报文封装图2-4是IP头部(报头)格式:(RFC 791)。
图2-4IP头部格式其中:●版本(Version)字段:占4比特。
用来表明IP协议实现的版本号,当前一般为IPv4,即0100。
●报头长度(Internet Header Length,IHL)字段:占4比特。
是头部占32比特的数字,包括可选项。
普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。
此字段最大值为60字节。
●服务类型(Type of Service ,TOS)字段:占8比特。
其中前3比特为优先权子字段(Precedence,现已被忽略)。
第8比特保留未用。
第4至第7比特分别代表延迟、吞吐量、可靠性和花费。
当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。
这4比特的服务类型中只能置其中1比特为1。
可以全为0,若全为0则表示一般服务。
服务类型字段声明了数据报被网络系统传输时可以被怎样处理。
例如:TELNET 协议可能要求有最小的延迟,FTP协议(数据)可能要求有最大吞吐量,SNMP协议可能要求有最高可靠性,NNTP(Network News Transfer Protocol,网络新闻传输协议)可能要求最小费用,而ICMP协议可能无特殊要求(4比特全为0)。
实际上,大部分主机会忽略这个字段,但一些动态路由协议如OSPF(Open Shortest Path First Protocol)、IS-IS (Intermediate System to Intermediate System Protocol)可以根据这些字段的值进行路由决策。
一、TCP协议由RFC 793定义:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
面向连接:在应用TCP协议进行通信之前双方通常需要通过三次握手来建立TCP连接,连接建立后才能进行正常的数据传输,因此广播和多播不会承载在T CP协议上。
可靠性:由于TCP处于多跳通信的IP层之上,而IP层并不提供可靠的传输,因此在TCP层看来就有四种常见传输错误问题,分别是比特错误(packet bit e rrors)、包乱序(packet reordering)、包重复(packet duplication)、丢包(p acket erasure或称为packet drops),因此TCP要提供可靠的传输,就需要具有超时与重传管理、窗口管理、流量控制、拥塞控制等功能。
字节流式:应用层发送的数据会在TCP的发送端缓存起来,统一分片(例如一个应用层的数据包分成两个TCP包)或者打包(例如两个或者多个应用层的数据包打包成一个TCP数据包)发送,到接收端的时候接收端也是直接按照字节流将数据传递给应用层。
作为对比,同样是传输层的协议,UDP并不会对应用层的数据包进行打包和分片的操作,一般一个应用层的数据包就对应一个UDP包。
TCP报文格式:TCP封装在IP报文中的时候,如下图所示,TCP头紧接着I P头(IPV6有扩展头的时候,则TCP头在扩展头后面),不携带选项(option)的T CP头长为20bytes,携带选项的TCP头最长可到60bytes。
其中header length字段由4比特构成,最大值为15,单位是32比特,即头长的最大值为15*32 bits = 60bytes,因此上面说携带选项的TCP头长最长为60bytes。
TCP的源端口、目的端口、以及IP层的源IP地址、目的IP地址四元组唯一的标识了一个TCP连接TCP各字段释义:TCP源端口(Source Port):16位的源端口其中包含发送方应用程序对应的端口。