目录
1.TCP建立连接过程被称为三次握手(在传输真是数据之前测试两台计算机互不互通)
2.TCP断开连接的过程被称为四次挥手(发送完真实数据后断开连接)
一、TCP / IP 协议族的传输层协议
TCP传输控制协议,UDP用户数据包协议,TCP传输之前需要确认A和B之间是否通顺(有连接),UDP不论A与B是否通顺都会进行传输(无连接)TCP传输中要保证数据可以准确传输到目标计算机中,而UDP只管发送数据,不会保证对方有没有收到
TCP是面向连接的,可靠的进程到进程通信的协议,提供全双工服务,数据可在同一时间双向传输
计算机应用程序:操作系统会给每一个应用程序分配一个pid号(内部使用),在网络中端口号的作用是用来区别应用程序的(端口号范围是0 - 65535),前1024端口已经被著名的一些程序和协议使用了
不同协议或程序中相同的端口号不冲突,在相同的协议和程序中冲突
序列号:本报文段中发送数据的第一个字节的编号
确认号:设备B用来确认收到设备A发送的数据,B只有收到了A的包后,才知道A包的序号,否则B回复时无法确认他的确认号
控制位:(URG / ACK / PSH / RST / SYN / FIN)用来描述A与B设备之间目前的状态
URG(紧急位):本报文段中发送的数据是否包含紧急数据(当URG = 1时生效)
ACK(确认位):表示确认号字段是否有效(ACK = 1时生效)
SYN(同步位):在建立连接时使用,同步序列号(请求连接 SYN = 1 ACK = 0时生效)
RST(重置位):连接出现严重错误,重新建立连接
FIN (断开位):通知对方本端要断开关闭连接(FIN = 1时可以释放关闭)
PSH (急切位):从TCP接收缓冲区读走数据,给后续数据流出空间
校验和:确保整个数据没有出现问题
服务端:为他人提供服务(端口号是固定的)
客户端:需要他人提供服务(端口号是随机的,不会超过65535)
IANA互联网数字分配机构负责域名,数字资源,协议分配,端口,IP地址
二、TCP建立连接和断开连接的三次握手和四次挥手过程
1.TCP建立连接过程被称为三次握手(在传输真是数据之前测试两台计算机互不互通)
TCP的三次握手过程:
①PC 1发送SYN报文请求建立连接(seq PC 1的序列号 = X,SYN同步位 = 1)
②PC 2收到SYN报文后回复一个SYN+ACK报文(seq CP 2的序列号 = Y,ack确认号 = X+1,ACK确认位 = 1,SYN同步位 = 1)
③PC 1再次回复一个确认报文,发送ACK报文(seq PC 1第二个包的序列号 = X+1,ack确认号 = Y+1,ACK确认位 = 1)
2.TCP断开连接的过程被称为四次挥手(发送完真实数据后断开连接)
TCP的四次挥手过程:
①PC 1发送请求断开连接,发送FIN+ACK报文,通知对方本端要断开关闭连接(SYN断开位 = 1,SYN同步位 = 1)
②PC 2接收到PC 1的断开请求,首先需要检测数据有没有完整传输完毕,会先发送一个ACK报文给PC 1(ACK确认位 = 1)
确定数据完成传输后,会发送一个FIN+ACK报文,与PC 1确认断开连接(FIN断开位 = 1,ACK确认位 = 1)
③PC 1再次回复一个确认报文,确认收到(ACK确认位 = 1)
3.TCP优点和特性
1.工作在传输层
2.面向连接协议
3.全双工协议
4.半关闭状态
5.错误检查
6.将数据打包成段,排序
7.确认机制
8.数据恢复,重传
9.流量控制,滑动窗口
和TCP协议相比UDP协议属于无连接,不可靠协议(例如直播卡顿导致画面错过)
三、有限状态机
CLOSING 双方同时尝试断开连接
LISTEN 侦听状态,等待来自TCP的连接请求
SYN - SENT 发送连接请求后,等待对方确认(在客户端存在)
SYN - RECEIVED 在收到和发送一个连接请求后,等确认
CLOSED 没有任何连接状态
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
CLOSE - WAIT 被动关闭,收到对方发来的关闭连接请求,并已经确认(访问Web服务器,Web服务器关闭再访问,会有超时)
TIME - WAIT 完成双向传输连接关闭,等待所有分组消失
LAST - ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
拓展协议
RPC 协议(端口号 111)远程过程调用(远程指挥) 主机分配任务
telnet 协议(探测远程主机的某一个端口是否启用)使用Win+R输入cmd打开窗口输入命令使用,使用格式(telnet IP地址 端口号)
拓展命令
tasklist 查看所有进程
tasklist |findstr 进程名 查看相关指定进程