TCP三次握手(没完结)


前言

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。

  • 刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。

提示:以下是本篇文章正文内容,下面案例可供参考

一、TCP是什么?

TCPTransmission Control Protocol就是双方 通信交流 的规范标准(协议)。是一种面向连接的、可靠的、基于字节流的传输协议

二、了解TCP报文头部标志信息

1.TCP报文头

头部(header):在每一个数据段前面加上必要的控制信息如目的地址、源地址等)组成的首部(header)

在这里插入图片描述

端口号

  • source port源端口号就是本地端口号
  • distination port目的端口号就是远程端口号
    - 端口可以理解为特定软件或程序的接口
    - 源端口就是本机程序用来发送数据的端口,目的端口就是对方主机用哪个端口接收
    - 注意:IP地址是应用程序唯一标识,源端口+源IP+目的端口+目的IP称为”套接字对。
    - 一对套接字就是客户端与服务端的连接。

数据包:

  • 一个数据包(pocket)去掉头部 被 解封装 成 数据段(segment) 后就会涉及到 连接上层协议的端口 问题。

  • 数据发送时计算机会在数据段上添上本机端口号(源端口号)和目的主机接收数据的端口号(目的端口号)

举个例子:

数据包通过网络设备走的时候,第一个检查数据包的目的地址在什么地方。
我们把防火墙的目的端口关闭的话,也就是自己的 数据段 无法到达目的地,因为数据段在发送出去的过程中,防火墙 检测到这个目的端口 不允许出去。
也就是说,把目的端口封了,自己就无法上网了。
如果封 80 目的端口,也就不能访问别人的网站了

至于源端口,应该这么理解。
你的数据段发到别人哪儿时,别人要是回应数据包的话
你的源端口就是别人发送数据的目的端口。
因此,我们要是把源端口封了,别人就无法与你取得联系。
如果封80源端口别人就无法访问你的网站了。封目的端口自己就出不去,封源端口别人就进不来


TCP Flag

  • TCP中有6个标志比特,多个可同时别设置为1.主要用于操控TCP状态机,如下
    URP,ACK,PSH,RST,SYN,FLN

SYN(同步序列号)

  • 发送的第一个数据包,用来建立连接
    • 当连接请求的时候,SYN=1,ACK=0连接被响应时候SYN=1,ACK=1;扫描者发送SYN数据包,对方响应了一个数据包SYN=1,回来就表明有这个端口号。

ACK(确认)

  • 包含在TCP数据包中两个取值:1表示应答域有效,反之为0。

    • 发送端:发送数据,此时ACK为0,表示接收端还未应答。
      接收端 :接收数据并且响应ACK为1,发送端就知道接收数据没有意外。

FIN:断开一个连接

TCP 三次握手

初始状态:客户端处于closed状态,服务器处于listen状态。
第一次握手:客户端发送请求报文SYN=j(1)初始序列号,此时客户端处于SYN_Send(发送等待状态)
在这里插入图片描述

总结

.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值