TCP/IP协议与三次握手

目录

一、TCP / IP 协议族的传输层协议

二、TCP建立连接和断开连接的三次握手和四次挥手过程

       1.TCP建立连接过程被称为三次握手(在传输真是数据之前测试两台计算机互不互通)

       2.TCP断开连接的过程被称为四次挥手(发送完真实数据后断开连接)

       3.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   进程名     查看相关指定进程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值