利用Telnet进行HTTP访问过程的协议分析

本文详细介绍了一次Telnet进行HTTP访问的过程,并对该过程进行协议上的分析以及wireshark抓包分析。文章只是自己记录实验过程所作,内部若有问题还请各路大神在评论区加以指正,如有问题也欢迎大家交流讨论。

涉及到的知识点有:

1.Telnet协议

2.三次握手流程

3.TCP协议字段详解

4.HTTP报文分片传输与重组

5.TCP的seq和ack变化过程

6.4次挥手的现实情况--简化版的3次挥手

今天才知道可以利用telnet进行http连接并发送请求,特此记录。

v2-67190df77cd60799f88a24c6c725b15b_b.png

首先输入telnet 主机地址 端口号,在本例中为telnet baidu.com 80

看到回显第一行就是正在尝试IP地址,该地址就是百度服务器地址。

进一步剖析内部原理如下:

telnet是一个应用层协议,基于TCP/IP协议栈,在其与服务器沟通时,首先与服务器建立TCP连接,经历3次握手后发送HTTP请求,并通过TCP将回显发送回本地shell。

TCP协议为传输层协议,发送至服务器需要经过网络层和数据链路层。而经过网络层时需要知道目的地址,此时需要先通过DNS协议获取到百度的IP。

所以在我们输入telnet baidu.com 80这条指令时,网络数据包如下图所示

v2-187b2fad4b7e170828d5b6ed078ccaaa_b.png

这是3次握手的数据包,首先看第一个包。

1.本地IP为115.25.46.77,目的地址为220.181.112.244,协议为TCP

2.长度74(包括以太网长度14,IP长度20,TCP长度40,TCP中加入了5个可选项,有MSS和Timestamps等)

3.源端口为40862,目的端口为80(刚才设置的)

4.seq=0,这是一个SYN请求,发送的seq是一种验证机制,需要对方发送seq+1的ack进行确认

5.窗口大小29200,指发送方请求的发送窗口为29200字节

6.载荷长度0,由于是请求报文,内部不携带数据,所以载荷长度为0

7.最大分片大小1460字节,由于MTU限制每一个以太网帧的最大包长为1500字节,IP和TCP各占

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值