单纯的总结TCP

本文目录:

一: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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值