目录
一、传输层协议
协议:协议在计算中是必不可少的
传输层协议是指在互联网协议栈中,负责在不同计算机(主机)之间的进程(应用程序)之间提供端到端的通信服务。
二、协议的作用
-
提供端到端的可靠数据传输:传输层协议通过在数据包中添加序号、确认、重传等机制,确保数据在端到端传输过程中不丢失、不重复、不损坏。
-
实现多路复用和多路分解:传输层协议可以通过端口号来将多个应用程序的数据区分开来,从而实现多个应用程序共享同一个网络连接。
-
拥塞控制:传输层协议通过拥塞窗口、慢启动等机制,可以控制数据在网络中的流量,从而避免网络拥塞。
-
提供端到端的服务质量保证:传输层协议可以通过设置不同的服务质量参数,如延迟、带宽、抖动等,来保证数据传输的质量,从而满足不同应用程序的需求。
三、TCP协议:传输控制协议
TCP协议是一种面向连接的、可靠的传输层协议,用于在计算机网络中传输数据。
TCP协议通过一系列的握手过程确认通信双方的身份,并维护这个连接,以确保数据以正确的顺序和完整性传输。
TCP协议采用可靠性传输机制来保证数据的可靠性,包括检验码、序号、确认机制、重传机制等,同时支持数据流的流控。由于TCP的可靠性机制,它在文件传输、远程访问等数据传输中得到广泛应用。tcp提供的全双工服务,数据可以在同一时间双向传输,每个tcp都有发送缓存和接收缓存,用来临时存储数据,通信双方必须要建立有规范,是有步骤的链接。
TCP协议是TCP/IP协议族的重要组成部分,也是Internet上使用最广泛的协议之一。
四、UDP:用户数据报协议
协议是一种无连接的、不可靠的传输层协议,它不需要像TCP那样建立连接并维护连接状态。UDP协议只是简单地将数据包发送给目的地,并不保证数据的可靠传输和顺序。UDP协议具有高效、简单、灵活等特点,通常用于需要数据传输速度的实时应用,如视频、音频、游戏等。由于UDP协议不需要建立连接和维护连接状态等操作,因此开销较小,在网络拥塞较严重的情况下具有更好的可靠性。
总的来说,TCP协议适用于需要可靠传输、保证数据完整性和顺序性的应用场合,而UDP协议适用于对数据传输效率和实时性要求较高的应用场合。
五、控制位
-
URG:表示该段数据包含着紧急数据。当此位为1时,数据被认为是"紧急",需要立刻传送,紧急指针URG指示了这段紧急数据在数据中的位置。
-
ACK:表示确认号字段ack是有效的。当ACK为1时,TCP报文段携带的确认号ack字段才是有效的。
-
PSH:表示请求接收端立即将缓冲区的数据推送给接收应用程序,而不是等待缓冲区填满。用于要求对端立即处理数据的情况,例如TELNET传输的命令和编辑字符等交互操作。
-
RST:表示复位连接。当发生非法操作或连接异常时,TCP连接即被强制关闭,并向对方发送复位信号RST。
-
SYN:表示同步序号标志位。用于TCP建立连接时的序号同步和确认。
-
FIN:表示结束一个连接。当需要断开连接时,FIN置1,表示发起方已经不再发送信息,请求断开连接。另一端接收到FIN后,也发送FIN进行回应,然后关闭连接。
-
SEQ:表示报文的序号。
六、TCP三次握手和四次挥手
TCP三次握手和四次挥手是TCP协议在建立和断开连接时使用的协议机制。
TCP的三次握手是为了建立一个可靠的连接
第一次握手是客户端发送一个连接请求报文
第二次握手是服务器返回确认收到请求报文的响应
第三次握手是客户端再次确认收到服务器的响应。
TCP的四次挥手是为了关闭一个连接
第一次挥手是客户端发送一个请求关闭连接的报文
第二次挥手是服务器返回确认收到请求的响应
第三次挥手是服务器发送一个连接关闭的请求报文
最后一次挥手是客户端发送一个确认收到请求的响应
TCP半关闭:一方已经停止发送数据,但是另一方还需要继续发送,数据方先发送fin=1,这时候表示不再发送数据,但是接收数据不受影响。另一方回应ACK=1,确认发送接收方传完了数据,就进入最后的挥手阶段
七、常用TCP端口
- HTTP - 80
- NGINX - 80
- MYSQL - 3306
- HTTPS - 443
- SSH - 22
- FTP - 21 20
- Telnet - 23
- SMTP - 25
- DNS - 53
- POP3 - 110
- IMAP - 143
- LDAP - 389