TCP协议特点
TCP是面向连接的,可靠的进程到进程通信的协议,数据传输可靠,安全性高,而且tcp有发送和
接受的存缓,用来临时存储数据,这样可以提高访问速度,提高效率,但传输效率比较低。
TCP提供全双工服务,即数据可在同一时间双向传输。服务的前提就是tcp必须要双方建立连接,而且是有规范,有步骤的链接。
udp是无连接的,不保证可靠性的传输协议,因为发送端只管发送,不管接收方的事情,同时传输数据书否出错也不会提示。接收方收到数据也不会回应。
udp服务传输数据更快,效率更高。又被称为流媒体协议,常用于直播的数据传输。
TCP协议
序号:发送端为每个字节经行编号,便于接受端正确重组。
确认号:用于确认发送端信息。
窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。
图片中为抓包软件抓到的tcp协议
source port:65009 (指源端口号)
destination port:80 (指目标端口号)
控制位的种类(非常重要)
URG(紧急位):紧急指针有效位。
SYN(同步位):建立连接,当需要建立连接时,他的值为1.即SYN=1
ACK(确认位):确认连接,当ACK=1是才有效,ACK=0是此控制位无效。
Ack:表示接收方期望收到发送方下一个报文的第一个字节数据的编号,确认传输是否有问题。
FIN(断开位):断开连接,提出断开连接这一方的值为1.
RST(重置位):重新建立连接,值为1时代表重新建立连接。
PSH(急迫位):PSH=1时,要求接收方将数据尽快将数据段送达应用层
SEQ:tcp报文的序号
三次握手,四次挥手(非常重要★)
1. PC1使用一个端口向PC2的80端口发送建立连接请求SYN=1
2. PC2收到消息,回复确认信息ACK=1,同时向PC1也发送一个建立连接请求SYN=1
3. PC1收到PC2的回复,向PC2发送确认信息。ACK=1。这就是三次握手的过程。
1.第一次挥手:PC1向PC2请求断开连接,发送FIN=1,ACK=1表示断开连接。
2.第二次挥手:PC2已经收到断开请求回应ACK=1表示确认。此时PC2处于半关闭状态,PC1不能像PC2发送数据,但PC2可以将剩余数据发送到PC1
3.第三次挥手:PC2收到客户端断开连接并且表示已经没有剩余数据需要传输,像PC1发送断开连接FIN=1 ACK=1表示断开。
4.第四次挥手:PC1到PC2断开连接发送ACK=1表示已经断开。
默认TCP端口号及其功能。
FTP默认端口号21:FTP服务器所开放的控制端口
TELNET默认端口号23:用于远程登录,可以远程控制管理目标计算机。
SMTP默认端口号25:SMTP服务器开放的端口,用于发送邮件。
HTTP默认端口号80:超文本传输协议。
POP3默认端口号110:用于邮件接收。
HTTPS默认端口号443:加密的超文本传输协议。
nginx默认端口号80。 mysql:默认端口号3306 ssh默认端口号22
UDP协议
UDP长度:用来指出UDP的总长度,为首部加上数据。
效验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制。