TCP: Transmission Control Protocol, 传输控制协议。

尽管TCP 和 UDP 都是用相同的网络层(IP),TCP向应用层提供的服务和UDP却完全不同。 TCP 提供一种面向连接的、可靠的字节流服务。

面向连接的意味着两个使用TCP的应用(通常是一个客户端和一个服务器)在彼此交换数据之前必须建立一个TCP 连接。

在一个TCP 连接中, 仅有两方进行彼此的通信。因此,多播和广播不能用于TCP。

TCP 通过下列方式来提供可靠性:

  • 应用数据被分割成TCP 认为最适合发送的数据块。这和UDP 完全不同,应用程序产生的数据报长度将保持不变。由TCP 传递给IP 的信息单位称为报文段或 段(segment)。
  • 当TCP发出一个段后,它会启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
  • 当TCP 收到发自TCP 连接另一端的数据,它将发送一个确认。
  • TCP 会保存它首部和数据的校验和。
  • TCP 报文段作为IP 数据报来传输,而IP 数据报的到达可能会乱序,因此TCP报文段的到达也可能会失序。TCP 会将收到的数据进行重新排序,将收到的数据以正确的顺序交付给应用层。
  • IP 数据报会发生重复,TCP的接收端必须丢弃重复的数据。
  • TCP 还能提供流量控制。 TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这样可以防止较快主机致使较慢主机的缓冲区溢出。

NET TCP 协议相关推荐

  1. TCP协议的服务器与客户端的程序设计(代码注释超详细)

    在上篇博客中讲到了三次握手和四次挥手: Linux网络编程--TCP中的三次握手和四次挥手_神厨小福贵!的博客-CSDN博客服务器编程和客户端编程的大致流程如下:三次握手是在客户端中的connect中 ...

  2. 用C#实现基于TCP协议的网络通讯

    TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实 ...

  3. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  4. 重读TCP协议(3)

    重读TCP协议(3)  TCP 的数据流 TCP的数据流大致可以分为两类,交互数据流与成块的数据流.交互数据流就是发送控制命令的数据流,比如relogin,telnet,ftp命令等等:成块数据流是用 ...

  5. 面试:TCP协议经典十五连问!

    以下文章来源方志朋的博客,回复"666"获面试宝典 前言 TCP协议是大厂面试必问的知识点.整理了15道非常经典的TCP面试题,希望大家都找到理想的offer呀 1.  讲下TCP ...

  6. 五分钟读懂TCP 协议

    点击上方"视学算法",选择"置顶或者星标" 第一时间阅读精彩文章! 作者:阮一峰 地址:http://www.ruanyifeng.com/blog/2017/ ...

  7. TCP协议的特点和TCP报文段格式

    参考:https://www.bilibili.com/video/BV19E411D78Q?p=62 传送数据之前必须建立连接,数据传送结束后要释放连接.不提供广播或多播服务.由于TCP要提 供可靠 ...

  8. 基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器——《干饭聊天室》

    基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器--<干饭聊天室> 在这里首先感谢前端小伙伴飞鸟 前端技术请看一款基于React.C++,使用TCP/HTTP协 ...

  9. 易语言tcp多线程服务端客户端_从TCP协议到TCP通信的各种异常现象和分析

    很多人总觉得学习TCP/IP协议没什么用,觉得日常编程开发只需要知道socket接口怎么用就可以了.如果大家定位过线上问题就会知道,实际上并非如此.如果应用在局域网内,且设备一切正常的情况下可能确实如 ...

  10. tcp协议不具备的功能是_TCP协议的状态深度解析,你知道的和不知道的都在这篇文章(干货)...

    今天和大家说说,TCP协议的状态解析.大家可以看看下图,接下来我们会详细说明. 发起握手阶段 CLOSED:表示初始状态. LISTEN:表示服务器端的某个SOCKET处于监听状态,可以接受连接. S ...

最新文章

  1. Java Properties 类读取配置文件信息
  2. TCP滑动窗口(Sliding Window)原理
  3. UART, SPI, IIC的详解及三者的区别和联系
  4. c++对象的动态建立和释放
  5. JAVA微信开发:[17]如何获取所有关注用户
  6. 封头名义厚度如何圆整_压力容器封头厚度计算
  7. matlab中nc文件,MATLAB读取.nc文件
  8. RGB转YUV420
  9. c语言 为什么in 1,C语言i++和++i的区别
  10. Java集合(十三)Iterator和Enumeration的区别和对比
  11. SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)...
  12. abaqus算出来的转角单位是什么_abaqus单位等等
  13. IBM BladeCenter使用管理模AMM通过虚拟软驱加载驱动_zhanggqe_20120626_v1(zhanggqe@DC)
  14. 用CSS样式制作小三角和小箭头
  15. 安装redhat系统步骤图解_用u盘安装redhat图文教程
  16. 怎么解决电脑USB接口不识别U盘
  17. 高精度姿态传感器LPMS-NAV3系列
  18. 国内外云服务现状及发展探讨
  19. 沉降观测曲线图 沉降观测汇总_沉降观测曲线图怎么画?
  20. 晨枫U盘维护V2.0_512M被淹死的鱼修正版

热门文章

  1. 鼠标不能拖动文件的解决办法
  2. 基于51单片机的扫地小车,扫地机器人设计。有原理图,程序代码,原文论文。可做实物
  3. 听说有些老铁,要感谢下大师兄?里边请,聊一聊人生。
  4. Python编程技巧(六)—— 协程
  5. before的用法java_Java LocalTime isBefore()用法及代码示例
  6. 2006年德国世界杯日程表(北京时间)
  7. 为什么《梦幻西游》能这么长寿?大型复杂游戏如何长时间经营?
  8. Ftp操作报错:TODO: INTERNET_ERROR_* need message mappings 12014
  9. 科创板|海天瑞声终止审核 系本周第3家
  10. python+appium+雷电模拟器 app自动化测试