5.9 TCP 的运输连接管理 1. 运输连接的三个阶段 运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。 连接建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。

Slides:



Advertisements
Similar presentations
基礎理論篇 ( 一 ) 養生文化的形成 陳昭吟 中華養生文化講義. 何謂養生 何謂養生━性質與特點 晉朝葛洪《抱朴子 · 極言》:養生以不傷為本。 又言:才所不逮而困思之,傷也;力所不勝,而 強舉之,傷也;悲哀憔悴,傷也;喜樂過差,傷 也;汲汲所欲,傷也;久談言笑,傷也;寢息失 時,傷也;挽弓引弩,傷也;沉醉嘔吐,傷也;
Advertisements

缺点: 1 、个体间基因型高度一致,缺乏普遍性。 2 、对外界环境适应能力差,饲养要求高。 3 、对饲料的营养要求高,各品系不一致。 4 、繁殖力低下 5 、生长发育慢.
传媒学生应该如何度 过四年大学生活?. 进入大学一个多月了,用一个词形容大 学生活 自卑感 不适应 空虚感 被动感 孤独感 失望感 一、大学新生不适应大学生活的表现:
電機電子群 培養學生具備電機與電子群共同核心能力,使具備電機與電子領域有關操作、維修、測試、應用等實用專 業技能。並為相關專業領域之學習或高一層級專業知能之進修奠定基礎。
动态网站开发 【HTTP与网络基础】 李博杰
基督教倫理學 1 原則(一)﹕ 倫理學 及 不同的觀點.
性平三法及兒少相關保護法令之介紹與宣導 華誠聯合律師事務所 蔡其龍律師.
《饲料加工设备图形符号》 国家标准表.
探问生命教育 ——陶行知生命教育思想学习心得
2.4 计算机网络基础 什么是计算机网络? 计算机网络有哪些功能? 计算机网络的发展历史? 计算机网络体系结构的内容? 计算机网络如何分类?
第九章 認識勞退新制及因應之道 大葉大學 助理教授 邱祈豪.
第 12 章 UDP 與 TCP.
学党章党规、学系列讲话,做合格党员 学习教育
感恩❤ 爱的旋律 ——学会感恩主题班会 二(1)中队.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
图书馆直属党总支 党风廉政建设专题党课.
五階段團體發展模式 組織行為期末報告-影片欣賞 指導老師:蕭金蘭 老師 組長:b 陳俐榕
Chapter 12 UDP 與 TCP.
腾讯通RTX 江苏技术服务中心.
邹春明 公安部第三研究所 公安部信息系统安全产品质量监督检验中心
计算机网络安全技术实验 启动虚拟机、GIF、measpoilt、.
数据转发过程.
第 7 章 运输层 基本内容 传输层的概念,TCP/IP体系中的传输层,端口的概念,用户数据报协议UDP,传输控制协议TCP,TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。 重点掌握 TCP/IP体系中的传输控制协议TCP:TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。
串口服务器典型应用 RS232/RS485串口设备 串口服务器 A 以太网 TCP/IP或UDP模式 TCP/IP UDP协议
國際行銷的政治與法律環境 學生:蘇玉里 ( )
TCP Session Hijack 郭军权
Life with Food 生命与食品安全.
项目申报及投资推进工作实务 更多模板、视频教程: 兰溪市发展和改革局 2013年9月 1.
他們,與眾不同…….
Lab312.
医学寄生虫总论 (二).
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
第 12 章 UDP 與 TCP.
Chapter 3 Transport Layer (傳輸層).
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
Chapter 3-2 TCP.
TCP和UDP基本原理.
TCP报文格式.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
輕 輕 聽 Gently Listening.
Chapter 3 Transport Layer
Phase 4: Network For ACM05, By Mu LI.
P2P简介 网络模式 C/S 模式 B/S 模式 P2P(peer to peer) FTP,POP3,SMTP HTTP
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
第4章 OSI傳輸層.
第4讲 传输层之二 本讲目的: 本讲概述: Internet传输层的实现和实例 面向连接的传输: TCP TCP拥塞控制 拥塞控制原则
计算机网络(第 5 版) 第 5 章 传输层.
计算机网络 Computer Network
Chapter 12 傳輸控制通訊協定.
计算机网络 第 7 章 运输层 课件制作人:谢希仁.
實驗目的 明瞭可靠傳輸層的基礎觀念 TCP協定下區段資料傳送的格式
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第十三章 TCP/IP 與 Internet 網路連結技術
RFID原理与应用 教师:朱华贵 2015年05月05日
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
神奇寶貝之十萬伏特 指導老師:黃世璋老師 作者:蘇芃瑜、張凱雯、謝明娟 1.
時間是一項寶貴的財產,吾人應試圖充分利用,儘量不浪費,因為時間是無可取代的。
使用WireShark解析TCP封包 Computer Network Lab2.
105-2 Python Homework 2.
Lab312.
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
網路安全管理 期末報告 A 許之青 24/04/2019.
一、真愛密碼 二、尋求真愛 三、有自尊的愛.
课程建设汇报 方宝富 合肥工业大学
松鼠狗 聖士提反女子中學附屬小學 陳文希.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
105-2 Python Homework 2.
Presentation transcript:

5.9 TCP 的运输连接管理 1. 运输连接的三个阶段 运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。 连接建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。

客户服务器方式 TCP 连接的建立都是采用客户服务器方式。 主动发起连接建立的应用进程叫做客户(client)。 被动等待连接建立的应用进程叫做服务器(server)。

5.9.1 TCP 的连接建立 A 的 TCP 向 B 发出连接请求报文段,其首部中的 客户 服务器 A B 主动打开 被动打开 CLOSED CLOSED SYN = 1, seq = x A 的 TCP 向 B 发出连接请求报文段,其首部中的 同步位 SYN = 1,并选择序号 seq = x,表明传送 数据时的第一个数据字节的序号是 x。

5.9.1 TCP 的连接建立 B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。 客户 服务器 A B 主动打开 被动打开 CLOSED CLOSED SYN = 1, seq = x SYN = 1, ACK = 1, seq = y, ack= x  1 B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。 B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x  1,自己选择的序号 seq = y。

A 收到此报文段后向 B 给出确认,其 ACK = 1, 确认号 ack = y  1。 A 的 TCP 通知上层应用进程,连接已经建立。 客户 服务器 A B 主动打开 被动打开 CLOSED CLOSED SYN = 1, seq = x SYN = 1, ACK = 1, seq = y, ack= x  1 ACK = 1, seq = x + 1, ack = y  1

B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。 客户 服务器 A B 主动打开 被动打开 CLOSED CLOSED SYN = 1, seq = x SYN = 1, ACK = 1, seq = y, ack= x  1 ACK = 1, seq = x + 1, ack = y  1 数据传送

5.9.1 TCP 的连接建立 用三次握手建立 TCP 连接的各状态 SYN = 1, seq = x 客户 服务器 A B 主动打开 被动打开 CLOSED CLOSED SYN- SENT ESTAB- LISHED RCVD LISTEN SYN = 1, seq = x SYN = 1, ACK = 1, seq = y, ack= x  1 ACK = 1, seq = x + 1, ack = y  1 数据传送

只有两次握手,会出现异常情况 假定B给A发送一个连接请求分组,A收到这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。 可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组,在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A发出的分组超时后,重复发送同样的分组。这样就形成了死锁。 B 发送 M1 A 确认 M1 t

5.9.2 TCP 的连接释放 数据传输结束后,通信的双方都可释放连接。 现在 A 的应用进程先向其 TCP 发出连接释放 客户 服务器 A B 主动关闭 ESTAB- LISHED 数据传送 ESTAB- LISHED FIN = 1, seq = u 数据传输结束后,通信的双方都可释放连接。 现在 A 的应用进程先向其 TCP 发出连接释放 报文段,并停止再发送数据,主动关闭 TCP 连接。 A 把连接释放报文段首部的 FIN = 1,其序号 seq = u,等待 B 的确认。 CLOSED CLOSED

从 A 到 B 这个方向的连接就释放了,TCP 连接 处于半关闭状态。B 若发送数据,A 仍要接收。 客户 服务器 A B 主动关闭 ESTAB- LISHED 数据传送 通知 应用 进程 ESTAB- LISHED FIN = 1, seq = u ACK = 1, seq = v, ack= u  1 B 发出确认,确认号 ack = u  1, 而这个报文段自己的序号 seq = v。 TCP 服务器进程通知高层应用进程。 从 A 到 B 这个方向的连接就释放了,TCP 连接 处于半关闭状态。B 若发送数据,A 仍要接收。

5.9.2 TCP 的连接释放 若 B 已经没有要向 A 发送的数据, 其应用进程就通知 TCP 释放连接。 客户 服务器 A B 被动关闭 主动关闭 通知 应用 进程 ESTAB- LISHED 数据传送 ESTAB- LISHED FIN = 1, seq = u ACK = 1, seq = v, ack= u  1 数据传送 FIN = 1, ACK = 1, seq = w, ack= u  1 若 B 已经没有要向 A 发送的数据, 其应用进程就通知 TCP 释放连接。

5.9.2 TCP 的连接释放 A 收到连接释放报文段后,必须发出确认。 FIN = 1, seq = u 客户 服务器 A B 被动关闭 主动关闭 通知 应用 进程 ESTAB- LISHED 数据传送 ESTAB- LISHED FIN = 1, seq = u ACK = 1, seq = v, ack= u  1 数据传送 FIN = 1, ACK = 1, seq = w, ack= u  1 ACK = 1, seq = u + 1, ack = w  1 A 收到连接释放报文段后,必须发出确认。

在确认报文段中 ACK = 1,确认号 ack  w  1, 自己的序号 seq = u + 1。 5.9.2 TCP 的连接释放 客户 服务器 A B 被动关闭 主动关闭 通知 应用 进程 ESTAB- LISHED 数据传送 ESTAB- LISHED FIN = 1, seq = u ACK = 1, seq = v, ack= u  1 数据传送 FIN = 1, ACK = 1, seq = w, ack= u  1 ACK = 1, seq = u + 1, ack = w  1 在确认报文段中 ACK = 1,确认号 ack  w  1, 自己的序号 seq = u + 1。

 TCP 连接必须经过时间 2MSL 后才真正释放掉。 5.9.2 TCP 的连接释放 FIN = 1, seq = u 客户 服务器 A B 主动关闭 通知 应用 进程 ESTAB- LISHED 数据传送 ESTAB- LISHED FIN = 1, seq = u FIN- WAIT-1 ACK = 1, seq = v, ack= u  1 CLOSE- WAIT 数据传送 被动关闭 FIN- WAIT-2 FIN = 1, ACK = 1, seq = w, ack= u  1 LAST- ACK 等待 2MSL TIME- WAIT  ACK = 1, seq = u + 1, ack = w  1 CLOSED CLOSED

MSL(Maximum Segment Life):最长报文段寿命 时间等待计时器 MSL(Maximum Segment Life):最长报文段寿命 第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B。 第二,防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。 由时间等待计时器完成。

保活计时器 保活计时器使用在某些实现中,用来防止在两个TCP之间的连接出现长时期的空闲。假定客户打开了到服务器的连接,传送了一些数据,然后就保持静默了。也许这个客户出故障了。在这种情况下,这个连接将永远地处理打开状态。 要解决这种问题,在大多数的实现中都是使服务器设置保活计时器。每当服务器收到客户的信息,就将计时器复位。超时通常设置为2小时。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。

5.9.3 TCP 的有限状态机 TCP 有限状态机的图中每一个方框都是 TCP 可能具有的状态。 箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。 图中有三种不同的箭头。 粗实线箭头表示对客户进程的正常变迁。 粗虚线箭头表示对服务器进程的正常变迁。 另一种细线箭头表示异常变迁。

TCP 的 有 限 状 态 机 起点 CLOSED 被动打开 主动打开 发送 SYN 关闭 收到 SYN 发送 SYN, ACK LISTEN TCP 的 有 限 状 态 机 被动打开 收到 RST 发送 SYN 关闭 或超时 收到 SYN,发送 SYN, ACK SYN_RCVD SYN_SENT 同时打开 主动打开 收到 ACK 收到 SYN, ACK 发送 ACK 数据传送 阶段 收到 FIN 发送 ACK 被动关闭 关闭 发送 FIN ESTABLISHED CLOSE_WAIT 关闭 发送 FIN 主动关闭 关闭 发送 FIN 收到 FIN 发送 ACK 同时关闭 FIN_WAIT_1 CLOSING 收到 ACK 收到 FIN, ACK 发送 ACK LAST_ACK 收到 ACK 收到 ACK 收到 FIN 发送 ACK FIN_WAIT_2 TIME_WAIT 定时经过两倍报文段寿命后

5-12、5-23、5-24、5-27、5-31、5-37、5-38、5-46

tcp四种定时器 重传计时器:Retransmission Timer 持续计时器:persistent timer 为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。 可靠性传输。 持续计时器:persistent timer 专门为对付零窗口通知而设立的。流量控制 保活计时器:keeplive timer 每当服务器收到客户的信息,就将keeplive timer复位,超时通常设置2小时,若服务器超过2小时还没有收到来自客户的信息,就发送探测报文段,若发送了10个探测报文段(没75秒发送一个)还没收到响应,则终止连接。 TCP连接管理。

tcp四种定时器 时间等待计时器:Time_Wait Timer 在连接终止期使用,当TCP关闭连接时,并不认为这个连接就真正关闭了,在时间等待期间,连接还处于一种中间过度状态。这样就可以使重复的fin报文段在到达终点后被丢弃,这个计时器的值通常设置为一格报文段寿命期望值的两倍。 TCP连接管理