单纯的总结TCP
2016-05-30 16:18
323 查看
本文目录:
一: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是对端口通信开发的工具,它要更底层一些.
一: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是对端口通信开发的工具,它要更底层一些.
相关文章推荐
- Win8 app判断网络连接状态
- Android fiddler网络抓包
- 电脑系统网络一直正在识别的状态无法上网
- HttpClient请求
- HTTP协议中GET、POST和HEAD的介绍
- PON网络接入真的可以省一半的光纤吗?
- android 基础 网络交互 HttpClient HttpUrlConnection
- Web页面请求的历程(二)
- Android 判断用户2G/3G/4G移动数据网络
- 【JavaWeb开发】用Apache的HttpClient4.5完成HttpGet请求
- 本人博客地址:http://blog.csdn.net/baofeidyz
- Android端通过HttpURLConnection上传文件到服务器
- Android判断网络是否已经连接
- letsencrypt
- Redhat 7使用CentOS 7的Yum网络源
- Java网络编程
- Android网络框架:OKHttp源码简单解析(一)
- Web页面请求的历程(一)
- https和http的区别
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1 发布