TCP/IP详解

  1. 第十二章 TCP:传输控制协议(初步)

第十二章 TCP:传输控制协议(初步)

ARQ和重传

直接处理分组丢失或者比特查错的方法:一直重发直到本分组被正常接收

  • 接收方是否接收到了分组?
  • 接收方接收到的是不是和发送方发送的一样?

ACK

  • 发送方应该等待一个ACK多长时间?
  • ACK丢失了怎么办?
  • 分组被接收到了,但是有错怎么办?

允许多个分组同时进入网络而不是发送一次确认一次存在的问题

  • 什么时候注入一个分组?
  • 注入多少个分组?
  • 等待ACK的时候如何维持计数器?保存未被确认的分组防止重传
  • 需要能够区分出哪些分组收到了哪些没有收到,而且能够组装乱序的分组
  • 如果接收方的接收速度慢怎么办?

滑动窗口 解决了上面的问题

发送方

  • 记录着哪些分组可以被释放
  • 哪些分组已经发送正在等待ACK
  • 哪些分组还待发送

接收方

  • 哪些分组已经被接收和确认
  • 哪些分组是下一步期待的

变量窗口:流量控制和拥塞控制 解决了窗口大小确定和接收方接收不过来的问题

流量控制 接收方跟不上的时候通过此迫使发送方慢下来

窗口通告(窗口更新):跟ACK在一次 调整窗口大小

拥塞控制:流量控制应对的是接收端和发送端问题,拥塞控制则是之间的网络问题

TCP不会自动插入记录标志或者消息边界,不会解读字节流中的内容,对于内容的解读交给了端点的应用程序。

TCP的包头没有包长度字段,而UDP却有

SYN会消耗一个序列号 尽管没有包体

ACK则不会消耗序列号

TCP可以被描述为带累计正向确认的滑动窗口协议


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。