tcp 和 udp 是 OSI 模型中的运输层中的协议。tcp 提供可靠的通信传输,而 udp 则常被用于让广播和细节控制交给应用的通信传输。 两者的区别大致如下:
tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接; tcp 提供可靠的服务(数据传输),udp 无法保证; tcp 面向字节流,udp 面向报文; tcp 数据传输慢,udp 数据传输快; 82.tcp 为什么要三次握手,两次不行吗?为什么? 我们假设A和B是通信的双方。我理解的握手实际上就是通信,发一次信息就是进行一次握手。
第一次握手:A给B打电话说,你可以听到我说话吗? 第二次握手:B收到了A的信息,然后对A说:我可以听得到你说话啊,你能听得到我说话吗? 第三次握手:A收到了B的信息,然后说可以的,我要给你发信息啦! 在三次握手之后,A和B都能确定这么一件事:我说的话,你能听到;你说的话,我也能听到。这样,就可以开始正常通信了。 注意:HTTP是基于TCP协议的,所以每次都是客户端发送请求,服务器应答,但是TCP还可以给其他应用层提供服务,即可能A、B在建立链接之后,谁都可能先开始通信。
如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
TCP 的特性 TCP 提供一种面向连接的、可靠的字节流服务 在一个 TCP 连接中,仅有两方进行彼此通信。广播和多播不能用于 TCP TCP 使用校验和,确认和重传机制来保证可靠传输 TCP 给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复 TCP 使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。T
UDP协议是一个简单的面向数据报的传输层协议,它是一种不可靠数据报协议。由于缺乏可靠性且属于非连接导向协定,UDP应用一般必须允许一定量的丢包和出错。 Chrome提供sockets.udp接口使Chrome应用可以进行UDP通信。要使用sockets.udp接口需要在sockets域中声明udp权限: "sockets": { "udp": { "send": ["192
TCP/IP 是不同的通信协议的大集合。 协议族 TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大集合。 TCP - 传输控制协议 TCP 用于从应用程序到网络的数据传输控制。 TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。 IP - 网际协议(Internet Protocol) IP 负责计算机之间的通信。 IP 负责在因特网
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。 Chrome提供sockets.tcp接口使Chrome应用可以进行TCP通信。要使用sockets.tcp接口需要在sockets域中声明tcp权限: "sockets": { "tcp": { "connect": ["192.168.1.100:80", ":8080"] } } 上面的代码表示应
7. TCP协议 7.1. 段格式 TCP的段格式如下图所示(该图出自[TCPIP])。 图 36.12. TCP段格式 和UDP协议一样也有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小稍后详细解释。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短2
我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer),协议的种类又开始繁多起来(比如TCP、UDP、SCTP等)。这就好像下面的大树,根部(连接层)分叉很多,然后统一到一个树干(网络层),到了树冠(传输层)部分又开始开始分叉,而每