主页:http://staff.ustc.edu.cn/~mengning 地址:苏州工业园区独墅湖高等教育区仁爱路166号明德楼A302室

Slides:



Advertisements
Similar presentations
动态网站开发 【HTTP与网络基础】 李博杰
Advertisements

網路程式設計 (Network Programming)
5.9 TCP 的运输连接管理 1. 运输连接的三个阶段 运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。 连接建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
第三章 駭客入侵流程解析.
第 12 章 UDP 與 TCP.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
Chapter 12 UDP 與 TCP.
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
第1章 概述.
数据转发过程.
第 7 章 运输层 基本内容 传输层的概念,TCP/IP体系中的传输层,端口的概念,用户数据报协议UDP,传输控制协议TCP,TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。 重点掌握 TCP/IP体系中的传输控制协议TCP:TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。
主页:xgxy.cug.edu.cn/rjgcx/lzw
Socket.
Lab312.
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
Advanced Sockets Programming
第 12 章 UDP 與 TCP.
Chapter 3 Transport Layer (傳輸層).
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
GPRS 数据传输 Beijing Synrich.
Chapter 3-2 TCP.
Socket Programming in C
網路伺服器應用 Linux Server Andres, Wen-Yuan Liao
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
TCP和UDP基本原理.
TCP报文格式.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
第九章 传输控制协议 (TCP).
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
SOCKET编程原理.
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協定下區段資料傳送的格式
第七讲 网际协议IP.
NS2 – TCP/IP Simulation How-Wei Wu.
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
第8章 传输层 8.1传输层服务 8.2端口寻址 8.3建立连接 8.4Internet中的传输层协议 8.5Berkeley Socket
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第十三章 TCP/IP 與 Internet 網路連結技術
TANet PROTOCOL ANALYSIS - WIRESHARK - 350.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
Web Server 王宏瑾.
Westmont College 网络应用软件 第一讲 (客户-服务器 概念, 协议端口的使用, 套接字API)
使用WireShark解析TCP封包 Computer Network Lab2.
Lab312.
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
DQMClientDim.cxx及双光子练习
網路安全管理 期末報告 A 許之青 24/04/2019.
实验七 安全FTP服务器实验 2019/4/28.
Select模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
2019/5/3 JAVA Socket(UDP).
Chapter 10 Mobile IP TCP/IP Protocol Suite
数据报分片.
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
阻塞式模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
數學遊戲二 大象轉彎.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Lecture Review 交换 多路复用 各种调制-脉冲编码、差分脉冲编码、增量 数据链路层的功能 电路交换 报文交换 分组交换
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Presentation transcript:

TCP Overview 主讲:孟宁 电话:0512-68839302 E-mail:mengning@ustc.edu.cn 主页:http://staff.ustc.edu.cn/~mengning 地址:苏州工业园区独墅湖高等教育区仁爱路166号明德楼A302室 2010年12月

TCP Overview TCP in TCP/IP suite TCP Services TCP Segment Format 超时与半关闭 TCP的状态变迁

Position of TCP in TCP/IP suite

Overview of TCP/IP protocols BPF:BSD packet filter. This interface provides access to the datalink layerIt is normally found on Berkeley-derived kernels. DLPI: Datalink provider interface. This interface also provides access to the datalink layer. It is normally provided with SVR4

TCP versus IP

TCP Services 提供一种面向连接的、可靠的字节流服务。 TCP数据分割(UDP保持数据长度不变) 等待确认,超时重发 数据接收方发送确认 对TCP段进行排序,以保证正确的顺序 IP包的到达可能会失序 UDP不分割大数据,使用IP的分片服务 流量控制,有一个固定大小的缓冲区

TCP Segment Format

TCP Segment 源端口和目的端口用来标识本地和对方的应用进程。 sequence number指示TCP段中第一个字节的序号。建立一个新的TCP连接时(SYN标志为1),该域是主机为该连接选择的初始序号,连接建立后发送的第一个字节将具有的序号为sequence number+1(SYN和FIN都占用一个序号)。由于全双工,每个连接的端点都必须单独维持一个序号。 acknowledgement number表示发送该TCP段的主机准备从对方接收的下一个字节序号(SN+数据长度),即该序号之前的字节已全部正确收到。 TCP可以表述为没有选择确认或否认的滑动窗口协议。

header length指示TCP头的长度(以4字节为单位),最大值为15(60字节)。 URG标志指示urgent pointer域是否有效,urgent pointer用来指示紧急数据距当前字节序号的偏移字节数。当接收方收到一个URG为1的段后,立即中断当前正在执行的程序,根据urgent pointer找到段中的紧急数据,优先进行处理。

TCP首部中有6个标志比特 U R G 紧急指针( urgent pointer)有效。 A C K 确认序号有效。 P S H 接收方应该尽快将这个报文段交给应用层。 R S T 重建连接。 S Y N 同步序号用来发起一个连接。 F I N 发端完成发送任务。

Description of flags in the control field

windows size表示发送方可以发送的字节数,为0时表示接收缓冲区满。用于TCP的流量控制。 checksum对TCP头、TCP数据域及TCP伪头(pseudoheader,12字节长,其中的内容来自于IP分组的头)进行校验。和UDP类似。 选项用于提供一种增加额外设置的方法,在常规的TCP头中并不包括。重要的选择有: MSS选项(设定能接受的最大TCP载荷能力;窗口比例选项(可扩大窗口尺寸);选择重发选项等。

TCP数据传输过程简述 TCP将用户数据打包(分割)成报文段;发送后启动一个定时器;另一端对收到的数据进行确认,对失序的重新排序,丢弃重复数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。

TCP Connection Establishment The server must be prepared to accept an incoming connection. by calling socket, bind, and listen. The client issues an active open by calling connect. This causes the client TCP to send a "synchronize" (SYN) segment, which tells the server the client's initial sequence number for the data that the client will send on the connection. Normally, there is no data sent with the SYN; it just contains an IP header, a TCP header, and possible TCP options. The server must acknowledge (ACK) the client's SYN and send its own SYN The server sends its SYN and the ACK of the client's SYN in a single segment. The client must acknowledge the server's SYN.

TCP three-way handshake

TCP three-way handshake

超时 BSD版TCP采用500ms的定时器 第一次SYN之后6秒超时 第二次SYN之后24秒超时 第三次SYN之后48秒超时

Data transfer 找错误?

TCP Connection Termination One application calls close first,and we say that this end performs the active close. The other end that receives the FIN performs the passive close.The received FIN is acknowledged by TCP. Sometime later, the application that received the end-of-file will close its socket. This causes its TCP to send a FIN. The TCP on the system that receives this final FIN (the end that did the active close) acknowledges the FIN.

a TCP connection is closed 服务端也可以主动关闭 可在最后一个数据分片中携带FIN 可合并ACK和FIN在一个分片中

Connection termination using three-way handshaking

TIME_WAIT(2MSL) MSL-Maximum Segment Lifetime RFC793,MSL=2分钟,实际实现30s,1min或2min。 2MSL是让TCP再次发送最后的ACK以防ACK丢失(另一端超时并重发最后的FIN)

半关闭 TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

shutdown()函数参数说明 1 2 s标识一个套接口的描述字 how是一个标志,用于描述禁止哪些操作,取值如下表: 关闭方式 参数值 说  明 SD_RECEIVE 表示不允许再调用接收函数,它关闭读通道。套接口接收缓冲区中的所有数据都被丢弃,并且有新数据到达套接口时,也被TCP协议层丢弃,但它对发送缓冲区没有影响,进程仍然可以在套接口上发送数据 SD_SEND 1 表示不允许再调用发送函数,它关闭写通道。在套接口发送缓冲区中的数据都被发送出去,得到接收端确认之后,就生成一个FIN包关闭连接。但它对接收缓冲区没有影响,进程仍然可以在套接口上接收数据 SD_BOTH 2 关闭读写通道,相当于执行了上面SD_RECEIVE和SD_SEND两个命令

FIN_WAIT_2 主动关闭之后(发送FIN收到ACK),等待另一端的FIN 按照规范FIN_WAIT_2可能永远保持这个状态,另一端也处于CLOSE_WAIT状态 实际BSD版上,如果连接空闲10分75秒,即进入CLOSED状态。

虚线:服务器端 实线:客户机端 红线:非正常情况 MSL:30s~120s

Client states 客户机状态

Server states 服务器状态

谢谢大家! 使用tcpdump来抓包 $sudo tcpdump -i lo -S