TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。

一、TCP协议的定义

TCP在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层,在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。

首先,我们需要知道,我们程序的数据首先会打到TCP的Segment中,然后TCP的Segment会打到IP的Packet中,然后再打到以太网Ethernet的Frame中,传到对端后,各个层解析自己的协议,然后把数据交给更高层的协议处理。

TCP头格式

TCP协议是面向连接的协议,把连接作为最基本的抽象。每一条TCP连接唯一的被通信两端的两个端点所确定。TCP协议是点对点,而不是点对多点。端点又被称为套接字,TCP协议规定,IP地址拼接端口号就构成套接字。

接下来,我们来看一下TCP头的格式:

1、seq:序号。TCP协议是面向字节流的,在一个TCP连接中的传送的字节流的每一个字节都是按照顺序编号,seq需要占用4个字节,所以范围是[0 4294967296],序号可以重复使用。TCP规定,首部中序号字段值是本报文段所发送数据的第一个字节的序号。序号用于跟踪该端发送的数据量。4

深入理解TCP协议的连接状态与可靠机制相关推荐

  1. 通俗大白话来理解TCP协议的三次握手和四次分手

    最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就把看过的一些比较好 ...

  2. 网络编程懒人入门(三):快速理解TCP协议一篇就够

    1.前言 本系列文章的前两篇<网络编程懒人入门(一):快速理解网络通信协议(上篇)>.<网络编程懒人入门(二):快速理解网络通信协议(下篇)>快速介绍了网络基本通信协议及理论基 ...

  3. [通俗易懂]深入理解TCP协议(下):RTT、滑动窗口、拥塞处理

    转自即时通讯网:http://www.52im.net/ 前言 此文为系列文章的下篇,如果你对TCP不熟悉的话,请先看看上篇<[通俗易懂]深入理解TCP协议(上):理论基础> . 上篇中, ...

  4. [通俗易懂]深入理解TCP协议(上):理论基础

    转自即时通讯网:http://www.52im.net/ 前言 TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过程,但对于学习的 ...

  5. TCP协议可靠性保证(确认应答机制,超时重传机制,流量控制,拥塞窗口)

    上一次我们知道了TCP协议通过连接管理机制保证可靠性,今天我们继续来看一看TCP协议中其他几种保证可靠性的方法. · 确认应答机制  · 超时重传机制  · 流量控制  · 拥塞窗口 确认应答机制  ...

  6. 4-5:TCP协议之连接管理机制(三次握手、四次挥手详解)

    文章目录 一:TCP三次握手过程和状态变迁 (1)三次握手过程和状态变迁过程详解 (2)为什么必须要三次握手? A:只有三次握手才可以阻止重复历史连接的初始化(主要原因) B:同步双方初始序列号 C: ...

  7. TCP协议-长连接和短连接

    一 前言 TCP在真正开始进行数据传输之前,Server 和 Client 之间必须建立一个连接.当数据传输完成后,双方不再需要这个连接时,就可以释放这个连接. TCP连接的建立是通过三次握手,而连接 ...

  8. tcp协议的端口状态

    Listening Syn_sent syn_rcvd established close_wait time_wait --------- 对方主动关闭(对方调用close()), 我方的状态变为 ...

  9. 如何快速理解TCP协议

    目录 什么是TCP TCP的报文格式 TCP的如何保证可靠性 确认应答(ACK)机制 超时重传机制 连接管理机制(三次握手和四次挥手) 三次握手 四次挥手 流量控制 拥塞控制 TCP如何提高性能 滑动 ...

最新文章

  1. 设置文件权限位时我们一般忽略了suid/guid的存在,现在看看它们到底是怎么回事
  2. 64位IIS(IIS6/IIS7)上跑Asp + Jet.Oledb的设置要点
  3. Chapter 5. Expressions
  4. 采用开源方案的优势--从搭建WebGIS系统说起
  5. 职场透视:我们都是猪八戒?
  6. 【牛客 - NC93】设计LRU缓存结构(模拟)
  7. 2017年度IT168技术卓越奖名单:服务器类
  8. 用vb打开word excel 文件,出现提示“发现不可读取的内容”
  9. 20项任务全面碾压BERT,CMU全新XLNet预训练模型屠榜(已开源)
  10. oracle中sqldrunl结尾符号,oracle笔记(韩顺平oracle视频教学整理)
  11. python验证手机号_Python验证手机号码
  12. 7-5 统计素数并求和
  13. HTML5 drag属性
  14. java 前后端分离教程,Java web前后端分离
  15. qlv格式转mp4格式(简单、高效)
  16. 小游戏------扫雷
  17. Java BlockingQueue
  18. UltraScale Architecture Clocking Resources
  19. win10关闭自动更新(针对已经关闭windows update项,但系统仍自动更新的问题)
  20. 百度人脸识别sdk图片转码的问题

热门文章

  1. reviewer中文_中文审稿意见怎么写
  2. 奖励稀疏_好奇心解决稀疏奖励任务
  3. 熬粥记:煮一碗红豆粥,3次才领悟煮粥大法
  4. 【HTTP】HTTP Authorization 之 Basic Auth 和 X-Auth-Token
  5. 大数据全系技术知识概览
  6. JS中操作字符串的常用方法
  7. 博后招募 | 广州国家实验室闵明玮课题组诚聘博士后、副研究员和研究实习员...
  8. 基于JAVA计算机类专业考研交流学习平台计算机毕业设计源码+数据库+lw文档+系统+部署
  9. Objective C范型
  10. Opensea空投详细专业教程