CS144课程实验详解-lab0-第一部分

  • 配置环境
    • 下载并安装VirtualBox
    • 下载实验虚拟机cs144_vm.ova并导入VirtualBox
    • 额外提示-图形用户界面
    • 额外提示-共享文件夹
  • 手动联网(Networking by hand)
    • 获取网页(Fetch a Web page)
      • 实验本体
      • 举一反三
    • 给自己发送邮件(Send yourself an email)
      • 实验本体
    • 接听和连接(Listening and connecting)
      • 实验本体
  • 本节资源

配置环境

首先我们先来配置实验需要的虚拟机,这里我们使用文中的推荐配置,即VirtualBox+实验虚拟机cs144_vm.ova,英文原文地址:推荐配置

下载并安装VirtualBox

下载地址:VirtualBox下载地址
这里需要注意的是,如果你使用的是Windows操作系统,那么需要注意VirtualBox与Windows的版本适配问题,这里推荐如果你正在使用最新版的Windows10且在持续更新,那么建议在官网中下载最新版的VirtualBox,防止由于不兼容问题导致的Windows无法更新进而停止服务。

下载实验虚拟机cs144_vm.ova并导入VirtualBox

下载地址:虚拟机下载地址
下载成功后我们需要将虚拟机导入VirtualBox来使用

这里我们打开VirtualBox,点击管理→导入虚拟电脑或者使用组合键ctrl+i来导入虚拟机

点击右侧黄色文件夹图标选择刚刚下载的虚拟机文件cs144_vm.ova,然后点击下一步

在弹出的窗口中我们可以修改为虚拟机分配的资源,这里我们推荐CPU分配到4,内存分配为4096MB,前提是你的电脑的资源够用的情况,当然我们也可以在下方修改默认的虚拟电脑放置的位置,修改之后点击导入,等待进度条结束就成功了

需要注意的是,第一次进入虚拟机的默认用户名和密码都是cs144,且需要我们强制修改密码。

额外提示-图形用户界面

在第一次进入虚拟机时,我们看到的是无图形用户界面的命令行界面,为了方便起见,我们可以手动配置来获得用户图形界面,依次执行以下两条命令即可

sudo apt-get install --reinstall lightdm
sudo systemctl start lightdm

额外提示-共享文件夹

我们在VirtualBox中选中我们的虚拟机,单击右上角设置

在弹出的窗口内选择共享文件夹,然后单击右上角的加号图标

在路径中选择一个你希望宿主机上的某个文件夹成为你的共享文件夹,然后别忘了选中自动挂载,可以省去很多麻烦,然后点击OK即可。这样可以方便的在宿主机和虚拟机之间传递文件。

手动联网(Networking by hand)

获取网页(Fetch a Web page)

实验本体

这个小实验中,我们需要手动的去访问网址http://cs144.keithw.org/hello
,我们不妨先在宿主机中打开这个网址看一下,我们可以看到这个网址只有简简单单的一句话Hello,CS144!

我们在虚拟机中打开终端,输入命令与服务器建立一条可靠的连接

telnet cs144.keithw.org http


当出现上图的显示后,依次输入下列命令,然后回车即可。这里我建议大家可以先把所有的命令写进一个文件中,比如我就写进了文件test中,然后复制进去直接回车,避免因为输入过慢导致连接超时,这个问题网上很多人都出现过,其实单纯地就是手速的问题导致连接超时,预先写好可以很好地避免这个问题。

GET /hello HTTP/1.1
Host: cs144.keithw.org
Connection: close

就会出现下面的回应,可以看到得到了与网页中的内容相同的文字Hello,CS144!,代表我们成功了

举一反三

为了更加清晰的掌握,这里我们可以尝试着打开一个自己想要获取的网页,比如这里我们选择了在百度学术中搜索“1”的网址来获取,这样我们应该如何做呢?

这里我们给出相应的命令
大家可以对比两次访问不同网址的不同命令,来体会其中的区别。

telnet xueshu.baidu.com httpGET /s?wd=1&rsv_bp=0&tn=SE_baiduxueshu_c1gjeupa&rsv_spt=3&ie=utf-8&f=8&rsv_sug2=0&sc_f_para=sc_tasktype%3D%7BfirstSimpleSearch%7D HTTP/1.1
Host: xueshu.baidu.com
Connection: close

给自己发送邮件(Send yourself an email)

实验本体

由于在原本的实验中使用的是斯坦福自己的学生邮箱和自己的服务器,因此作为没有SUNet ID的人来说,我们可以换一个网站进行这个实验的尝试,本部分使用smtp.163.com来进行实验,部分内容参考了这篇博客:使用命令行发送邮件
本实验中,首先需要我们连接到提供smtp服务的服务器

telnet 123.126.96.210 smtp

当然,出于好奇,我尝试了不使用IP地址而使用相对应的域名可否成功连接,答案当然是可行的,类似于ping操作一个道理,所以以下命令也可以成功连接服务器

telnet smtp.163.com smtp

插一句题外话,如果有一些同学想知道如何获得某个域名对应的IP地址,我们可以采用ping操作来获得,对于百度来说,我们可以使用

ping baidu.com

来获得相应的IP地址

言归正传,连接到服务器后,可以看到这样的提示

之后,我们和服务器打个招呼

HELO smtp.163.com

如果收到相对应的回复则证明连接成功

之后我们如果按照原本的实验书上的流程进行,会提示没有验证身份信息,因此我们需要登录一下

auth login

会有一串有些不明所以的字符串显示出来,这时需要输入你的163邮箱账号,回车后又会有一串有些不明所以的字符串显示,这时需要输入你的邮箱密码,此时注意,输入的邮箱账号和密码需要经过base64编码。

提示认证成功后即可开始发送邮件了。
按照下面的格式发送邮件即可

MAIL FROM: <victor_q@163.com>RCPT TO: <843689373@qq.com>DATAFrom:victor_q@163.com
To:843689373@qq.com
Subject:HELLOhello,Im QCH.
.

有两点需要注意,第一点是在输入完主题后需要空一行再写正文,即写完主题后需要连续按两次空格再输入正文,第二点是正文输入完毕后需要输入回车→英文的.→回车来发送邮件,成功发送后会有相应的提示。最后输入

QUIT

退出即可。然后查看你的接收邮箱就能找到你刚刚发送的邮件啦。

接听和连接(Listening and connecting)

实验本体

经过前面两个小实验,我们可以看到telnet是一个客户端程序,可以与其他计算机上运行的程序建立连接(a client program that makes outgoing connections to programs running on other computers),本实验中,我们建立一个简单的服务器来等待客户端的连接
首先打开一个终端作为服务器,输入命令

netcat -v -l -p 9090

然后打开一个新的终端作为客户端与服务器进行连接,在新的终端中输入命令

telnet localhost 9090

之后可以在服务器中看到客户端已连接

此时我们可以用服务器和客户端进行通讯,首先从服务器发送一条信息给客户端,可以看到客户端处也有信息显示

然后,我们从客户端发送一条信息给服务器,可以看到服务器处也有信息显示

我们看到,双向均可以可以正确通讯,实验结束。

在服务器端按下组合键ctrl+c即可断开连接,同时客户端也同步结束。

本节资源

本节中涉及到的命令和代码已放入CSDN,链接地址:lab0-(1)

CS144课程实验详解-lab0-第一部分相关推荐

  1. 数字信号处理实验matlab版答案,数字信号处理习题答案及matlab实验详解.pdf

    数字信号处理习题答案及matlab实验详解.pdf 第一章 参考答案: 1 (1)2 2 14 ,有理数,所以周期为 14 0 3  3 7 2 2 (2 ) 12 ,无理数,非周期  ...

  2. 【阿里云课程】详解深度学习优化:泛化与正则化,学习率与最优化

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中两节,介绍如下: 第1节:泛化与正则化 第1节课内容为:泛化与正则化,讲述泛化的概念与重要性,各种正则化方法,包括显 ...

  3. Spotify敏捷模式详解三部曲第一篇:研发团队

    本文转自:Scrum中文网 引言 2018年4月,来自北欧瑞典的音乐流媒体公司.百亿美元独角兽Spotify创造了历史,它成为了当代上市公司当中,第一家通过"直接上市"的方式在美国 ...

  4. 实验详解——Cobbler自动部署最小化安装

    实验详解--Cobbler自动部署最小化安装 一.实验:自动部署 二.Cobbler自动装机服务搭建步骤 1.导入epel源并加载在线安装源 2.安装Cobbler以及其相关服务软件包 3.修改cob ...

  5. 实验详解——DNS网关服务器的分离解析

    实验详解--DNS网关服务器的分离解析 一.实验图 二.要求 三.实验开始 1.网关服务器的配置 ①.新添加一块网卡,用双网卡来演示网关服务器的两个端口 ②.对两个网卡进行配置的修改 ③.重启网卡并查 ...

  6. 实验详解——DNS反向解析、DNS主服务器和从服务器的配置

    实验详解--DNS反向解析.DNS主服务器和从服务器的配置 实验一:DNS反向解析 1.安装bind 2.查找配置文件路径 3.配置/etc/named.conf主配置文件 4.修改/etc/name ...

  7. 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

    详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...

  8. 详解 Linux环境中DHCP分配IP地址(实验详解)

    Linux中DHCP小实验详解 一.DHCP中继概述 二.DHCP在linux系统中的相关配置 1.配置DHCP服务器 2.设置全局配置参数 3.subnet网段声明 4.host主机声明 三.实验例 ...

  9. 实验详解——parted单磁盘分区并进行配额

    实验详解--parted单磁盘分区并进行配额 一.实验要求 二.实验开始 1.添加新硬盘 2.对新硬盘进行parted分区,格式设置为ext4 3.格式化分区,格式为ext4 4.设置配额方式和挂载 ...

最新文章

  1. 一个爬虫的故事:这是人干的事儿?
  2. 程序员用于机器学习数据科学的3个顶级 Python 库
  3. 【搬砖】【Python数据分析】Pycharm中plot绘图不能显示出来
  4. Win10系统在运行界面cmd出现ipconfig命令无法使用的情况的解决办法!!
  5. 手动建立Mysql表实体类技巧
  6. Sequence Pair Weight
  7. 使用Gradle构建和应用AST转换
  8. OpenJudge NOI 1.8 15:细菌的繁殖与扩散
  9. Centos在线安装nginx
  10. Javascript基础之Array数组API
  11. 移动硬盘新建选项消失、不能新建文件夹和文件的解决方案
  12. 如何用VB.Net创建一个三层的数据库应用程序
  13. Java 中equals 与 == 的区别:
  14. Centos网络管理(五)-Bonding、网络组和网桥
  15. 《shell脚本学习指南》自学笔记——入门
  16. 遥感导论网课_经典课程教材遥感导论.pdf
  17. go语言处理html文件,go语言操作文件实例笔记
  18. 《企业管理学》管理理论的产生于发展知识点总结
  19. JM8.5中的高精度象素运动估计 1
  20. 3.NLP中文分词技术

热门文章

  1. [网络爬虫|smtp协议|python]东方财富网爬虫,python smtp协议发送爬取数据至QQ邮箱
  2. 关于 Linux中卷/分区等知识的一些总结
  3. 毕业设计 基于深度学习的人脸性别年龄识别 - 图像识别 opencv
  4. 开车和做股票有什么相似之处?
  5. 求数列中的第1~k小元素
  6. python解包什么意思_Python 解包骚操作,看这篇文章
  7. Web前端技术 Web学习资料 Web学习路线 Web入门宝典
  8. Python基础:实现猜拳游戏(简单版)
  9. 传输层与网络层的区别
  10. 25 参数估计——样本量的确定