TCP-IP学习笔记-- 浅析TCP(1)

ps:文中图片均来自网络,若有侵权请联系我删除
pps:本文中的观点、内容,均来自本人对TCP和对老师讲解的理解,若有错误,欢迎指出

TCP的特点

  1. TCP是面向连接的端到端协议,连接建立的过程为三次握手,断开连接的过程为四次挥手
  2. TCP不支持多播和广播
  3. TCP为全双工连接,同一连接上可有双向的数据流
  4. TCP提供可靠交付(可靠交付4个要求或者说特点:不丢、不错、不乱(按序)、不重复
  5. TCP为C/S模式
  6. 面向字节流(应用层消息按字节编号)
  7. 流量控制(滑动窗口机制)
  8. 拥塞控制(慢启动、快恢复等,将在下文细说)

TCP报文格式

TCP报文格式
TCP由IP数据报封装。

  • 序号(seq):用来标识从TCP发送端到TCP接收端发送的数据字节流,表示在这个报文段中的第一个数据字节。当仅ACK为1时,不消耗序列号(不确定)。
  • 确认号(ack):发送这一端所期望收到的下一个序号。(即表示,这一端已经正确接收了ack以前的所有字节)
  • 六个标志bit:
    • URG:紧急指针有效
    • ACK:确认序号有效
    • PSH:接收方应该尽快将这个报文提交给上层
    • RST:重新建立连接
    • SYN:同步序号用来发起一个连接(用于建立连接三次握手)
    • FIN:发送端完成发送任务(用于断开连接四次挥手)
  • 窗口:流量控制,值为字节数,起始于确认号ack。
  • 检验和:只是来校验首部是否出错
  • 紧急指针:仅当URG为1时有效,为一个正的偏移量,和序号seq字段中的值相加,表示紧急数据最后一个字节的序号
  • 选项:最常见的是最长报文大小(MSS,Maximum Segment Size)

TCP可靠数据传输机制:数据序号和确认号机制

上文已经介绍了TCP报文中的序号(seq)字段和确认号(ack)字段,下面通过一个例子,更直观地理解一下:
假设有两个主机A和B,窗口值为1000
下图忽略了时间间隔

本图忽略了时间间隔

那么在主机A上:
No1. 发送的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值