tcp 俩端同时发数据,序列号和确认号是多少?

加入tcp三次握手已经建立后,双方开始同时发数据
CLIENT : SEQ: 2000 ACK: 600
SERVER: SEQ: 600 ACK: 2000

CLIENT向SERVER 发送一个数据包100大小
SERVER 向CLIENT发送一个数据包100大小

A包: C -> S seq:2000, ack:600 发送包体100
B包: S -> C seq:600, ack:2000 发送包体100

S 先收到A包,并反馈ACK seq是600还是700? ACK :2100?
C 还没收到A包产生的ACK,但先收到了B包,并反馈ACK seq是2000还是2100? ACK:600:还是700?
C 先收到A包产生的ACK,再收到B包, 反馈ACK seq是2000还是2100? ACK:700?

0

3个回答

这是做网卡驱动?应用层不需要关心tcp的ack吧?

0
yixiaoqingchen
yixiaoqingchen 做vpn,碰到这个问题了。实在不知道能在哪里能查资料了
大约 3 年之前 回复

哪有资料可以查呢? 求帮助

0

nobody? 急求呀

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
TCP从建立到关闭的数据流分析(包括序列号和确认序列号的计算)
客户端和服务器的TCP连接的建立通过3步TCP发送和接收完成的。当建立了TCP连接后,客户端和服务器就可以通过TCP传输数据了。当数据传输完成后,如果要关闭TCP连接,那么要通过4步TCP发送和接收完成的。 客户端IP 192.168.1.103,TCP端口为58178,服务器的IP为183.61.49.185,服务器端口号是80 TCP连接建立的第一步:客户端发送SYN数据报给服务器,客户端
6-TCP 协议(序号和确认号)
转载请注明出处:http://blog.csdn.net/q1007729991/article/details/69261780接下来的内容是学习后续内容的基础,必须先讲清楚。为了方便你回忆 TCP 首部,这里再次把这个图贴出来,以便对照。 图1 TCP 首部 1. 序号序号占用 4 字节,即 32 位。它的范围是 [0,232−1][0, 2^{32}-1],也就是说一共有 4 294
TCP序列号和确认号详解
1.序列号和确认号的简介及作用TCP协议工作在OSI的传输层,是一种可靠的面向连接的数据流协议,TCP之所以可靠,是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。 响应包内也包括一个序列号,表示接收方准备好这个序列号的包。在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确
关于TCP报文段丢失,确认号的选择
主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100。解析:即题目的意思就是0-69已经全部接收完成,现在就是A发送第一个是70-99和第二个是100-n的报文段(1)第一个报文段携带了多少字节的数据?  解析:70到99一共30个字节。       答:100-70=30 字节(2)主机B收到第一个报文段后发回的确认中的确认号应当是多少? 解析:确认号应为期望收到的报文段的第一个序...
TCP序列号和确认号
哎呦!为什么知识的传播总要夹杂一些废话呢?!!!真是看不下去,还是总结自己的理解吧。好了,我的废话说完了,下面直奔主题: begin: 序列号:占32位,用来标示本端发送的数据位数,初始序列号是随机的(0-4,294,967,295),之后根据某种规律递增、循环(归零)。 确认号:占32位,用来通知发送端数据成功接收的数据位数,等于接收的数据包的序列号+接收的数据位数,SYN...
TCP的序列号与确认号实例
1.客户端连接服务器 SEQ ACK 1553492055     0 客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号(ISN)是客户端随机产生的一个值,确认号是0 2904800932 1553492056 服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据包中,序列号(ISN)是服务器随机产生的一个值,确认号是客户端的初始序列号+1; 155
[计算机网络] TCP报文段中的序号和确认号
本篇内容参考自:《计算机网络 自顶向下方法》原书第六版前言序号字段和确认号字段是TCP报文段首部中两个最重要的字段,这两个字段是TCP可靠传输服务的关键部分。TCP把数据看成一个无结构的、有序的字节流。序号是建立在传送的字符流之上的,而不是建立在传送的报文段的序列之上序号一个报文段的序号是该报文段首字节的字节流编号,举个栗子~假设主机A的一个进程想通过一条TCP连接向主机B上的一个进程发送一个数据...
【计算机网络】发送包与确认包的序号
在没有数据包丢失的情况下,确认包的确认号是它收到这组数据包后,想要接收的下一个数据包的起始序号。比如,甲向乙发送了包含序号21~60的数据包,则乙在收到这个数据包后会发送给甲一个确认号61,表示61之前的所有数据都接收到了,正准备接收61及61之后的数据。同时,发送方的序号就是这次发出的数据包的初始序号,比如甲发出了21~60的数据,则它的序号就是21.另外,若有数据包丢失了,则确认号必须是最早丢...
TCP为什么要三次握手,握手结束后第一次发送数据的ACKnum是多少?
TCP为什么要三次握手? TCP三次握手过程,简单来讲如下: 1.客户端发起第一次握手(SYN=1, seq=x) 2.服务器端发起第二次握手(SYN=1, seq=y, ACKnum=x+1) 3.客户端发起第三次握手(ACKnum=y+1) 但为什么要三次握手,而不是两次或者四次? 根本原因就是双方要协商好初始的 seq。 TCP确认哪个包重传,解决包乱序,都是通过seq实现。因...
TCP为什么采用随机初始序列号
在TCP的三次握手中,采用随机产生的初始化序列号进行请求,这样做主要是出于网络安全的因素着想。如果不是随机产生初始序列号,黑客将会以很容易的方式获取到你与其他主机之间通信的初始化序列号,并且伪造序列号进行攻击,这已经成为一种很常见的网络攻击手段。 ...
TCP连接建立和断开时的序列号
  如下图所示,以TCP流客户端192.168.1.110:52582与服务端23.67.181.145::80为例,说明一下在TCP连接建立和断开时的序列号使用情况。 首先在连接建立时,先看一下客户端的序列号的使用。 客户端第一个SYN数据包,No.1951,Wireshark显示其使用的Seq=0,这是一个相对的序列号,是wireshark自身的显示,数据包中真实的序列号并不为0。使...
TCP面试题(二)之TCP糊涂窗口问题
在说明这个问题之前,我想先说明下大概的脉络:                                                                 1、何谓“糊涂窗口”;                                                                 2、如何解决。 问题描述     那么,我就先说说“糊涂窗口”是怎
TCP/IP序列号和确认号
TCP/IP序列号和确认号详解: TCP协议工作在OSI的传输层,是一种可靠的面向连接的数据流协议,TCP之所以可靠,是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。响应包内也包括一个序列号,表示接收方准备好这个序列号的包。在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。另外,TCP通过数据分段中的序列号来保证所有传输的数据可以按照正常的顺序进行重组,从而保障数据传输的完整。
计算机网络实验ethereal
直接复制粘贴自己的实验报告,所以没有截图,可自行做实验比对 在电脑的某处保存该文件       在窗口输入文件完整的路径   点击“Upload alice.txt file”按钮,上传文件,上传成功后,会显示祝贺信息       抓包结果   在“Filter”窗口输入“TCP” 可以看到的是我的计算机和gaia.cs.umass.edu之间的
TCP - 数据段格式
源端口: 16 bits,  呼叫方的TCP端口号。 目的端口: 16 bits, 被呼叫方的TCP端口号。 序号: 32 bits,数据部分第一个字节的编号,占32位。例如一个数据段的序号字段值是101,该数据段共有100个字节,那么最后一个字节编号为200,下一个数据段的序号字段应该为201。 确认号: 32 bits, 期望接收到对方下一个数据段中的数据部分的第一个字节序列号。序号和确
如果 TCP 协议中三次握手不携带序列号,会造成什么样的后果
之所以需要三次握手,其实就是要双方相互确认彼此能够通信。 一般要与对方确认可以通信,就要确认自己能够跟对方通信(1),且能够收到对方的通信(2),反过来对方也能够和自己通信(3),且能收到自己的通信(4)。基于这一点,流程就简化为3次握手通信。 首先,client发送一个SYN=1,seq=X(X随机);到server,server收到这个消息,则确认了client能够与ser
《TCP IP网络编程》尹圣雨----4.第二章习题
(1)什么是协议?在收发数据中定义协议有何意义? 协议使对话中使用的通信规则。在收发数据中定义协议,能够让计算机之间进行正确无误的对话,以此来交换数据。 (2)面向连接的TCP套接字传输特性有3点,请分别说明。 a.可靠性,传输过程中数据不会消失。 b.字节流,按序传输数据,传输数据不存在数据边界。 c.面向连接,双方之间必须建立连接后,才可进行数据的传递。 (3)下列
【艾琪出品】-【计算机网络基础】测试题系列一
【声明】本博客内容,若有侵权请告之,会删除 非商业用途,如有侵权,请告知我,我会删除 如回复不及时,或不懂的请加我微信 island68  QQ823173334 可以的话注明来自CSDN 很希望通过CSDN这个平台与大家交流,试题可以给需要的人参考,也留作自己备用   计算机网络基础   一、计算题 1.一个TCP连接下面使用256kb/s的链路,其端到端时延为128mS。经测试,...
TCP之服务器端发送SYN+ACK报文
从《TCP之服务器端接收SYN请求段》中可以看到,当服务器端收到SYN包后,将会调用tcp_v4_send_synack()向客户端发送SYN+ACK报文,这篇笔记就来分析下这个过程。 1. tcp_v4_send_synack() /* * Send a SYN-ACK after having received a SYN. * This still operates on a reque...
TCP协议发送数据:TCP 协议接收端(服务端)数据,
7 TCP协议发送数据: 注意:tcp的是 客户端和服务端。客服端可以主动访问服务端,服务端不能主动访问客户端。 但是在建立联系之后,就可以互相访问了。 创建发送端Socket对象(创建对象,并且需要指向服务器的ip地址和端口号): Socket  s = new  Socket(InetAddress.getByName(“javaName”),10000); Socket s2 = n
浅析TCP之SACK(选择性确认)
1、SACK Selective Acknowledgement,选择性确认。 2、功能 TCP收到乱序数据后,会将其放入乱序队列中,然后发送重复ACK给对端。对端如果收到多个重复的ACK,认为发生丢包,TCP会重传最后确认的包开始的后续包。这样原先已经正确传输的包可能会重复发送,降低了TCP性能。为改善这种情况,发展出SACK技术,使用SACK选项可以告知发包方收到了哪些数据,发包方收到这
TCP协议滑动窗口与确认重传机制?
字节流传输状态分类与滑动窗口的概念:①TCP协议使用以字节为单位的滑动窗口协议,来控制字节流的发送、接收、确认与重传过程。②接收窗口的大小由接收端根据缓存剩余空间的大小,以及应用进程读取数据的速度来决定。发送窗口的大小取决于接收窗口的大小。③发送窗口和接收窗口:发送窗口等于第二类和第三类的字节数之和=9+6=15。可用窗口长度等于第三类的字节数=5。即“尚未发送,但是接收端已经做好接受准备的字节”,
TCP/IP传输层协议——TCP/UDP
1.TCP/IP传输层协议提供了将任意长度的消息通过网络通过网络从发送方传输到接收方的必要机制。 2.用户数据报协议(UDP , User Datagram Protocol)是一种无连接的传输层协议。特点,无可靠机制,无交付机制,无连接处理,无缓冲,无分段,无重传。无连接协议吧来自应用层的消息打包为数据报,添加一个头部直接传给IP层。这种方法为最大努力交付,没有内置的错误检测,也没有为提供可靠性
Send的基本规则 & 能否多个进程或线程同时向同一个Socket传递数据
一、Socket中send的普通执行流程。      当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲的长度,      (1) 如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;      (2) 如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据,就是等待协议把数据发送完      (3) 如
TCP序列号和确认号例解.doc
文档撰写背景为学习“科来网络分析系统6.9技术交流版”使用,及TCP抓包分析后,根据《TCP序列号和确认号详解》验证后,所写。
万能注册机2010商业破解版 万能注册码 万能序列号 万能ID号
万能注册机2010商业破解版对目前大部分软件有效,只需输入软件的名称和版本即可以得到相关的注册码 序列号 ID号
TCP 多线程 同时发送大量数据 解决办法
向大家分享一下.呵呵 服务器向多个终端传输大量数据。并且同时向他们发送,采用安全的TCP方式。我采用的办法是 首先向多个终端 创建SOCKET数组,创建多个线程 创建多个线程的目的不是要 每个线程向不同的终端发送,而是每个线程发送不同的数据,比如一个1G的数据,我线程1取出他的100M内容第二个线程取出他的第二个100M内容。然后线程同步执行向终端数组里面发送。大大的提高了速率. 服务器端对数据...
17-TCP 协议(迟到的 ACK —— Windows )
1. 引言我们知道,TCP 协议中,需要对接收到 TCP 段进行确认。有两种方式可以减少 TCP 报文段. 一种是累积确认,另一种是捎带确认。 累积确认 有时候,发送方发送速度非常快,接收方一下下接收到了好几个 tcp 段,可以通过累积确认的方式,一次确认好几个 tcp 段,这样减少报文段的传输。 捎带确认 有时候,双方互相发送数据,当接收到对方的 tcp 段后,先不着急确认,而是等待一会儿,连同数
计算机网络传输层题库
网络课课后题 1 下列哪一项不是传输层的作用 A、可采用标准的传输原语开发自身应用,无惧底层通信网络的变化 B、提供可靠数据传输、差错控制等服务 C、处理主机之间通信的事务,而不是进程之间的通信(网络层:主机与主机    传输层:进程与进程) D、当数据传输连接中断时,可以建立一个新的连接,在中断处继续数据的传输 2  传输层协议能提供应用的多路复用/分用服务、可靠数据传送、带宽及延迟...
TCP数据段
传输控制协议TCP是专门为了在不可靠的互联网上提供可靠的端到端字节流而设计的,它必须动态地适应不同的拓扑、带宽、延迟、分组大小和其他的参数,并且当有错误的时候,能够足够健壮支持TCP的及其都有一个TCP实体,或者是用户进程或者是操作系统内核,都可以管理TCP流和跟IP层的接口发方(封装):TCP实体接受本地进程的用户数据流,将其分割成不超过64KB的分片(实践中,通常分割成1460字节,以通过以太...
tcp协议服务器和客户端相互发送数据
package com.neutron.network.tcp.demo; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.net.Unknow
从阿里巴巴的面试题考考你对TCP 中序列号和确认序列号的理解
前言 关于TCP的序列号与确认序列号的知识我们这里不说,我们看看具体到TCP相关的笔试中是怎么考察TCP的序列号与确认序列号的。。 关于TCP序列号与确认序列号的说明 TCP报文的首部字段中确认序列号是期望收到对方下一个报文段的第一个数据字节的序号。 如果确认序列号为N,则表明上次对方发送的TCP报文段中最后一个字节的序列号为N-1,下一次对方发送序列的起始序列号为N 笔试...
四次挥手—服务器先关闭,客户端不关闭,继续发送数据,会出现什么情况?
四次挥手—服务器先关闭,客户端不关闭,继续发送数据,会出现什么情况? 触发四次挥手机制: 服务器:发出FIN,客户端回复ACK,进入TIME_WAIT状态 客户端:没有close(),处于close_wait()状态, 接着向服务器继续发送数据,会出现什么情况? 客户端:因为对方关闭(相当于管道中对方的读端关闭写端写满缓冲区就会触发SIGPIPE信号,操作系统会强...
TCP接收到重叠数据(overlap)后的行为解析-附带一个有关Delay ACK和超时重传的优化
本文写于国庆长假第一天早晨,正好碰到今天热线值班,终于不用假期出去添堵折腾了(14年来[自离开高中],从来没有过过一个完整的可以休息的假期!预定了N次在家的假期,失败了N次,谎称过几次加班,但也不是长计,因为必须要离开家,实在也没地方去,我觉得此生假期难自由了,然而如果公司硬性规定必须在家值班,那也是不啻一种上好的方法啊!哈哈),作文一篇,以表达对假期自由的感慨!最开始的事实首先,我们先明确Lin
TCP缓存区与窗口的关系
TCP缓存区与窗口关系网上大多错误的理解 滑动窗口大小=接受缓存区大小 接收方通告窗口大小=发送方缓存区大小 注意:以上两个结论都是错误的我们在学习网络编程时,通常会参考两本很经典的书《UNIX网络编程 卷1》和《TCP/IP 卷1》。然而,我在看与缓存区与窗口相关模块知识点时,通常会犯迷糊。感觉这两本书对其的描述很少,描述得有点模糊。《TCP/IP详解 卷1》第1版的一句重要的描述,因为在小字处
为什么收到三个重复的ACK意味着发生拥塞?
三次重复的ACK,可能是丢包引起的,丢包可能是网络拥塞造成的,也可能是信号失真造成的。 三次重复的ACK,也有可能是乱序引起的,而乱序和网络拥塞没有直接关系。 如果就写这两行,感觉什么都没写,接下来的文字详细解释这两行文字。 TCP背景知识 客户端有1M的文件需要上传到服务器上,问题来了,这个大文件能否用一个TCP报文传输? 肯定不能啊,因为网络路径有最大传输单元(MTU = 1500)...
EC20建立一路SOCKT发数据_TCP发GPS定位数据
STM32F407 开发EC20代码,EC20建立一路SOCKT发数据_TCP发GPS定位数据
TCP数据的传输过程
建立连接后,两台主机就可以相互传输数据了。如下图所示: 图1:TCP 套接字的数据交换过程 上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机A通过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主机B为了确认这一点,向主机A发送 ACK 包,并将 Ack 号设置为 1301。 为了保证数据准确到达,目标机器在收到数据包
TCP服务端发送与接收数据
TCP服务端发送与接收数据 import socket 1.创建套接字 tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) (回收你所用的服务器端口) tcp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True) 2.绑定ip和port ...
记一次ESP8266 WIFI模块调试----TCP 数据处理同时发送心跳
记一次ESP8266 WIFI模块调试----TCP 数据处理同时发送心跳 一、情景再现 1、需要实现的功能 1) 接收中国移动云平台Onenet的EDP协议的数据,处理后应答给云平台. 2) 保持与云平台的心跳报文,每10s发送一次心跳。 2、实现方案 1)心跳报文采用10s软定时器,定时发送. 2)移动云的请求数据为中断方式接收后处理应答。(推测是中断方式,没有找到配置中