实验5 滑动窗口实验实验报告

实验5 滑动窗口实验实验报告
实验5 滑动窗口实验实验报告

滑动窗口实验

一、实验目的

实现一个滑动窗口协议的数据传送部分,目的在于使学生更好地理解基本滑动窗口协议的基本工作原理,掌握计算机网络协议的基本实现技术。

二、实验原理

(1)窗口机制

滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。(2)1比特滑动窗口协议

当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。

(3)后退n协议

由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送,且发送方在每发送完一个数据帧时都要设置超时定时器,只要在所设置的超时时间内仍收到确认帧,就要重发相应的数据帧。

如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。

三、实验步骤

1)程序源码

// SlidingWindowDlg.h : 头文件

#pragma once

#include "protocol.h"

#include "afxwin.h"

#include "afx.h"

#include "afxcmn.h"

// CSlidingWindowDlg对话框

class CSlidingWindowDlg : public CDialog

{

// 构造

public:

CSlidingWindowDlg(CWnd* pParent = NULL); // 标准构造函数

// 对话框数据

enum { IDD = IDD_SLIDINGWINDOW_DIALOG };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现

protected:

HICON m_hIcon;

// 生成的消息映射函数

virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

DECLARE_MESSAGE_MAP()

public:

CStringm_szDestination;

CStringm_szSendFile;

CStringm_szSavePath;

afx_msg void OnBnClickedButtonSavePath();

afx_msg void OnBnClickedButtonSendFile();

public:

afx_msg void OnBnClickedButtonListen(); private:

CProtocolm_myProtocol;

public:

afx_msg void OnTimer(UINT_PTR nIDEvent);

void OnReceive(void * buf , UINT nBytes); private:

UINT m_nDestPort;

CListBoxm_listSend;

CListBoxm_listReceive;

UINT m_nLocalPort;

public:

afx_msg void OnBnClickedButtonSend(); private:

static UINT SendThread(LPVOID p);

CFilem_fileSave;

ULONGLONG m_nRecvFileSize;

ULONGLONG m_nRecvNow;

CProgressCtrlm_proSend;

CProgressCtrlm_proReceive;

};

// SlidingWindowDlg.cpp : 实现文件

#include "stdafx.h"

#include "SlidingWindow.h"

#include "SlidingWindowDlg.h"

#include "Protocol.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

typedefstruct

{

CHAR szIdentify[8];

TCHAR szName[MAX_PATH];

ULONGLONG nLength;

} HEADE;

// 用于应用程序“关于”菜单项的CAboutDlg对话框

class CAboutDlg : public CDialog

{

public:

CAboutDlg();

// 对话框数据

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

END_MESSAGE_MAP()

// CSlidingWindowDlg对话框

CSlidingWindowDlg::CSlidingWindowDlg(CWnd* pParent /*=NULL*/) : CDialog(CSlidingWindowDlg::IDD, pParent)

, m_szDestination(_T("localhost"))

, m_szSendFile(_T(""))

, m_szSavePath(_T(""))

, m_nDestPort(52520)

, m_nLocalPort(52520)

, m_nRecvFileSize(0)

, m_nRecvNow(0)

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CSlidingWindowDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_DESTINATION, m_szDestination);

DDX_Text(pDX, IDC_SEND_FILE, m_szSendFile);

DDX_Text(pDX, IDC_SAVE_PATH, m_szSavePath);

DDX_Text(pDX, IDC_DESTINATION_PORT, m_nDestPort);

DDV_MinMaxUInt(pDX, m_nDestPort, 1, 65535);

DDX_Control(pDX, IDC_LIST_SEND, m_listSend);

DDX_Control(pDX, IDC_LIST_RECEIVE, m_listReceive);

DDX_Text(pDX, IDC_OWN_PORT, m_nLocalPort);

DDV_MinMaxUInt(pDX, m_nLocalPort, 1, 65535);

DDX_Control(pDX, IDC_PROGRESS_RECEIVE, m_proReceive);

DDX_Control(pDX, IDC_PROGRESS_SEND, m_proSend);

}

BEGIN_MESSAGE_MAP(CSlidingWindowDlg, CDialog)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

//}}AFX_MSG_MAP

ON_BN_CLICKED(IDC_BUTTON_SAVE_PATH,

&CSlidingWindowDlg::OnBnClickedButtonSavePath)

ON_BN_CLICKED(IDC_BUTTON_SEND_FILE,

&CSlidingWindowDlg::OnBnClickedButtonSendFile)

ON_BN_CLICKED(IDC_BUTTON_LISTEN, &CSlidingWindowDlg::OnBnClickedButtonListen) ON_WM_TIMER()

ON_BN_CLICKED(IDC_BUTTON_SEND, &CSlidingWindowDlg::OnBnClickedButtonSend) END_MESSAGE_MAP()

// CSlidingWindowDlg消息处理程序

BOOL CSlidingWindowDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// 将“关于...”菜单项添加到系统菜单中。

// IDM_ABOUTBOX 必须在系统命令范围内。

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动

// 执行此操作

SetIcon(m_hIcon, TRUE); // 设置大图标

SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码

m_myProtocol.SetParent(this);

return TRUE; // 除非将焦点设置到控件,否则返回TRUE

}

void CSlidingWindowDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID& 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

// 如果向对话框添加最小化按钮,则需要下面的代码

// 来绘制该图标。对于使用文档/视图模型的MFC 应用程序,

// 这将由框架自动完成。

void CSlidingWindowDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // 用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);

// 使图标在工作区矩形中居中

intcxIcon = GetSystemMetrics(SM_CXICON);

intcyIcon = GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// 绘制图标

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

//当用户拖动最小化窗口时系统调用此函数取得光标

//显示。

HCURSOR CSlidingWindowDlg::OnQueryDragIcon()

{

return static_cast(m_hIcon);

}

void CSlidingWindowDlg::OnBnClickedButtonSavePath()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE);

PIDLIST_ABSOLUTE pIDL;

TCHAR szPath[_MAX_PATH];

BROWSEINFO bo;

ZeroMemory(&bo,sizeof(bo));

bo.hwndOwner = this->m_hWnd;

bo.ulFlags = BIF_USENEWUI|BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS;

bo.lpszTitle = _T("请选择保存目录");

pIDL = SHBrowseForFolder(&bo);

SHGetPathFromIDList(pIDL,szPath);

m_szSavePath.Format(_T("%s"),szPath);

if (m_szSavePath.GetLength() != 0)

{

if (m_szSavePath.GetAt(m_szSavePath.GetLength() - 1) != _T('\\'))

{

m_szSavePath.AppendChar(_T('\\'));

}

GetDlgItem(IDC_BUTTON_LISTEN)->EnableWindow(TRUE);

}

CoTaskMemFree(pIDL);

UpdateData(FALSE);

}

void CSlidingWindowDlg::OnBnClickedButtonSendFile()

{

// TODO: 在此添加控件通知处理程序代码

CFileDialog fd(TRUE,_T("*.*"),NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,_T("All Files (*.*)|*.*||"),this);

fd.m_ofn.lStructSize = 88;

if (fd.DoModal() == IDOK)

{

UpdateData(TRUE);

m_szSendFile = fd.GetPathName();

UpdateData(FALSE);

GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(TRUE);

}

}

void CSlidingWindowDlg::OnBnClickedButtonListen()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE);

CString tem;

GetDlgItem(IDC_BUTTON_LISTEN)->GetWindowText(tem);

if (tem == _T("监听"))

{

if (m_myProtocol.Create(m_nLocalPort) == FALSE)

{

m_listSend.AddString(_T("错误:无法开启!"));

return;

}

m_myProtocol.Start();

GetDlgItem(IDC_BUTTON_LISTEN)->SetWindowText(_T("停止"));

GetDlgItem(IDC_OWN_PORT)->EnableWindow(FALSE);

}

else

{

GetDlgItem(IDC_BUTTON_LISTEN)->SetWindowText(_T("监听"));

GetDlgItem(IDC_OWN_PORT)->EnableWindow(TRUE);

m_myProtocol.Stop();

}

UpdateData(FALSE);

}

void CSlidingWindowDlg::OnTimer(UINT_PTR nIDEvent)

// TODO: 在此添加消息处理程序代码和/或调用默认值

m_myProtocol.Timeout(nIDEvent - 1);

}

void CSlidingWindowDlg::OnReceive(void * buf , UINT nBytes)

{

if (nBytes == sizeof(HEADE))

{

HEADE * pHeader;

pHeader = (HEADE *)buf;

if (memcmp(pHeader->szIdentify,"@HEADZGF",8) == 0)

{

m_fileSave.Open(m_szSavePath + pHeader->szName,CFile::modeCreate|CFile::modeWrite);

m_nRecvFileSize = pHeader->nLength;

m_nRecvNow = 0;

m_listReceive.AddString(_T("开始接收文件..."));

m_listReceive.AddString(_T("文件名:") + CString(pHeader->szName) );

return;

}

}

m_fileSave.Write(buf,nBytes);

m_nRecvNow += nBytes;

m_proReceive.SetPos((int)((m_nRecvNow/(double)m_nRecvFileSize)*100));

if (m_nRecvNow == m_nRecvFileSize)

{

m_fileSave.Close();

m_proReceive.SetPos(100);

m_listReceive.AddString(_T("接收完成!"));

m_proReceive.SetPos(0);

}

}

void CSlidingWindowDlg::OnBnClickedButtonSend()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE);

if (m_myProtocol.SetDestination(m_szDestination,m_nDestPort) == FALSE)

{

m_listSend.AddString(_T("错误:找不到目标主机"));

return;

}

if (m_myProtocol.Create(0) == FALSE)

{

m_listSend.AddString(_T("错误:无法创建套接字"));

return;

}

m_myProtocol.Start();

AfxBeginThread(SendThread,this);

}

UINT CSlidingWindowDlg::SendThread(LPVOID p)

{

CSlidingWindowDlg *my = (CSlidingWindowDlg *)p;

CFile file;

CString name;

BYTE buf[MAX_PKT];

HEADE header;

UINT nRead;

ULONGLONG nTotal;

ULONGLONG nNow = 0;

if (file.Open(my->m_szSendFile,CFile::modeRead) == FALSE)

{

my->m_listSend.AddString(_T("错误:无法打开文件"));

return 1;

}

(my->GetDlgItem(IDC_BUTTON_SEND))->EnableWindow(FALSE);

my->m_listSend.AddString(_T("开始发送!"));

name = file.GetFileName();

memcpy(header.szIdentify,"@HEADZGF",8);

lstrcpy(header.szName,name);

header.nLength = file.GetLength();

nTotal = header.nLength;

my->m_myProtocol.SendPacket(&header,sizeof(HEADE));

while(nNow

{

nRead = file.Read(buf,MAX_PKT);

my->m_myProtocol.SendPacket(buf,nRead);

nNow += nRead;

my->m_proSend.SetPos((int)((nNow/(double)nTotal)*100));

}

my->m_proSend.SetPos(100);

my->m_listSend.AddString(_T("发送完成!"));

(my->GetDlgItem(IDC_BUTTON_SEND))->EnableWindow(TRUE);

my->m_proSend.SetPos(0);

return 0;

}

2)实验结果

a)创建测试目录与测试文件:

b)开启一个客户端(作为实验的接收端),并确立监听端口与目标端口:

c)开启一个客户端(作为实验的发送端),并确立监听端口与目标端

口:

d)发送文件:

e)接收文件:

f)查看最终结果:

四、实验小结

1.采用滑动窗口中的选择重发协议实现了一个文件传输程序。

2.由于UDP协议与数据链路层有一个重要不同就是先发不一定先到,所以若用UDP模拟链路层滑动窗口协议,较理想的就是选择重发协议(我也实现了返回n,实际测试速度远不如选择重发)而且序号应很大,否则可能出错。由于实际文件传输基本不会双向同时传输,故我取消了捎带回复机制,选择单独发送ACK,以加快速度。

3.程序的使用方法就是,打开两个客户端,一个发送一个接收。收端

先选择保存路径然后点监听,发送端选择文件然后点发送。

实验三 动压滑动轴承实验

实验三动压滑动轴承实验 一、实验目的 1.验证动压滑动轴承油膜压力分布规律,了解影响油膜压力分布规律的因素,并根据油膜压力分布曲线确定端泄影响系数K b; 2.测定动压滑动轴承的摩擦特征曲线,并考察影响摩擦系数的因素。 二、实验设备及仪器 1.HZS-1型动压滑动轴承试验台 图1 HZS-1型动压滑动轴承实验台 图1为试验台总体布置,图中件号1为试验的轴承箱,通过联轴器与变速箱7相联,6为液压箱,装于底座9的内部,12为调速电动机,通过三角带与变速箱输入轴相联,8为调速电机控制旋钮,5为加载油腔压力表,由減压阀4控制油腔压力,2为轴承供油压力表,由减压阀控制其压力,油泵电机开关为10,主电机开关为11,试验台的总开关在其正面下方。 图2为试验轴承箱,件号31为主轴,由一对D级滚动轴承支承,32为试验轴承,空套在主轴上,轴承内径d=60mm,有效宽度=60mm。在轴承中间横剖面上,沿周向开7个测压孔,在120°范围内的均匀分布,测压表21~27通过管路分别与测压孔相联。距轴承中间剖面L/4(15mm)处,轴承上端有一个测压孔,表头28与其相联,件号33为加载盖板,固定在箱体上,加载油腔在水平面上的投影面积为60cm2在轴承外圆左侧装有测杆35,环34装在测杆上以供测量摩擦力矩用,环34与轴承中心的距离为150mm,轴承外圆上装有两个平衡锤36,用以在轴承安装前做静平衡。

图2 实验轴承箱 箱体左侧装有一个重锤式拉力计如图3所示,测量摩擦力矩时,将拉力计上的吊钩与环34联接,即可测得摩擦力矩。测杆通过环34作用在拉力计上的力F,由重锤予以平衡,其 数值可由 α sin 1 R WL F= 求得。式中R为圆盘半径,W为重锤之重量,L1为重锤重心到轴 心之距离,α为圆盘之转角,圆盘转角α通过齿轮放大,可使表头指针转角放大10倍,表头刻度即为F的实际值,单位为克。 JZT型调速电动机的可靠调速范围为120~1200转/分,为了扩大调速范围,试验台传动系统中有一个两级变速箱,当手柄向右倾斜,主轴与电机转速相同;当手柄向右倾斜,主轴为电机转速的1/6。因此主轴的可靠调速范围为20~1200转/分。 图3 重锤式拉力计工作原理图 2.测速仪表及温度计 三、实验步骤 1. 测定动压滑动轴承的油膜压力分布,确定轴承端泄影响系数K b

数字图像处理实验报告

数字图像处理实验报告

实验一 数字图像的基本操作和灰度变换 一、 实验目的 1. 了解数字图像的基本数据结构 2. 熟悉Matlab 中数字图像处理的基本函数和基本使用方法 3. 掌握图像灰度变换的基本理论和实现方法 4. 掌握直方图均衡化增强的基本理论和实现方法 二、实验原理 1. 图像灰度的线性变换 灰度的线性变换可以突出图像中的重要信息。通常情况下,处理前后的图像灰度级是相同的,即处理前后的图像灰度级都为[0,255]。那么,从原理上讲,我们就只能通过抑制非重要信息的对比度来腾出空间给重要信息进行对比度展宽。 设原图像的灰度为),(j i f ,处理后的图像的灰度为),(j i g ,对比度线性展宽的原理示意图如图1.1所示。假设原图像中我们关心的景物的灰度分布在[a f , b f ]区间内,处理后的图像中,我们关心的景物的灰度分布在[a g ,b g ]区间内。在这里)(a b g g g -=?()b a f f f >?=-,也就是说我们所关心的景物的灰度级得到了展宽。 根据图中所示的映射关系中分段直线的斜率我们可以得出线性对比度展 b g a g a b )j 图1.1 对比度线性变换关系

宽的计算公式: ),(j i f α, a f j i f <≤),(0 =),(j i g a a g f j i f b +-)),((, b a f j i f f <≤).,( (1-1) b b g f j i f c +-)),((, 255),(<≤j i f f b (m i ,3,2,1 =;n j ,3,2,1 =) 其中,a a f g a = ,a b a b f f g g b --=,b b f g c --=255255,图像的大小为m ×n 。 2. 直方图均衡化 直方图均衡化是将原始图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。 离散图像均衡化处理可通过变换函数: 来实现。 三、实验步骤 1.图像灰度线性变换的实现 (1)读入一幅灰度图像test1.tif ,显示其灰度直方图。 新建M 文件,Untitled1.m ,编辑代码如下。 得到读入图像test1和它的灰度直方图。

gobackn协议实验报告

一个数据帧如图所示: 其中有效数据和校验码可能含有转义字符。 (3) 帧中各个字段的定义和编码,计算CRC校验和的多项式定义 帧的定义编码:帧中的第一比特为开头FLAG,第二比特是帧的类型,共定义了{data,ack,nak} frame_kind三种类型,用枚举常量表述,第三比特是顺序编码,用于确定到达帧的顺序,第四比特是ACK捎带确认讯息,记录了当前已收到帧的确认情况,这是数据帧的头部。若为数据帧,从第五比特开始为网路层的数据,到网路层包裹信息结束后,接上4比特的CRC校验讯息,后有一结束字符FLAG表明该帧结束。 CRC校验数:CRC校验数据由函数crc32()产生,函数crc32()返回一个32位整数为数据生成CRC-32校验和,并且把这 32比特校验和附在数据字节之后。 多项式定义:采用的CRC校验方案为CRC-32,生成多项式为: x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1 校验和附加在数据帧尾部,接受方用带校验和的数据来逻辑除以生成多项式,余数为零则数据无误码,反之有误码等待发送方重传。 (4) 协议工作时两个站点之间信息交换的过程控制,尤其是发生误码条件下的控制方案 协议工作时,两个站点通过互发数据包交换数据,而控制讯息则稍带在数据讯息中传递,当遇到超时情况时,则主动发送空数据包以提供讯息。 当出现帧丢失时,如收到帧的序号有跳跃,或者出现CRC校验出错丢弃了某帧,会主动发送NAK否定帧,提示重传,接收方丢弃所有的后续帧。若长期未产生放送消息,则出现ACK超时事件,主动发送ACK帧提示确认,对方收到确认后,滑动窗口继续发送,若一直未收到确认讯息,则出现数据帧超时事件,发送方会自动重发未确认帧。 11.3 软件设计 给出程序的数据结构,模块之间的调用关系和功能,程序流程。 (1)数据结构:数据结构是整个程序的要点之一,程序维护者充分了解数据结构就可以对主 要算法和处理流程有个基本的理解。描述程序中自定义结构体中各成员的用途,定义的全局变量和主函数中的变量的变量名和变量所起的作用。 采用字符数组结构来存放数据帧:

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

滑动轴承实验指导书(更新并附实验报告)

滑动轴承实验 一、概述 滑动轴承用于支承转动零件,是一种在机械中被广泛应用的重要零部件。根据轴承的工作原理,滑动轴承属于滑动摩擦类型。滑动轴承中的润滑油若能形成一定的油膜厚度而将作相对转动的轴承与轴颈表面分开,则运动副表面就不发生接触,从而降低摩擦、减少磨损,延长轴承的使用寿命。 根据流体润滑形成原理的不同,润滑油膜分为流体静压润滑(外部供压式)及流体动压润滑(内部自生式),本章讨论流体动压轴承实验。 流体动压润滑轴承其工作原理是通过韧颈旋转,借助流体粘性将润滑油带人轴颈与轴瓦配合表面的收敛楔形间隙内,由于润滑油由大端人口至小端出口的流动过程中必须满足流体流动连续性条件,从而润滑油在间隙内就自然形成周向油膜压力(见图1),在油膜压力作用下,轴颈由图l(a)所示的位置被推向图1(b)所示的位置。 图1 动压油膜的形成 当动压油膜的压力p 在载荷F 方向分力的合力与载荷F 平衡时,轴颈中心处于某一相应稳定的平衡位置O 1,O 1位置的坐标为O 1(e ,Φ)。其中e =OO 1,称为偏心距;Φ为偏位角(轴承中心O 与轴颈中心O 1连线与外载荷F 作用线间的夹角)。 随着轴承载荷、转速、润滑油种类等参数的变化以及轴承几何参数(如宽径比、相对间隙)的不同.轴颈中心的位置也随之发生变化。对处于工况参数随时间变化下工作的非稳态滑动轴承,轴心的轨迹将形成一条轴心轨迹图。 为了保证形成完全的液体摩擦状态,对于实际的工程表面,最小油膜厚度必须满足下列条件: ()21min Z z R R S h += (1) 式中,S 为安全系数,通常取S ≥2;R z1,R Z2分别为轴颈和铀瓦孔表面粗糙度的十点高度。 滑动轴承实验是分析滑动轴承承载机理的基本实验,它是分析与研究轴承的润滑特性以及进行滑动轴承创新性设计的重要实践基础。 根据要求不同,滑动轴承实验分为基本型、综合设计型和研究创新型三种类型。

图像处理实验报告模板

桂林电子科技大学 实验报告 一、实验目的 1、掌握基本的图像处理方法,包括读取、写入、显示、剪切、运算以及快操作 等等。 2、掌握常用的图像变换方法,分析变换结果。 二、实验内容 编写程序,在Matlab下调试运行,并注意观察分析结果。 1、使用imread函数分别读入图象cameraman.tif 、canoe.tif,并使用subplot 和imshow函数进行显示。再使用imcrop对第一幅图片进行剪切,并保存成文件。 2、申明向量X和矩阵A,使用二维傅立叶变换和fftshift函数进行处理,观察向量和矩阵结果。 3、创建一个1000*1000的全0图像,其中选择某矩形区域设置其象素为1(350:649,475:524),对该二值图逆时针旋转45°角,比较旋转前后的图像和傅里叶变换频谱。 三、实验设备、环境 计算机 四、实验原理 1、图像平滑算法 (1) 简单平均法:

设某像素的灰度值为,迭加噪声后,一幅含噪声的图像可表示为 现取以为中心的邻域S ——NN 方形窗口,在S 域内进行局部平均,得 式中,N 的平方为窗口内像素总数。令 ,则 式中,加权函数 (2)中值滤波: 中值滤波是一种非线性的信号处理方法。中值滤波器在1971 年由J.w.Jukey 首先提出并应用在一维信号处理技术(时间序列分析)中,后来被二维图象信号处理技术所引用。中值滤波在一定的条件下可以克服线性滤波器如最小均方滤波、均直滤波等带来的图象细节模糊,而且对滤除脉冲干扰及图象扫描噪声最为有效。由于在实际运算过程中不需要图象的统计特征,因此这也带来不少方便。但是对于一些细节多,特别是点、线、尖顶细节多的图象不宜采用中值滤波。中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中各点灰度值的中值来替代值定点(一般是窗口的中心点)的灰度值。对于奇数个元素,中值是指按大小排序后,中间的数值;对于偶数个元素,中值是指排序后中间两个元素灰度值的平均值。 一般选用3*3或5*5窗口,形状可分为方形或十字形,如下图所示。 (a) 方形 (b) 十字形 图2-1 二维中值滤波窗口形状 二维中值滤波可表示为

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept 1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的 execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

滑动轴承实验报告

液体动压滑动轴承实验报告 一、实验目的 1、测量轴承的径向和轴向油膜压力分布曲线。 2、观察径向滑动轴承液体动压润滑油膜的形成过程和现象。 3、观察载荷和转速改变时的油膜压力的变化情况。 4、观察径向滑动轴承油膜的轴向压力分布情况。 5、测定和绘制径向滑动轴承径向油膜压力曲线,求轴承的承载能力。 6、了解径向滑动轴承的摩擦系数f 的测量方法和摩擦特性曲线λ的绘制方法。 二、实验设备及工具滑动轴承实验台 三、实验原理 1、油膜压力的测量 轴承实验台结构如图1所示,它主要包括:调速电动机、传动系统、液压系统和实验轴承箱等部分组成。 在轴承承载区的中央平面上,沿径向钻有8个直径为1mm 的小孔。各孔间隔为 22.50,每个小孔分别联接一个压力表。在承载区内的径向压力可通过相应的压力表直接读出。 将轴径直径(d=60mm )按比例绘在纸上,将1~8个压力表读数按比例相应标出。(建议压力以1cm 代表5kgf/cm 2)将压力向量连成一条光滑曲线,即得到轴承中央剖面油膜压力分布曲线)。 同理,读出第4和第8个压力表示数,由于轴向两端端泄影响,两端压力为零。光滑连结0‘,8’,4‘,8’和0‘各点,即得到轴向油膜压力分布曲线。 图1 轴承实验台结构图 1、操纵面板 2、电机 3、三角带 4、轴向油压传感器接头 5、外加载荷传感器 6、螺旋加载杆 7、摩擦力传感器测力装置 8、径向油压传感器(8只) 9、传感器 支撑板 10、主轴 11、主轴瓦 12、主轴箱 、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆、电气课件中调试资料试卷电气设备,在安装过程中以及安装结束后进行 高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到

滑动窗口实验

计算机通信网络实验 滑动窗口实验 学院: 班级: 学号: 姓名: 2012年11月14日

一、实验目的 实现一个滑动窗口协议的数据传送部分,目的在于使学生更好地理解基本滑动窗口协议的基本工作原理,掌握计算机网络协议的基本实现技术。 二、原理简介 (1)窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。 发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。 (2)1比特滑动窗口协议 当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。

(3)后退n协议 由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送,且发送方在每发送完一个数据帧时都要设置超时定时器,只要在所设置的超时时间内仍收到确认帧,就要重发相应的数据帧。如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。 三、实验步骤 1.编写滑动窗口协议的实现程序; 2.在模拟实现,调试并运行自己编写的协议实现程序; 3.了解协议的工作轨迹,如出现异常情况,在实验报告中写出原因分析。 四、实验过程 1、程序功能及设计思路 功能概述: 用客户端/服务器模式代表A站、B站。先由客户端输入服务器IP地址,然后客户端和服务器之间建立连接。在服务器中可以自行设置发送窗口的大小(如果需要实现的是停等式协议,那么就将发送窗口设为1),设置完后,服务器开始向客户端根据滑动窗口(停等式)的协议规定发送数据帧,同时启动计时器,客户端收到数据帧后马上向服务器发送确认帧,服务器如果没有及时收到客户端的确认帧,就要返回到出错的地方进行重发。 实现滑动窗口协议的算法: 发送端: 1、socket初始化,绑定端口,监听,接受连接; 2、设置发送窗口大小winsize; 3、启动定时器,设置时间为0.2s*winsize; 4、组帧并发送数据,即设置序号SN、数据data、长度msglen,之后发送一个窗口中的帧,每发送一个数据SN++;若发送完毕,则执行第6步; 5、接收确认帧,每收到一个正确的确认帧,则改变滑动窗口上下限,若正确接收所有确认帧,则关闭定时器,返回第3步;若接收超时或有确认帧丢失,则SN=right_number,返回第3步; 6、关闭socket,重新建立新的进程,等待下一个连接,返回第2步。 接收端: 1、socket初始化,连接服务器; 2、接收数据帧,将data存入缓存recvBuf,RN=SN+1; 3、发送确认帧,若接收完毕,则关闭socket,否则返回第二步。 实现停等式协议的算法: 和上述滑动窗口协议的算法类似,只需在发送端的第二步中将发送窗口大小winsize设置为1即可。

数据库实验报告1

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

机械设计实验报告2011

机械设计实验报告 姓名: 班级: 学号: 日期: 机械设计教研室 河南机电高等专科学校

机械设计现场认识实验报告 一、实验目的 二、实验设备 三、回答问题 1.螺纹的类型有、、、、螺纹联接的类型有、、、。螺纹联接的防松有、、, 2.键联接的类型有、。花键联接的类型有、。 3.普通V带的型号有。V带轮的结构型式有、、、。V带传动的张紧装置有、、。4.链传动的型式有、、。5.齿轮的结构型式有、、。 6.蜗轮的结构型式有、、、。7.滑动轴承按其所承受载荷方向的不同,可分为、。向心滑动轴承的结构形式有、、、、。8.常用滚动轴承的类型及其代号有、、、、、、、、、。滚动轴承的内圈的轴向固定方法有、、、。滚动轴承外圈的轴向固定方法有、、、。滚动轴承的密封形式有接触式和非接触式密封两种,接触式密封有、两种。非接触式密封有、两种。 9.联轴器可分为、、三大类。 刚性联轴器的型式有、、、、、。 10.离合器的类型有、、、、 、。 11.轴按承载类型有、、。轴上零件的轴向固定方式有。 轴上零件的周向固定方式有。12.按照所受载荷的不同,弹簧可分为、、、。

带传动实验报告一、实验目的 二、实验设备及仪器 三、带传动实验参数 1. 带的种类(V带、圆带、三角带)。 2. 预紧力:2F01= N;2F02= N。 3. 带轮基准直径:d1= mm ;d2= mm 4.测力杆力臂长:L1=L2= mm 5.测力杆刚性系数:K1=K2= N/格 四、实验数据记录与计算 五、绘制弹性滑动曲线和效率曲线

液体动压滑动轴承实验报告 一、实验目的 二、实验设备 三、实验参数 轴颈直径d=mm;轴承宽度B=mm 润滑油动力粘度η=P a s ;润滑油温度t=C 四、实验数据记录 油膜压力测试 转速n = rpm;负载F = N; 五、绘制径向、轴向油膜压力分布曲线 1.径向油膜压力分布曲线 2.轴向油膜压力分布曲线

数据库原理实验报告(5)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验五嵌套子查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)掌握多表查询和子查询的方法。 (2)熟练使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 (3)理解不相关子查询和相关子查询的实现方法和过程。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作: a)查询选修了数据结构与算法的学生学号和姓名。 b)查询07294002课程的成绩低于孙云禄的学生学号和成绩。 c)查询和孙云禄同年出生的学生的姓名和出生年份。 d)查询其他系中年龄小于数学与信息技术学院年龄最大者的学生。 e)查询其他系中比数学与信息技术学院学生年龄都小的学生。 f)查询同孙云禄数据库原理与应用课程分数相同的学生的学号和姓名。 g)查询选修了07294002课程的学生姓名。 h)查询没有选07294002课程的学生姓名。 i)查询同时选修了07295006和07295007课程的学生的学号。 j)查询所有未授课的教师的工号、姓名和院系,结果按院系升序排列。 扩展实验: a)查询和10060101选修的全部课程相同的学生的学号、课程号、期末考试 成绩。 b)查询至少选了10060101选修的全部课程的学生的学号。 c)查询年龄比所在院系平均年龄小的学生的学号、姓名、年龄、院系,按 院系和年龄升序排列。 d)查询每门课都在80分以上的学生的学号和姓名。 (2)在SQL Server Management Studio中新建查询,尽可能用多种形式表示实验中的查询语 句,并进行比较。 (3)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

滚动轴承实验

滚动轴承实验报告 一、实验目得 1、测定与绘制滑动轴承径向油膜压力曲线,求轴承得承载能力。 2、观察载荷与转速改变时油膜压力得变化情况。 3、观察径向滑动轴承油膜得轴向压力分布情况。 4、了解径向滑动轴承得摩擦系数f 得测量方法与摩擦特性曲线得绘制原理及方法。 二、实验原理 1.左、右滚动轴承座可轴向移动,各装有轴向载荷传感器,可通过电脑或数显测试并计算单个滚动轴承轴向载荷与总轴向载荷得关系; 2.右滚动轴承上装有8 个径向载荷传感器,可通过计算机或操作面板显示测绘滚动轴承在轴向、径向载荷作用下轴承径向载荷分布变化情况; 3.通过电脑直接测量滚子对外圈得压力及变化情况,绘制滚动体受载荷变化曲线。 三、实验设备 1、 ZQGZ滚动轴承实验台 2、滚动轴承:圆锥滚子轴承30310 深沟球轴承 6310 3、可移动得滚动轴承座:1对; 4、滚动轴承、径向加载装置:1套; (作用点位置可在0~180mm内任意调节); 5、滚动轴承径向载荷传感器:精度等级:0、05 量程:10000N,1个/台; 6、轴向载荷传感器:量程:5000N,2个/台; 四、实验内容及注意事项 1、滚动轴承径向载荷分布及变化实验;测试在总轴向与径向载荷作用下,滚动轴承径向载荷分布及变化情况,并作出载荷分布曲线。 2、注意事项 a)选定一对实验轴承,本实验装置提供向心球轴承与圆锥滚子轴承,每一种 轴承有大小型号各一种出厂已装配好可任选一台、 b)实验前首先调整好左右轴向受力支撑(称重传感器支座)位置,使端盖外伸 与传感器刚好接触、 c)静态实验需调节加载支座,使加载力得方向保持在一定角度,并保持空载。 d)将测力及传感器得检测点一一接至检测系统对应得接口 e)打开电源,使检测系统处于工作状态、 f)将检测系统与PC 机串行口相连,并打开分析界面、

计算机网络抓包实验报告

实验报告二

学号1040407105 实验项目 名称 利用Wireshark 进行抓包分析 上面的截图是抓取到的包,下面分别针对其中的一个TCP,UDP和ICMP进行分析 1.TCP TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793 说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。 在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

学号1040407105 实验项目 名称 利用Wireshark 进行抓包分析 首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。 在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。 在拥塞控制上,采用慢启动算法。 对于上面的抓包,选取其中的一个TCP进行分析 Source:119.147.91.131 Destination:180.118.215.175 Length:56 Info:http>500001[FIN,ACK] Seq=41,Ack=2877,win=66528 Len=0 1.1抓到的数据链路层中的帧 Frame 211:56bytes 即所抓到的帧的序号为211,大小是56字节 1.2 IP层中的IP数据报 Header Length:20bytes 即首部长度为20个字节;

北邮大三下数据库实验报告5

北京邮电大学 实验报告 课程名称数据库系统原理 实验内容实验5 数据库完整性与安全性实验 班级2013211***姓名 *** 指导老师成绩_________ 2016年05月20日

实验5 数据库完整性与安全性实验 实验目的: 1.通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方 法,加深对数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法, 加深对数据库安全性的理解 实验内容 完整性实验与要求: 1.分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 定义主键: 方法一:使用Enterprise Manager设置主键(以book表为例) ①光标移到book表的位置,右键->设计 ②在你要选的属性列右键->设置主键,完成。

方法二:使用SQL语句。 ①右键数据库,新建查询 设置外键: 方法一:使用Enterprise Manager设置外键(以student表为例) ①单击student表,鼠标移到“键”文件夹,单击右键,选择“新建外键”。 ②选择“表和列规范”进行设置

③我们想在student表设置class_id属性为外键,按照下图选择,点击确定,保存即可。 方法二:SQL语句 新建查询,输入如图语句。

2.向学生表插入具有相同学号的数据,验证其实体完整性约束; Student表的主键是学号,所以不能插入有相同学号的学生。 3.向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; Class表中没有“2013211302”这个班级,所以无法插入。改变班级号为class表中存在的,则能够进行插入,结果如下: 4.删除教师表中的所有数据,验证参照完整性约束;

滑动窗口实验报告

滑动窗口实验报告(含源码) 一、实验目的 1.实现一个数据链路层协议的数据传送部分。 2.更好地理解数据链路层协议中的“滑动窗口”技术的基本工作 原理。 3.掌握计算机网络协议的基本实现技术。 二、实验要求 在一个数据链路层的模拟实现环境中,用C语言实现下两个数据链路层协议。 1.1比特滑动窗口协议 2.回退N帧滑动窗口协议 三、实验内容 充分理解滑动窗口协议,根据滑动窗口协议,模拟滑动窗口协议中发送端的功能,对系统发送的帧进行缓存并加入窗口等待确认,并在超时或者错误时对部分帧进行重传。 编写停等及退回N滑动窗口协议函数,响应系统的发送请求、接收帧消息以及超时消息,并根据滑动窗口协议进行相应处理。四、源代码及注释 #include "" #include using namespace std; extern void SendFRAMEPacket(unsigned char* pData, unsigned int len); ead = *p;

buffer[last_buffered_frame % BUFFER_SIZE].size = bufferSize; ize); continue; SendFRAMEPacket((unsigned char*)(&buffer[i % BUFFER_SIZE]), buffer[i % BUFFER_SIZE].size); } return 0; } default : break; } return -1; } /* * 回退n帧测试函数 */ int stud_slide_window_back_n_frame(char *pBuffer, int bufferSize, UINT8 messageType) { Frame_head* p = (Frame_head*)pBuffer; unsigned int timeoutNum = *(unsigned int*)pBuffer; switch (messageType) { ead = *p; buffer[last_buffered_frame % BUFFER_SIZE].size = bufferSize; ++ last_buffered_frame; cout << "exp_ack : " << exp_ack << endl; if (ack >= exp_ack) { ++ expect_frame; if (next_frame < last_buffered_frame) { SendFRAMEPacket((unsigned char*)(&buffer[next_frame % BUFFER_SIZE]), buffer[next_frame % BUFFER_SIZE].size); ++ next_frame; } } else break; } return 0;

液体动压滑动轴承实验指导书

实验四 液体动压滑动轴承实验指导书 一、实验目的 1、了解实验台的构造和工作原理,通过实验进一步了解动压润滑的形成,加深对动 压原理的认识。 2、学习动压轴承油膜压力分布的测定方法,绘制油膜压力径向和轴向分布图,验证 理论分布曲线。 3、掌握动压轴承摩擦特征曲线的测定方法,绘制f —n 曲线,加深对润滑状态与各参 数间关系的理解。 二、实验原理及装置 1.概述 此项实验是径向加载的液体动压滑动轴承实验。其目的是测量轴承与转轴间隙中的 油膜在圆周方向的压力分布值(见图1),并验证径向油膜压力最大值批P MAX 不在外载荷F R 的垂线位置,而是在最小油膜厚度附近,即0=??X P 处。该实验还可以测试下列几项内容。(1)测量轴承与转轴间隙中的油膜在轴线方向的压力分布值,并验证轴向压力分布曲线呈抛物线分布,即轴向油膜最大压力值在轴承宽度的中间位置(见图2)。 图1 周向油膜压力分布曲线 图2轴向油膜压力分布曲线 (2)测量径向液体动压滑动轴承在不同转速、不同载荷、不同粘度润滑油情况下的摩 擦系数f 值,根据取得的一系列f 值,可以做出滑动轴承的摩擦特性曲线,进而分析液体动压的形成过程,并找出非液体摩擦到液体摩擦的临界点,以便确定一定载荷、一定粘度润滑油情况下形成液体动压的最低转速,或一定转速、一定粘度润滑油情况下保证液体动压状态的最大载荷(见图3)。

图3 轴承摩擦特性曲线 2.实验装置及原理 本实验使用湖南长庆科教仪器有限公司生产的HS-B型液体动压轴承实验台如图4所示,它由传动装置、加载装置、摩擦系数测量装置、油膜压力测量装置和被试验轴承等组成。 图4 滑动轴承试验台 1.操纵面板2.电机3.三角带4.轴向油压传感器接头5.外加载荷传感器6.螺旋加载杆7.摩擦力传感器测力装置8.径向油压传感器(7只)9.传感器支撑板10.主轴11.主轴瓦12.主轴箱 1)传动装置 由直流电机2通过三角带3带动主轴顺时针旋转,由无级调速器实现无级调速。本实验台主轴的转速范围为3~375rpm,主轴的转速由装在面板1上的数码管直接读出。2)加载装置

TCP协议实验报告

学生实验报告 姓名:_________ 学号:____________ 班级:________________ 指导老师:_______________ 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1. 通过协议分析软件掌握TCP协议的报文格式; 2. 理解TCP报文段首部各字段的含义; 3. 理解TCP建立连接的三次握手机制; 4. 了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上in ternet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可 靠地传输到接收方; TCP首部格式如下图所示: 位U 3 16 24 31 首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口 号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务, 它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号 表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收 了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号 字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位 用来建立连接和关闭连接;URG和紧急指针通常较少使用。接收端利用窗口字段通知发送 方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出

相关文档
最新文档