TCP协议

一 、TCP是面向连接的、可靠的字节流服务。
(1)TCP的可靠性:
1. TCP将应用数据被分割成它认为最适合发送的数据块;
2. TCP发出一个报文段后,启动一个计时器,等待目的端确认;
3. TCP收到数据后,将发送一个确认。通常推迟几分之一秒;
4. TCP将保持它首部和数据的检验和;
5. TCP可将失序到达的数据进行重新排序,并顺序交给应用层;
6. TCP可将重复数据报丢弃;
7. TCP可提供流量控制;
(2)TCP的首部:
TCP首部格式

  1. 源端口和目的端口:各占两个字节。

  2. 序号:4个字节。共2的32次方个序号。TCP连接中传送的字节流中的每一个字节都按顺序编号。此处的序号字段指的是本报文段所发送的数据第一个字节的序号。例如,一报文段的序号字段的值是301,而携带的数据共有100字节。这就表明:本报文段的数据的最后一个字节的序号应是400。我们还可以看到,下一个报文段的数据序号应当从401开始,因而下一个报文段的的序号字段值应为401。
    例:
    A发送的TCP数据报:序号=301,确认号=701,数据长度=100
    B发送的TCP数据报:序号=701,确认号=401,数据长度=100
    A发送的TCP数据报:序号=401,确认号=801,数据长度=100

  3. 保留 6位。保留为以后使用。都是0.

  4. 紧急URG 当此处为1时,表明紧急指针字段有效。它告诉系统此报文段有紧急数据,需要尽快传送。系统会把紧急数据插入TCP缓存的最前面。它和紧急指针字段配合使用。

  5. 确认ACK:当ACK=1时,确认号字段才有效。当ACK=0时确认号无效。当连接建立前ACK=0,建立之后ACK就一直是1了。

  6. 推送PSH。当PSH=1时,系统会立即将此报文段发送出去,而不再等待整个缓存都被填满后才向上交付。

  7. 复位RST。当其为1,时,表明TCP出现严重错误,必须释放连接然后再重新建立连。

  8. 同步SYN:在连接建立时用来同步序号。当其为1而ACK=0时,表明这是一个(同步)连接请求报文段。当对方同意后,应在响应报文段中使用SYN=1,ACK=1。因此SYN=1,要么表示连接请求要么表示连接接受报文。

  9. 终止FIN:用来释放连接。当其为1时,表明此报文段的发送方的数据已经发送完毕,要求释放连接。

  10. 窗口:2字节。窗口指发送方的接收窗口。它告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量。之所以有此限制是因为接收方的数据缓存空间是有限的。它指出现在允许对方发送数据量。由于接收缓存不断变化,因此窗口值也不断变化。

  11. 检验和:2字节。检验和检验 的是首部和数据这两部分。在计算时还应加上12字节的伪首部。

  12. 紧急指针:2字节,此字段只在紧急URG=1时才有意义。它指出本报文段中紧急数据的字节数。由于紧急数据放在了缓冲区最前方,紧急指针指出的是紧急数据的末尾在报文段的位置。当所有的紧急数据都处理完后,TCP 就告诉应用程序恢复正常操作。

  13. 选项:长度可变,最长可达40字节。当没有选项时,首部长度时。

(3)TCP的可靠传输:
1.以字节为单位的滑动窗口控制。发送窗口有三个状态指针,
P3-P1=发送窗口,P3-P2=允许发送但尚未发送,P2-P1=已发送但未收到确认。
2.通过超时重传控制。使用karn算法计算超时重传时间。
3.选择确认SACK。使用32字节指明4个字节块,1个字节指明是SACK选项,1个字节指明这个选项需要占用多少字节。

(4)TCP的流量控制:
1.利用滑动窗口实现控制。通过TCP的窗口字段,通知发送方发送窗口适当减小。

(5)TCP的拥塞控制:
1. 慢开始。发送方让自己的发送窗口等于拥塞窗口,拥塞窗口开始从1逐渐增大,每经过一个传输轮次,拥塞窗口cwnd加倍。达到慢开始门限ssthresh后,使用拥塞避免算法。
2. 拥塞避免。每经过一个传输轮次,拥塞窗口加1,使其线性增长。
(只要出现超时,拥塞窗口为1,门限值变为当前值的一半)
3. 快重传。当X报文段丢失,接收方应及时发送X-1报文段的重复确认。发送方只要一连收到三个重复确认,就应当立即重传对方尚未收到的X报文段。
4. 快恢复。与快重传配合使用,当发送方连续收到3个重复确认时,将cwnd置为慢开始门限值的一半,然后使用拥塞避免算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第1章 概述 问题1-1:“主机”和“计算机”一样不一样? 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 问题1-3:因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的?在教材中1.2.1节提到这种新型计算机网络必须满足的要求有一条是“能够非常可靠地传送数据”。但因特网的网络层使用IP协议,它只能提供不可靠的数据传输。那么这里有没有什么矛盾? 问题1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢? 问题1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-7:TCP/IP的体系结构到底是四层还是五层? 问题1-8:我们常说“分组交换”。但又常说“路由器转发IP数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合? 问题1-9:到商店购买可一个希捷公司生产的80 G的硬盘。安装到电脑上以后用WINDOWS的资源管理器发现在该磁盘的“属性”中只有74.5 G。是不是商店出了差错? 问题1-10:在教材的1.4.1节中有这样一话:人们愿意将“带宽”作为数字信道的“数据率”的同义语。这样说有何根据? 问题1-11:有时可听到人们将“带宽为10 Mb/s的以太网”说成是“速率(或速度)为10 Mb/s的以太网”或“10兆速率(或速度)的以太网”。试问这样的说法正确否? 问题1-12:有人说,宽带信道相当于高速公路车道数目增多了,可以同时并行地跑更多数量的汽车。虽然汽车的时速并没有提高(这相当于比特在信道上的传播速率没有提高),但整个高速公路的运输能力却增多了,相当于能够传送更多数量的比特。这种比喻合适否? 问题1-13:如果用时延带宽积管道来比作传输链路,那么是否宽带链路对应的时延带宽积管道就比较宽呢? 问题1-14:网络的吞吐量与网络的时延有何关系? 问题1-15:什么是“无缝的”、“透明的”和“虚拟的”? 问题1-16:在教材的1.5.2节提到协议有三个要素,即语法、语义和同步。语义是否已经包括了同步的意思? 问题1-17:为什么协议不能设计成100%可靠的? 问题1-18:什么是因特网的穆尔定律? 问题1-19:局域网、广域网和公用网、专用网有什么关系? 问题1-20:信道的利用率是否越高越好? 问题1-21:怎样理解教材中图1-8所示的椭圆形表示的各种服务提供者?这些ISP都在具体的什么位置? 问题1-22:在计算机网络中的结点是指主机还是指路由器? 问题1-23:ISO与OSI有何不同? 问题1-24:我们常听说“要增加政府机构办事的透明度”。意思是:政府机关的许多办事程序和步骤应当向群众公开,让大家看得见。而计算机网络所讨论的透明传输,是指比特流看不见电路的存在。这样看来,两种“透明”的意思很不一样。应当怎样理解? 问题1-25:怎样才能知道哪些RFC文档已经成为因特网的正式标准(草案或建议标准)? 问题1-26:怎样知道一个RFC文档是否被改为陈旧的? 第2章 物理层 问题2-1:“规程”、“协议”和 “规约”都有何区别? 问题2-2:在许多文献中经常见到人们将“模拟”与“仿真”作为同义语。那么,“模拟信道”能否说成是“仿真信道”? 问题2-3:为什么电话信道的标准带宽是3.1 kHz? 问题2-4:奈氏准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么? 问题2-5:传输媒体是物理层吗?传输媒体和物理层的主要区别是什么? 问题2-6:同步(synchronous)和异步(asynchronous)的区别是什么? 问题2-7:同步通信和异步通信的区别是什么? 问题2-8:比特同步和帧同步的区别是什么? 问题2-9:教材的表2-4的OC和STS有什么区别?例如OC-3和STS-3的数据率是一样的,为什么要使用两种表示方法?有的文献还使用如OC-3C的表示方法,这有区别吗? 问题2-10:ATM是异步传递方式。是否ATM方式与同步通信完全无关? 第3章 数据链路层 问题3-1:在1999年4月出版的《计算机网络》(第2版)的1.3.2节中有这样的话: “(2) 数据链路层 数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。……这样,数据链路层就把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。” 但在2003年出版的《计算机网络》(第4版)中对数据链路层就改变了这种提法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

继学先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值