码迷,mamicode.com
首页 > 其他好文 > 详细

TCP通信

时间:2020-04-27 19:31:15      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:模式   耗资源   protoc   数据   一对一   开启   三次握手   端口号   socket   

一、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通信

标签:模式   耗资源   protoc   数据   一对一   开启   三次握手   端口号   socket   

原文地址:https://www.cnblogs.com/zxbk-xz/p/12787916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!