序列号

TCP & UDP

倖福魔咒の 提交于 2019-11-27 20:18:49
TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是传输层中两个主要协议。 TCP与UDP区别 TCP是面向连接的,可靠的流协议,通过检验和,序列号,确认应答,重发控制,连接管理以及窗口控制等机制实现可靠性传输。TCP更多应用在对数据安全有要求的场景。 UDP是不具有可靠性的数据报协议。UDP只会负责把数据发送出去,并不负责数据是否有接受对象。通常情况下,UDP主要应用于那些对高速传输和实时性有较高要求的通信和广播通信。如IP电话,视频,语音聊天等,即使丢失部分数据,也并无大碍。 UDP的特点及其目的 UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。 UDP面对网络拥堵的情况下,无法进行流量控制等避免网络拥塞的行为。 UDP在传输过程中即使丢包,也不负责重发。 UDP并不会调整包到达接受端的顺序,当数据包出现乱序时,需要使用UDP的应用程序自行管理。 UDP主要应用于: TCP的特点及其目的 与UDP相比,TCP是一种面向有连接的协议,只有在确认通信对端存在是才会返送数据,从而可以控制通信流量的浪费。 TCP通过检验和,序列号,确认应答,重发控制,连接管理以及窗口控制等机制实现可靠性传输。

TCP的三次握手和四次挥手

爱⌒轻易说出口 提交于 2019-11-27 17:05:01
原文永久链接: https://github.com/AttemptWeb/Record/issues/10 上面有一篇专门介绍过 TCP和UCP协议 ,其中只是粗略的提到TCP协议的三次握手,而四次挥手完全没有说到,所以这次专门总结了这篇文章,专门讲讲三次握手和四次挥手。 备注:(下文中提到的专业术语) ack —— 确认号码 seq —— 顺序号码 ISN —— 初始序列号 ACK —— 确认,使得确认号有效(握手使用) SYN —— 用于初始化一个连接的序列号,建立联机 FIN —— 该报文的发送方已经结束向对方发送数据 # TCP的三次握手 三次握手 实际就是Client端和Server端建立稳定TCP连接的发送三个包的过程。 第一次握手:(SYN=1, ACK=0, seq=x): Client发送SYN标志位1的包到Server,以及初始序号x(保存在包头的序列号seq字段,简称ISN),和ACK标志位为0,并进入SYN_SEND状态,等待Server确认。 第二次握手:(SYN=1, ACK=1, seq=y, ack=x+1): Server发回确认包(ACK)应答。即 SYN 标志位和 ACK 标志位均为1。Server确认ISN序列号,放到seq域里,同时将确认序号(ack)设置为Client的ISN加1,即x+1。 发送完毕后,Server进入 SYN

TCP的三次握手与四次挥手

我的未来我决定 提交于 2019-11-27 15:56:32
TCP报文段的首部格式 序列号seq: 占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack: 占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。 确认ACK: 占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置为1。 同步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

VS编译fortran dll时报错“ Error: Product support for your (Comp-FW) license has expired.”

左心房为你撑大大i 提交于 2019-11-27 07:37:42
配置:VS 使用的fortran编译器是 Intel(R) Visual Fortran Compiler 16.0 [Intel(R) 64] (vs的工具—>选项里面可以查看) 以ap8ae8.for源代码编译windows 64位dll为例: 建工程(Project)的时候,选择动态链接库(Dynamic-Link Library)即可。 如果你用的是Compaq Fortran,新建的方法是 File-》New-》Projects-》 -》Intel(R) Visual Fortran -》Library-》Dynamic-Link Library,建完之后你再通过Source Files-》Add Files to Folder添加你现有的ap8ae8.for,编译,在Debug或Release文件夹下就可以找到你编译的DLL文件了 但是我的报错:Error: Product support for your (Comp-FW) license has expired 回想起来,我使用的Fortran编译器是之前申请的学生免费版本,那个序列号的有效期是一年,到期后就会显示许可证过期。所以需要重新激活。 步骤: (1) https://software.intel.com/en-us/qualify-for-free-software/student

TCP协议

拥有回忆 提交于 2019-11-27 03:59:49
一、TCP报头 二、连接管理机制 三次握手 1、TCP服务器进程先创建传输控制块TCB,此时服务器就进入了 LISTEN(监听)状态 2、TCP客户端进程也是先创建传输控制块TCB, 然后向服务器发出连接请求报文,此时报文首部中的同步标志位SYN=1, 同时选择一个初始序列号 seq = x, 此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。 3、TCP服务器收到请求报文后, 如果同意连接, 则发出确认报文。确认报文中的 ACK=1, SYN=1, 确认序号是 x+1, 同时也要为自己初始化一个序列号 seq = y, 此时, TCP服务器进程进入了SYN-RCVD(同步收到)状态。 4、TCP客户端进程收到确认后还, 要向服务器给出确认。确认报文的ACK=1,确认序号是 y+1,自己的序列号是 x+1. 5、此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。 四次挥手 1、客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u,此时客户端进入FIN-WAIT-1(终止等待1)状态。 2、服务器收到连接释放报文,发出确认报文,ACK=1,确认序号为 u+1,并且带上自己的序列号seq=v

可靠的TCP连接为何是三次握手和四次挥手

我们两清 提交于 2019-11-27 03:26:31
首先,咱们先来熟悉下经典的tcp/ip模型。 tcp/ip 模型为了方便使用,将osi七层模型划分成了四层,分别为网络接口层,网络层,传输层,应用层。 他们作用分别为: 1)网络接口层:主要作用是将ip地址和计算机的物理地址互相绑定,并实现二进制流和计算机硬件的高低电位的转换。 2)网络层:主要作用是通过ip地址将两台物理机链接起来,实现ip数据包的传输; 3)传输层:使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。; 4)应用层:负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。 今天咱们主要来看下tcp模型中主要的tcp协议。 计算机通信中,要想实现可靠的网络通信,tcp协议是必不可少的一环。那么tcp协议是如何实现可靠通信的呢?这就首先要从经典的三次握手谈起。 三次握手即客户端与服务器至少(网络超时的话会多于三个)要发送三个数据包来建立tcp连接。 第一次握手:客户端发送建立连接数据包,发送之后状态变成SYN_SENT,数据包内容里面SYN标志位为1以及一个随机的序列号seq,假设值为j。 第二次握手:服务器收到请求之后,发送数据包给客户端

TCP协议中的序列号

给你一囗甜甜゛ 提交于 2019-11-27 02:54:36
TCP 协议工作在OSI的传输层,是一种可靠的面向连接的数据流协议,TCP之所以可靠,是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。响应包内也包括一个序列号,表示接收方准备好这个序列号的包。在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。另外,TCP通过数据分段中的序列号来 保证所有传输的数据可以按照正常的顺序进行重组,从而保障数据传输的完整。 在TCP通讯中主要有连接的建立、数据的传输、连接的关闭三个过程!每个过程完成不同的工作,而且序列号和确认号在每个过程中的变化都是不同的。 TCP会话的每一端都包含一个32位(bit)的序列号,该序列号被用来跟踪该端发送的数据量。每一个包中都包含序列号,在接收端则通过确认号用来通知发送端数据成功接收。 TCP建立连接 TCP在其协议头中使用大量的标志位或者说1位(bit)布尔域来控制连接状态,一个包中有可以设置多个标志位。 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即TCP标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束)

难点重点

最后都变了- 提交于 2019-11-27 01:32:16
难点重点 回滚实物rollback 提交事务commit 在数据更新时,oracle会默认开始一个数据库事务,在这个事务没有提交以前,其他人或其他窗口查询不到这里新增或修改的数据 --这种现象称为数据库的锁---数据查询不到,因为该行数据表被锁住了,称为行级锁. --在进行数据库操作时,数据一会可见,一会不可见这样的现象称为:脏读 --脏读什么时候出现?在更新数据时,如果发生了事务的回滚,且在事务回滚前进行了数据的查询,这样的查询就会造成数据的脏读. --回滚事务使用rollback命令 rollback;--事务一旦回滚,则事务结束,当前更新的数据会回滚更新之前.且不能再提交 --执行数据更新后,如果没有问题时需要提价事务,提交事务使用commit命令 --数据一旦提交,则永久性保存到数据库中(一旦提交则事务结束,不能再回滚) commit; --数据事务的几个特性 --原子性 :执行数据更新时,要么一起成功要么一起失败.即在事务中的更新操作时一个不可分割的原子操作. --一致性:在事务操作的前后(回滚前后,提交前后),每次查询到的数据都是一样的. --开始事务前,每次查询到的数据一定是相同的;回滚事务后,每次查询到的数据一定是相同的;提交事务后,每次查询到的数据一定是相同的; --隔离性:事务一旦开启,如果没有提交或回滚,其他窗口(事务)是无法看到当前事务修改后的内容的 -

运维网络基础

筅森魡賤 提交于 2019-11-26 23:41:13
目录 运维网络基础 什么是网络? 网络拓扑 网络类型 OSI模型 DOD模型TCP 数据的封装和解封装 封装 解封 应用层协议介绍 DHCP原理 DNS解析过程 主机到主机层 运维网络基础 什么是网络? 是一种形式的物体,可以让物体跟物体之间进行通信 两台主机怎么进行互相通信 1.要有传输介质(网线、光纤、wifi) 2.要有网卡设备,身份标识符,Mac地址,物理地址,全球唯一,用16进制进行表示。 将数据转换成电信号 #调制过程 将电信号转换成数据 #解调过程 3.协商传输速率 网络单位: Mbps bit=1/8B B=8bit 如何实现多台主机进行通信 交换机 广播风暴问题 将一个大的局域网切割为多个小的局域网 交换机 傻瓜(tp-link,dlink,水星。。) 程控(配置管理,H3,思科,华为) 如何让多个局域网进行通信 路由器 每个局域网之间进行通信,需要经过一条必经之路,网关。 身份标识:IP地址, 网络位+主机位 10.0.0.100,全网唯一,用十进制进行表示。 公网 获得公网ip地址: windows:百度搜索ip linux: [root@m01 ~]# curl ifconfig.me [root@m01 ~]# curl cip.cc 私网 路由表 [root@m01 ~]# route -n Kernel IP routing table

运维网络基础

大城市里の小女人 提交于 2019-11-26 23:00:48
[tcp] 运维网络基础 1. 什么是网络? 是一种形式的物体,可以让物体跟物体之间进行通信 两台主机怎么进行互相通信 1.要有传输介质(网线、光纤、wifi) 2.要有网卡设备,身份标识符,Mac地址,物理地址,全球唯一,用16进制进行表示。 将数据转换成电信号 #调制过程 将电信号转换成数据 #解调过程 3.协商传输速率 网络单位: Mbps bit=1/8B B=8bit 如何实现多台主机进行通信 交换机 广播风暴问题 将一个大的局域网切割为多个小的局域网 交换机 傻瓜(tp-link,dlink,水星。。) 程控(配置管理,H3,思科,华为) 如何让多个局域网进行通信 路由器 每个局域网之间进行通信,需要经过一条必经之路,网关。 身份标识:IP地址, 网络位+主机位 10.0.0.100,全网唯一,用十进制进行表示。 公网 获得公网ip地址: windows:百度搜索ip linux: [root@m01 ~]# curl ifconfig.me [root@m01 ~]# curl cip.cc 私网 路由表 [root@m01 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.254 0.0.0.0 UG