TCP通信
Posted zxbk-xz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP通信相关的知识,希望对你有一定的参考价值。
一、TCP简介
1.TCP介绍
a>TCP协议:TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为:TCP)是一种面向连接的、可靠的、基于字节流的通信协议
1.面向连接:先连接,再通信,好比打电话模型
2.可靠的,相对于UDP,TCP传输更可靠,TCP通过一序列的机制(面向连接机制、发送应答机制)来保障传输的可靠性
3.基于字节流的,UDP创建UDP socket——DGRAM:基于数据报通信方式,每一次发送的数据都是一个独立的整体,包含目标主机的ip地址、端口号及发送数据的内容
b>TCP通信的三个步骤
基于面向连接的:1.与服务端建立连接
2.收发数据
3.关闭连接
2.TCP特点
a>面向连接
1.先建立连接,再进行通信
2.TCP连接是一对一的,而UDP可以一对一或一对多,UDP适合做广播程序
a>可靠传输:通过一序列机制来保障TCP传输数据比UDP更可靠
1.传送应答机制
2.超时重传机制
3.错误校验
4.流量控制/阻塞管理
3.TCP与UDP的不同点
1.面向连接
2.有序数据传输
3.重发丢失的数据包
4.丢弃重复的数据包
5.无差错的数据传输
6.阻塞/流量控制
4.TCP与UDP的应用场景
1.TCP的应用场景:适合通信质量要求较高的场景,http传输、文件传输、smtp等等,目前大部分的传输都是基于TCP协议传输
2.UDP的应用场景:相对于TCP传输,UDP传输速度更快,实时性更好,耗资源更少,但稳定性、可靠性比TCP差,适合对网络通讯质量要求不高,速度要求尽量快,更实时,比如QQ语音,QQ视频
5.UDP与TCP的通信模型
a>UDP通信模型
面向无连接,好比写信模型,没有严格的服务端与客户端之分
b>TCP通信模型
面向连接的,好比打电话模型,有严格的服务端与客户端之分
二、TCP网络程序-客户端(重点)
1、TCP客户端实现流程
1、创建一个TCP的socket对象
2、与TCP服务端建立连接
3、使用TCP socket 收发数据
4、关闭连接
三、TCP网络程序-服务端(重点)
1.TCP服务端创建流程:
1、创建服务端的server_socket,用于监听客户端的请求
2、绑定端口
3、server_socket开启监听,有主动连接改变为被动连接模式
4、假如有客户端的请求,则立即接收,且创建一个与客户端对接的socket,与客户端进行通信
5、使用新创建的socket与客户端通信
6、关闭与客户端通信的socket,当该socket被关闭,则不再与当前客户端通信
7、关闭用于监听客户端发送请求的socket,当该socket关闭,则不再接收新的客户端请求
四、三次握手
第一次握手: 客户端A向服务端B发送连接请求(客户端-->服务端方向)
第二次握手: 服务端B向客户端A发送确认连接,同时向客户端A发送连接请求(服务端-->客户端方向)
第三次握手: 客户端A收到服务端的确认信息,正确无误后,再向客户端发送确认连接信息(客户端-->服务端方向)
以上是关于TCP通信的主要内容,如果未能解决你的问题,请参考以下文章