实验一截获 IP 数据包并加以分析
1、实验目的:
要求学生掌握 Socket 编程中原始套接字的技术
2、实验内容:
i. 使用两种方式,一种是采用现有的工具和API(选
作),一种是自己做
ii. 要求学生掌握截获报文的技术
iii.分析是 UDP 还是 TCP 报文
iv. 分析程序收、发双方的:端口号、IP 地址
v. 分析 IP 数据报的总长度、标识、片偏移量、生
存时间
vi. 必须使用图形界面,显示第 ii、iii 条要求的信息
vii. 不能使用现成控件
实验二 ARQ 协议的实现
1、实验目的:
要求掌握 Socket 编程 及 ARQ 协议
2、实验内容:
i. 必须采用应答机制、超时计数器技术、帧编号技
术、重传技术
ii. 校验和技术可选,
a) 校验和 s 的计算:设要发送 n 字节,bi 为第 i
个字,s=(b0+b1+…+bn) mod 256
iii.在接收端,设置随机数,根据随机数执行相关操
作,0 代表正常,1 代表帧丢失,2 代表帧出错,
3 代表应答帧丢失(即不发生应答帧)
iv. 必须使用图形界面,
a) 发送端:显示发送的数据、是否重传、本次帧
序号、接收到的应答帧的序号
b) 接收端:显示接收到的数据、本次帧序号、本
次随机选择的出错情况、发送应答帧的序号、
是否重复
实验三 建立聊天工具
1、实验目的:
要求学生掌握 Socket 编程中流套接字的技术
2、实验内容:
i. 要求学生掌握利用 Socket 进行编程的技术
ii. 必须掌握多线程技术,保证双方可以同时发送
iii.建立聊天工具
iv. 可以和多个人同时进行聊天
v. 必须使用图形界面,显示双方的语录
实验四 传输文件
1、实验目的:
要求学生掌握 Socket 编程中流套接字的技术
2、实验内容:
i. 要求学生掌握利用 Socket 进行编程的技术
ii. 对文件进行分割(每片 256 字节),分别打包传
输
a) 发送前,通过协商,发送端告诉接收端发送片
数
b) 报头为学号、姓名、本次分片在整个文件中的
位置
c) 报尾为校验和:校验和 s 的计算:设要发送 n
字节,bi 为第 i 个字,s=(b0+b1+…+bn) mod 256
iii.接收方进行合并
iv. 必须采用图形界面
a) 发送端可以选择文件,本次片数
b) 接收端显示总共的片数,目前已经接收到的文
件片数,收完提示完全收到
实验五 发送邮件
1、实验目的:
要求学生掌握 Socket 编程中流套接字的技术,以及
邮件的发送
2、实验内容:
i. 要求学生掌握利用 Socket 进行编程的技术
ii. 不能采用现有的工具,必须自己一步一步,根据
协议进行操作
iii.了解邮件发送格式
iv. 必须采用图形界面,可以编辑发送内容
v. 可选,建立自己的邮件服务器
vi. 发送邮件可以发给自己的邮件服务器,也可以发
给已知邮件服务器
vii. 要求可以查看得到发送的邮件
实验六 实现 ping 命令
1、实验目的:
要求学生掌握 Socket 编程技术,以及 ICMP 协议
2、实验内容:
i. 要求学生掌握利用 Socket 进行编程的技术
ii. 不能采用现有的工具,必须自己一步一步,根据
协议进行操作
iii.了解 ping 报文的格式和步骤,要求符合 ICMP
协议并组建报文
iv. 在一秒钟内,如果收到,则为成功,如果收不到,
则失败
v. 必须采用图形界面,查看收到回应的结果
vi. 可以通过程序,查看子网中有哪些主机可以 ping
通
实验七 解析 DNS
1、实验目的:
要求学生掌握 Socket 编程技术,以及 DNS 协议
2、实验内容:
i. 要求学生掌握利用 Socket 进行编程的技术
ii. 不能采用现有的工具,必须自己一步一步,根据
协议进行操作
iii.了解 DNS 报文的格式和步骤
iv. 必须采用图形界面,查看收到回应的结果
实验八 仿真 telnet
1、实验目的:
要求学生掌握 Socket 编程技术及 ARP 协议
2、实验内容:
i. 要求学生掌握利用 Socket 进行编程的技术
ii. 远程连接一台计算机,把要求对方执行的程序
(自己准备加减乘除四则运算的程序)、参数
传给对方,然后执行完毕,把运行结果传回
iii.必须采用图形界面,查看收到回应的结果