计算机网络课设报告-聊天室

计算机网络课设报告-聊天室
计算机网络课设报告-聊天室

中南大学

计算机网络课程设计报告

学院:信息科学与工程学院专业班级:

指导老师:刘嫔

姓名:

学号:

完成时间:2014.11.11

目录

1、课题描述:

1.1、设计目的:

1.2、设计思路:

2、需求分析:

2.1、设计前提:

3、详细设计:

3.1、客户端设计:

3.1.1、Login.java:

3.1.2、Backpanel:

3.1.3、ChatClient.java:

3.1.4、ClientReceive.java:

3.2、服务端设计:

3.2.1、ChatServer.java:

3.2.2、ServerListen.java:

3.2.3、ServerReceive.java:

3.2.4、Node.java:

3.2.5、UserLinkList.java:

4、运行结果:

5、心得体会:

6、参考文献:

一、课题描述:

1.1、设计目的:

聊天室软件的设计与开发:基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表;进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等。

设计提示—学习通信编程Socket接口编程,使用TCP或UDP接口完成信息传送,利用多线程技术实现服务器端的多个TCP连接的建立。

1.2、设计思路:

Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。而且,Java很小,不需要占用多大内存。

因此运用JAVA程序编写聊天室,实现简单聊天功能。本次课程设计做的是Java 简单聊天室,它是图形界面、线程、流与文件等技术的综合应用。程序实现了聊天室的基本功能,其流程有:

为用户聊天提供平台

断开与网络的连接,彻底推出

聊天室

二、需求分析:

2.1、设计前提:

在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。

三、详细设计:

3.1、客户端设计:

3.1.1、Login.java:

package shuang;

import java.awt.*;

import javax.swing.*;

import com.sun.java.swing.plaf.motif.MotifBorders.BevelBorder;

import java.awt.event.*;

public class Login extends JFrame implements ActionListener {

JPanel jp1;

JLabel jlb1, jlb2;

JPanel jp2;

JTextField jtf;

JPanel jp3;

JPasswordField jpf;

JButton login, reset;

JPanel jp;

JPanel backPanel;

public Login() {

jp1 = new JPanel();

jp2 = new JPanel();

jlb1 = new JLabel("用户名:");

jlb2 = new JLabel("密码:");

jtf = new JTextField(16);

jtf.setBorder(BorderFactory.createBevelBorder(javax.swing.bord er.BevelBorder.LOWERED));

jpf = new JPasswordField(16);

jpf.setBorder(BorderFactory.createBevelBorder(javax.swing.bord er.BevelBorder.LOWERED));

jp1.add(jlb1);

jp1.add(jtf);

jp2.add(jlb2);

jp2.add(jpf);

jp3 = new JPanel();

login = new JButton("登陆");

login.setCursor(new Cursor(Cursor.HAND_CURSOR));

login.addActionListener(this);

reset = new JButton("重置");

reset.setCursor(new Cursor(Cursor.HAND_CURSOR));

jp3.add(login);

jp3.add(reset);

jp = new JPanel();

jp.setLayout(new GridLayout(3, 1));

jp.add(jp1);

jp.add(jp2);

jp.add(jp3);

jp1.setOpaque(false);

jp2.setOpaque(false);

jp3.setOpaque(false);

jp.setOpaque(false);

backPanel = new BackPanel(new ImageIcon("image/beijing.png").getImage());

backPanel.add(jp);

this.add(backPanel);

this.setTitle("聊天登录系统");

this.setLocation(400, 200);

this.setSize(320, 150);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == login) {

String userName = jtf.getText();

String password = new String(jpf.getPassword());

if (password.equals("000000")) {

this.dispose();

ChatClient client = new ChatClient(userName);

client.Connect();

}

} else if (e.getSource() == reset) {

jtf.setText("");

jpf.setText("");

}

}

public static void main(String[] args) {

new Login();

}

}

3.1.2、BackPanel.java:

package shuang;

import java.awt.*;

import javax.swing.*;

public class BackPanel extends JPanel {

Image image;

public BackPanel(Image image) {

this.image = image;

}

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(image, 0, 0, this.getWidth(),

this.getHeight(), this);

}

}

3.1.3、ChatClient.java:

package shuang;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import https://www.360docs.net/doc/a14381173.html,.*;

/*

* 聊天客户端的主框架类

*/

public class ChatClient extends JFrame implements ActionListener{

/**

*

*/

private static final long serialVersionUID = 1L;

String ip = "127.0.0.1";//连接到服务端的ip地址

int port = 8888;//连接到服务端的端口号

String userName ;//用户名

int type = 0;//0表示未连接,1表示已连接

JComboBox combobox;//选择发送消息的接受者

JTextArea messageShow;//客户端的信息显示

JScrollPane messageScrollPane;//信息显示的滚动条

JLabel express,sendToLabel,messageLabel ;

JTextField clientMessage;//客户端消息的发送

JButton clientMessageButton;//发送消息

JTextField showStatus;//显示用户连接状态

Socket socket;

ObjectOutputStream output;//网络套接字输出流

ObjectInputStream input;//网络套接字输入流

ClientReceive recvThread;

//框架的大小

Dimension faceSize = new Dimension(400, 400);

JPanel downPanel ;

GridBagLayout girdBag;

GridBagConstraints girdBagCon;

public ChatClient(String userName){

https://www.360docs.net/doc/a14381173.html,erName = userName;

init();//初始化程序

//添加框架的关闭事件处理

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.pack();

//设置框架的大小

this.setSize(faceSize);

this.setVisible(true);

setIconImage(getToolkit().getImage("face/love.gif"));

//设置运行时窗口的位置

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2,

(int) (screenSize.height - faceSize.getHeight()) / 2);

this.setResizable(false);

this.setTitle(userName+"的聊天室"); //设置标题

}

/**

* 程序初始化函数

*/

public void init(){

Container contentPane = getContentPane();

contentPane.setLayout(new BorderLayout());

combobox = new JComboBox();

combobox.insertItemAt("所有人",0);

combobox.setSelectedIndex(0);

messageShow = new JTextArea();

messageShow.setEditable(false);

//添加滚动条

messageScrollPane = new JScrollPane(messageShow,

JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,

JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

messageScrollPane.setPreferredSize(new

Dimension(400,400));

messageScrollPane.revalidate();

clientMessage = new JTextField(23);

clientMessage.setEnabled(false);

clientMessageButton = new JButton();

clientMessageButton.setText("发送");

//添加系统消息的事件侦听

clientMessage.addActionListener(this);

clientMessageButton.addActionListener(this);

sendToLabel = new JLabel("发送至:");

messageLabel = new JLabel("发送消息:");

downPanel = new JPanel();

girdBag = new GridBagLayout();

downPanel.setLayout(girdBag);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 0;

girdBagCon.gridwidth = 5;

girdBagCon.gridheight = 2;

girdBagCon.ipadx = 5;

girdBagCon.ipady = 5;

JLabel none = new JLabel(" ");

girdBag.setConstraints(none,girdBagCon);

downPanel.add(none);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 2;

girdBagCon.insets = new Insets(1,0,0,0);

girdBag.setConstraints(sendToLabel,girdBagCon);

downPanel.add(sendToLabel);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx =1;

girdBagCon.gridy = 2;

girdBagCon.anchor = GridBagConstraints.LINE_START;

girdBag.setConstraints(combobox,girdBagCon);

downPanel.add(combobox);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx =2;

girdBagCon.gridy = 2;

girdBagCon.anchor = GridBagConstraints.LINE_END;

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 3;

girdBagCon.gridy = 2;

girdBagCon.anchor = GridBagConstraints.LINE_START;

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 4;

girdBagCon.gridy = 2;

girdBagCon.insets = new Insets(1,0,0,0);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 3;

girdBag.setConstraints(messageLabel,girdBagCon); downPanel.add(messageLabel);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 1;

girdBagCon.gridy = 3;

girdBagCon.gridwidth = 3;

girdBagCon.gridheight = 1;

girdBag.setConstraints(clientMessage,girdBagCon); downPanel.add(clientMessage);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 4;

girdBagCon.gridy = 3;

girdBag.setConstraints(clientMessageButton,girdBagCon); downPanel.add(clientMessageButton);

showStatus = new JTextField(35);

showStatus.setEditable(false);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 5;

girdBagCon.gridwidth = 5;

girdBag.setConstraints(showStatus,girdBagCon);

downPanel.add(showStatus);

contentPane.add(messageScrollPane,BorderLayout.CENTER);

contentPane.add(downPanel,BorderLayout.SOUTH);

//关闭程序时的操作

this.addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

if(type == 1){

DisConnect();

}

System.exit(0);

}

});

}

/**

* 事件处理

*/

public void actionPerformed(ActionEvent e) {

Object obj = e.getSource();

if (obj == clientMessage || obj == clientMessageButton) { //发送消息

SendMessage();

clientMessage.setText("");

}

}

public void Connect(){

try{

socket = new Socket(ip,port);

}

catch (Exception e){

JOptionPane.showConfirmDialog(

this,"不能连接到指定的服务器。\n请确认连接设置是否正确。","提示",

JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);

return;

}

try{

output = new ObjectOutputStream(socket.getOutputStream());

output.flush();

input = new ObjectInputStream(socket.getInputStream() );

output.writeObject(userName);

output.flush();

recvThread = new ClientReceive(socket,output,input,combobox,messageShow,showStatus );

recvThread.start();

clientMessage.setEnabled(true);

messageShow.append("连接服务器"+ip+":"+port+" 成功...\n");

type = 1;//标志位设为已连接

}

catch (Exception e){

System.out.println(e);

return;

}

}

public void DisConnect(){

clientMessage.setEnabled(false);

if(socket.isClosed()){

return ;

}

try{

output.writeObject("用户下线");

output.flush();

input.close();

output.close();

socket.close();

messageShow.append("已经与服务器断开连接...\n");

type = 0;//标志位设为未连接

}

catch (Exception e){

}

public void SendMessage(){

String toSomebody = combobox.getSelectedItem().toString();

String status = "";

Icon face=new ImageIcon("face/smile.gif");

String message = clientMessage.getText();

if(socket.isClosed()){

return ;

}

try{

output.writeObject("聊天信息");

output.flush();

output.writeObject(toSomebody);

output.flush();

output.writeObject("");

output.flush();

output.writeObject("");

output.flush();

output.writeObject(message);

output.flush();

}

catch (Exception e){

//

}

}

}

3.1.4、ClientReceive.java:

package liaotian;

import javax.swing.*;

import java.io.*;

import https://www.360docs.net/doc/a14381173.html,.*;

/*

* 聊天客户端消息收发类

public class ClientReceive extends Thread {

private JComboBox combobox;

private JTextArea textarea;

Socket socket;

ObjectOutputStream output;

ObjectInputStream input;

JTextField showStatus;

public ClientReceive(Socket socket,ObjectOutputStream output,

ObjectInputStream input,JComboBox combobox,JTextArea textarea,JTextField showStatus){

this.socket = socket;

this.output = output;

this.input = input;

https://www.360docs.net/doc/a14381173.html,bobox = combobox;

this.textarea = textarea;

this.showStatus = showStatus;

}

public void run(){

while(!socket.isClosed()){

try{

String type = (String)input.readObject();

if(type.equalsIgnoreCase("系统信息")){

String sysmsg = (String)input.readObject();

textarea.append("系统信息: "+sysmsg);

}

else if(type.equalsIgnoreCase("服务关闭")){

output.close();

input.close();

socket.close();

textarea.append("服务器已关闭!\n");

break;

}

else if(type.equalsIgnoreCase("聊天信息")){

String message = (String)input.readObject();

textarea.append(message);

}

else if(type.equalsIgnoreCase("用户列表")){

String userlist = (String)input.readObject();

String usernames[] = userlist.split("\n");

combobox.removeAllItems();

int i =0;

combobox.addItem("所有人");

while(i < usernames.length){

combobox.addItem(usernames[i]);

i ++;

}

combobox.setSelectedIndex(0);

showStatus.setText("在线用户 " + usernames.length + " 人");

}

}

catch (Exception e ){

System.out.println(e);

}

}

}

}

3.2、服务端设计:

3.2.1、ChatServer.java:

package shuang;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import https://www.360docs.net/doc/a14381173.html,.*;

/*

* 聊天服务端的主框架类

*/

public class ChatServer extends JFrame implements ActionListener{ public static int port = 8888;//服务端的侦听端口

ServerSocket serverSocket;//服务端Socket

Image icon;//程序图标

JComboBox combobox;//选择发送消息的接受者

JTextArea messageShow;//服务端的信息显示

JScrollPane messageScrollPane;//信息显示的滚动条

JTextField showStatus;//显示用户连接状态

JLabel sendToLabel,messageLabel;

JTextField sysMessage;//服务端消息的发送

JButton sysMessageButton;//服务端消息的发送按钮

UserLinkList userLinkList;//用户链表

//建立工具栏

JToolBar toolBar = new JToolBar();

//建立工具栏中的按钮组件

JButton startServer;//启动服务端侦听

JButton stopServer;//关闭服务端侦听

JButton exitButton;//退出按钮

//框架的大小

Dimension faceSize = new Dimension(400, 400);

ServerListen listenThread;

JPanel downPanel ;

GridBagLayout girdBag;

GridBagConstraints girdBagCon;

/**

* 服务端构造函数

*/

public ChatServer(){

init();//初始化程序

//添加框架的关闭事件处理

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.pack();

//设置框架的大小

this.setSize(faceSize);

this.setVisible(true);

//设置运行时窗口的位置

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2,

(int) (screenSize.height - faceSize.getHeight()) / 2);

this.setResizable(false);

this.setTitle("聊天室服务端"); //设置标题

//为服务菜单栏设置热键'V'

}

/**

* 程序初始化函数

*/

public void init(){

Container contentPane = getContentPane();

contentPane.setLayout(new BorderLayout());

startServer = new JButton("启动服务");

stopServer = new JButton("停止服务" );

exitButton = new JButton("退出" );

//将按钮添加到工具栏

toolBar.addSeparator();//添加分隔栏

toolBar.add(startServer);

toolBar.add(stopServer);

toolBar.addSeparator();//添加分隔栏

toolBar.add(exitButton);

contentPane.add(toolBar,BorderLayout.NORTH);

//初始时,令停止服务按钮不可用

stopServer.setEnabled(false);

//添加按钮的事件侦听

startServer.addActionListener(this);

stopServer.addActionListener(this);

exitButton.addActionListener(this);

combobox = new JComboBox();

combobox.insertItemAt("所有人",0);

combobox.setSelectedIndex(0);

messageShow = new JTextArea();

messageShow.setEditable(false);

//添加滚动条

messageScrollPane = new JScrollPane(messageShow, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,

JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); messageScrollPane.setPreferredSize(new Dimension(400,400)); messageScrollPane.revalidate();

showStatus = new JTextField(35);

showStatus.setEditable(false);

sysMessage = new JTextField(24);

sysMessage.setEnabled(false);

sysMessageButton = new JButton();

sysMessageButton.setText("发送");

//添加系统消息的事件侦听

sysMessage.addActionListener(this);

sysMessageButton.addActionListener(this);

sendToLabel = new JLabel("发送至:");

messageLabel = new JLabel("发送消息:");

downPanel = new JPanel();

girdBag = new GridBagLayout();

downPanel.setLayout(girdBag);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 0;

girdBagCon.gridwidth = 3;

girdBagCon.gridheight = 2;

girdBagCon.ipadx = 5;

girdBagCon.ipady = 5;

JLabel none = new JLabel(" ");

girdBag.setConstraints(none,girdBagCon);

downPanel.add(none);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 2;

girdBagCon.insets = new Insets(1,0,0,0);

girdBagCon.ipadx = 5;

girdBagCon.ipady = 5;

girdBag.setConstraints(sendToLabel,girdBagCon);

downPanel.add(sendToLabel);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx =1;

girdBagCon.gridy = 2;

girdBagCon.anchor = GridBagConstraints.LINE_START; girdBag.setConstraints(combobox,girdBagCon); downPanel.add(combobox);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 3;

girdBag.setConstraints(messageLabel,girdBagCon); downPanel.add(messageLabel);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 1;

girdBagCon.gridy = 3;

girdBag.setConstraints(sysMessage,girdBagCon); downPanel.add(sysMessage);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 2;

girdBagCon.gridy = 3;

girdBag.setConstraints(sysMessageButton,girdBagCon); downPanel.add(sysMessageButton);

girdBagCon = new GridBagConstraints();

girdBagCon.gridx = 0;

girdBagCon.gridy = 4;

girdBagCon.gridwidth = 3;

girdBag.setConstraints(showStatus,girdBagCon); downPanel.add(showStatus);

contentPane.add(messageScrollPane,BorderLayout.CENTER); contentPane.add(downPanel,BorderLayout.SOUTH);

//关闭程序时的操作

this.addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

stopService();

System.exit(0);

}

}

);

}

/**

* 事件处理

* @SuppressWarnings("deprecation")

*/

public void actionPerformed(ActionEvent e) {

Object obj = e.getSource();

if (obj == startServer ) { //启动服务端

startService();

}

else if (obj == stopServer ) { //停止服务端

int j=JOptionPane.showConfirmDialog(

this,"真的停止服务吗?","停止服务",

JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION){

stopService();

}

}

else if (obj == exitButton) { //退出程序

int j=JOptionPane.showConfirmDialog(

this,"真的要退出吗?","退出",

JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION){

stopService();

System.exit(0);

}

}

else if (obj == sysMessage || obj == sysMessageButton) { //发送系统消息

sendSystemMessage();

}

}

/**

* 启动服务端

*/

计算机网络课程设计心得

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础. 通过这次模具设计,本人在多方面都有所提高。通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压模具设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了冷冲压模具设计等课程所学的内容,掌握冷冲压模具设计的方法和步骤,掌握冷冲压模具设计的基本的模具技能懂得了怎样分析零件的工艺性,怎样确定工艺方案,了解了模具的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。 在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 在此感谢我们的xxx老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次模具设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。 同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。

计算机网络实习心得体会

计算机网络实习心得体会 计算机网络实习心得体会1 时间过的真快,转眼间为期三周的实训就这样过去了。经过这三周的实训练习让我们第六组学到了许多知识,回头想想实训这些天我们确实是有很大收获的。 三周、说长不长,说短也不短,在这三周中我们学到了很多东西,并且与交换机、路由器、防火墙来了一次全面的亲密接触。这三周我们在学习的同时。也进一步懂得了合作的重要性。实训过程中自己有很多的不懂,很多的问题,都是以昊昊为重点然后大家一起商量解决的。这次实训让我明白了我们实训的主要目的是让我们通过不断的学习来积累经验,进而才能把书本的知识转化为技能。实践出真理,在这三周的实训确实是有些累但是累得有价值。学海无涯,好多好多的东西在向我们招手,等待我们去努力的学习。在以后的工作、生活和学习中,发展自己的优势,弥补自己的不足和缺陷。 通过这次实训学习,我学到了很多。原先以为网络只是简单的网线连接,现在明白网络也是那么复杂。首先一个完整的网络网络需要很多必要的设备,例如:交换机,路由,防火墙等,虽然我们只做了八个任务但是锻炼了我们的动手能力和学习能力。老师讲解也很好的把我们当时在课堂上学到的东西及时的实践,让我们记在脑子了。我们通过这三周的网络实

训,了解很多东西。通过这次的实训我们也认识到自己的不足,就是对网络的了解太少。我们了解都是表面上的东西,需要了解更深的东西还需要多多看一些相关书籍。 这次实训我们主要学习了单臂路由、静态路由、交换综合、广域网接入、AAA接入控制、防火墙技术、流控技术和服务器技术这八个项目,在这次实训中,给我们上课的老师并不是我们平常给我们上课的老师,而是学校请的外教,所以开始的时候不免需要一番介绍已经大致此次实训的介绍,所以第一天就这么过去了,第二天开始我们小组就开始痛苦了,因为我们小组的组长和我们小组的精英都因找到了工作而去那家公司上班去了,这样一来,我们小组就只剩下了四个,加我在内三个女生,另外一个男生,我们都是那种不大懂的,所以学起来很痛苦,时不时的需要跑去问别的小组的同学,勉勉强强的在最后我们还是在当天就完成了当天安排的任务,而且我们是第一次用真是的路由器、交换机和防火墙来进行配置,所以弄的手忙脚乱的,不过过程不重要,结果才是重点。 第二天有点小郁闷,因为今天的配置因为设备的问题,大家一整个上午都差不多没做出什么实质的东西,第三天学校有个小型的招聘会,在招聘会上我们小组的两位也回来了,然后他们告诉我们说之后的实训他们也都会和我们一起完成,让我们小组都小高兴了一下,毕竟人多力量大,而且还是两个重量级的人。在这次实训中,我知道了好多平时上课我没认真学到的知识,比如说交换机的工作特点:拥有一条很高带宽的背板总线和

计算机网络实验报告-答案.

计算机网络实验报告 专业计算机科学与技术 班级计102 学号 109074057 姓名王徽军 组号一组D 指导教师毛绪纹 安徽工业大学计算机学院 二○一二年十二月

目录 实验总体说明 (3) 实验一以太网帧的构成 (3) 实验三路由信息协议RIP (9) 实验四传输控制协议TCP (11) 实验五邮件协议SMTP、POP3、IMAP (12) 实验六超文本传输协议HTTP (14)

实验总体说明 1.实验总体目标 配合计算机网络课程的教学,加强学生对计算机网络知识(TCP/IP协议)的深刻理解,培养学生的实际操作能力。 2.实验环境 计算机网络协议仿真实验室: 实验环境:网络协议仿真教学系统(通用版)一套 硬件设备:服务器,中心控制设备,组控设备,PC机若干台 操作系统:Windows 2003服务器版 3.实验总体要求 ●按照各项实验内容做实验,记录各种数据包信息,包括操作、观察、记录、分析, 通过操作和观察获得直观印象,从获得的数据中分析网络协议的工作原理; ●每项实验均提交实验报告,实验报告的内容可参照实验的具体要求,但总体上应包 括以下内容:实验准备情况,实验记录,实验结果分析,算法描述,程序段,实验过程中遇到的问题以及对思考问题的解答等,实验目的、实验原理、实验步骤不需要写入实验报告中。 实验一以太网帧的构成 实验时间:_____________ 成绩:________________ 实验角色:_____________ 同组者姓名:______________________________

练习一:领略真实的MAC帧 00000000: FF FF FF FF FF FF 8C 89 A5 75 71 10 06 05 14 55 ..q....U 00000010: 85 48 D2 78 62 13 47 24 58 25 00 00 00 00 00 00 .H襵b.G$X%...... 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............ 练习二:理解MAC地址的作用 ●记录实验结果 表1-3实验结果 本机MAC地址源MAC地址目的MAC地址是否收到,为什么 主机B 8C89A5-7570BB 8C89A5-757113 8C89A5-7570C1 是,主机A与主机B接在同一共享模块 主机D 8C89A5-771A47 8C89A5-757113 8C89A5-7570C1 是,主机C与主机D接在同一共享模块 主机E 8C89A5-757110 无无否,与主机A、C都不在同一共享模块 主机 F 8C89A5-7715F8 无无否,与主机A、C都不在同一共享模块 练习三:编辑并发送MAC广播帧 ●结合练习三的实验结果,简述FFFFFF-FFFFFF作为目的MAC地址的作用。 答:该地址为广播地址,作用是完成一对多的通信方式,即一个数据帧可发送给同一网段内的所有节点。 练习四:编辑并发送LLC帧 ●实验结果 帧类型发送序号N(S)接受序号N(R) LLC 001F 0 ●简述“类型和长度”字段的两种含义 答:一是如果字段的值小于1518,它就是长度字段,用于定义下面数据字段的长度;二是如果字段的值大于1536,用于定义一个封装在帧中的PDU分组的类型。 思考问题: 1.为什么IEEE802标准将数据链路层分割为MAC子层和LLC子层? 答:出于厂商们在商业上的激烈竞争,IEEE的802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同标准,如802.4令牌总线网、802.5令牌环网等。为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层,即逻辑链路控制

计算机网络课程设计报告

计算机网络课程设计报告 姓名:李逍逍 班级:08计11 学号:08261012

一.课程设计的题目、目的及要求 (2) 二.课程设计的内容(分析和设计) (3) 三.绘制拓扑结构图 (3) 四.详细设计步骤 (5) 五.路由器或交换机配置的代码 (6) 六.显示最终的结果 (8) 七.课程设计总结 (9)

一.课程设计的题目、目的及要求 课程设计题目:组建小区局域网 课程设计目的: 更深了解路由器,交换机,PC机之间的配置与应用,熟练掌握一些简单的的网络应用和连接,熟练掌握路由器和交换机的基本配置;掌握DHCP、ACL、VLAN、和NET协议和相应的技术;提高对实际网络问题的分析和解决能力。该设计需要划分为四个子网层面的小区性的网络通讯。采用软件cisco,可以更好的实现各种不同网络设备互相配合与联系,以达到最佳的局域网通讯效果。 课程设计要求: 要求能根据实际问题绘制拓扑结构图,拓扑结构图可以是树形、星形、网状形、环状形及混合形结构的之一,清晰的描述接口,进行路由器或交换机的代码配置实现,并且每个方案的需有以下几部分的内容: 1、需求特点描述; 2、设计原则; 3、解决方案设计,其中必须包含: (1)设备选型; (2)综合布线设计; (3)拓扑图; (4)IP地址规划; (5)子网划分; (6)路由协议的选择; (7)路由器配置。 组建小区局域网的总体要求: 运用自己对局域网组网技术的理解,设计小区组网方案,使得一个具有200个住户节点的智能化小区能够进行网络通讯,且将整个小区可划分为四个区域:1.网络中心区:以物业管理中心及监控中心为主的核心交换设备和服务器群;2.远程网络接入区:包括外部网络接入口的路由器设备和网络安全设备;3.园区网络区:包括从网络中心到社区服务设施的骨干交换设备; 4.家庭网络区:包括从网络中心到楼宇中的骨干交换设备,并为各住户单元提供网络接入端口,是整个小区网络系统的最基本单元。

计算机网络实习心得(体会心得)

计络实习心得 如今已经是信息时代,作为主流信息工络越来越重要,因此我选择了这门选修课程。 我个人对于电络是很感兴趣的,但由于学习的东西不多,经常是在玩游戏,真正运络的技术性的东西实在少到可怜。象做博客,我只是会一般的做法,也能把它搞得与众不同,但我全然不知道其中的奥秘。象代码之类的东西,我以前只是耳闻,半点也不懂。学了这门课程后,虽然懂的不是很多,但已经不是什么都不知道的了,简单得运用一些代码还是会的,这也就行了。我并不要求学得很精深,毕竟我将来并不是干这行的。而页的知识,学了一点,也会做一些简页了,其实我觉得这就够了,我还没有想做自页发上的念头。但我不是说不要学习计络技术,相反,我们学地越精深越好,我的观点只能代表我个人的想法,毕竟这个时代学得越多,活得更好的可能性就越大。只不过人的精力有限,只能学到你能承受的地步。如果精力旺盛,足够学一切技术,自然也没人反络之中目前我最感兴趣的还是做博客,时不时写些自己的感悟或者转载些别人的好文章,上传一些漂亮的图片和朋友们分享,这让人感觉到难得的愉悦。好东西,大家一起分享才有意思。 计络系统是一个集计算机硬件设备、通信设施、软件系统及数据处理能力为一体的,能够实现资源共享的现代化综合服务系统。计络系统的组成可分为三个部分,即硬件系统,软件系络信息系统。 1.硬件系统

硬件系统是计络的基础。硬件系统有计算机、通信设备、连接设备及辅助设备组成,如图1.6.4所示。硬件系统中设备的组合形式决定了计络的类型。下面介绍络中常用的硬件设备。 ⑴服务器 服务器是一台速度快,存储量大的计算机,络系统的核心设备,络资源管理和用户服务。服务器可分为文件服务器、远程访问服务器、数据库服务器、打印服务器等,是一台专用或多用途的计算机。在中,服务器之间互通信息,相互提供服务,每台服务器的地位是同等的。服务器需要专门的技术人员对其进行管理和维护,以保证络的正常运行。 ⑵工作站 工作站是具有独立处理能力的计算机,它是用户向服务器申请服务的终端设备。用户可以在工作站上处理日常工作,并随时向服务器索取各种信息及数据,请求服务器提供各种服务(如传输文件,打印文件等等)。 ⑶网卡 网卡又络适配器,它是计算机和计算机之间直接或间接传输介质互相通信的接口,它插在计算机的扩展槽中。一般情况下,无论是服务器还是工作站都应卡的作用是将计算机与通信设施相连接,将计算机的数字信号转换成通信线路能够传送的电子信号或电磁信卡是物理通信的瓶颈,它的好坏直接影响用户将来的软件使用效果和物理功能的发挥。目前,常用的有10mbps、100mbps和10mbps/100mbps自卡的总线形式有 isa和pci两种。 ⑷调制解调器

图书馆计算机网络课程设计报告

计算机网络课程设计报告 ――图书馆局域网络设计 组号: 班级:软工153班 专业:软件工程 时间: 2017年7月9号 贵州大学计算机科学与技术学院 目录 1.设计目的............................................... 2.需求分析............................................... 3.方案设计. (5) 网络拓扑结构设计 (5) 网络设备的比较和选型 (6) 综合布线系统 (6) IP地址分配 (7) 4.方案实现 (7) 5. 网络应用部署 (16) 6. Web网站设计 (17) 7.总结与展望 (17) 8.参考文献 (18)

附录: (18)

1.设计目的 现代信息技术的发展已经进入了网络化的时代。它主要由计算机网、通信网和信息资源网三种网络组成,其中计算机网是核心,它利用通信网络担负了信息在整个网络中的存贮和传递的重要作用。而图书馆拥有大量丰富的信息资源,也必须借助现代化信息技术手段,才能发挥其传递、交流信息的重要枢纽作用。因此,图书馆计算机网络化是图书馆未来发展的必然趋势。 图书馆局域网主要有这样几个特点:具有极高的可靠稳定性、可扩展性、可管理性,具有高速度和高带宽,满足流介质媒体、远程学习等对带宽和数据敏感的实时应用。 组建图书馆局域网,加快图书馆自动化建设和网络化进程,提高图书馆自动化管理水平和图书馆工作效率,是为了更好更快更准确地为读者提供阅读信息;组建图书馆局域网,实现对全馆文献资源的采购、编目、流通、借阅等方面的自动化管理;建设以图书馆文献为基础的图书馆基础数据库和具有本馆藏书的特色书籍数据库;提高图书馆采编、流通效率,合理地对全馆文献资源进行分类、编目、分区管理。利用共享通信网络资源进入其他计算机网络,实现网络互连。相互独立又相互统一于图书馆网络服务器,能联机进行传统文献的采集与编目,能使图书馆总体工作协调一致更方便的进行传统型文献的流通、阅览、检索;为教师和学生提供各种网络阅读体验。而且便于图书文献资料的管理和维护,减少人工管理的成本。

计算机网络实训心得

计算机网络实训心得 计算机网络技术的实训心得 经过短短一星期的计算机实训,我深深体会到电脑的神奇和奥妙;也意识到自己在计算机上还有许多不足。现在我们已步入大学,经过一年的在校学习,对电脑还只是初步的认识和理解,但在下学期期间,一直忙于理论知识的学习,没能有机会放开课本,真正切身感受计算机魅力,所以在实训之前,电脑对我们来说是比较抽象的,但通过这次实训,我们揭开了它神秘的面纱,离我们不再遥远!据我了解,大多数同学都以前接触过电脑,也有玩过一些游戏,却不懂操作一些对我们以后工作有用的系统。对于我们所学的计算机知识渗透较少,之前都是老师操作为主。此次实训就不同了,同学们都作了充分准备,在活动中同学们都提前来到教室上课,每位同学都认真的操作、练习;听着“嘟嘟”的键盘声,心里真的不亦乐乎!和我们一同参与实训的还有魏苑琦老师,在实训中也给予了我们指导,并且做详细的讲解,这次实训活动十分成功,除了各位同学的充分准备,还要感谢学院和食品系的各位领导及专业老师,没有他们做出努力,给学生手操的平台。就无所谓的今天实训! 在实训中我们也懂得很多东西,在虚拟世界中该如何生存。遇到问题如何解决,不气馁,专心做好实训!在制作网线时,使我们的动手能力更加强,不会那么粗心大意,懂得了网线的制作原理。同时我也懂得了一个道理:做事应该考虑周到,不能碰到事情才去解决而是在事情未发生前就想到并加以改善。 在实地参观校园网的运作,我也懂得服务器的工作原理和如何为用户提供上网的各式服务器。知道一个普通的机房应该具备什么? 虽然在实训期间有点累.,但是我们受益多多。比如,以后自己电脑装系统不需要在请求他人,知道电脑为何能上网的原理? 虽然在实训期间有点烦,但是我学到了一些所谓所谓“剩下来的东西”,其实就是自学的能力,也就是举一反三或无师自通的能力。 虽然在这次实训期间有点平淡,但是我理解有一句关于实践的谚语是这样说的:“我听到的会忘掉,我看到的能记住,我做过的才真正明白。” 在这次实训中我们不仅懂得了该如何操作,而且理会了大学校园的人都应当掌握七项学习:学习自修之道、基础知识、实践贯通、兴趣培养、积极主动、掌控时间、为人处事。我们不仅仅是学到了许多许多以前不知道的知识,而且还大大的增强和提高了我们的动手能力,感谢实训、我爱实训! 这一切实训的每每成功,都能让我体会到有一种已是久别的成就感和兴奋感。在结束实训以后的一段时间,我偶发感想,“计算机网络技术”教会我的不仅仅是专业上的

计算机网络实验报告完整版

华中科技大学文华学院 计算机网络 实 验 报 告 姓名: 学号: 学部(系):信息科学与技术学部 专业年级: 指导教师:朱琳琳 2014年4月

实验1 常用网络命令 1.实验目的 ●掌握常用网络命令的使用方法; ●熟悉和掌握网络管理、网络维护的基本内容和方法 2. 实验前的准备 ●阅读本实验的内容及操作步骤; 3. 实验内容 (1)、arp命令 Arp –a 查看本地局域网内所有用户ip和mac地址绑定关系。 Arp –s 用于在计算机ARP表中添加一个静态的ARP记录。

(2)、ipconfig命令 Ipconfig /all 显示所有适配器的完整TCP/IP配置

Ipconfig /displaydns 显示DNS客户解析器缓存的内容 Ipconfig /flushdns 清理并重设DNS客户解析器缓存的内容。

(3)、Nbtstat命令 Nbtstat -n nbtstat –s ip 通过IP显示另一台计算机的物理地址和名字列表。如nbtstat –s192.168.0.113 (4)、netstat命令 Netstat –a 显示所有有效连接(包括TCP和UDP两种)的信息,如图。

Netstat –n 显示所有活动的TCP 连接以及计算机侦听的TCP 和UDP 端口。 Netstat –r 显示 IP 路由表的内容。该参数与 route print 命令等价。 (5)、ping 命令 Ping后加上ip地址或域名,命令用来检测TCP/IP的安装或运行存在的某些最基本的问题。 可直接键入PING寻求帮助

计算机网络课程设计

南京工程学院 课程设计报告 课程名称计算机网络 实验项目名称 IP地址规划与路由连通性设计实验学生班级软件工程ZB132 实验学生姓名 实验学生学号 实验指导教师戴慧、刘爱华 实验时间—— 实验地点机房

1 课程设计目的和意义 计算机网络是计算机技术和通信技术相结合的产物,是当今计算机世界中发展速度最快的领域之一,作为工科院校的学生,不仅要认清时代的潮流和当代技术前沿,更要努力发展自己,不断学习理论知识,提升自己的水平,更要在理论知识的基础上,结合实际中的问题,培养自己发现问题,思考问题,解决问题的能力,提高自己的实践水平。 这次的课程设计的就是要让我们能够在全面深入地学习《计算机网络》这门课程的基础上,进一步理解计算机网络的基本理论,并且要将理论知识和实践结合起来,在老师给予的要求和提示下,掌握小型网路的初步配置,熟悉各项步骤,完成小型网络的设计与实现,提高网络应用水平。 课程设计是我们平时学习中最重要的一项实践环节,它可以帮助我们理解课堂教学中的内容,对提高实践认识和实际动手能力都有很重要的实际意义。按照课程设计的要求,结合所学的理论知识,查找相关资料,完成课程设计任务,同时提高网络应用能力,为后续课程打好基础。 2 课程设计题目和要求 图课程设计拓扑图 题目:IP地址规划与路由连通性设计 要求: 任务1:按图1在模拟环境中建立相应的拓扑图 连线方法: PC机与交换机之间、路由器与交换机之间的连线用直连线,路由器之间的连接用串口线,交换机之间的连线、主机与路由器之间的连线用交叉线。 任务2:应用基础设置 1)将每个设备的名称改成拓扑图上显示的名称。8分 2)在S3、R2、R3和ISP上:关闭域名解析,通过console登录时关闭会话超时。16分 任务3:设置密码 设置S3、R2、R3、ISP的特权密码为ccnp。8分 任务4:在S3、R2 、R3和 ISP上配置接口。42分 地址表:

计算机网络课程设计实验报告

计算机网络课程设计报告 姓名:王齐 学号:1105010404 班级:计算机四班 指导老师:张会福 湖南科技大学计算机科学与工程学院 2014年02月

实验一: 一、设计题目 网络聊天程序的设计与实现 二、实验目的 1、加深对计算机网络通信系统工作原理的理解 通过编写计算机程序实现、模拟网络的某些功能,使自己理解并掌握计算机网络基本工作原理及过程。 2、提高网络编程和应用的能力 提高实际编程能力和灵活运用所学知识解决问题的能力。培养调查研究、查阅技术文献、资料、手册及编写技术文档的能力,理论运用于实践的能力。 三、课程设计要求 1、仔细分析每一个实验的具体内容、步骤和要求,按设计要求完成任务。 2、程序设计需要完成的程序流程图、说明文档和源程序清单。 3、提交课程设报告(包含课程设计名称、课程设计题目、课程设计内容、课程设计步骤、调试过程、课程设计结果以及结果分析、心得体会)、程序源文件、可执行文件。 四、程序原理 在计算机通信系统中,有两种通信方式:面向连接的TCP和面向报文的UDP。 TCP:传输控制协议。TCP提供可靠交付的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复、并且按序到达。所以服务器和客户端的通讯使用TCP来完成。确保服务器作为“中转站”能够得到、存储、转发正确的客户信息。 UDP:用户数据报协议。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。因为客户端之间的通讯(聊天)对数据正确性的要求不是太高,偶尔出错也不会有太大的影响。 本课程设计采用TCP方式来实现网络聊天程序。 五、课程设计步骤 1、TCP网络聊天程序 TCP传输控制提供可靠的,有保证的通信质量,是面向连接的通信。因此,在通信之前,通信双方就得采用建立连接。TCP通信采取C/S(客户机/服务器)模式。需要分别编写客户端程序和服务器端程序。 1)服务器端程序编写步骤: a)加载套接字库,创建套接字(WSAStartup()/socket()); b)绑定套接字到一个IP地址和一个端口上(bind());

计算机网络实验报告

太原科技大学 实验报告 2020年 6 月 4 日实验时间:10时0分至12时0分 一、实验目标: 1.标准IP访问控制列表配置 理解标准IP访问控制列表的原理及功能; 掌握编号的标准IP访问控制列表的配置方法; 2.网络地址转换NAT配置 理解NAT网络地址转换的原理及功能; 掌握静态NAT的配置,实现局域网访问互联网; 二、实验原理: 1.标准IP访问控制列表配置 ACLs的全称为接入控制列表(Access Control Lists),也称访问控制列表(Access Lists),俗称防火墙,在有的文档中还称包过滤。ACLs通过定义一些规则对网络设备接口上的数据包文进行控制;允许通过或丢弃,从而提高网络可管理型和安全性; IP ACL分为两种:标准IP访问列表和扩展IP访问列表,编号范围为1~99、1300~1999、100~199、2000~2699; 标准IP访问控制列表可以根据数据包的源IP地址定义规则,进行数据包的过滤; 扩展IP访问列表可以根据数据包的原IP、目的IP、源端口、目的端口、协议来定义规则,进行数据包的过滤; IP ACL基于接口进行规则的应用,分为:入栈应用和出栈应用; 2.网络地址转换NAT配置 网络地址转换NAT(Network Address Translation),被广泛应用于各种类型Internet 接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

默认情况下,内部IP地址是无法被路由到外网的,内部主机10.1.1.1要与外部Internet 通信,IP包到达NAT路由器时,IP包头的源地址10.1.1.1被替换成一个合法的外网IP,并在NAT转发表中保存这条记录。当外部主机发送一个应答到内网时,NAT路由器受到后,查看当前NAT转换表,用10.1.1.1替换掉这个外网地址。 NAT将网络划分为内部网络和外部网络两部分,局域网主机利用NAT访问网络时,是将局域网内部的本地地址转换为全局地址(互联网合法的IP地址)后转发数据包; NAT分为两种类型:NAT(网络地址转换)和NAPT(网络端口地址转换IP地址对应一个全局地址)。 静态NAT:实现内部地址与外部地址一对一的映射。现实中,一般都用于服务器; 动态NAT:定义一个地址池,自动映射,也是一对一的。现实中,用得比较少; NAPT:使用不同的端口来映射多个内网IP地址到一个指定的外网IP地址,多对一。 三、实验内容: 1.标准IP访问控制列表配置 新建Packet Tracer拓扑图 (1)路由器之间通过V.35电缆通过串口连接,DCE端连接在R1上,配置其时钟频率64000;主机与路由器通过交叉线连接。 (2)配置路由器接口IP地址。 (3)在路由器上配置静态路由协议,让三台PC能够相互Ping通,因为只有在互通的前提下才涉及到方控制列表。 (4)在R1上编号的IP标准访问控制 (5)将标准IP访问控制应用到接口上。 (6)验证主机之间的互通性。 2.网络地址转换NAT配置 新建Packet Tracer拓扑图 (1)R1为公司出口路由器,其与外部路由器之间通过V.35电缆串口连接,DCE端连接在R1上,配置其时钟频率64000; (2)配置PC机、服务器及路由器接口IP地址; (3)在各路由器上配置静态路由协议,让PC间能相互Ping通; (4)在R1上配置静态NAT。 (5)在R1上定义内外网络接口。 (6)验证主机之间的互通性。 四、实验设备: 1.标准IP访问控制列表配置 PC 3台;Router-PT 2台;交叉线;DCE串口线;

计算机网络课程总结

计算机网络课程总结 课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力;实习又是对每一位大学生所学专业知识的一种拓展手段,它让我们学到了很多在课堂上根本就学不到的知识,不仅开阔了自己的视野,增战了自己的见识,也为我们以后进一步走向社会打下了坚实的基础,是我们走向以后走向工作岗位的奠基石。 一、实习目的 计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 针对于此,在经过相应的课程如《计算机网络》、《计算机基础知识》、《操作系统》等课程的系统学习之后,可以说对计算机网络已经是耳目能熟了,所有的有关计算机网络的基础知识、基本理论、基本方法和结构体系,我都基本掌握了,但这些似乎只是纸上谈兵,倘若将这些理论性极强的东西搬上实际上应用,那我想我肯定会是无从下手,一窍不通。自认为已经掌握了一定的计算机网络理论知识在这里只能成为空谈。于是在坚信“实践是检验真理的唯一标准”下,认为只有把从书本上学到的理论应用于实际的网络设计操作中去,才能真正掌握这门知识。 二、实习的过程 计算机网络的设计是一个要求动手能力很强的一门实践课程,在课程设计期间我努力将自己以前所学的理论知识向实践方面转化,尽量做到理论与实践相结合,在课程设计期间能够遵守纪律规章,不迟到、早退,认真完成老师布置的任务,同时也发现了自己的许多不足之处。 在课程设计过程中,我一共完成了11个实验,分别是1.制作直通电缆和交叉UTP、2.交换机Console口和Telnet配置、3.交换机端口和常规配置、4.虚拟局域网VLAN配置、5.路由器Console口 Telnet配置方法和接口配置、6.路由器静态路由配置、7单臂路由配置、8.动态路由协议配置、9.PPP协议配置、10路由器访问控制表(ACL)、11.网络地址转换(NAT)。

计算机网络实验思想总结

计算机网络实验思想总结 计算机和网络是与射虎融合度很深的东西,掌握这两样技术,有利于你的发展。下面是的计算机网络实验思想总结,请阅读,上公文站,发现学习。 一学期的计算机网络实验课结束了。通过这一学期的学习,使得自己在计算机网络这一方面有了更多的了解,更深刻的体会,对计算机网络也有了更多的兴趣。大家在一起对计算机基础教学中、培训中的一些问题进行了探讨、相互间受到许多启发。特别是每一次实验课,以团队为基础进行试验。这样不仅能使我们快速完成实验,而且培养了团队合作的精神。当实验过程中,不同人扮演不同的角色时,还可以分享实验心得,这样起到了互补的作用。 我们学习了:双绞线的制作与测试,我们认识了局域网中几种网线及其各自的特点;学会了用双绞线制作网线;学习掌握了路由器间 背靠背的连接方法,路由器的工作原理等;交换机的工作原理、交换技术和VLAN作用;ALC配置;配置虚拟网等等的内容。 计算机网络实验,我们熟悉了解路由器的基本作用和基本功能。了解代理服务的概念和掌握配置代理服务器的方法和过程。体会到协作学习的一些理念。希望以后还会有机会再去接触计算机网络实验这门课程,也希望能从中得到更多的启示,并希望这门课的老师越讲越好,这门课越来越好。 计算机网络课程的实验不同于以前做过的C语言上机实验和数据结构上机实验,后两者都是编程的,要求的是个人对基础知识的掌

握和熟练的应用,简单地说就是一个人的战场。而计算机网络课程则是一门操作性很强的课程,很多时候它更要求我们注重团队之间的交流与配合,而不是独自完成。 第一次实验是双绞线的制作,通过这个实验让我学到了如何制作双绞线,也是我大学期间第一次做操作性这么强的实验。以前的实验都是编程,而这一次的实验却是完完全全地让我们自己动手。剥皮->排序->理直->剪齐->插入->压线,虽然实验过去了有一段时间,但是还是能清楚地记得做法。虽然最后我们的实验没有成功,但是这并不代表我们没有收获。 第二次的实验是Linux的使用与DNS服务器的配置与管理。在课堂上,由于机子的问题,Linux不能成功打开。于是就学习了一下DNS服务器的配置和管理。通过学习,我知道了如何添加DNSZone,如何添加主要区域,正向搜索和反向搜索,添加DNSDomain,如何设置DNS服务器的动态更新,如何修改区域传输的通知列表等等。关于Linux,下课后仍然不死心,自己在网上下了个Linux操作系统,然后在同学的指导下一步步地装好了。虽然说最后没怎么用,自己也不会用。但是当打开操作系统的那一瞬间,那个华丽丽的界面还是让我深深地震撼了一把。不得不感叹Linux真的好高级。我相信,不久之后,我一定可以熟练操作Linux系统的。 第三次试验是有关聊天软件和点歌软件的配置和运用。在这个实验里,我们开始有了更明确的分工,一个同学做客户端,一个同学做服务端,在做这些之前,要首先修改我们的IP。但是后来我想,

计算机网络实验报告xx

实验一网络命令与使用 实验要求: 1、在窗口中显示网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关 2、向一台电脑无限制的发送数据包,此数据包大小为60000byte 3、查看本地计算机或另一台计算机的ARP高速缓存中的当前内容 4、从一台ftp服务器上下载一份文件 实验过程: 1、在窗口中显示网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关 在命令行输入:ipconfig 命令 2、向一台电脑无限制的发送数据包,此数据包大小为60000byte 在命令行格式:ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-lis

其中-t表示ping指定计算机直到中断,-l定义发送数据包的长度。 3、查看本地计算机或另一台计算机的ARP高速缓存中的当前内容 命令行格式:ARP -a [inet_addr] [-N if_addr] 4、从一台ftp服务器上下载一份文件 命令行格式:ftp [-v] [-n] [-i] [-d] [-g] [-s:filename] [-a] [-w:windowsize]

[computer] 《计算机网络》实验指导书(24学时).doc 实验三网络协议分析 一,使用Ethereal分析软件捕获一段Ping命令的数据流,并分析其工作过程:如图所示: 第一行suorce为172.16.38.5为我的主机名,Destination 为172.16.38.3 为我发送的目的地主机名。后面的request表明我请求发送 第二行suorce为172.16.38.3为目的地的主机名,Destination 为172.16.38.5 为我的主机名。后面的replay表明目的地主机名向我发送信息表明收到了我发的数据包。 下面是命令行的截图:

《计算机网络课程设计》

计算机网络课程设计报告 题目:Web服务器的搭建及HTTP协议和底层协议运行分析 学生: xxxxxxx 学号: xxxxxxx 班级: xxxxxxxx 教师: xxxxxxx 完成日期:2017年 6月 22 日

《计算机网络课程设计》成绩评定表班级:xxxxx:xxxxx学号:xxxxxxx阅卷教师签名:

Web服务器的搭建及HTTP协议和底层协议运行分析 一、题目说明 1、课程设计题目分析5 本题是要在Window操作系统上进行web服务器的搭建,之后在另一台电脑上运行该服务器,同时在该电脑上抓来往的数据包,并观察该数据包中的HTTP协议的结构。 2、题目涉及的技术原理10 本题通过对操作系统中的IIS(Internet 信息服务器)的安装,再通过编辑自己的编写的服务器代码设置自己的默认网页,进行Web服务器的配置。 在另一台电脑上,将这台电脑用作客户端,运行自己刚配置好的Web服务器。同时,打开wireshark应用程序进行数据包抓包,抓取http包,对抓到的http包进行结构分析。 当前对于Web页面的访问应用都是基于Http应用协议的,而在下层则使用TCP(传输控制协议);但TCP并不适合于短会话(少量的数据交换的情况),当期用于短对话时会增加额外开销,而建立、撤销TCP的开销却又是必需的。因此,提出了一种混合TCP与UDP 的动态选择传输层协议来实现Http协议的方法,若在短对话时使用UDP(用户数据报协议)作为传输层协议,而当有大量数据需要传输时则使用TCP作为传输层协议,这样,对于短对话可以避免TCP的

额外开销,而对于长会话又可以得到有TCP提供的可靠传输并减少网络拥塞。 3、该技术的应用及发展5 ProgressiveDownload (渐进式下载方式)也可以认为是HTTPStreaming 的前身,其通过 HTTP 协议来传输文件。目前,国外比较主流的视频(如YouTube ,优酷,土豆,六间房等)一般都用ProgressiveDownload 的方式播放视频节目。ProgressiveDownload在用户点击播放视频节目时,会给用户发送视频文件,用户可以边下载、边播放,而不是等到文件下载完毕才可以播放视频。在用户暂停播放时,服务器依然会给客户端发送视频文件,直至整个文件下载完毕或者用户关闭视频。基于此特性产生一个问题:如当一个文件为3min ,用户观看前 1min 后就不想再观看而关闭视频播放时,而此时文件可能已经全部下载完毕,这样就会造成后 2min 资源传输的浪费。 ProgressiveDownload 客户端与服务器的交互过程参见下图,由客户端发起 HTTP 请求,服务器受到请求后回复给客户端其请求 图1 HTTP请求/响应 目前,支持 HTTPStreaming 的客户端有有 AdobeFlash Player 10.1 ,微软的 Sivelight 以及 APPLE 的Safari 等。

计算机网络课程设计实验报告

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析 指导教师:张伟 目录 第一章总体设计 一、实体类设计 --------P3 二、功能类设计 --------P3 三、界面设计 --------P3

第二章详细设计 一、实体类实现 --------P4 二、功能类实现 --------P4 三、界面实现 --------P5 第三章源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21 第一章总体设计 一、实体类设计 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计 二、功能类设计 (1)网卡获取 (2)包的抓捕

(3)包的处理 三、界面设计 (1)布局 (2)按钮功能连接 第二章第二章详细设计 一、实体类实现 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。 本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。对应如下:ARP 实体类:https://www.360docs.net/doc/a14381173.html,work.Arp; UPD 实体类:https://www.360docs.net/doc/a14381173.html,work.Icmp;

2019计算机实验心得体会五篇

2019计算机实验心得体会五篇 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实 践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜 集的2019计算机实验心得体会五篇,希望对你有所帮助。 2019计算机实验心得体会(一) 通过参加电脑实验班的学习,我的计算机应用水平得到了提高,总的来说,有以 下几点感触 一、开卷有益,爱不释手 然而,在我参加培训的第一晚上,我就发现自己错了,此次的电脑培训与以前参 加过的培训大相径庭。以前的培训都是应付考试的,实用性不强,而且那时学的东西,在工作中用的不多,时间长了不用也就忘记了。而这次培训的内容最显著的特点,就 是实用性和工具性很强,都是平时工作中经常用到的。参加培训的第一课时,我就专 心致志地听讲,把学习内容与以前操作不规范或不熟练的地方进行对比,感觉学习效 果很好,受益匪浅。 特别是EXCEL的学习,因为平时用得比较少,掌握的也不多,不想去进一步的 学习,所以对EXCEL的操作不熟悉。这一次正好帮我解决了这一问题。通过次培训,使我的EXCIL的操作有了新的认识,也掌握了几种方法。还有幻灯片的制作,原来从 没有制作过,通过这次学习发现也不是想象中的那么难。简单的制作我已经基本上掌握。现在想起来这种培训是必要的,正所谓“磨刀不误砍柴工”。 二、由此及彼,学以致用 电脑培训暂告一个段落,闲暇之余,我开始静静地长思。由于学校的信任,我从 上学期中段到校办工作。尽管我全力以赴,不辞辛苦,做了很多的工作,但我知道自 已离“出色”还有很大的一段距离,离学校对我的期望还相去甚远。固然有能力、水平、经验、性格等原因,但是最重要的原因还是思想上的对学习不重视,导致了有的工作 不能出色的完成。由于办公室工作的特殊性,要求工作人员思维严密、灵活应付,要 能够迅速理解领导的意图,沉着应对复杂的局面,这样才不致于在完成工作时,总是 手忙脚乱、丢三落四。通过这次培训,我认识到只有沉下身来,静下心来认真学习, 踏实做事,多用心,多动脑,才能让工作有好的起色。为教育事业奉献我微薄的一份 力量

计算机网络实验报告

计算机网络实验报告

实验1.跨交换机实现V ALN 1.1 实验环境 (1)Windows 操作系统的计算机 (2)https://www.360docs.net/doc/a14381173.html,NP.v6.0.Final.Beta (3).NET Framework 2.0 (4)Adobe Acrobat Reader 1.2 实验目的 理解VLAN如何跨交换机实现。 1.3 背景描述 假设宽带小区城域网中有两台楼道交换机,住户PC1、PC2、PC3、PC4分别接在交换机一的0/1、0/2端口和交换机二的0/1、0/2端口。PC1和PC3是一个单位的两家住户,PC2和PC4是另一个单位的两家住户,现要求同一个单位的住户能够互联互通,不同单位的住户不能互通。 1.4 实现功能 在同一VLAN里的计算机系统能跨交换机进行相互通信,而在不同VLAN 里的计算机系统不能进行相互通信。 1.5实验设备 Switch2950 2台 Pc 4台 1.6 实验步骤 (1).用Boson Network Designer 完成实验拓补图并连接好

(2).在模拟器重配置交换机和pc 。 先打开‘Boson NetSim’软件,再在‘Boson Network Designer’中点击Load…进行加载,进入Boson模拟器的环境,一边进行相关配置。 1)交换机S1进行配置 Switch>enable Switch#vlan database Switch(vlan)#vtp domain xyz Switch(vlan)#vtp server Switch(vlan)#vlan 2 name jsjx Switch(vlan)#exit

相关文档
最新文档