TCP基本知识

TCP基本知识

[TOC]

1. 定义

Transmission Control Protocol,即 传输控制协议。

属于 传输层通信协议,基于TCP的应用层协议有HTTPSMTPFTPTelnetPOP3

原文链接

2. 特点

  • 面向连接、面向字节流、全双工通信、可靠
  • 具体介绍如下:
img

3. 优缺点

  • 优点:数据传输可靠
  • 缺点:效率慢(因需建立连接、发送确认包等)

4. 应用场景(对应的应用层协议)

要求通信数据可靠时,即 数据要准确无误地传递给对方

如:传输文件:HTTP、HTTPS、FTP等协议;传输邮件:POP、SMTP等协议

  • 万维网:HTTP协议
  • 文件传输:FTP协议
  • 电子邮件:SMTP协议
  • 远程终端接入:TELNET协议

5. 报文段格式

  • TCP虽面向字节流,但传送的数据单元 = 报文段
  • 报文段 = 首部 + 数据 2部分
  • TCP的全部功能体现在它首部中各字段的作用,故下面主要讲解TCP报文段的首部
  1. 首部前20个字符固定、后面有4n个字节是根据需而增加的选项
  2. 故 TCP首部最小长度 = 20字节

[图片上传失败...(image-e99c39-1560915047474)]

示意图

[图片上传失败...(image-e15436-1560915047474)]

示意图


6. 建立连接过程

  • TCP建立连接需 三次握手
  • 具体介绍如下

[图片上传失败...(image-b6e573-1560915047474)]

示意图

[图片上传失败...(image-4e7b4e-1560915047474)]

示意图

[图片上传失败...(image-f746b4-1560915047474)]

示意图

成功进行TCP的三次握手后,就建立起一条TCP连接,即可传送应用层数据

  1. TCP提供的是全双工通信,故通信双方的应用进程在任何时候都能发送数据
  2. 三次握手期间,任何1次未收到对面的回复,则都会重发

特别说明:为什么TCP建立连接需三次握手?

  • 结论
    防止服务器端因接收了早已失效的连接请求报文,从而一直等待客户端请求,最终导致形成死锁、浪费资源
  • 具体描述

[图片上传失败...(image-c63a06-1560915047474)]

7. 释放连接过程

  • 在通信结束后,双方都可以释放连接,共需 四次挥手
  • 具体如下

[图片上传失败...(image-1bf9e4-1560915047474)]

示意图

[图片上传失败...(image-1c1e4d-1560915047474)]

示意图

[图片上传失败...(image-78eaa4-1560915047474)]

示意图

特别说明:为什么TCP释放连接需四次挥手?

  • 结论
    为了保证通信双方都能通知对方 需释放 & 断开连接

即释放连接后,都无法接收 / 发送消息给对方

  • 具体描述

[图片上传失败...(image-10c686-1560915047474)]

无差错传递等其他知识 参考链接:TCP协议攻略

附:网络结构图

你可能感兴趣的:(TCP基本知识)