谁来讲解下TCP数据包的具体内容?
TCP协议在传输层,端到端传输,IP协议在网络层,点到点。给你简单自上而下说一下吧。
应用程序产生数据,然后由TCP产生一个端口号,这个端口号就是应用程序访问TCP协议的接口号。可以实现模拟传输层直连,意思就是在传输层的数据不用管底下各层的实现细节,我的进程,也就是端啦,就可以跟其他的端进行通讯,通讯标示就是一个端口号。TCP的传输逻辑链路是一条可以保证正确传输的链路,它是通过三次握手来实现可靠传输的,通过连续ARQ来实现流量控制。
好了继续说数据,数据传到TCP层的时候,TCP层就会加上一个TCP报头,当然这里面有源端口号和目的端口号,还有其他的一些校验啊之类的,然后就形成了一个TCP报文。将报文传给IP层。
IP层接收TCP报文后,因为他不明白TCP报头是什么,数据时什么,所以它把所有的TCP报文都当成一段数据加载在自己的数据段,然后加上IP报头,IP报头内容就是目的和源IP地址。所以在IP层又有一个可以实现跟对方IP点的通讯链路。然后IP报文传到网际层,加上帧头,也就是MAC地址变成帧然后再变成2进制在物理链路上进行真实传输,最后网际层的链路是物理的,不是逻辑的。
不知道这么解释清楚了没有。
matlab里面有一个函数叫tcpip(),你用的上 Demo里面有一个Reading and Writing Binary Data,演示了整个读写tcpip数据包的过程。
TCP数据包结构:
1-1.源始端口16位,范围当然是0-65535。
1-2.目的端口,同上。
2-1.数据序号32位,TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节的序号。
3-1.确认序号32位,为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号。
4-1.偏移4位,类似IP,表明数据距包头有多少个32位。
4-2.保留6位,未使用,应置零。
4-3.紧急比特URG—当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
4-3.确认比特ACK—只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。参考TCP三次握手。
4-4.复位比特RST(Reset) —当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新 建立运输连接。参考TCP三次握手。
4-5.同步比特SYN—同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。参考TCP三次握手。
4-6.终止比特FIN(FINal)—用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
4-7.窗口字段16位,窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口 大小,然后通知对方以确定对方的发送窗口的上限。
5-1.包校验和16位,包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
5-2.紧急指针16位,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
6-1.可选选项24位,类似IP,是可选选项。
6-2.填充8位,使选项凑足32位。
7-1.用户数据。
每个TCP包都包含16位源端口号和16位目的端口号,用来寻找发端和收端;
序号用来标识从T C P发端向T C P收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则T C P用序号对每个字节进行计数。序号是32 bit的无符号数,序号到达23 2-1后又从0开始。
当建立一个新的连接时, S Y N标志变1。序号字段包含由这个主机选择的该连接的初始序
号I S N(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个I S N加1,因为S Y N标志消耗了一个序号,既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有A C K标志为1时确认序号字段才有效。发送A C K无需任何代价,因为32 bit的确认序号字段和A C K标志一样,总是T C P首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, A C K标志也总是被设置为1。
U R G 紧急指针( u rgent pointer)有效
A C K 确认序号有效。
P S H 接收方应该尽快将这个报文段交给应用层。
R S T 重建连接。
S Y N 同步序号用来发起一个连接。
F I N 发端完成发送任务。
检验和覆盖了整个的T C P报文段: T C P首部和T C P数据。这是一个强制性的字段,一定是
由发端计算和存储,并由收端进行验证。T C P检验和的计算和U D P检验和的计算相似,只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。
最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方
通常都在通信的第一个报文段(为建立连接而设置S Y N标志的那个段)中指明这个选项。它
指明本端所能接收的最大长度的报文段。T C P报文段中的数据部分是可选的。在一个连
接建立和一个连接终止时,双方交换的报文段仅有T C P首部。如果一方没有数据要发送,也
使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何
数据的报文段。
什么是tcp的数据流和报文段
这些端口可用来将若干高层和谈向下复用;序号字段和确认序号字段:序号:占4个字节,是本报文段所发送的数据项目组第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。例如,一报文段的序号为300,而起数据供100字节,则下一个报文段的序号就是400;确认序号:占4字节,是期望收到对方...
tcp的报文段有多少?
报文段#3是确认报文段,没有数据发送,报文段#3并不消耗序号,因此报文段#4的序号仍然是seq=101.A在发送数据的同时,还确认B的报文段#2,因此ack=201。报文段#S:B确认A的报文段#4。由于收到了从序号101到200共100字节的数据,因此在报文段#5中,ack=201(所期望收到的下一个数据字节的序号)...
TCP UDP 是什么意思
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP\/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“...
什么是TCP\/IP,它有哪些子协议,功能是什么?
其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用...
TCP报文的格式及TCP协议的工作原理?
序列号和确认号:都是32位的无符号整数,可以表示0-4G(232)字节的范围。其中,序列号表示数据部分第一个字节的序列号,而确认号表示该数据报的接收者希望对方发送的下一个字节的序号(即序号小于确认号的数据都已正确地被接收)。头长度(HLEN):表示TCP报文头的长度。长度以32-bit为单位来计算。所以...
TCP协议详解
TCP 可靠传输的实现以字节为单位的滑动窗口。发送窗口构造以字节为单位的。假定 A 收到了 B发来的确认报文段,其中窗口是20字节,而确认号是31。根据这两个数据,A 就构造出自己的发送窗口。发送窗口标识:在没有收到 B 的确认的情况下,A 可以连续把窗口内的数据都发送出去。凡是已经发送出去的数据,在未收到...
TCP是什么意思
TCP是一种传输控制协议,是面向连接的、可靠的、基于字节流之间的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,TCP完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)里面,TCP层是在IP层上面,应用...
TCP协议详解及实战解析【精心整理收藏】
这就是说,每个数据包都可以得到两个编号:自身的编号,以及下一个包的编号。接收方由此知道,应该按照什么顺序将它们还原成原始文件。 收到TCP 数据包以后,组装还原是操作系统完成的。应用程序不会直接处理 TCP 数据包。 对于应用程序来说,不用关心数据通信的细节。除非线路异常,否则收到的总是完整的数据。应用程序...
tcp\/ip协议包含哪几层
01、应用层;传输层;网络层;数据链路层 tcp\/ip协议包含应用层、传输层、网络层和数据链路层4层。TCP\/IP传输协议是在网络的使用中的最基本的通信协议。TCP\/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是...
udp和tcp的区别
在数据传输协议的世界里,UDP和TCP展现了显著的不同。UDP在接收应用层的二进制消息后,直接将其大小(包括消息和头部的8字节)传递给IP层,不进行拆包处理。相反,TCP会根据网络数据链路层的MTU来决定是否需要拆分数据包,再交给IP层,这确保了数据的完整性和准确性。一个关键的区别在于连接性:UDP是非...
松标滨欣: 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向'上'传送到TCP层.TCP将包排序并进行错误检查,同时实现虚电路间的连接.TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传. TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序.应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方. 面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP.DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息.
太湖县17692839897: TCP数据包是什么? - ?
松标滨欣: TCP简介 TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified).在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重...
太湖县17692839897: TCP数据包是什么意思? - ?
松标滨欣: TCP是一个面向连接的协议 一般通过三次握手来完成一次通信 数据包就不用再多解释了哈o(∩_∩)o...
太湖县17692839897: 什么是TCP数据包啊??
松标滨欣: 这个是局与网范围内或是WAN网范围内给你发送的TCP包,有可能包括别人给你PING的信息等,因为他有可能包含病毒信息,所以防火墙给屏蔽了,你可以降低安全级别来解决这个问题,但是同样会使你的电脑安全性降低.这事挺正常的我每天都能接到只要拦截了就没什么问题了.然而你说电脑卡的问题,可能是你的机器网卡的事吧,按理说你是主机的话,副机不会傻到刻意攻击你那么他们网速也会相对的慢了.
太湖县17692839897: TCP数据包是什么??
松标滨欣: 连接网络就会有TCP数据包,网镖会误认为攻击,UDP才是攻击数据流
太湖县17692839897: ICMP数据包还有TCP数据包是什么意思? - ?
松标滨欣: ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写,它是TCP/IP协议簇中的一个子协议,用于在IP主机、路由器之间传递控制消息.控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,这些控制...
太湖县17692839897: TCP/IP协议的内容!!?
松标滨欣: TCP/IP协议叫做传输控制/网际协议,它是Internet国际互联网络的基础.TCP/IP是网络中使用的基本的通信协议. 虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种...
太湖县17692839897: TCP是什么? - ?
松标滨欣: 传输控制协议 TCP 是 TCP/IP 协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务.与 IP 协议相结合, TCP 组成了因特网协议的核心.由于大多数网络应用程序都在同一台机器上运...
太湖县17692839897: tcp - ip协议内容与解释,完全的,原创. - ?
松标滨欣: TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法.在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息...
太湖县17692839897: 来自网络的TCP与ICMP数据包是什么???? - ?
松标滨欣: 传输控制协议(Transmission Control Protocol, TCP) TCP协议主为了在主机间实现高可靠性的包交换传输协议.本文将描述协议标准和实现的一些方法.因为计算机网络在现代社会中已经是不可缺少的了,TCP协议主要在网络不可靠的时候完...