计算机网络 lab1 protocol layer

目录

一、实验目的

二、实验内容与实验步骤

三、实验环境

四、实验过程与分析


一、实验目的

1. 在packets数据包中,如何表示网络中协议和分层 (构建网络的关键概念);
2. 熟悉wireshark软件、wget,掌握网络抓包的方法;
3. 了解IP数据包格式,应用wireshark分析数据包格式,查看抓包的内容,并分析对应IP数据包格式;
4. 抓包分析数据包,估算协议的开销;

二、实验内容与实验步骤

实验内容:

        1. 使用wireshark抓包工具捕获、跟踪数据;
        2. 使用wget获取URL

实验步骤:

        0. 软件安装wireshark和wget
        1. Capture a Trace

三、实验环境

Windows11;wireshark2.0.3

四、实验过程与分析

0. 软件安装wiresharkwget

        1. wireshark一路next
        2. wget:在PATH中添加wget文件路径

1. Capture a Trace 捕获

  • 只启用WLAN的混杂,其他全部关闭:取消其他接口的混杂。
  • 启用网络名称解析
  • tcp port 80:使用tcp协议中的80端口筛选器启动捕获。tcp port 80 为HTTP超文本传输协议开放的端口,主要用于万维网www.传输信息的协议,在这里通过过滤语句监听这个端口。
  • 打开终端 cmd,本地与网站交互。
  • 利用wget抓包 https://www.baidu.com (捕获的过程中关闭了浏览器中所有的web标签页,最小化浏览器活动,避免无关的网页信息的捕获)
  • 得到 “200 OK” 的response:

  • 在wireshark中及时点击左上角停止,停止捕获。
  • 查看wireshark界面的封包列表中,出现数据包==抓包成功。

2. Inspect the Trace 检查跟踪

wireshark显示的上中下三个板块:

上——选中一个包查看其协议层、info信息;
中——这个包的头字段;
下——组成包的字节。

上板块,选择④号 HTTP,info信息为GET的数据包(从我的计算机发到服务器的web(HTTP)请求的数据包)。

HTTP:用于获取url的应用层web协议。运行在TCP/IP传输和网络层协议之上。

数据链路层、物理层协议:①有线连接,通常以Ethernet以太网;②无线连接 802.11(未显示)

中间板块:显示顺序Ethernet(最底层) à IPv4 à TCP à HTTP,协议栈自底向上的顺序,包从上到下传递时,下层协议加在上层传来的数据前头,即N层协议的header被添加到来自(N+1)层协议信息的前面。所以低层协议在数据包的前面出现。

 

3. Packet Structure 数据包结构

下板块

0. 第一行的frame不是协议,是wireshark中描述数据包整体信息的记录。包含信息:被捕获的时间、被捕获的长度。

1. Ethernet 以太网:无线连接下显示的不是802.11,因为wireshark的选项卡上要求用以太网格式捕获流量,所以wireshark会将802.11报头转换成伪以太网报头。 

2. IPv4:

3. TCP:

4. HTTP (Hypertext Transfer Protocol 超文本传输协议):

turn-in图片在4.中

4. Protocol Overhead 协议开销

将HTTP数据(headers和消息) 看作网络可携带的有效数据,TCP、IP、Ethernet视作开销。希望开销尽可能小,使得有效数据占比更大,传输效率更高。
数据包从SYN ACK这一行开始,最后一个是HTTP包(主要部分),以一个短的TCP包结束。

5. Demultiplexing Keys 解复用

demultiplexing key:当一个以太网帧到达计算机,以太网层将它包含的数据包交给高层,找到合适的高层处理收到的数据包。所以Ethernet必须知道上层是IP,IP上层是TCP。

协议使用“demultiplexing keys”来确定更高层。

Q1. Which Ethernet header field is the demultiplexing key that tells it the next higher layer is IP? What value is used in this field to indicate “IP”? 以太网头部中哪一部分是解复用(解复用: 找到正确的上一层协议来处理到达的包的行为叫做 解复用)键并且告知它的下一个高层指的是IP,在这一包内哪一个值可以表示IP

0x0800

Q2.  Which IP header field is the demultiplexing key that tells it the next higher layer is TCP? What value is used in this field to indicate “TCP”? IP头部中哪一部分是解复用键并且告知它的下一个高层指的是TCP,在这一包内哪一个值可以表示TCP

0x6

Explore on your own

1. 查看不包含高层数据的短TCP数据包,查看它发往哪?不携带高层数据的数据包有用吗?

       不包含数据的TCP报文通常是确认和控制信息类报文,例如TCP建连时三次握手和TCP终止时的四次挥手,在客户机和服务器之间发送。

2. Web响应的第一个和最后一个TCP数据包结构

TCP结构16b源IP + 16b目的IP + 32b Sequence number=0 + 32b确认号ACK + TCP标志位

SYN: 同步标志位,同步序列号,建立会话连接。
ACK: 确认标志位,对已经接收的数据包进行确认。
FIN: 完成标志位,即将释放连接。
PSH:推送标志位,表示该数据包被对方接收后,应立即交给上层应用,不在缓冲区排队。
RST: 重置标志位,连接复位、拒绝错误和非法的数据包。
URG:紧急标志位,表示数据包的紧急指针域有效,保证连接不被阻断,并督促中间设备尽快处理。

第一个TCP

四次挥手的TCP
  

  3. 在上述经典分层模型中,低层字段包装到高层数据包外面,如果较低层添加加密,此模型将如何更改?
加密的类型、加密密钥不能与加密数据同时发送。应当在传输数据前进行收发双方协商确定好

4. 在上述经典分层模型中,低层字段包装到高层数据包外面,如果较低的层添加压缩,此模型将如何更改?
压缩目的在于节省传输流量,最大化利用。压缩的协议可以在下层协议的header中表现出来,而不是像加密一样提前商定。这样在header中指出便于接收方解压缩,同时也能节约传输流量。
5. Ethernet的header 大小14B = 112b = 48b + 48b + 16b
48b目标地址destination MAC地址
48b 源地址 source MAC地址
16b上层协议 IPv4

 

 

6. IPv4的header 大小20B = 160b
4b
版本号0100 IPv4;
4b header长度参数是4字节,0101 à 0101 = 5*4 = 20B
8b 服务类型
16b IP数据报总长度(包括header + 内容)所以IP包最大大小,单位字节
3b flags标志位
8b 生存空间TTL:表示包可以中转多少个路由器,每经过一个路由器,TTL减少1,变为0之后丢弃该包,防止数据包陷入路由循环。
8b 协议,表识IPheader属于哪个协议
16b checksum
32b 发送端口IP地址
32b 目的端口IP地址
32b 可选的选项(可无)

7. TCP三次握手连接建立过程

第一次握手:建连时,客户端给服务器发送SYN字段,SYN被置为1,表示建立连接,随机产生一个seq序列号为j,表示当前还没有发送数据。ACK=0表示已经收到包的数量,即还没有接收到数据。并进入SYN_SENT状态,等待服务器确认。 SYN:synchronize Sequence Numbers同步序列编号。

第二次握手:服务器收到SYN=1包,得知客户端请求建立连接,将TCP报文的SYN、ACK都置为1, (ack = j+1),随机产生序列号seq=k。并发送给客户端确认连接请求。此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,检查ack是否为j+1,ACK是否为1。确认无误后,将ACK置为1,ack=k+1,向服务器发送确认包,发送完之后,客户端和服务器进入ESTABLISHED (TCP连接成功)状态,完成三次握手,客户端与服务器开始传送数据。

ack表示头部确认号acknowledge number != ACK标志位

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
山东大学计算机网络实验中的protocol layer(协议层)是指网络通信协议的分层结构。计算机网络中使用的协议通常采用分层设计,将不同的功能和任务分配到不同的层次上进行处理和管理,以实现网络通信的高效性和可靠性。 在山东大学计算机网络实验中,协议层可以分为不同的层次,包括物理层、数据链路层、网络层、传输层和应用层。 物理层是网络通信的最底层,主要负责将比特流传输到网络媒体上,处理电压、信号速率和同步等问题。在实验中,可以学习到如何使用传输介质和调制解调器。 数据链路层主要处理数据的传输错误和流控制,确保数据的可靠传输。实验中可以通过学习以太网、无线局域网等数据链路层的协议,学习如何建立和管理网络连接。 网络层负责将数据包从源主机传输到目的主机,实现主机之间的通信。实验中可以学习如何配置路由器和交换机,实现网络地址的分配和路由选择等功能。 传输层是实现端到端通信的关键,负责将数据分割为较小的单元并确保可靠传输。在实验中,可以学习到传输层的协议如TCP和UDP,以及流控制和拥塞控制的原理和实现方法。 应用层是网络通信中最高的层次,负责处理和管理各种应用程序的通信需求。实验中可以学习到常见的应用层协议,如HTTP、FTP和SMTP等。 通过实验中的学习,我们可以更深入地理解计算机网络中的协议层次结构,掌握协议的工作原理和实现方法,提高网络通信的性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值