- TCP:Transmission Control Protocol, 面向连接的,可靠地流协议。实行“顺序控制”或“重发控制”机制。此外还具有“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。TCP 协议能够正确处理丢包问题,保证接收方能够收到数据,与此同时还能够有效利用网络带宽。然而 TCP 协议中定义了很多复杂的规范,因此效率不如 UDP 协议,不适合实时的视频和音频传输。
- UDP:User Datagram Protocol, 不具有可靠性的数据包协议。虽然可以确保发送消息的大小,却不能保证消息一定会到达。它只会把数据传递给接收端,但是不会关注接收端是否真的收到了数据。但是这种特性反而适合多播,实时的视频和音频传输。因为个别数据包的丢失并不会影响视频和音频的整体效果。
Socket:套接字
API:Application Programming Interface,应用编程接口
1.端口号
作用:用于区分同一台主机中正在通信的不同应用程序,因此也被称为程序地址。不同的端口用于区分同一台主机上不同的应用程序。假设你打开了两个浏览器,浏览器 A 发出的请求不会被浏览器 B 接收,这就是因为 A 和 B 具有不同的端口。
分为两种:
- 知名端口号:这种端口号是固定的,用于服务器程序,使用对应协议的程序就将端口号设为对应的数字。比如DNS的端口号就是53.
- 动态端口号:这种端口号是不固定的,用于客户端程序,客户端程序对端口号要求不高,只要该端口号在本机中唯一就行。
端口号 协议
53 DNS
80 HTTP
20 FTP数据
21 FTP控制
23 SSH
25 SMTP
2.TCP与UDP区别:
TCP:
用于实现可靠传输的情况,文件非常重要,对网络拥堵有较高要求的情况。
TCP首部
源端口号:发送端端口号
目标端口号:接受端端口号
序列号:发送数据时,表示发送数据的位置,发送完一次数据后,序列号的值都等于原来的序列号加上数据的长度
应答号:用于接受端告诉发送端下次应该从哪个位置开始发送,表示前面的数据已经都收到了
数据偏移:实际就是TCP首部长度
保留:一般设置为0,用于后续扩展
控制位:长度为8,从左到右分别是CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
窗口大小:能够发送数据的最大值,为0时可以发送探测窗口
校验和:与UDP校验和作用相同
紧急指针:用于处理紧急情况
选项:其他控制设置
UDP:
- 用于高速传输和实时性较高的场合(即时通信)。对于采用UDP的实事视频通信,如果出现丢包也只会出现短暂卡顿,但是如果采用TCP丢包后需要重发,会导致很长时间的卡顿。
- 包总量较少的通信(DNS),客户端较多
-
广播通信
UDP首部
源端口号:表示发送端端口号,不需要时设为0
目标端口号:表示接收端端口号
包长度:表示整个UDP包的长度
校验和:为了提供可靠的UDP首部和数据而设计,只要源IP地址,目标IP地址,源端口号,目标端口号,协议号有一个发生了篡改校验和都会不正确。
网友评论