优先来聊一聊tcp(长连接)
tcp协议的常见知识:
tcp是tcp/ip体系中非常复杂的一种网络数据传输协议
1.tcp是面向连接的运输层协议,应用程序在使用tcp之前必须建立tcp连接,在数据结束之后,必须释放已经建立的tcp连接,类似于生活中的打电话,通话之前要挂机释放连接
2.每一条tcp连接只能有两个端点,每个tcp连接只能是点对点的(一对一)
3.tcp提供可靠交付的服务,通过tcp连接传送的数据,无差错,无丢包,不重复,并且按序到达。
4.tcp提供全双工通信,tcp允许通信双方的应用进程在任何时候都能发送数据,tcp连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据,在发送时,应用程序把数据传送给tcp的缓存后,就可以做自己的事,而tcp在合适的时候把数据发送出去,在接收时,tcp把收到的数据放入到缓存,上层的应用进程在合适的时候读取缓存中的数据
5.面向字节流(流入到进程或者从进程流出的字节序列),虽然应用程序和tcp的交互式一次一个大小不等的数据块,但tcp把应用程序交下来的数据看成仅仅是一连川的无结构的字节流。tcp并不知道所传送的字节流的含义,tcp不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系,但是保证接收方应用程序收到的字节流和发送方应用程序发出的字节流完全一样,接收方的应用程序也必须有能力识别收到的字节流,把它还原成有意义的应用层数据。


源端口和目的端口各占2个字节
源端口号,标示了主机上发起传送的应用程序,目的端口标示主机上传送要到达的应用程序,源端口和目的端的端口,用于寻找发端和收端的应用程序,即这两个值再加上ip首部的源端的ip和收端的IP,去确定一个唯一的tcp连接,一个端口和一个ip地址有时也称为一个插口.
网友评论