关闭

单纯的总结TCP

100人阅读 评论(0) 收藏 举报
分类:

本文目录:

一: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是对端口通信开发的工具,它要更底层一些.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35731次
    • 积分:917
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:21篇
    • 译文:0篇
    • 评论:3条
    最新评论