校验和

Git学习——基础知识

倾然丶 夕夏残阳落幕 提交于 2019-11-28 04:09:27
Git是一个 分布式版本控制系统 (Distributed Version Control System,简称 DVCS)。因为每一次的克隆操作,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来 。 1. Git对待数据——直接记录快照,而非差异比较 Git 和其它版本控制系统的主要差别在于对待数据的方法,其它大部分系统以文件变更列表的方式存储信息,将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。如下图所示: Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流 ,如下图所示: 2. Git保证数据的完整性 Git 中所有数据在存储前都计算校验和,然后以yi校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组 成的字符串,基于 Git 中文件的内容或目录结构计算出来。 3. Git文件的三种状态:已提交、已修改和已暂存 Git 有三种状态,你的文件可能处于其中之一

常用网络协议

与世无争的帅哥 提交于 2019-11-27 12:14:35
链路层 ARP协议(Address Resolution Protocol) 请求:广播 应答:单播 根据IP解析MAC地址 免费ARP (源:自己  目标:自己) 检测IP冲突 RARP协议(Reverse Address Resolution Protocol) 根据MAC解析IP,适用于无盘工作站 网络层 IP协议(Internet Protocol)网际协议----计算机之间通信 IP报文结构图 版本 (version) 4 报头长度 (Header Length) 4 服务类型 (Type of Service) 8 总长度 (Total Length) 16 20字节IP报头 标识符 (Identifier) 16 标志 (Flags) 3 片偏移 (Fragment offset) 13 生存时间 (Time of live) 8 协议 (Protocol) 8 首部校验和 (Header Checksum) 16 源IP地址 32 目标IP地址 32 选项(若有) 32 传递数据(n bit) 报头:20字节 版本:一般为 4 或 6 报头长度:IPv4不固定 20-60(选项40max) 服务类型:对特殊报文处理(0-7)优先级越大越高;配置传输服务类型:如吞吐量、时延、可靠性、费用 总长度:整个IP报文携带最大字节数(65535个字节) 标识符

UDP 协议解析 - 1

喜你入骨 提交于 2019-11-27 11:40:28
目录 1. 概述 2. UDP 的主要特点 3. UDP 的首部格式 3. UDP 校验和 3.1 伪首部 3.2 UDP 校验和计算方法 [参考文献] 1. 概述 用户数据报协议(UDP,User Datagram Protocol)为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。UDP是一种保留消息边界的简单的面向数据报的协议。UDP不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制,但提供差错检测(包含我们在传输层中碰到的第一个真实的端到端(end-to-end)校验和)。这种协议自身提供最小功能,因此使用它的应用程序要做许多关于数据报如何发送和处理的控制工作。想要保证数据被可靠传递或正确排序,应用程序必须自己实现这些保护功能。一般来说,每个被应用程序请求的UDP输出操作只产生一个UDP数据报,从而发送一个IP数据报。而对于面向数据流的传输层协议(例如TCP),应用程序写入的全部数据与真正在单个IP数据报里传送的或接收方接收的内容可能没有联系。 2. UDP 的主要特点 1). UDP 是 无连接的 ,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。 2). UDP 使用 尽最大努力交付 ,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。 3). UDP 是 面向报文 的。发送方的UDP对应用程序交下来的报文

UDP协议的详细解析

北城以北 提交于 2019-11-27 11:40:16
UDP数据报 一、UDP的概述(User Datagram Protocol,用户数据报协议) UDP是传输层的协议,功能即为在IP的数据报服务之上增加了最基本的服务:复用和分用以及差错检测。 UDP提供不可靠服务,具有TCP所没有的优势: UDP无连接,时间上不存在建立连接需要的时延。空间上,TCP需要在端系统中维护连接状态,需要一定的开销。此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。UCP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都具有优势。 举个例子: DNS如果运行在TCP之上而不是UDP,那么DNS的速度将会慢很多。 HTTP使用TCP而不是UDP,是因为对于基于文本数据的Web网页来说,可靠性很重要。 同一种专用应用服务器在支持UDP时,一定能支持更多的活动客户机。 分组首部开销小**,TCP首部20字节,UDP首部8字节。 UDP没有拥塞控制,应用层能够更好的控制要发送的数据和发送时间,网络中的拥塞控制也不会影响主机的发送速率。某些实时应用要求以稳定的速度发送,能容 忍一些数据的丢失,但是不能允许有较大的时延(比如实时视频,直播等) UDP提供尽最大努力的交付,不保证可靠交付。所有维护传输可靠性的工作需要用户在应用层来完成。没有TCP的确认机制、重传机制。如果因为网络原因没有传送到对端,UDP也不会给应用层返回错误信息

TCP/IP头格式

被刻印的时光 ゝ 提交于 2019-11-27 11:34:55
一、先是常用的IP头格式。 IP头格式: 版本号 (4位) IP头长度 (4位) 服务类型 (8位) 数据包长度 (16位) 标识段 (16位) 标志段 (16位) 生存时间 (8位) 传输协议 (8位) 头校验和 (16位) 发送地址 (16位) 目标地址 (16位) 选项 填充 简单说明 ============ 1. IP头长度计算所用单位为32位字, 常用来计算数据开始偏移量 2. 数据包长度用字节表示, 包括头的长度, 因此最大长度为65535字节 3. 生存时间表示数据被丢失前保存在网络上的时间, 以秒计. 4. 头校验和的算法为取所有16位字的16位和的补码. 5. 选项长度是可变的, 填充区域随选项长度变化, 用于确保长度为整字节的倍数. 描述 ============ struct iphdr { BYTE versionihl; BYTE tos; WORD tot_len; WORD id; WORD frag_off; BYTE ttl; BYTE protocol; WORD check; DWORD saddr; DWORD daddr; /* Put options here. */ }; 二、TCP头格式 TCP头格式: 源端口 (16位) 目的端口 (16位) 序号 (32位) 确认号 (32位) 数据偏移 (4位) 保留 (6位) 标志 (6位)

【T01】理解面向连接和无连接协议之间的区别

浪尽此生 提交于 2019-11-27 00:43:20
1、面向连接和无连接指的是协议,本质区别在于:对于无连接协议来说,每个分组的处理都独立于其他的分组。 而对于面向连接的协议,协议实现维护了当前分组与后继分组有关的状态信息。 2、无连接就是指udp,分组称为数据报(datagram),每个分组都独立寻址,udp会尽最大努力发送数据报, 但是不保证数据报不丢失,不延迟,不错序。 注意:对于udp,可以在应用层维护数据报的状态。 3、面向连接就是tcp,tcp的分组称为段(segment),协议维护了分组之间的状态,记住这些状态,协议可以提供可靠的传输。 4、一个标准的类比就是:udp就像寄明信片,tcp就像打电话。 5、udp有这么多缺点,为什么还要使用这种协议呢? a、面向连接只支持一对一通信,无连接很方便地支持一对多和多对一的通信,面向连接需要多个独立的连接才能实现。 b、更重要的是,无连接是面向连接的基础,udp和tcp在ip协议之上,ip协议只转发分组,不对底层做任何假设, ip就是不可靠的无连接服务。 6、tcp是怎么提供可靠的传输? tcp在ip协议上增加了3项功能: a、为tcp段中的数据提供校验和,在接收端检查数据是否损坏 b、tcp为每个字节提供序列号,即使在接收端错序了,可以根据恰当的顺序重装起来 注意:tcp并没有为每一个字节附加一个序列号,而是在tcp发送的段中为第一个字节标识了序号,

TCP协议

谁说我不能喝 提交于 2019-11-26 13:58:22
简介 传输控制协议 (英语: T ransmission C ontrol P rotocol,缩写: TCP )是一种面向连接的、可靠的、基于 字节流 的 传输层 通信协议,由 IETF 的 RFC 793 定义。在简化的计算机网络 OSI模型 中,它完成第四层传输层所指定的功能。 用户数据报协议 (UDP)是同一层内另一个重要的传输协议。 在因特网协议族( Internet protocol suite)中,TCP层是位于 IP 层之上, 应用层 之下的中间层。不同主机的应用层之间经常需要可靠的、像 管道 一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的 最大传输单元 (MTU)的限制)。之后TCP把结果包传给IP层,由它来透过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的 确认信息 (ACK);如果发送端实体在合理的 往返时延 (RTT)内未收到确认,那么对应的数据包就被假设为 已丢失 并进行重传。TCP用一个 校验和 函数来检验数据是否有错误,在发送和接收时都要计算校验和。 运作方式

Git & CocoaPods & 私有化,你不得不知的组件化基础!

家住魔仙堡 提交于 2019-11-26 03:33:11
Git 理解Git的设计思想和基本的工作原理,对更好的使用Git至关重要。 Git思想 直接记录快照,而非比较差异。和其他版本控制系统不同的是,Git存储数据时将数据看成小型的文件系统的一组快照,每次在修改文件提交更新后,它主要对当时的所有文件制作一个快照并保存到快照索引中。Git还对这一个保存过程进行了优化,也就是说当文件没有本修改时,Git不会重新存储文件而是只保留一个链接指向之前存储的文件。这是Git与其他版本控制系统的重要区别。 近乎所有的操作都是在本地执行。Git的大多数操作都是在本地完成,当我们在没有网络或者没有×××的情况下,同样可以使用Git进行办公。因为在本地磁盘上有项目的完整历史,可以在任何时候浏览项目的历史。 保证数据的完整性。Git为了保证数据的完整性在存储前都会计算校验和,通过校验和来引用。校验和机制叫做SHA-1散列,也叫哈希散列。Git通过对校验和的检查可以保证数据的完整性。 校验和是40个十六进制组成的字符串。例如 24b9da6552252987aa493b52f8696cd6d3b00373 在Git中,所以文件都是通过校验和进行查找的,而不是文件名。 Git工作原理 为了更好的理解Git,需要理解其设计原理。在Git中,文件有三种状态: 已提交(committed),已修改(modified)和已暂存(staged)。 已提交:

TCP协议

旧街凉风 提交于 2019-11-26 00:26:32
概述 传输控制协议 (英语: T ransmission C ontrol P rotocol,缩写: TCP )是一种面向连接的、可靠的、基于 字节流 的 传输层 通信协议,由 IETF 的 RFC 793 定义。在简化的计算机网络 OSI模型 中,它完成第四层传输层所指定的功能。 用户数据报协议 (UDP)是同一层内另一个重要的传输协议。 在因特网协议族( Internet protocol suite)中,TCP层是位于 IP 层之上, 应用层 之下的中间层。不同主机的应用层之间经常需要可靠的、像 管道 一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的 最大传输单元 (MTU)的限制)。之后TCP把结果包传给IP层,由它来透过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的 确认信息 (ACK);如果发送端实体在合理的 往返时延 (RTT)内未收到确认,那么对应的数据包就被假设为 已丢失 并进行重传。TCP用一个 校验和 函数来检验数据是否有错误,在发送和接收时都要计算校验和。 简介

UDP协议的详细解析

不问归期 提交于 2019-11-25 21:44:32
UDP数据报 一、UDP的概述(User Datagram Protocol,用户数据报协议) UDP是传输层的协议,功能即为在IP的数据报服务之上增加了最基本的服务:复用和分用以及差错检测。 UDP提供不可靠服务,具有TCP所没有的优势: UDP无连接,时间上不存在建立连接需要的时延。空间上,TCP需要在端系统中维护连接状态,需要一定的开销。此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。UCP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都具有优势。 举个例子: DNS如果运行在TCP之上而不是UDP,那么DNS的速度将会慢很多。 HTTP使用TCP而不是UDP,是因为对于基于文本数据的Web网页来说,可靠性很重要。 同一种专用应用服务器在支持UDP时,一定能支持更多的活动客户机。 分组首部开销小**,TCP首部20字节,UDP首部8字节。 UDP没有拥塞控制,应用层能够更好的控制要发送的数据和发送时间,网络中的拥塞控制也不会影响主机的发送速率。某些实时应用要求以稳定的速度发送,能容 忍一些数据的丢失,但是不能允许有较大的时延(比如实时视频,直播等) UDP提供尽最大努力的交付,不保证可靠交付。所有维护传输可靠性的工作需要用户在应用层来完成。没有TCP的确认机制、重传机制。如果因为网络原因没有传送到对端,UDP也不会给应用层返回错误信息