计算机网络基础-tcp杂记

tcp

tcp加急数据包

将psh(push)置为1,即将数据直接向上层传输

关于tcp标志位注意

syn-send :意味同步发送,syn为同步位,所以在建立连接时,都需要将syn位置为1

关于tcp三次握手

由于tcp要实现全双工通信,所以要求双方都具备收发功能,这就要求第一次建立请求之后,双方都要各自进行一次收发。

tcp 报文关键字

随机序号 ISN

三次握手的协商参数

***

切分后的报文段的第一个字节字节号作为数据包的***。

后退n协议

为保证tcp可靠传输的一个方案,其特点就是累计确认,例如 接受方受到连续按序的五个报文时候发送确认消息6,就代表前五个数据包都收到了,期待第六个数据包。

选择重发协议

哪个报文没收到就要求发送方重发哪个报文,但缺点也很明显,效率低。

流水线传输

每次批量发送数据包,由于与批量传输,所以适用于通信状况比较稳定的场所。但数据包不可达时,选用后退n或者选择重发进行数据重传。

捎带确认

接收方接收后回复ack时顺带一些需要发送给发送方的数据。

tcp流量控制

滑动窗口机

在tcp建立连接时,接收方会高速发送方他的接收窗口的大小,发送方的发送窗口就会根据接收方所能接受的窗口动态的调整窗口大小。
工作原理即接收方发送确认包时,发送方动态向右滑动窗口继续发送新数据,且该窗口始终保持接收方的当前所能接受的窗口大小。

tcp拥塞控制

慢启动算法

拥塞窗口根据网络拥塞程度动态变化,一旦网络拥塞就减小拥塞窗口,以减少发送到网络中的报文数量。
这其中有个关键字 MSS(最大报文段大小),取值一般取1460(tcp头和ip头各占20字节,加起来1500刚好是以太网标准的mtu)

流量控制和拥塞控制的区别

流量控制是收发两端的问题,即点对顶啊问题,通过抑制发送方发送数据的大小进行控制。这其中就涉及到一个重要的概念,缓存,如下图所示:通信两端在每道工序中货扮演生产者或扮演消费者的角色,先将数据放入缓存,一旦缓存一满就将数据交予下一工序,并提醒下部工序的角色做好准备,正是这样以套紧密联接的分工,才保证的流量控制。
计算机网络基础-tcp杂记

而拥塞控制是全局性问题,无法做到完全解决,只能说在收发两端使用慢启动和拥塞避免的手段尽可能的优化。

tcp三次握手注意点

如下所示,注意三次握手和数据传输时ack的叠加方式
三次握手时,数据的length为0,所以ack只能基于发送方的seq+1
数据传输时,length!=0,所以ack基于发送方的seq+length+1

计算机网络基础-tcp杂记

tcp相关例题

例题1

发送方连方 1000 2000 3000 4000 5000 6000的报文,接收方回复ack***为4000,若为gbn需发送那些报文?若为sr则又要发送那些报文?
答:gbn回4000则是要求发送4000代表前4000的都收到了,4000字节段的报文可能出现问题,要求对方发送4000之后的报文。
而sr则是代表3000段收到了要求发4000,其他报文段没有回复确认同样需要发送。即sr回复4000需要发送1000 2000 4000 5000 6000

例题2

a向b发送数据,***分别是70 110。

  1. 报文字节数是多少?
    40
  2. b收到第一个报文段的确认号是多少?
    110
  3. 第二次收到报文后回复180,问第二个报文段长度是多少?
    70
  4. a发送的第一个报文丢失,用累计确认的方式回复的确认好为多少?
    70

例题3

拥塞问题为何超时重传无法解决?
重传会导致更多的丢失包,进而导致网络崩坏。