文档章节

17.TCP:传输控制协议

loda0128
 loda0128
发布于 2018/07/21 19:42
字数 704
阅读 4
收藏 0

介绍

TCP和UDP使用同一网络层(IP),但TCP提供了面向连接、可靠的传输层服务

TCP传输给IP层的信息单位称为报文段或段

TCP通过如下方式保证可靠性:

  • 应用数据被分割成TCP认为最合适发送的数据块
  • TCP发送一个段后,会启动一个定时器等待目的端确认收到该段,否则重发
  • 当TCP接收端收到数据,会发送一个确认
  • TCP保持首部和数据校验和,接收端发现校验和有差错就丢弃报文段
  • TCP将对收到的数据重排序,保证顺序交给应用层
  • TCP接收端必须丢弃重复数据
  • TCP提供了流量控制,避免“快”主机压垮“慢”主机

TCP提供字节流传输服务,它交换的数据都是由字节(8位)构成

TCP不解释字节流内容,也就说它不知道传输的是二进制还是字符,这个内容由应用层解释

TCP首部

image_1ciu72du5f0t1pb61j6a1g2loab9.png-52.4kB

image_1ciu73n43111o8bolff15il1rh9m.png-100.5kB

由图可知,TCP首部最少5*4=20字节

  • 端口:通过TCP首部的源、目的端口,和IP首部的源、目的IP,可以唯一确定一个连接
  • 序号:下一字节数据的序号。每发送一字节数据,序号+1,到达2^31-1后置0
  • 确认序号:确认端期望接收下一字节的序号,值为上次成功接收数据序号+1
  • 首部长度:代表首部占了多少个32位,4位代表最多2^4=16个32位word,也就是64字节
  • 标志位:6个标志位
    • URG:紧急指针有效
    • ACK:确认序号有效
    • PSH:接收方应该尽快将这个报文段交给应用层
    • RST:重建连接
    • SYN:同步序号用来发起一个连接
    • FIN:发送端完成发送任务
  • 窗口大小:接收端期望接收的字节数,TCP基于该窗口大小进行流量控制
  • 校验和:覆盖TCP首部和TCP数据,发送端计算和存储,接收端验证
  • 紧急指针:代表一个正偏移,表示紧急数据的序号到哪结束。当URG=1该值才有意义,该偏移加上序号字段的值等于紧急数据最后一字节的序号
  • 选项:最常见选项为MSS,代表最长报文段大小

© 著作权归作者所有

共有 人打赏支持
下一篇: 9.IP选路
loda0128
粉丝 93
博文 95
码字总数 119278
作品 0
朝阳
程序员
私信 提问
流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用...

Jerikc
2015/07/10
1K
2
视频直播之优化移动端WebRTC通信

序言 本文探讨范围仅限于移动端优化,android和iOS都适用。 惯例,先上介绍 官网介绍 WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Com...

猫的天空之程
2016/10/23
0
0
android ------- TCP/IP

TCP/IP 是针对因特网的通信协议。 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的通信协议。 TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Prot...

切切歆语
2018/04/20
0
0
Android第二十一天

一:TCP/IP协议 TCP/IP是一个协议族。 TCP:(Transmission Control Protocol)传输控制协议 IP:(Internet Protocol)互联网协议 四层网络体系结构:物理层(网络接口层)、互联网络层(包含I...

黄晓磊
2016/06/27
16
0
Wireshark的HTTP请求包和响应包如何对应

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/82925463 以Wireshark2.6.3版本为例,如下图所示,红框中的803是一次HTTP的GET请求包,绿框...

博陵精骑
2018/10/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ZStack--工作流引擎

在IaaS软件中的任务通常有很长的执行路径,一个错误可能发生在任意一个给定的步骤。为了保持系统的完整性,一个IaaS软件必须提供一套机制用于回滚先前的操作步骤。通过一个工作流引擎,ZStac...

ZStack社区版
6分钟前
0
0
Eclipse 安装lombok

1.首先打开lombok官网:https://projectlombok.org/ 2.选择下载 3.使用java -jar 运行jar包(一般情况下双击即可) 4.安装 5.重启IDE...

hengbao5
10分钟前
1
0
混合式开发框架资料汇总

1.quickhybrid 2.kerkee 3.Hybrid

IT追寻者
17分钟前
0
0
PyCharm入门教程——基本编辑程序

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
20分钟前
0
0
分布式、高并发、多线程

分布式 分布式是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。包括但不限于:分布式文件系统,分布式缓存,分布式数据库,分布式计算。 分布式的实现有两种形式: 水平扩展:...

细节探索者
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部