TCP 概述(主要特点,Socket 连接)



TCP 是TCP/IP体系中非常复杂的一个协议。

1、TCP 最主要的特点

序号特点描述
1面向连接应用程序在使用 TCP协议之前,必须先建立TCP连接
在传输数据完毕后,必须释放已经建立的 TCP连接。
2每一条TCP连接
只能有两个端点
每一条TCP连接只能是点对点的(一对一)。
3提供可靠交付的服务通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。
4提供全双工通信TCP 允许通信双方的应用进程在任何时候都能发送数据。
TCP连接的两端都设有发送缓存接收缓存,用来临时存放双向通信的数据。

发送时,应用程序把数据传输给 TCP的缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去。
接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
5面向字节流
(Byte Stream)
TCP中的指的是流入到进程或从进程流出的字节序列

TCP 面向 字节流 的概念:
在这里插入图片描述
TCP 和 UDP在 发送报文 时所采用的方式完全不同。

TCP 并不关心应用进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。
如果应用进程传送到TCP缓存的数据块太长,TCP就可以把它划分短一些再传送。如果应用进程一次只发来一个字节,TCP也可以等待积累有足够多的字节后,再构成报文段Segment)发送出去。

2、TCP 的连接(Socket)

每一条 TCP连接 有两个端点,端点叫套接字Socket)。
端口号拼接到IP地址就构成了套接字

请注意:端点(endpoint) 不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。

套接字的表示方法是在点分十进制IP地址后面写上端口号,中间用冒号或逗号隔开。如IP地址是 192.168.1.1,端口号是 80,那么得到的套接字就是(192.168.1.1:80

套接字 socket = (IP地址:端口号)

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定:

TCP连接 ::= {socket1 , socket2} = {(IP1:port1) , (IP2:port2)}

IP1和IP2分别是两个端点主机的IP地址,port1和port2分别是两个端点主机中的端口号。TCP连接的两个套接字就是socket1socket2

请注意:同一个IP地址可以有多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值