单纯的总结TCP

原创 2016年05月30日 16:18:19

本文目录:

一:TCP基本概念

二:TCP特点

三:TCP连接


一:TCP基本概念:

从计算机网络体系结构(五层协议如下)上讲,运输层向他上面的应用层提供通信服务,即进程间的逻辑通信。

                   
应用层--                       HTTP协议
运输层--                       TCP协议
网络层--                       IP协议
数据链路层--
物理层--   

传输控制协议TCP是位于传输层的三种协议之一,其他两种UDP和流控制传输协议SCTP和UDP,TCP是可靠的,面向连接的协议--->可靠的信道,(UDP不可靠,无连接)。SCTP具有其它两者共同优点

下图为TCP/IP体系中的运输层协议

          

二:TCP特点:

1)面向连接:即应用程序使用TCP协议前必须建立TCP连接。数据传送完后必须释放建立的连接。

2)连接只有两个端点,每条连接只能是点对点一对一的。

3)可靠交付:无差错,不丢失,不重复且按序到达。确认,重传,检错,序号四种机制实现可靠通信。

4)全双工通信:连接双方均有发送和接收缓存,任何时候都可发送。

5)面向字节流:

三:TCP连接:

前面讲过TCP连接两个端点,连接的既不是主机,不是主机IP地址,不是应用程序,也不是运输层协议端口,而是socket或插口,RFC793定义:端口号连接到IP地址即构成套接字。



TCP传输连接分三个阶段:建立连接,数据传送和释放连接。


1)建立连接:采用C/S方式,主动发起连接的进程叫客户,被动等待连接的叫服务器。

建立过程如下,即我们熟知的三次握手:


2)数据传送:TCP传送单元为报文段。报文分首部,数据两部分,收到后去掉首部。


若确认号为N,表明到虚耗N-1为止到所有数据都已正确收到。

3)释放连接,即四次握手,此处不做多余解释。


注意很多时候我们在说的socket,也许有多种意思,比如:


我们平时说的最多的socket实际上是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。 实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以说,Socket的出现 只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、 listen、connect、accept、send、read和write等等。网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:
 
“TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。” 
实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。socket是对端口通信开发的工具,它要更底层一些.

版权声明:本文为博主原创文章,未经博主允许不得转载。

yii框架中findall方法取数据使用总结,包括select各种条件,where条件,order by条件,limit限制以及使用单纯sql语句query时占位符的使用等

在yii框架中可以使用映射类的find方法取出一条数据或者用findall方法取出数条数据来,那么如何按照所需条件来取数据呢,主要用到了CDbCriteria这个类,这个类是yii自带的操作数据库的支...

单纯形法完全c语言程序

  • 2014年10月21日 17:04
  • 27KB
  • 下载

无线单纯的点对点网卡

  • 2014年10月06日 18:09
  • 1.15MB
  • 下载

最优化中单纯形法的matlab举例

最优化中的单纯形有两个解释,一种是解线性规划的数值求解方法,还有一种就是本文讨论的的单纯形,优化多维无约束问题的一种数值方法,课本上将它归为非线性最优化的一种方法。具体参见百度百科。 两种单纯形都用...

VB编写单纯形表求最优解

  • 2014年10月12日 17:21
  • 54KB
  • 下载

单纯形法——从语言程序

  • 2014年07月10日 20:39
  • 3KB
  • 下载

android GridView 在TV上解决item放大时候,被其他item遮挡,单纯使用bringToFront无法解决的问题

做过TV上使用GridView,对item进行放大的时候,会被后面或者其他item遮挡的问题,那么这个问题一般怎么解决呢? 其实当我们遇到这样子的情况,使用bringToFront是无法解决...

运筹学单纯形法代码

  • 2015年06月30日 20:29
  • 6KB
  • 下载

修正单纯形法·优化算法实现·Java

修正单纯性法 代码如下: 舍去了输入转化的内容,主要包含算法关键步骤。 public class LPSimplexM { private static fina...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单纯的总结TCP
举报原因:
原因补充:

(最多只允许输入30个字)