《TCPIP网络原理与应用》课件.ppt
《《TCPIP网络原理与应用》课件.ppt》由会员分享,可在线阅读,更多相关《《TCPIP网络原理与应用》课件.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TCP/IP网络原理与应用网络原理与应用袁巍袁巍华中科技大学电信系华中科技大学电信系2011.10TCP/IP网络原理与应用之网络原理与应用之TCP协议介绍协议介绍1主要内容主要内容lTCP协议概述协议概述lTCP数据编号与确认数据编号与确认lTCP运输连接管理运输连接管理TCP/IP网络原理与应用之TCP协议介绍1TCP协议演进协议演进19751980198519901982TCP&IPRFC 793&7911974TCP described byVint Cerf and Bob KahnIn IEEE Trans Comm1983BSD Unix 4.2supports TCP/IP19
2、84Nagels algorithmto reduce overheadof small packets;predicts congestion collapse1987Karns algorithmto better estimate round-trip time1986Congestion collapseobserved1988Van Jacobsons algorithmscongestion avoidance and congestion control(most implemented in 4.3BSD Tahoe)19904.3BSD Renofast retransmit
3、delayed ACKs1975Three-way handshakeRaymond TomlinsonIn SIGCOMM 75TCP/IP网络原理与应用之TCP协议介绍1TCP Through the 1990s1993199419961994ECN(Floyd)Explicit CongestionNotification1993TCP Vegas(Brakmo et al)real congestion avoidance1994T/TCP(Braden)TransactionTCP1996SACK TCP(Floyd et al)Selective Acknowledgement19
4、96HoeImproving TCP startup1996FACK TCP(Mathis et al)extension to SACKTCP/IP网络原理与应用之TCP协议介绍1TCP的特点的特点l与与UDP的最大区别的最大区别:TCP是面向连接的,是面向连接的,UDP是无连接的是无连接的lTCP提供一种面向连接的、可靠的字节提供一种面向连接的、可靠的字节流服务流服务TCP/IP网络原理与应用之TCP协议介绍1TCP的特点的特点l面向连接面向连接l两个使用两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个换数据之前
5、必须先建立一个TCP连接连接l可靠可靠l应用数据被分割成应用数据被分割成TCP认为最适合发送的数据块。认为最适合发送的数据块。l当当TCP发出一个段后,它启动一个定时器,等待目的端确认收到发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。这个报文段。如果不能及时收到一个确认,将重发这个报文段。l当当TCP收到发自收到发自TCP连接另一端的数据,它将发送一个确认。连接另一端的数据,它将发送一个确认。lTCP将计算首部和数据的检验和。如果收到段的检验和有差错,将计算首部和数据的检验和。如果收到段的检验和有差错,T CP将丢弃这个报文段和不确认
6、收到此报文段(希望发端超时并重将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)发)l如果必要,如果必要,TCP将对收到的数据进行重新排序,将收到的数据以将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。正确的顺序交给应用层。l既然既然IP数据报会发生重复,数据报会发生重复,TCP的接收端必须丢弃重复的数据。的接收端必须丢弃重复的数据。lTCP还能提供流量控制。还能提供流量控制。TCP连接的每一方都有固定大小的缓冲连接的每一方都有固定大小的缓冲空间。空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主
7、机致使较慢主机的缓冲区溢出。数据。这将防止较快主机致使较慢主机的缓冲区溢出。TCP/IP网络原理与应用之TCP协议介绍1TCP的特点的特点l字节流l两个应用程序通过两个应用程序通过TCP连接交换连接交换8 bit字节构成的字节流。字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服不在字节流中插入记录标识符。我们将这称为字节流服务。务。l如果一方的应用程序先传如果一方的应用程序先传1 0字节,又传字节,又传2 0字节,再传字节,再传5 0字字节,连接的另一方将无法了解发方每次发送了多少字节。收节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分方可以分4次接收这次接
8、收这8 0个字节,每次接收个字节,每次接收2 0字节。一端将字节。一端将字节流放到字节流放到TCP连接上,同样的字节流将出现在连接上,同样的字节流将出现在T C P连接连接的另一端。的另一端。lTCP对字节流的内容不作任何解释。对字节流的内容不作任何解释。TCP不知道传输的数据不知道传输的数据字节流是二进制数据,还是字节流是二进制数据,还是ASCII字符或者其他类型数据。字符或者其他类型数据。l对字节流的解释由对字节流的解释由T C P连接双方的应用层解释。连接双方的应用层解释。TCP/IP网络原理与应用之TCP协议介绍1TCP发送报文段发送报文段端口发送 TCP 报文段TCPTCP接收缓存发
9、送缓存报文段报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程TCP/IP网络原理与应用之TCP协议介绍1发送缓存与接收缓存的作用发送缓存与接收缓存的作用l发送缓存用来暂时存放:发送缓存用来暂时存放:l 发送应用程序传送给发送方发送应用程序传送给发送方 TCP 准备发送的数据;准备发送的数据;l TCP 已发送出但尚未收到确认的数据。已发送出但尚未收到确认的数据。l接收缓存用来暂时存放:接收缓存用来暂时存放:l 按序到达的、但尚未被接收应用程序读取的数据;按序到达的、但尚未被接收应用程序读取的数据;l 不按序到达的数据。不按序到达的数据。TCP/IP网络原理与
10、应用之TCP协议介绍1TCP首部20 字节的固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 bitSYNRSTPSHACKURG比特 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP 数据部分IP 首部发送在前TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充源端口和目的端口字段各占 2
11、 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变
12、)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充数据偏移占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(
13、4 字节为计算单位)。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充保留字段占 6 bit,保留为今后使用,但目前应置为 0。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急比特 URG
14、 当 URG 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认比特 ACK 只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧
15、 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充推送比特 PSH(PuSH)接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充复位比特 RST(ReSeT)当 RST 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其
16、他原因),必须释放连接,然后再重新建立运输连接。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特 SYN 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG
17、比特 0 8 16 24 31填 充终止比特 FIN(FINal)用来释放一个连接。当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充窗口字段窗口字段窗口字段窗口字段 占占占占 2 2 字节。窗口字段用来控制对方发送的数据量,单位字节。窗口字段用来控制对方发送的数据量,单位字节。窗口字段用来控制对方发送的数据量,单位字节
18、。窗口字段用来控制对方发送的数据量,单位为字节。为字节。为字节。为字节。TCP TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗连接的一端根据设置的缓存空间大小确定自己的接收窗连接的一端根据设置的缓存空间大小确定自己的接收窗连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。口大小,然后通知对方以确定对方的发送窗口的上限。口大小,然后通知对方以确定对方的发送窗口的上限。口大小,然后通知对方以确定对方的发送窗口的上限。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)
19、源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急指针字段 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。T
20、CP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充选项字段 长度可变。TCP的一种选项是最大报文段长度 MSS(Maximum Segment Size)。MSS 告诉对方 TCP:“我所能接收的报文段的数据字段的最大长度是 MSS 个字节。”MSS 是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。TCP/IP网络原理与应用之TCP协议介绍1其他选
21、项其他选项l窗口比例选项窗口比例选项 占占 3 字节,其中有一个字节表字节,其中有一个字节表示移位值示移位值 S。新的窗口值等于。新的窗口值等于TCP 首部中的窗口首部中的窗口位数增大到位数增大到(16+S),相当于把窗口值向左移动,相当于把窗口值向左移动 S 位后获得实际的窗口大小。位后获得实际的窗口大小。l时间戳选项时间戳选项占占10 字节,其中最主要的字段时字节,其中最主要的字段时间戳值字段(间戳值字段(4 字节)和时间戳回送回答字段(字节)和时间戳回送回答字段(4 字节)。字节)。l选择确认选项选择确认选项 TCP/IP网络原理与应用之TCP协议介绍1TCP首部20字节固定首部目 的
22、端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充填充字段 这是为了使整个首部长度是 4 字节的整数倍。TCP/IP网络原理与应用之TCP协议介绍1TCP 的数据编号与确认的数据编号与确认 lTCP 协协议议是是面面向向字字节节的的。TCP 将将所所要要传传送送的的报报文文看看成成是是字字节节组组成成的的数数据据流流,并并使使每每一一个个字字节节对对应应于于一一个个序序号。号。l在在连连接接建建立立时时,双双方方要要商商定定初初始始序序号号。TCP 每每次次发发送送的的报
23、报文文段段的的首首部部中中的的序序号号字字段段数数值值表表示示该该报报文文段段中中的的数据部分的第一个字节的序号数据部分的第一个字节的序号。l TCP 的的确确认认是是对对接接收收到到的的数数据据的的最最高高序序号号表表示示确确认认。接接收收端端返返回回的的确确认认号号是是已已收收到到的的数数据据的的最最高高序序号号加加 1。因因此此确确认认号号表表示示接接收收端端期期望望下下次次收收到到的的数数据据中中的的第第一一个数据字节的序号个数据字节的序号。TCP/IP网络原理与应用之TCP协议介绍1TCP发送报文段的时机发送报文段的时机lTCP有三种基本机制来控制报文段的发送有三种基本机制来控制报文
24、段的发送l只要发送缓存从发送进程得到的数据达到最大报文只要发送缓存从发送进程得到的数据达到最大报文段长度段长度MSS字节时就组装字节时就组装TCP报文段并发送报文段并发送l发送端的应用进程指明要求发送报文段,即发送端的应用进程指明要求发送报文段,即TCP支支持的推送(持的推送(push)操作)操作l发送端的一个计时器时间到了,就把当前已有的混发送端的一个计时器时间到了,就把当前已有的混存数据组装成存数据组装成TCP报文段发送出去报文段发送出去TCP/IP网络原理与应用之TCP协议介绍1WinDump对对TCP首部中的部分标志首部中的部分标志位的字符方式位的字符方式TCP/IP网络原理与应用之T
25、CP协议介绍1实验实验观察观察TCP的的2种发送报文段机制种发送报文段机制l机制一的实验步骤:机制一的实验步骤:l编写编写TCP服务器并运行服务器并运行l为观察方便,客户端连接后进入睡眠,其进程不向客户为观察方便,客户端连接后进入睡眠,其进程不向客户端发送数据端发送数据l编写编写TCP客户端并运行客户端并运行l该客户端不停地向服务器发送大量数据该客户端不停地向服务器发送大量数据l使用使用WinDump抓包并分析抓包并分析l注意:注意:bigdog为为TCP服务器,服务器,FATCAT为为TCP客户端客户端TCP/IP网络原理与应用之TCP协议介绍1机制一代码机制一代码l服务器代码服务器代码TC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCPIP网络原理与应用 TCPIP 网络 原理 应用 课件
限制150内