序列号

TCP的三次握手与四次挥手理解及面试题(很全面)

本秂侑毒 提交于 2019-12-05 19:36:05
TCP的三次握手与四次挥手理解及面试题(很全面) 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接 PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号。 三次握手过程理解 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认

对于TCP/IP协议的三次握手和四次挥手的理解

旧街凉风 提交于 2019-12-05 02:43:33
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Freak_ysy/article/details/81543873 因为很久之前被老师要求讲过这个问题,好久没有看,又有些迷糊了。只能写一篇博客来加强一下记忆 TCP报文段首部格式的几个名词 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN

如何识别 MacBook Pro 机型

南楼画角 提交于 2019-12-04 16:29:35
通过序列号判断 MacBook Pro 对于大多数装有 Mac OS X 的电脑,可以在“关于本机”窗口中 查找序列号 。也可以参阅“ MacBook Pro:如何查找序列号 ”了解在电脑表面何处查找序列号。当您从电脑中找到序列号时,有多种方法确定产品型号。 选项 1: 将序列号键入“ 查看保修服务和支持范围 ”页面。随后出现的屏幕将显示您的机型,如下所示。 选项 2: 将序列号输入“ 技术规格 ”页面。随后出现的屏幕将显示您的机型,如下所示: 通过型号标识符、型号或配置 判断 MacBook Pro 请在“系统概述”中查找型号标识符: 从屏幕左上方的 Apple () 菜单中选取 关于本机 。 点按“更多信息...”。 查找“硬件”部分下“硬件概览”中列出的型号标识符。 如果您仍留有 MacBook Pro 的包装盒或收据,则可查找市场型号或配置详细信息。 当您找到任一这些编号,请将您的编号与下表相匹配以识别 MacBook Pro 机型。 对于 型号 ,斜线 (/) 之前的两个字符因国家/地区而异,但部件号在全球都是通用的。在下表中,“xx”代表这两个可变字符。 配置 中列出了屏幕大小/处理器速度/RAM 大小/硬盘驱动器大小/光盘驱动器类型。 MacBook Pro 13 英寸 机型 型号标识符 型号 配置 MacBook Pro(Retina 显示屏,13 英寸,2012

逆向分析题

六眼飞鱼酱① 提交于 2019-12-04 15:56:26
逆向分析题 nag.exe 1.去除nag.exe启动时弹出的对话框 2.将主窗口的背景图替换成其他任意图片 3.修改exe文件,使得点击exit按钮后,弹出启动时弹出的对话框   先利用IDA分析一下程序,找到两个弹窗的函数位置   然后按照教员上课讲的方式,修改的时候不能只是修改 push 的参数值,将 79 改成 65 虽然能使第一个弹窗消失,但其他的按钮也会失效,必须将属性一块替换   分别将这两个地方互相替换,这样的话,就会先启动第二个弹窗,较好的使第一个对话框消失   由于任务要求点击exit还得回到第一个对话框,这时就将最后的call函数返回至第一个对话框的位置,即 004010D9   最后需要替换后面的照片,先百度一下利用什么工具   一开始试了试 exescope 发现不知道为啥替换不了,换成 reshacker 试试,成功 实验成功 TraceMe.exe 给出序列号计算算法,并编译成工具,使得输入任意的用户名,都可以得到正确的序列号。(提示:静态分析加动态调试,从lstrcmpA函数入手)   首先先运行下程序看下情况   发现会有两个提示,也就是说这个程序会先匹配一下用户名,当用户名长度>5时会进行相应序列号的匹配   使用OD动态调试   会发现会在 00401469 处打开界面,这时在这里下一个断点,并进入,本来想一直跟下去,发现比较麻烦。  

微软并发Key-Value存储库FASTER介绍

[亡魂溺海] 提交于 2019-12-03 11:07:05
微软支持并发的Key-Value 存储库有C++与C#两个版本。号称迄今为止最快的并发键值存储。下面是C#版本翻译: FASTER C#可在.NET Framework和.NET Core中运行,并且可以在单线程和并发设置中使用。经过测试,可以在Windows和Linux上使用。它公开了一种API,该API可以执行读取,盲更新(Upserts)和读取-修改-写入(RMW)操作的混合。它支持大于内存的数据,并接受IDevice将日志存储在文件中的实现。提供了IDevice本地文件系统的实现,也可以写入远程文件系统。或者将远程存储映射到本地文件系统中。FASTER可以用作传统并发数据结构类似ConcurrentDictionary的高性能替代品,并且还支持大于内存的数据。它支持增量或非增量数据结构类型的检查点。 FASTER支持三种基本操作: Read:从键值存储中读取数据 Upsert:将值盲目向上插入到存储中(不检查先前的值) Read-Modify-Write:更新存储区中的值,用于实现“求和”和“计数”之类的操作。 构建 在实例化FASTER之前,您需要创建FASTER将使用的存储设备。如果使用的是可移植类型(byte、int、double)类型,则仅需要混合日志设备。如果使用对象,则需要创建一个单独的对象日志设备。 IDevice log = Devices

TCP的三次握手与四次挥手

非 Y 不嫁゛ 提交于 2019-12-03 10:13:13
1. TCP的特点 TCP协议是全双工通信,即收发双发可以同时给对方发送消息,即A给B发送消息的同时,B也可以给A发送消息。而且双方谁先发起请求都可以。 TCP协议是可靠通信:因为TCP协议有ack,即消息确认机制。 面向连接的:收发消息之前双方要先建立起连接,即三次握手。 长连接:会一直占用双发的端口。 流式传输:能够传输的数据长度几乎没有限制。流式传输我的理解就像流水一样,数据不间断,所有数据都连接在一起,当然并不是真的都连在一起,只是TCP内部为了尽量减少发送包的数量。由于TCP的优化算法,TCP发送消息时,并不会立即发送出去,而是会等一下,会尽量等发送端的缓冲区满了才会发送消息,如果发送的数据比较小,并且在时间范围内没有其他数据进来就会直接发送。 2. TCP的三次握手 第一次握手:客户端A向服务端B发送一个SYN=1链接请求,以及一个初始序列号seq=x,并进入SYN_SEND状态,等待服务器B确认。 第二次握手:服务端B接收到客户端A发来的SYN=1链接请求,并进行确认ack=x+1,即告诉客户端A我可以接收你接下来发送序列号为x+1的消息。同时服务器B也会向客户端A发送一个syn链接请求,以及一个初始化序列号seq=y,此时服务器B进入SYN_RECV状态。 第三次握手:客户端A接收到服务器发送的syn+ack确认包,向服务器B发送一个ack=y+1的确认包

三次握手四次挥手

元气小坏坏 提交于 2019-12-03 07:42:06
目录 三次握手四次挥手 1、概念介绍 2、三次握手过程理解 3、四次挥手过程理解 4、常见问题 三次握手四次挥手 1、概念介绍 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接 PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号。 字段 含义 URG 紧急指针是否有效。为1

微软并发Key-Value存储库FASTER介绍

风格不统一 提交于 2019-12-03 06:56:07
  微软支持并发的Key-Value 存储库有C++与C#两个版本。号称迄今为止最快的并发键值存储。下面是C#版本翻译: FASTER C#可在.NET Framework和.NET Core 中运行,并且可以在单线程和并发设置中使用。经过测试,可以在 Windows和Linux上使用。它公开了一种API,该API可以执行读取,盲更新(Upserts)和读取-修改-写入(RMW) 操作的混合。它支持大于内存的数据,并接受 IDevice 将日志存储在 文件 中的实现。提供了 IDevice 本地文件系统的实现, 也 可以写入远程文件系统。或者将远程存储 映射到 本地文件系统中。 FASTER可以用作传统并发数据结构 类似 ConcurrentDictionary的高性能替代品,并且还支持大于内存的数据。它支持增量 或 非增量数据结构 类型的 检查点。 FASTER支持三种基本操作: Read :从键值存储中读取数据 Upsert:将值盲目向上插入到存储中(不检查先前的值) Read-Modify-Write :更新存储区中的值,用于实现 “求和”和“计数”之类的操作。 构建 在实例化 FASTER之前,您需要创建FASTER将使用的存储设备。如果使用的是 可移植类型 ( byte 、 int 、 double ) 类型,则仅需要混合日志设备。如果使用对象

《TCP/IP - TCP/UDP》

醉酒当歌 提交于 2019-12-03 04:59:13
一:概述   - 由于 IP 的传输是无状态的 , IP 提供尽力服务 ,但并不保证数据可以到达主机。   - 所以, 数据的完整性 需要更上层的 传输层来保证。 TCP和UDP 均属于 传输层。 二:UDP    - 特点     - 不具有可靠性 的数据报协议。     - UDP 虽然可以确定发送消息的大小,却不能保证消息的到达。    - 应用场景     - 即时通讯     - 包总量较少通讯     - 广播通信 三:TCP    - 特点     - 面向连接 的, 可靠的 流协议。     - 流即为不间断的数据结构,虽然可以保证发送的顺序,但是还是犹如没有任何间隔的发送给服务端。    - 应用场景     - 对 数据完整性有要求 的通信。 四:TCP 是通过什么机制实现可靠传输的?    - 确认应答      - 问题       - 发送端在发送数据之后,并 不知道发送的数据是否成功到达了接收端。      - 解决方案       - TCP 通过肯定的 确认应答 ACK(Positive Acknowled-gement) 实现可靠的数据传输。       - 如果有确认应答,说明数据已经成功到达对端。反之,则丢失的可能性很大。    - 序列号      - 问题       - 在发送端发送数据时,可能因为 某些原因(网络问题/硬件问题) 导致

TCP三次握手四次挥手详细理解附面试题

一个人想着一个人 提交于 2019-12-03 04:13:28
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接 PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号。 字段 含义 URG 紧急指针是否有效。为1,表示某一位需要被优先处理 ACK 确认号是否有效,一般置为1。 PSH