TCP 协议

一、 TCP 协议端格式

  TCP,即 Transmission Control Protocol,传输控制协议。对数据传输进行一个详细的控制。
TCP协议端格式

  1. 源/目的端口:表示数据从哪个进程来,到哪个进程去。
  2. 4位TCP报头长度:4个 bit 位,单位是 4个字节,4位首位长度值为1111 =》15,实际的首部长度就是15 * 4 = 60;
    15 * 4 = 60
  3. 6位标志位:
    1. URG : 紧急指针是否有效
    2. ACK : 确认号是否有效
    3. PSH : 提示接收端应用程序立刻从 TCP 缓冲区把数据读走
    4. RST : 对方要求重新建立连接,把带有 RST 标识的称为复位报文段
    5. SYN : 请求建立连接,把携带 SYN 标识的称为同步报文段
    6. FIN : 通知对方,本端要关闭了,把携带 FIN 标识的称为结束报文段
  4. 16位校验和:发送端填充,CRC 检验。接收端校验不通过,则认为数据有问题。此处的校验和不光包含 TCP 首部,也包含 TCP 数据部分。
  5. 16位紧急指针:标识那部分数据是紧急数据。
  6. 40字节的头部选项。

二、TCP 协议特性

  1. 有连接
  2. 可靠性传输(可靠性不等于安全性)
  3. 面向字节流
  4. 全双工
     创建一个TCP的socket,同时在内核中创建一个发送缓冲区和一个接收缓冲区
    1. 调用write时,数据会先写入发送缓冲区中;
    2. 如果发送的数据字节数太长,就会拆分成多个 TCP 的数据报发出;
    3. 如果发送的数据字节数太短,就会先在缓冲区等待,等到缓冲区中数据长度合适或者合适实际再发送出去;
    4. 接收数据的时候,数据也是从网卡驱动程序到达内核的接收缓冲区,然后应用程序调用read从接收缓冲区拿数据;
    5. 另一方面,TCP的一个连接,既有发送缓冲区,又有接收缓冲区,那么对于一个连接,既可以读数据,又可以写数据。这个概念就叫做全双工
  5. 大小不限
      对于字节流来说,可以简单的理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下,是无边界的数据,可以多次发送,也可以分开多次接收。

三、基于 TCP 应用层协议

  1. HTTP
  2. HTTPS
  3. SSH
  4. TeInet
  5. FTP
  6. SMTP
  7. 写 TCP 程序时自定义的应用层协议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值