传输层协议、TCP三次握手、四次挥手、wireshark软件使用

传输层协议

1.1 TCP/UDP协议

TCP 传输控制协议

TCP 在传输真实数据前,先要进行链接测试(三次握手),如果测试通过才会发送真实数据。

UDP 用户数据包协议

UDP 直接上来传输数据,不管对面能不能收到

端口号的作用:区别应用程序(区别七层协议 http tcp udp 协议)

确认号的作用:告诉对方我收到了你的消息

控制位的作用:描述A、B两台设备的状态

SYN(同步位)    ACK(确认位)  FIN(断开位)  

A  ----->B

syn=1 请求建立连接  

A<  -----B

syn=1 ack=1  同意和你连接 

fin=1  请求断开

fin=1  ack=1   同意和你断开

源端口、目标端口:一个计算机端口 某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通 信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即 65536 (0-65535)

序列号:表示本报文段所发送数据的第一个字节的编号。序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0 开始 无限循环

确认号:(ack)告诉对方我收到了你的消息

数据偏移/首部长度:表示TCP报文段的首部长度,共4位

控制位

URG(紧急位):表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效

ACK(确认位):表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有 效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段

PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾 出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序 不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
RST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩 溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响 应,带RST标志的TCP报文段称为复位报文段

SYN(同步位):在建立连接时使用,用来同步序号。

FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉 对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段

窗口大小:调节每次发送的数据包量

校验和:提供额外的可靠性紧急指针

标记紧急数据在数据字段中的位置

选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为: (2^4-1)*4-20=40字节

TCP 三次握手

pc1想和pc2建立连接

① pc1会发送一个请求连接报文。报文序号seq=x,同步位syn=1请求建立连接

②pc2收到报文后,回复一个报文。报文序号seq=y,希望下次发送一个确认号(Ack)x+1给我,同意你pc1连接 (控制位)SYN=1 ,ACK=1

③pc1收到pc2的同意连接报文,会回一个要求的seq=x+1,也希望下次发送一个确认号(Ack)y+1给我,确认位ACK=1告诉pc2收到了对方的同意连接

为什么是三次握手?

网络环境复杂为了确保数据能够到达,2次不够,4次多余,三次刚好

四次挥手

四次挥手: 半关闭状态 怕有数据没有传输完毕

服务器想和客服端断开连接

① 服务器会发送一个请求断开报文。报文序号seq=u,断开位fin=1请求断开连接

②客服端收到报文后,数据没有传输完毕回复一个报文。报文序号seq=v,希望下次发送一个确认号(Ack)u+1给我, 确认位ACK=1。缺少 断开位fin=1,进入半关闭状态 怕有数据没有传输完毕

客服端收到报文后,数据传输完毕,回复一个报文。报文序号seq=v,希望下次发送一个确认号(Ack)u+1给我, 确认位ACK=1,同意马上断开,断开位fin=1

④服务器收到客户端的断开报文,会回一个要求的seq=u+1,也希望下次发送一个确认号(Ack)w+1给我,确认位ACK=1告诉服务器收到了对方的断开请求

有限状态机(扩展)

1. CLOSED 没有任何连接状态

2. LISTEN 侦听状态,等待来自远方TCP端口的连接请求 (服务开启 http(进程) 80端口在帮进 程 看着 有没有人找 http )

3. SYN-SENT 在发送连接请求后,等待对方确认

4. SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认

5. ESTABLISHED 代表传输连接建立,双方进入数据传送状态

6. FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认

7. FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

8. TIME-WAIT 完成双向传输连接关闭,等待所有分组消失

9. CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认

10. LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

11. CLOSING 双方同时尝试关闭传输连接,等待对方确认

wireshark

1. 选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。 否则,捕获到的其它数据对自己也没有任何帮助。

 2. 使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获数据。这样用户在分析数据时, 也不会受其它数据干扰。而且,还可以为用户节约大量的时间。

3. 使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更 细致,此时使用显示过滤器进行过滤。

选择网卡 选择你需要抓取的网卡,波浪线的代表有数据流量。

模式选择

混杂模式与普通模式

1. 混杂模式:混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地 址。

2. 普通模式:网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。 一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值