Tcp Note 1

第12章 TCP传输控制协议 12.1.1 通信消息差错的解决办法: 差错校正码 自动重传请求ARQ 12.1.2 重传和重复 重传 处理分组丢失和错误分组的办法是重传分组直到正确接收。发送方发送分组后,等待一个ACK,接收方发送ACK来确认自己收到分组。 可能出现的问题: 发送方等待多长时间ACK ACK丢失 分组收到但出错 重复 在分组中携带序列号,接收方通过序列号判断该分组是否重复 12.1.2 滑动窗口 分组窗口:已发送但还未收到ACK的分组集合 滑动窗口:对于上图中,当收到分组4的ACK后,窗口向右滑动,表示分组7可以被发送 12.1.3 窗口控制 流量控制:当接收方慢于发送方时,控制发送方降低发送速率。 两种方法: 基于速率:指定发送方的发送速率,发送方发送速率不会超过该值 基于窗口:接收方动态调整窗口大小以通知发送方发送速率 拥塞控制:发送发减低速率以保证不会压垮与接收方之间的网络 12.1.4 超时重传 如何设置超时重传的时间? 统计分组的往返时间,取稍大于平均值。 12.2.1 TCP模型 tcp提供面向连接的,可靠字节流服务 面向连接:tcp在进行数据交互之前,需要建立TCP连接。 字节流:UDP是面向报文的,即应用层交付多长报文,UDP照样发送。TCP面向字节流,即TCP将应用层交付的数据看成无结构的字节流,当发送时,会维护缓冲区,如果交付的数据太长,则划分为多段多次发送;如果交付数据太短,则等待累计到足够的字节再发送。由于TCP会拆分或累计,则会导致数据是没有边界的,当缓冲区够大,可能一次性收到发送方发送的多段数据,这也是TCP拆包和粘包出现的原因。 12.2.2 TCP可靠性 序列号:表示每个分组的第一个字节在整个数据流中的字节偏移。比如序列号为301,该报文共100个字节,则表示该报文第一个字节序号为301,最后一个为400,且下一个分组的序号应为401。 检验和:包括头部、应用数据、IP头部字段。对于无效的校验和,接收方丢弃该报文,不发送ACK。 重传计时器:为一个窗口设置一个重传计时器,当ACK到达时更新。 ACK:累积确认,指示字节号N的ACK表示所有直到N的字节都收到。 12.2.3 TCP头部和封装 IP数据报封装: TCP头部: 头部特殊字段: URG:紧急 ACK:确认,在连接建立后通常开启 PSH:推送,未使用? RST:重置连接,连接取消 SYN:初始化序列号,通常是随机选择的 FIN:发送方结束发送 第18章 TCP的连接与终止 18.2 连接的建立与终止 建立连接: 客户端发送SYN报文段,并随机生成初始序号。图中为1415531521 服务端发送SYN报文段,并随机生成初始序号,确认号设置为客户端的SYN+1。图中SYN为1823083521 客户端发送ACK报文段,确认好设置为服务端的SYN+1。 对于初始序号的选择,随机生成,每隔4ms+1。目的是防止在网络中被延迟的分组重传后,接收方做出错误的处理。 终止连接: 由于TCP是全双工,即支持数据在两个方向上流动的,发送一个FIN仅代表着这个方向上没有数据流动,因此终止连接时,每个方向都必须单独关闭 客户端发送FIN报文段,主动关闭 服务端发送ACK报文段,确认号为客户端FIN序号+1 当服务端发送FIN报文段 客户端发送ACK报文段,确认号为服务端FIN序号+1 连接超时: 在ubuntu中查看系统变量...

April 4, 2021 · 4 min · Theme PaperMod

cookie和session以及token

cookie和session以及token cookie 是一种在客户端存储数据的具体实现方式.每次客户端请求都可以携带上cookie,存放一些相关数据信息. session 是一种会话状态的概念.主要的实现是将sessionId保存在服务端,以此来验证客户端发来的session会话.用户在登录后服务器为其生成一个sessionId,并保存在服务端,再将该sessionId发送回客户端.以后客户端的请求需要带上该sessionId,服务端就可以根据该id来验证用户身份. ...

April 24, 2020 · 1 min · Theme PaperMod

tcp三次握手的异常情况探究

TCP三次握手的异常情况探究 本文主要探究TCP三次握手出现的握手数据包丢失的情况的探究 首先来看TCP三次握手的正常情况 tcp正常握手的具体过程就不再细说,接下来主要说一下异常情况,分为3种情况 ...

April 24, 2020 · 1 min · Theme PaperMod

计算机网络基础

计算机网络基础 1. 计算机网络体系结构 OSI七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 五层:物理层,数据链路层,网络层,传输层,应用层 TCP/IP:网络接口层,网际层,传输层,应用层 ...

April 24, 2020 · 1 min · Theme PaperMod