TCP的协议特点(对于《Linux高性能服务器编程》的部分摘录以及自己的部分见解)

news/2024/7/3 6:56:42

一.TCP协议特点为面向连接、字节流和可靠传输

面向连接:使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放系统资源。

字节流:发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系,这就是字节流的概念﹔应用程序对数据的发送和接收是没有边界限制的。TCP先将数据存放于发送缓冲区中,等待,等待发送数据的时候,发送缓冲区中等待发送的数据

TCP为可靠传输机制:

1.TCP采用了发送应答机制,即发送端每个TCP报文都必须收到收方的应答报文,才会认为TCP报文传输完成.

2. TCP协议采用了超时重传机制,在发送发发送完TCP报文段之后 启动定时器,如果在规定时间内未收到应答的话,将会重新发送报文段

3.TCP报文段最终是以IP数据报发送的,而IP数据报到达接收端可能会乱序,,重复,所以TCP协议还会对TCP报文段进行乱序重排,去重的操作

TCP粘包

什么是tcp粘包?拆包? 答:c向s发送2个数据包,那么可能会出现3种情况:1 正常,2 两个包一同发送,3 s接收到不完整的或多出一部分的数据包。

原因是什么?答:1 c一次发送的数据大于套接字缓冲区,拆包,2 c一次发送数据小于套接字缓冲区大小,网卡将多次发送的数据一次发送到s, 3 c不及时读取 4 tcp报文长度大于分段长度。

如何解决?答:c添加包首部,长度 !固定每次发送的报文长度,不够补0.! 约定好包的边界,添加首部尾部标识,或者每次发送完数据之后在接收端对发送端发送一个标志信息来代表发送成功,有这么一步之后再进行下一步的发送!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/15600.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【SVN多用户开发】代码冲突解决办法

SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序。 但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码。 下面就简单的看一下,常见的代码冲突以及解决方法。 总结起来,无非是&#x…

UDP通信协议详解

中文名 用户数据报协议英文名 User Datagram Protocol 基础 IP数据包服务上增加一点功能 类别 传输层协议 特点 无连接、不可靠、快速传输 用途发送IP数据包 如右图所所示为udp协议的基本信息 上图就是UDP的数据报服务,sendto两次发送的是单独的两个个体,接收端…

简单的HTTP服务器程序的编写

HTTP 协议一般指 HTTP(超文本传输协议)。 超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为…

【C++】何时需要自定义拷贝构造函数和赋值符

先来说结论:当类中有指针类型成员变量的时候,一定要自定义拷贝构造和赋值运算符 原因:当我们在有指针类成员变量的时候,还是用默认拷贝构造函数(拷贝构造函数执行的时候会调用赋值符),默认赋值为浅拷贝,会…

iOS自动布局一

Align: Pin: 转载于:https://www.cnblogs.com/123qw/p/4404167.html

【C++】左值、右值、移动拷贝构造函数、移动赋值函数

左值和右值的定义以及区别: 先来看在C语言中的左值和右值 : 左值:可赋值的值为左值 右值:不可赋值的值为右值 再来看C中左值右值的定义如下: 左值:可以取地址的值(有名字的值、非临时量) …

【C++】typedfe和宏定义的区别

先来说结论: 1.宏定义作用于编译之前(也就是预编译阶段,而typedef作用于编译阶段 2.typedef仅限于类型的重定义,而宏定义不仅可以为类型起别名还可以为数值定义起别名(简单的替换) 下面来看一下区别 下面这是typedef的用法 typedef int* PI…

GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台

在当前很多的GPS平台当中,有很多是基于asp.NETsiverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的增多,平台已经臃肿不堪。 设计…