校验和

网络协议抓包分析(3)

泪湿孤枕 提交于 2019-12-05 11:38:41
ICMP协议 ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。在实际传输中的数据包结构:20字节IP首部 + 8字节ICMP首部+ 1472字节<数据大小>38字节。 ICMP报文格式如图,IP首部(20字节)+8位类型+8位代码+16位校验和+(不同的类型和代码,格式也有所不同)。 让wireshark开始抓包,用icmp过滤,打开cmd窗口,输入ping目的域名,ping默认发4个请求报文,所以这里会抓取到8个报文 1.protocol为协议类型,ICMP; 2.Type:8 类型8, 占一字节,标识ICMP报文的类型,此处为请求报文 3.Code:0 占一字节,表示对应ICMP报文的代码。它与类型字段一起共同表示了ICMP报文的详细类型 4.Checksum(校验和):0x4d24[correct];是对包括ICMP报文数据部分在内的人整个ICMP数据包的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与IP报头中的校验和计算方法是一样的 5.Identifier:1 (0x0001) 两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0 6.Sequence number:3553

【计算机网络】传输层

对着背影说爱祢 提交于 2019-12-05 10:17:40
计算机网络 传输层 这里面的二进制反码求和校验算法参考了: https://blog.csdn.net/dingmin1860/article/details/48268927 ARQ 自动重发请求 连续ARQ协议 介绍 传输层是分界层次,以上是面向应用,以下是面向数据传输 根据用户的需求不同~ 可靠,面向连接,TCP 不可靠,非面向连接,UDP。快,传输代价小。 端口 16位,0-65535 0-1023 保留的 1024-5000 临时的 通用端口号 FTP 21/TCP DNS 53/UDP HTTP 80/TCP SMTP 25/TCP 为什么需要传输层 网络层已经提供传输服务,不可靠,会丢失分组。 需要端主机系统自己实现可靠传输。 几个概念 面向连接服务 无连接服务 可靠服务 反馈重发 传输层的两个协议 用户数据报协议 user datagram protocol 传输控制协议 transmission control protocol 传送的数据单位:报文 UDP 用户数据报协议 user datagram protocol 特点 无连接 传输单位是报文 首部小 不可靠 接收方不需要发送确认信息 不保证数据完整到达目的地 减轻网络的通信负担 UDP首部格式 源端口(16位)、目的端口(16)、校验和(16)、消息长度(16)、数据 端口号 :16位

网络协议抓包分析

血红的双手。 提交于 2019-12-05 08:55:59
(2)http包 Accept:收到的文件 Connection:连接关闭 Host:请求的主机名为sougo的DNS服务器 User-Agent:用户代理为搜狗 三、传输层 3.1 TCP协议(三次握手) 3.1.1原理: 步骤1 A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明第一次传送数据时的第一个数据字节的序号是x。 步骤2 B的TCP收到连接请求报文段,如同意,则发回确认。ACK=1,其确认号ack=x+1。同时B向A发起连接请求,应使SYN=1,自己选择的序号seq=y。 步骤3 A收到此报文段后向B给出确认,其ACK=1,序列号seq=x+1,确认号ack=y+1。A的TCP通知上层应用进程,连接已经建立。 3.1.2 三次握手分析 百度IP 第一次握手: 标志位SYN,序号为1,表示客户端请求建立连接 第二次握手:服务器发回确认,FIN=1服务器被动开启,ACK等于上一个序列号数1 第三次握手:序列号为第一次握手的序列号加1,ack等于第二次握手的序列号加1 3.2 四次挥手(双工FIN标志) 第一次挥手序号seq=2856,确认号ACK=47903 ,FIN 第二次挥手:序号seq=47789,确认号ACK=2919 第三次挥手:序号seq=47789,确认号ACK=2919,FIN 第四次挥手:序号seq=2919

IP 抓包

核能气质少年 提交于 2019-12-04 19:05:48
一、 网络地址规划表 主机IP 子网掩码 默认网关 MAC地址 10.11.11.128 255.255.255.0 10.11.8.254 78-45-C4-8E-82 IP地址配置为: 10.11.11.128 子网掩码为:255.255.252.0 默认网关:10.11.8.254 二、在命令提示符中输入ping www.baidu.com 测试连通性, 结果显示能ping 百度,说明网络连通。 三、应用层 1.www 请求报文: 响应报文: 这里http从请求到返回耗时0.035738000s,request in frame:97表示此请求报文frame:97。 2.直播: 打开企鹅电竞直播: 由图可知源端口号为9908,目的端口号为9000,用户数据报长度为62 比特,校验和为0x96ca,数据大小为54 bytes。 四、传输层 3次握手过程分析 客户端通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答(SYN=1)。服务器发送ACK包确认应答(ACK=1),发送SYN包请求连接(SYN=1)。客户端针对SYN包发送ACK包确认应答(ACK=1)。主机的TCP通知上层应用进程,连接建立。 4次挥手过程分析 所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开

Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考)

夙愿已清 提交于 2019-12-04 06:17:02
ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考) 1. 返回顶部 1、 #pragma checksum(C# 参考) 2015/07/20 生成源文件的校验和以帮助调试 ASP.NET 页面。 语法 C# 复制 #pragma checksum "filename" "{guid}" "checksum bytes" 参数 "filename" 需要监视更改或更新的文件的名称。 "{guid}" 哈希算法的全局唯一标识符 (GUID)。 "checksum_bytes" 表示校验和字节的十六进制数字的字符串。 必须是 偶数个十六进制数字 。 奇数个十六进制数字会导 致编译时警告出现,且指令遭忽略 。 备注 Visual Studio 调试器 使用校验和确保它可始终找到正确的源 。 编译器为源文件计算校验和,然后将输出发出到程序数据库 (PDB) 文件。 调试器随后使用 PDB 针对它为源文件计算的校验和进行比较。 此解决方案 不适用于 ASP.NET 项目 , 因为计算的校验和用于生成的源文件,而不用于 .aspx 文件 。 为解决此问题, #pragma checksum 为 ASP.NET 页面提供校验和支持。 在 Visual C# 中创建 ASP.NET 项目时,生成的源文件包含 .aspx 文件

Git 核心概念

女生的网名这么多〃 提交于 2019-12-03 20:21:27
原文链接 Git的核心概念 聪聪的个人网站 本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手。 版本控制系统 Git 是目前世界上最优秀的分布式版本控制系统。版本控制系统是能够随着时间的推进记录一系列文件的变化以便于你以后想要的退回到某个版本的系统。版本控制系统分为三大类:本地版本控制系统,集中式版本控制系统和分布式版本控制系统 本地版本控制(Local Version Control Systems)是将文件的各个版本以一定的数据格式存储在本地的磁盘(有的VCS 是保存文件的变化补丁,即在文件内容变化时计算出差量保存起来),这种方式在一定程度上解决了手动复制粘贴的问题,但无法解决多人协作的问题。 本地版本控制 集中式版本控制(Centralized Version Control Systems)相比本地版本控制没有什么本质的变化,只是多了个一个中央服务器,各个版本的数据库存储在中央服务器,管理员可以控制开发人员的权限,而 开发人员也可以从中央服务器拉取数据。集中式版本控制虽然解决了团队协作问题,但缺点也很明显:所有数据存储在中央服务器,服务器一旦宕机或者磁盘损坏, 会造成不可估量的损失。 集中式版本控制 分布式版本控制( Distributed Version Control System)与前两者均不同。首先

Hadoop(十)Hadoop IO之数据完整性

社会主义新天地 提交于 2019-12-03 14:31:08
前言   上一篇我分享了Hadoop的压缩和编解码器,在我们开发的过程中其实是经常会用到的,所以一定要去掌握。这一篇给大家介绍的是Hadoop的数据完整性!   Hadoop用户在使用HDFS储存和处理数据不会丢失或者损坏,在磁盘或者网络上的每一个I/O操作不太可能将错误引入自己正在读/写的数据中,但是如果   在处理的数据量非常大到Hadoop的处理极限时,数据被损坏的概率还是挺大的。 一、数据完整性概述   检测数据是否损坏的常用措施是:在数据第一次引入系统时计算校验和并在数据通过一个不可靠的同道进行传输时再一次计算校验和,这样就能发现数据是否   损坏。如果计算所得的新校验和原来的校验不匹配,那么表明数据已经损坏。   注意:该技术并不能修复数据,它只能检测出数据错误。(校验和数据也可能损坏,但是由于校验和文件小,所以损坏的可能性小)   常用的错误检测码是:CRC-32(循环冗余校验),使用CRC-32算法任何大小的数据输入均计算得到一个32位的整数校验码。 二、HDFS的数据完整性 2.1、本地文件上传到HDFS集群时的校验   下面我画了一个图好理解:        比如说我们要本地的passwd文件上传到HDFS集群中,会在本地通过CRC-32算法产生一个对passwd文件的一个校验文件:.passwd.crc。在我们将passwd上传到HDFS集群的时候,  

TCP协议之三次握手四次挥手

偶尔善良 提交于 2019-12-03 02:14:50
TCP协议是可靠的传输:表现在2个方面 1.是保证数据包可以按照发送的顺序到达 2.另外一方面是保证数据包一定程度的正确性(后文详解为什么是一定程度上的正确性)。 其可靠性的实现则基于2点技术, 一点是具有一个CRC校验,这样如果数据包中的某些数据出现错误可以通过该校验和发现; 另外一点是每个数据包都有一个序号,这样就能保证数据包的顺序性,如果出现错位的数据包可以请求重发。 TCP协议是一个可靠的传输协议,其可靠性表现在2方面,一方面是保证数据包可以按照发送的顺序到达,另外一方面是保证数据包一定程度的正确性(后文详解为什么是一定程度上的正确性)。其可靠性的实现则基于2点技术,一点是具有一个CRC校验,这样如果数据包中的某些数据出现错误可以通过该校验和发现;另外一点是每个数据包都有一个序号,这样就能保证数据包的顺序性,如果出现错位的数据包可以请求重发。 既然说到了格式,那我们先看一下TCP数据包的数据格式。如下图是TCP数据包的格式,包括原端口、目的端口、序列号和标识位等等内容,内容有些多,看着可能有点眼花。但从大的方面理解,这个数据包其实只包含2部分内容,一个是包头,另外一个则是具体需要传输的数据。在TCP协议的控制逻辑中,包头起着最为关键的作用,它是TCP协议中诸如建立连接、断开连接、重传和错误校验等各种特性的基础。 图2 TCP数据包格式 包头的其它信息的含义都比较明了

互联网渗透测试之Wireshark的高级应用

匿名 (未验证) 提交于 2019-12-03 00:15:02
互联网渗透测试之Wireshark的高级应用 1.1说明 Wireshark的一些高级特性 TCP协议,想要查看Tcp流中的应用层数据,"Following TCP streams"功能将会很有用。如果你项查看telnet流中的密码,或者你想尝试弄明白一个数据流。或者你仅仅只需要一个显示过滤来显示某个TCP流的包。这些都可以通过Wireshark的"Following TCP streams"功能来实现。 TCP包,然后选择Wireshark工具栏菜单的"Following TCP Streams"选项(或者使用包列表鼠标右键的上下文菜单)。然后,Wireshark就会创建合适的显示过滤器,并弹出一个对话框显示TCP流的所有数据。如所示 注意 值得注意的是:Follow Tcp Stream会装入一个显示过滤来选择你已经选择的Tcp流的所有包。 图 A到B的通信标记为红色,从B到A的通信标记为蓝色。当然,如果你喜欢的话你可以从"Edit/Preferences"菜单项的"Colores"修改颜色。 XXX - What about line wrapping (maximum line length) and CRNL conversions? TCP流不能实时更新。想得到最近的内容需要重新打开对话框。 你可以在此对话框执行如下操作: Save As 以当前选择格式保存流数据。

HDFS读写流程(转载)

匿名 (未验证) 提交于 2019-12-02 23:57:01
概述 开始之前先看看其基本属性,HDFS(Hadoop Distributed File System)是GFS的开源实现。 特点如下: 能够运行在廉价机器上,硬件出错常态,需要具备高容错性 流式数据访问,而不是随机读写 面向大规模数据集,能够进行批处理、能够横向扩展 简单一致性模型,假定文件是一次写入、多次读取 缺点: 不支持低延迟数据访问 不适合大量小文件存储(因为每条元数据占用空间是一定的) 不支持并发写入,一个文件只能有一个写入者 不支持文件随机修改,仅支持追加写入 HDFS中的block、packet、chunk 很多博文介绍HDFS读写流程上来就直接从文件分块开始,其实,要把读写过程细节搞明白前,你必须知道block、packet与chunk。下面分别讲述。 block 这个大家应该知道,文件上传前需要分块,这个块就是block,一般为128MB,当然你可以去改,不顾不推荐。因为块太小:寻址时间占比过高。块太大:Map任务数太少,作业执行速度变慢。它是最大的一个单位。 packet packet是第二大的单位,它是client端向DataNode,或DataNode的PipLine之间传数据的基本单位,默认64KB。 chunk chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte