1 引言
尽管T C P和U D P都使用相同的网络层(I P),T C P却向应用层提供与U D P完全不同的服务。
T C P提供一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用 T C P的应用(通常是一个客户和一个服务器)在彼此交换数据
之前必须先建立一个 T C P连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说
“喂”,然后才说明是谁。在我们将看到一个 T C P连接是如何建立的,以及当一方通信
结束后如何断开连接。
在一个T C P连接中,仅有两方进行彼此通信。在第 1 2章介绍的广播和多播不能用于T C P。
T C P通过下列方式来提供可靠性:
• 应用数据被分割成T C P认为最适合发送的数据块。这和 U D P完全不同,应用程序产生的
数据报长度将保持不变。由 T C P传递给I P的信息单位称为报文段或段( s e g m e n t)
• 当T C P发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能
及时收到一个确认,将重发这个报文段。
• 当T C P收到发自T C P连接另一端的数据,它将发送一个确认。这个确认不是立即发送,
通常将推迟几分之一秒。
• T C P将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输
过程中的任何变化。如果收到段的检验和有差错, T C P将丢弃这个报文段和不确认收到
此报文段(希望发端超时并重发)。
• 既然T C P报文段作为I P数据报来传输,而I P数据报的到达可能会失序,因此 T C P报文段
的到达也可能会失序。如果必要, T C P将对收到的数据进行重新排序,将收到的数据以
正确的顺序交给应用层。
• 既然I P数据报会发生重复,T C P的接收端必须丢弃重复的数据。
• T C P还能提供流量控制。 T C P连接的每一方都有固定大小的缓冲空间。 T C P的接收端只
允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲
区溢出。
两个应用程序通过T C P连接交换8 bit字节构成的字节流。T C P不在字节流中插入记录标识
符。我们将这称为字节流服务(byte stream service)。如果一方的应用程序先传1 0字节,又传
2 0字节,再传5 0字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分 4次接
收这8 0个字节,每次接收 2 0字节。一端将字节流放到 T C P连接上,同样的字节流将出现在
T C P连接的另一端。
另外,T C P对字节流的内容不作任何解释。 T C P不知道传输的数据字节流是二进制数据,
还是A S C I I字符、E B C D I C字符或者其他类型数据。对字节流的解释由 T C P连接双方的应用层
解释。
这种对字节流的处理方式与U n i x操作系统对文件的处理方式很相似。U n i x的内核
对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对U n i x的内核来说,
它无法区分一个二进制文件与一个文本文T C P数据被封装在一 个IP数据报中,如图所示。

下图显示T C P首部的数据格式。如果不计任选字段,它通常是 2 0个字节。

TCP的服务简单介绍的更多相关文章

  1. TCP/IP协议简单介绍

    TCP/IP协议族总共分为四层,分别为:          应用层:应用层协议有Telnet(远程登入协议).FTP(文件传输协议).SMTP(简单邮件传送协议).SNMP(简单网络管理协议).HTT ...

  2. TCP同步与异步及阻塞模式,多线程+阻塞模式,非阻塞模式简单介绍

    首先我简单介绍一下同步TCP编程 与异步TCP编程. 在服务端我们通常用一个TcpListener来监听一个IP和端口.客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收 ...

  3. 简单 TCP/IP 服务功能

    本主题使用每台 Windows 计算机上提供的 Echo 和 Quote of the Day 服务.在所有 Windows 版本中都提供了简单 TCP/IP 服务功能.该功能会提供了以下服务:Cha ...

  4. web服务的简单介绍及apache服务的安装

    一,web服务的作用:  是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览:   可以放置数据让全世界下载.目前最主流的三个Web服务器是Ap ...

  5. 【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍

    前序系列文章>>> [涂鸦物联网足迹]涂鸦云平台标准指令集 开放消息平台主要通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求. 一 ...

  6. 【转载】JMeter学习(一)工具简单介绍

    JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静 ...

  7. iOS开发拓展篇-XMPP简单介绍

    iOS开发拓展篇-XMPP简单介绍 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双 ...

  8. VPN理论简单介绍(转载)

    标签:VPN理论简单介绍 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lvnian.blog.51cto.com/715528 ...

  9. WebSocket简单介绍

    Java后端WebSocket的Tomcat实现 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSoc ...

随机推荐

  1. Redis 数据类型String 使用

    字符串是Redis中最基本的数据类型,它能够存储任何类型的字符串,包含二进制数据.可以用于存储邮箱,JSON化的对象,甚至是一张图片,一个字符串允许存储的最大容量为512MB.字符串是其他四种类型的基 ...

  2. Python 面向对象总结

    面向对象 类 class 类型 类变量 实例方法 init attack bite 类指针 - 指向父类 对象 对象指针 实例变量 self.name slef.age 组合 一个对象作为一个属性 s ...

  3. Windows删除某服务

    win+R然后cmd进入命令窗口 sc delete 服务名

  4. 笔记-6:mysql索引

    1.索引概述 建立索引的目的:加快数据库检索的速度. mysql中索引主要分为: 普通索引:使用index或key关键字创建,其索引列值可以取空值或重复值. 唯一性索引:使用关键字UNIQUE创建,其 ...

  5. WUSTOJ 1246: 字符串排序(Java)

    1246: 字符串排序 题目   输入n(n<100)个字符串,每个字符串长度不超过1000,将他们按字典顺序输出.更过内容点击标题. 分析   Java中的ArrayList()可以比较方便的 ...

  6. GstStaticCaps的初始化

    struct _GstStaticCaps { /*< public >*/ GstCaps *caps; const char *string; /*< private >* ...

  7. Comet OJ - Contest #5 简要题解

    好久没更博了,还是象征性地更一次. 依然延续了简要题解的风格. 题目链接 https://cometoj.com/contest/46 题解 A. 迫真字符串 记 \(s_i\) 表示数字 \(i\) ...

  8. This is very likely to create a memory leak. Stack trace of thread错误分析

    1.问题描述 启动tomcat部署项目时,报This is very likely to create a memory leak. Stack trace of thread错误. 29-May-2 ...

  9. css 动画(一)transform 变形

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 有段时间我是没理清 transform.translate.transition 和 animation之 ...

  10. 22-MySQL DBA笔记-其他产品的选择

    第22章 其他产品的选择 本章将为读者介绍其他的数据库产品,主要是NoSQL产品的选择.读者在熟悉MySQL之外,也应该了解其他的数据库产品.本章的目的是给读者一个引导,如何选择一些NoSQL产品,而 ...