搜档网
当前位置:搜档网 › 计算机网络滑动窗口协议

计算机网络滑动窗口协议

《计算机通信原理》课程项目

实施报告

题目(3):滑动窗口协议的模拟

组号:

任课教师:

组长:

成员: 20%

成员: 20%

成员: 20%

成员: 20%

联系方式:

目录

一、项目要求 (3)

二、项目成果 (3)

三、程序原理 (3)

1、滑动窗口协议 (3)

A、窗口机制 (3)

B、1比特滑动窗口协议 (5)

C、后退停等协议 (6)

D、选择重传协议 (7)

2、用户数据报协议UDP (7)

四、程序设计说明 (8)

五、主要数据结构说明及主要函数 (8)

六、收获建议 (17)

一、项目要求

本课题通过设计软件,实现对滑动窗口协议的模拟.

设计要求:

1. Windows 环境下运行,程序应在1-2台PC上运行;

2. 演示在两台计算机间传输文件。允许在同一台机器中用两个独立线程来模拟;

3. 功能:

1)由一台PC(线程)向另一台PC(线程)发送数据包,界面应显示出双方帧个数变化,帧序号,发送和接受速度,暂停或重传提示等,界面中必须动态显示数据帧的发送情况和接受情况,包括在相应窗口详细显示相应的ACK和其他收发数据帧后发出的消息,以表明模拟协议的正确运作过程。

2)接收方及发送方应具有按序收发帧的能力;

3)接受方应有固定大小的滑动窗口,并对收到信息缓存。当发送方速度过快或帧丢失(超时),接受方应发送消息,要求暂停或重传;

4)发送方发送速度应可以调节,并可以暂停或重发;

5)发送方重传时可仅重传帧(丢失帧);

4. 以上几个功能应可视,要求有简单界面;

二、项目成果

三、程序原理

1、滑动窗口协议

A、窗口机制

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

以发送窗口尺寸为2,接收窗口尺寸为1

分析:

①初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧;

②发送方打开0号窗口,表示已发出0帧但尚确认返回信息。此时接收窗口状态不变;

③发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变;

④接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变;

⑤发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变;

⑥发送方继续发送2号帧,2号窗口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状态仍不变;

⑦接收方已收到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口状态不变;

⑧发送方收到接收方发来的1号帧收毕的确认信息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍不变。

若从滑动窗口的观点来统一看待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不同而已。1比特滑动窗口协议:发送窗口=1,接收窗口=1;后退n协议:发窗口>1,接收窗口>1;选择重传协议:发送窗口>1,接收窗口>1。

B、1比特滑动窗口协议

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

C、后退停等协议

由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设臵超时定时器。只要在所设臵的超时时间内仍收到确认帧,就要重发相应的数据帧。如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。

D、选择重传协议

在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT)。

2、用户数据报协议UDP

用户数据报协议(User Datagram Protocol, UDP)是一个简单的面向数据报的传输层协议,正式规范为RFC 768。UDP协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

主要特点:1、UDP是无连接的。2、UDP使用最大努力交付。3、UDP 是面向报文的。4、UDP没有阻塞控制。5、UDP支持一对一、一对多、多对一、多对多的交互通信。6、UDP的首部开销小。

UDP报头由4个域组成,其中每个域各占用2个字节,具体如下:

源端口号、目标端口号、数据报长度、校验值。

UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。

如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验值。

四、程序设计说明

程序可分为两个部分:发送端和接收端。发送端和接收端的主要程序流程大致相同如下:

1、打开程序,程序初始化(初始化套接字,创建套接字,绑定端口,创建

udp接收线程)

2、初始化完成后,发送端开始发送数据同时等待接收端发送等待帧号NAK,

接收端接收数据,并发送所要等待的帧号NAK,如果帧号正确则接收并提取,如果帧号不正确但是数据正确则放臵缓存区。

3、暂停或退出。

五、主要数据结构说明及主要函数

主要数据结构:

发送端:接收端:

Udp报文传输为不可靠传输,滑窗协议达到可靠传输,需要给udp报文的头部加上序号和确认帧,协议格式:

typedef UINT seqNum;

typedef enum { DATA, ACK, NAK } frameKind; //报文类型

typedef enum { NO_ERR, CKSUM_ERR, LOST_ERR } errMode; //错误模式

typedef struct { UCHAR data[MAX_PKT]; } packet; //报文内容

//

typedef struct

{

frameKind kind;

seqNum seq;

seqNum ack;

int size; //数据长度,不包括帧头

errMode err; //该字段用于模拟信道出错

} framframe_hdr;

typedef struct

{

frame_hdr hdr;

packet info;

} frame;

函数说明:

1、程序初始化(初始化套接字,创建套接字,绑定端口,创建udp接收线程)

BOOL CSenderDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

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

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

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

}

}

//初始化WinSock

WSADATA wsa;

if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)

{

AfxMessageBox("Failed to initialize the winsock 2 stack");

return FALSE;

}

//创建UDP Sender Socket

if ((m_UDPSndrSocket = WSASocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)

{

AfxMessageBox("Failed to create UDPSocket");

return FALSE;

}

//填充本地UDP Sender Socket地址结构

SOCKADDR_IN UDPSndrAddr;

memset(&UDPSndrAddr, 0, sizeof(SOCKADDR_IN));

UDPSndrAddr.sin_family = AF_INET;

UDPSndrAddr.sin_port = htons(3073);

UDPSndrAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

//绑定Sender UDP端口

if (bind(m_UDPSndrSocket, (sockaddr*)&UDPSndrAddr, sizeof(UDPSndrAddr)) == SOCKET_ERROR )

{

AfxMessageBox("Failed to bind UDPSndrAddr");

return FALSE;

}

//填充Receiver UDP地址

memset(&m_UDPRcvrAddr, 0, sizeof(SOCKADDR_IN));

m_UDPRcvrAddr.sin_family = AF_INET;

m_UDPRcvrAddr.sin_port = htons(3074);

m_UDPRcvrAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

//创建UDP数据包接收线程

DWORD dwThreadId;

CreateThread(NULL, 0, UdpReceiveThread, this, 0, &dwThreadId);

return TRUE; // return TRUE unless you set the focus to a control

}

2、按下开始发送键,的一些列窗口初始化以及错误帧设定,并且开启定时器,设定窗口界面控制:

void CSenderDlg::OnStartSend()

{

// TODO: Add your control notification handler code here

//获取对话框数据

if (!UpdateData(TRUE))

return;

//初始化所有参数

if (m_pOutBuf != NULL)

delete []m_pOutBuf;

m_pOutBuf = new frame[m_SendWndSize];

m_iBuffered = 0; //当前滑动窗口大小

m_ackExpected = 0; //发送窗口左侧

m_nextFrameToSend = 0; //发送窗口右侧+1

for (int i=0; i

m_errArray[i] = NO_ERR;

//设置帧的错误模式,模拟传输错误。

char tmp[256];

char *token;

char seps[] = " ";

int iSeq;

if (!m_strFrameLost.IsEmpty())

{

strcpy_s(tmp, m_strFrameLost);

token = strtok(tmp, seps);

while (token != NULL)

{

iSeq = atoi(token);

token = strtok(NULL, seps);

if (iSeq < 0 || iSeq > MAX_SEQ)

{

AfxMessageBox("Invalid seqno in LostFrame box, ignore it");

continue;

}

m_errArray[iSeq] = LOST_ERR;

}

}

if (!m_strChksumErr.IsEmpty())

{

strcpy_s(tmp, m_strChksumErr);

token = strtok(tmp, seps);

while (token != NULL)

{

iSeq = atoi(token);

token = strtok(NULL, seps);

if (iSeq < 0 || iSeq > MAX_SEQ)

{

AfxMessageBox("Invalid seqno in ChksumErr box, ignore it");

continue;

}

m_errArray[iSeq] = CKSUM_ERR;

}

}

//启动网络层数据发送定时器

SetTimer(ID_SEND_TIMER, m_SendInterval, NULL);

//窗口界面控制

GetDlgItem(IDC_SEND_WND_SIZE)->EnableWindow(FALSE);

GetDlgItem(IDC_SEND_INTERVAL)->EnableWindow(FALSE);

GetDlgItem(IDC_RESEND_TIMER)->EnableWindow(FALSE);

GetDlgItem(IDC_MANUAL_ERR)->EnableWindow(FALSE);

GetDlgItem(IDC_CHKSUM_ERR)->EnableWindow(FALSE);

GetDlgItem(IDC_FRAME_LOST)->EnableWindow(FALSE);

GetDlgItem(IDC_START_SEND)->EnableWindow(FALSE);

GetDlgItem(IDC_STOP_SEND)->EnableWindow();

CString strMsg;

strMsg.Format("%d", m_ackExpected);

GetDlgItem(IDC_BOTTOM)->SetWindowText(strMsg);

strMsg.Format("%d", m_nextFrameToSend);

GetDlgItem(IDC_TOP)->SetWindowText(strMsg);

GetDlgItem(IDC_CUR_FRAME)->SetWindowText("0");

}

3、计时器所要执行的程序:未超时的时候发送数据帧程序和超时之后重新发送数据帧程序void CSenderDlg::OnTimer(UINT nIDEvent)

{

switch(nIDEvent)

{

case ID_SEND_TIMER:

if (m_iBuffered < m_SendWndSize)

PostMessage(NETWORK_LAYTER_READY);

break;

default: //case timeout

int framePos = nIDEvent - ID_TIMER_USER;

ASSERT(framePos>=0 && framePos

ReSendFrame(framePos);

break;

}

CDialog::OnTimer(nIDEvent);

}

4、重新发送数据帧程序,重新发送的数据帧不带有错误模式

void CSenderDlg::ReSendFrame(int framePos)

{

frame* pFrame = &m_pOutBuf[framePos];

pFrame->hdr.err = NO_ERR; //重发时去掉出错模拟

ToPhysicalLayer((char*)pFrame, sizeof(pFrame->hdr));

SetTimer(framePos + ID_TIMER_USER, m_ResendTime, NULL); //重发定时器

//窗口显示

char buf[32];

_strtime_s(buf);

CString strMsg;

strMsg.Format("%s %5s %8s %7s %3d", buf, "data", "re-sent", "normal", pFrame->hdr.seq);

m_ListOutput.AddString(strMsg);

int iCount = m_ListOutput.GetCount();

if (iCount > 0)

m_ListOutput.SetCurSel(iCount-1);

}

5、UDP接收线程

DWORD CSenderDlg::UdpReceiveThread(LPVOID lpParam)

{

CSenderDlg* pDlg = (CSenderDlg*)lpParam;

pDlg->UdpReceive();

return 0;

}

6、接收udp函数,接收upd应答包,并检测是确认帧ack还是申请发送帧nak,并发出相应的指令,如果是ack正常发送,如果是nak则重发。

void CSenderDlg::UdpReceive()

{

char buf[sizeof(frame)];

int BytesReceived;

while (TRUE)

{

//接收UDP应答包

if ((BytesReceived=recvfrom(m_UDPSndrSocket, buf, sizeof(buf), 0, NULL, NULL)) == SOCKET_ERROR)

{

TRACE("Failed to recvfrom UDPSndrSocket, ErrCode: %d\n", WSAGetLastError()); //10054错误是正常的

//AfxMessageBox("Failed to recvfrom UDPSndrSocket");

continue;

}

ASSERT(BytesReceived>=sizeof(frame_hdr) && BytesReceived<=sizeof(frame));

if (BytesReceived>=sizeof(frame_hdr) && BytesReceived<=sizeof(frame))

{

frame* pFrame = (frame*)buf;

TRACE("Get %s%d, errMode=%d\n", (pFrame->hdr.kind==ACK)?"Ack":"Nak", pFrame->hdr.ack, pFrame->hdr.err);

if (pFrame->hdr.err == NO_ERR)

{

frame* p = new frame;

memcpy(p, buf, BytesReceived);

PostMessage(FRAME_ARRIVAL, (WPARAM)p);

}

}

}

}

7、从网络层准备工作,从网络层取得数据

LRESULT CSenderDlg::OnNetworkLayerReady(WPARAM wParam, LPARAM lParam)

{

m_iBuffered++; //扩展滑动窗口大小

FromNetworkLayer(&m_pOutBuf[m_nextFrameToSend % m_SendWndSize].info); //从网络层取得数据

SendFrame(DATA, m_nextFrameToSend); //发送数据帧

Inc(m_nextFrameToSend); //扩展滑动窗口右沿

//窗口显示

CString strMsg;

strMsg.Format("%d", m_ackExpected);

GetDlgItem(IDC_BOTTOM)->SetWindowText(strMsg);

strMsg.Format("%d", m_nextFrameToSend);

GetDlgItem(IDC_TOP)->SetWindowText(strMsg);

return 0;

}

8、发送帧,并在窗口显示发送情况

void CSenderDlg::SendFrame(frameKind fk, seqNum seq)

{

frame* pFrame = &m_pOutBuf[seq % m_SendWndSize];

pFrame->hdr.kind = fk;

pFrame->hdr.seq = seq;

pFrame->hdr.err = m_errArray[seq];

ToPhysicalLayer((char*)pFrame, sizeof(pFrame->hdr));

SetTimer(seq % m_SendWndSize + ID_TIMER_USER, m_ResendTime, NULL); //重发定时器

//窗口显示格式

char buf[32];

_strtime_s(buf);

CString strErrmode;

if (pFrame->hdr.err == NO_ERR)

strErrmode = "normal";

else if (pFrame->hdr.err == CKSUM_ERR)

strErrmode = "chkerr";

else

strErrmode = "lost";

CString strMsg;

strMsg.Format("%s %5s %8s %7s %3d", buf, "data", "sent", strErrmode, pFrame->hdr.seq);

m_ListOutput.AddString(strMsg);

int iCount = m_ListOutput.GetCount();

if (iCount > 0)

m_ListOutput.SetCurSel(iCount-1);

}

9、从网络层将udp帧发送到物理层并显示发送。

void CSenderDlg::ToPhysicalLayer(char* pBuf, int iSize)

{

sendto(m_UDPSndrSocket, pBuf, iSize, 0, (sockaddr*)&m_UDPRcvrAddr, sizeof(m_UDPRcvrAddr));

//窗口显示

CString strMsg;

strMsg.Format("%d", ((frame_hdr*)pBuf)->seq);

GetDlgItem(IDC_CUR_FRAME)->SetWindowText(strMsg);

}

10、udp帧到达物理层,显示和分析接收到的的udp报文是确认帧还是申请发送帧,并将其显示在界面上,并调整滑动窗口的位置。

LRESULT CSenderDlg::OnFrameArrival(WPARAM wParam, LPARAM lParam)

{

frame ackFrame;

FromPhysicalLayer((char*)&ackFrame, (char*)wParam);

//窗口显示

TRACE("arrived %s%d\n", (ackFrame.hdr.kind==ACK)?"Ack":"Nak", ackFrame.hdr.ack);

char buf[32];

_strtime_s(buf);

CString strMsg;

strMsg.Format("%s %5s %8s %7s %3d", buf, (ackFrame.hdr.kind==ACK)?"ack":"nak", "arrived", "normal", ackFrame.hdr.ack);

m_ListOutput.AddString(strMsg);

int iCount = m_ListOutput.GetCount();

if (iCount > 0)

m_ListOutput.SetCurSel(iCount-1);

if (ackFrame.hdr.kind==NAK && Between(m_ackExpected, ackFrame.hdr.ack, m_nextFrameToSend))

{

ReSendFrame(ackFrame.hdr.ack % m_SendWndSize);

}

seqNum ackedSeq = (ackFrame.hdr.kind==ACK)? ackFrame.hdr.ack : (ackFrame.hdr.ack+MAX_SEQ)%(MAX_SEQ+1);

while (Between(m_ackExpected, ackedSeq, m_nextFrameToSend))

{

m_iBuffered--;

KillTimer(m_ackExpected % m_SendWndSize + ID_TIMER_USER);

Inc(m_ackExpected); //扩展滑动窗口左沿

//窗口显示

CString strMsg;

strMsg.Format("%d", m_ackExpected);

GetDlgItem(IDC_BOTTOM)->SetWindowText(strMsg);

strMsg.Format("%d", m_nextFrameToSend);

GetDlgItem(IDC_TOP)->SetWindowText(strMsg);

}

return 0;

}

10、停止发送:

void CSenderDlg::OnStopSend()

{

// TODO: Add your control notification handler code here

//停止所有定时器

for (int i=1; i

KillTimer(i);

//窗口界面控制

GetDlgItem(IDC_SEND_WND_SIZE)->EnableWindow();

GetDlgItem(IDC_SEND_INTERVAL)->EnableWindow();

GetDlgItem(IDC_RESEND_TIMER)->EnableWindow();

//GetDlgItem(IDC_RANDOM_ERR)->EnableWindow();

GetDlgItem(IDC_MANUAL_ERR)->EnableWindow();

GetDlgItem(IDC_CHKSUM_ERR)->EnableWindow();

GetDlgItem(IDC_FRAME_LOST)->EnableWindow();

GetDlgItem(IDC_START_SEND)->EnableWindow();

GetDlgItem(IDC_STOP_SEND)->EnableWindow(FALSE);

}

六、收获建议

滑动窗口算法为计算机网络中的经典算法,是实现可靠通信较为高效可靠地算法。本次项目通过MFC来实现滑动窗口协议的模拟,通过socket套接字来实现网络连接传输,通过算法来实现滑动窗口协议。通过做项目熟悉了mfc编程,和windows编程,对网络套接字socket有了初步的了解,对滑动窗口协议也有的深入的认识。由于是基于udp,在写滑动窗口的时候也会和tcp滑动窗口进行对比,在对比的过程中也加深了对tcp和udp运输层的认识。在socket套接字的时候也对ip和端口有了认识,进一步认识和了解了网络层的原理和结构。此次项目设计面较广,通过项目也熟练了面向对象语言VC++,可谓收获颇丰,不管是理论知识的进一步理解还是实践的锻炼都收获巨大。

滑动窗口协议分析与实现

滑动窗口协议分析与实现 目录 1 引言 (2) 1.1 滑动窗口协议概述 (2) 1.2 本次设计任务 (2) 2 滑动窗口协议介绍 (3) 2.1 滑动窗口协议工作原理 (3)

1 引言 1.1 滑动窗口协议概述 滑动窗口协议可能是计算机网络中最著名的算法,它是TCP使用的一种流量控制方法。滑动窗口协议也称为回退N步协议Go-Back-N(GBN)协议,它可以有三个不同的功能,第一个功能,即在不可靠链路上可靠地传输帧。(一般来说,该算法被用于在一个不可靠的网络上可靠地传输消息。)这是该算法的核心功能。 滑动窗口算法的第二个功能是用于保持帧的传输顺序。这在接收方比较容易实现,因为每个帧有一个序号,接收方要保证已经向上层协议传递了所有序号比当前帧小的帧,才向上传送该当前帧。即,接收方缓存了(即没有传送)错序的帧。 滑动窗口算法的第三个功能是,它有时支持流量控制(flowcontrol),它是一种接收方能够控制发送方使其降低速度的反馈机制。这种机制用于抑制发送方发送速度过快,即抑制传输比接收方所能处理的更多的数据。 滑动窗口协议,允许发送方传输多个分组而不需等待确认,但它也受限于在流水账中未确认的分组数不能超过最大允许数N。只有在接收窗口向前滑动,即接收方向发送方发送了确认反馈,同时发送方收到确认消息时,发送窗口才能向前滑动。 1.2 本次设计任务 本次的设计任务是根据滑动窗口协议的工作原理,在WebRTC的基础上,用C++语言编写一个滑动窗口协议的程序。 要求该程序实现滑动窗口协议的基本功能功能,如:发送帧被接收与否的判断,帧超时重发,帧缓存等。同时需要设计一个测试机制,以检测该程序的正确性、可靠性。

计算机网络技术与应用教程答案

第一章 按网络拓扑结构,计算机网络可以划分为哪几类?广播通信信道子网的拓扑与点到点通信子网的拓扑. 一个计算机网路由哪三个主要部分组成? 1)若干个主机,它们向各用户提供服务;2)一个通信子网,它由一些专用的结点交换机 和连接这些结点的通信链路所组成;3)一系列的协议,这些协议是为在主机之间或主机和 子网之间的通信而用的。 第二章 2.双绞线、同轴电缆、光缆、无线传输介质各有什么特性?如何选择传输介质的特性主要有传输输率(和带宽有关)、传输距离(和衰减有关)、抗干扰能力以及安装的难易和费用的高低等几项,选择时要根据实际使用场合,综合上述因素进行考虑。如要求传输速率高,可选用电缆;要求价钱便宜,可选用双绞线;要求在不适宜铺设电缆的场合通信,可选用无线传输等。下述的特性比较可以总结出每种传输介质的特点,便于在实际中选择使用。典型的传输速率:光缆100Mbps ,同轴电缆10Mbps ,屏蔽双绞线 16Mbps ,双绞线10Mbps ,无线介质小于10Mbps 。传输距离:光缆几千米,同轴粗缆500 米,同轴细缆185 米,双绞线100 米,无线介质也可达几千米。抗干扰能力:有线介质中光缆抗干扰能力最好,非屏蔽双绞线最差。无线传输介质受外界影响较大,一般抗干扰能力较差。安装:光缆安装最困难,非屏蔽双绞线安装最简单。费用:对有线传输介质,其费用的高低依次为光缆、粗同轴电缆、屏蔽双绞线、细同轴电缆、非屏蔽双绞线。无线传输介质中,卫星传输最昂贵。 4. 物理层的接口有哪几个方面的特性?个包含些什么内容? 1)机械特性,指明接口所用的接线器的形状和尺寸、引线数目和排列、固定和锁定装置2) 电气特性,指明在接口电缆的各条线上出现的电压的范围的某一电 3)功能特性,指明某条线上出现 平的电压表示何意4 )规程特性,说明对于不同功能的各种可能事

计算机通信网络的设备及通信协议

Shaanxi University of Technology 计算机网络设备 及 通信协议 2010/10/25

前言 计算机网络就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。简单来说,计算机网络就是由通信线路互相连接的许多自主工作的计算机构成的集合体。计算机网络具有共享硬件、软件和数据资源的功能,具有对共享数据资源集中处理及管理和维护的能力。计算机网络中不同的计算机,服务器之间能传输数据,源于协议的存在。随着计算机网络的发展,不同的开发商开发了不同的网络通信方式。为了使通信成功可靠,网络中的所有主机都必须使用同一语言,不能带有方言。因而必须开发严格的标准定义主机之间的每个包中每个字中的每一位。这些标准来自于多个组织的努力,约定好通用的通信方式,即协议。这些都使通信更容易。一个完整的计算机通信系统应该包含各种硬件设备及他们之间的通信协议。

一计算机网络设备 1 网络互联设备 网络互联是指LAN-LAN WAN-WAN LAN-WAN之间的连通和互操作能力这种互操作指的是互联网上一个网络的用户和另一个网络的用户可以透明的交换信息而不管这两个网络上的硬件软件差异。 2 中继器 网络连接最简单的设备就是中继器其作用是对弱信号再生并将再生信号发送到网络的其它分支上提供电流以实现长距离传输中继器工作在OSI模型的最低层物理层只能用来连接具有相同物理层协议的LAN 中继器主要用于扩充LAN电缆段的距离限制比如10BASE 5粗以太网由于收发器只能提供500米的驱动能力而MAC协议允许粗以太网电缆最长为2.5公里这样每500米之间就可以利用中继器来连接但是中继器不具备检错和纠错的功能因此错误的数据经中继器后仍被复制到另一电缆段另外中继器还会引入延时。 3 集线器 集线器(HUB)是一种特殊的中继器它可以转接多个网络电缆把多个网络段连接起来随着10BASE T标准的推出以及集线器的使用使得总线网络拓扑结构逐渐向星型网络拓扑使用非屏蔽双绞线的模式转化该模式的核心就是集线器它连接网络的各个节点其优点是当网络上的某

计算机网络技术与应用知识点大全

1.计算机网络是计算机技术与通信技术紧密结合的产物 2.计算机网络的发展大致分四个阶段:1)以单台机为中心的远程联 机系统,构乘面向终端的计算机网络;2)多个主机互联,各主机相互独立,无主从关系的计算机网络;3)具有统一的网络体系结构,遵循国际标准化协议的计算机网络:4)网络互联与高速网络。 3.逻辑构成:通信子网、资源子网 4.因特网是在原有ARPAnet技术上经过改造而逐步发展起来的,它 对任何计算机开放,只要遵循TCP/IP 的标准并申请到IP地址,就可以通过信道接入Internet。TCP/IP传输控制协议(TCP)/互联网协议(IP) 5.电话、有线电视和数据等都有各自不同的网络(三网合一) 6.计算机网络定义:将处于不同地理位置,并具有独立计算能力的 计算机系统经过传输介质和通信设备相互联接,在网络操作系统和网络通信软件的控制下实现资源共享的计算机的集合。 7.计算机网络由通信子网和资源子网两部分构成(概念上讲) 8.网络软件可分为网络系统软件和网络应用软件 9.分类: a、按传输技术:广播式网络、点一点式网络(星型、树型、网型) b、按分布距离:局域网、广域网、城域网 c、拓扑结构:星型、总线型、环型、树型、网状结构 10.客户机/服务器结构(c/s)

11.计算机网络的性能指标:速率带宽 12.带宽:“高数据率”的同义词,单位是“比特每秒“ 13.总时延=发送时延+传播时延+处理时延+排队时延 (发送时延=数据块长度(比特)/信道带宽(比特/秒) 传播时延=信道长度(米)/信道在信道上的传播速率(米/秒)) 14.误码率=传错位数/传输总位数 15.网络协议:为网络数据交换而制定的规定、约束与标准 三要素:1)语法:用户数据与控制信息的结构和格式。 2)语义:需要发出何种控制信息以及完成的动作和做出的响应。3)时序:对事件实现顺序的详细说明 16.层次 N层向n+1层提供服务,n+1层使用n层提供的服务。 17.层次模型各层的功能 (1)物理层:单位:比特 物理层的作用是在物理介质上传输原始的数据比特流。 (2)数据链路层:单位:帧 相邻网络节点的信息流动 (3)网络层单位:分组 从源节点到目标节点的路由选择问题 (4)传输层单位:报文 第一个端对端,即主机到主机的层次 (5)会话层(6)表示层

计算机网络与应用基础知识(复习用)

js1. 计算机网络是利用通信线路将地理位置分散的、具有独立功能的许多计算机系统或设备连接起来,按某种谢雨进行数据通信,以实现信息的传递和共享的系统。 2.计算机网络的分类:按使用目的可分为公用网、专用网和利用公用网组建的专用网;按交换方式可分为电路交换网、报文交换网、分组交换网和混合交换网;按网络拓扑结构可分为总线型、星型、环形、树形和混合型;按网络的地理范围可分为局域网、城域网、广域网和互联网。 3.计算机网络的功能:数据通信;资源共享;增加可靠性和实用性;负载均衡与分布式处理;集中式管理;综合信息服务。 4.网络体系结构:物理层;数据链路层;网络层;传输层;会话层;表示层;应用层。 5.网络协议的定义:保证网络中的各方能够正确、协调地进行通信,在数据交换和传输中必须遵守事先规定的准则,这些准则必须规定数据传输的格式、顺序及控制信息的内容,这个准则为网络协议。 6.网络协议由3要素组成:语法、语义、时序。 7.常见的协议由TCP/IP协议,IPX/SPX协议、NetBEUI协议等。 第二章 1.被传输的二进制代码成为数据。 2.信号是数据在传输过程中的电信号表示形式。 (以下非重点- -) 3.数据通信系统的基本通信模型:产生和发送信息的一段叫信源,接受信息的一端叫信宿。信源与信宿通过通信线路进行通信,在数据通信系统中,也将通信线路称为信道。 4.在数据通信系统中,传输模拟信号的系统称为模拟通信系统,而传输数字信号的系统称为数字通信系统。 5.模拟通信系统通常由信源、调制器、信道、解调器、信宿预计噪声源组成信源所产生的原始模拟信号一般经过调制再通过信道传输。到达信宿后,通过解调器将信号解调出来。 6.数字通信系统由信源、信源编码器、信道编码器、调制器、信道、解调器、信道译码器、信源译码器、信宿、噪声源以及发送端和接收端始终同步组成。、

浅析计算机网络通信协议

浅析计算机网络通信协议 发表时间:2009-02-23T16:25:14.153Z 来源:《中小企业管理与科技》供稿作者:李雨冯迪[导读] 计算机与计算机之间的通信离不开通信协议,通信协议实际上是一组规定和约定的集合。两摘要:计算机与计算机之间的通信离不开通信协议,通信协议实际上是一组规定和约定的集合。两台计算机在通信时必须约定好本次通信做什么,是进行文件传输,还是发送电子邮件;怎样通信,什么时间通信等。 关键词:计算机网络通信协议 0 引言 本文就计算机网络通信协议、选择网络通信协议的原则、TCP/IP通信协议的安装、设置和测试等,作进一步的研究和探讨。 1 网络通信协议 目前,局域网中常用的通信协议主要有:NetBEUI协议、IPX/SPX兼容协议和TCP/IP协议。 1.1 NetBEUI协议①NetBEUI是一种体积小、效率高、速度快的通信协议。在微软如今的主流产品,在Windows和Windows NT中,NetBEUI已成为其固有的缺省协议。NetBEUI是专门为几台到百余台PC所组成的单网段部门级小型局域网而设计的。②NetBEUI中包含一个网络接口标准NetBIOS。NetBIOS是IBM用于实现PC间相互通信的标准,是一种在小型局域网上使用的通信规范。该网络由PC组成,最大用户数不超过30个。 1.2 IPX/SPX及其兼容协议①IPX/SPX是Novell公司的通信协议集。与NetBEUI的明显区别是,IPX/SPX显得比较庞大,在复杂环境下具有很强的适应性。因为,IPX/SPX在设计一开始就考虑了多网段的问题,具有强大的路由功能,适合于大型网络使用。②IPX/SPX及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。Novell网络中的网络地址由两部分组成:标明物理网段的“网络ID”和标明特殊设备的“节点ID”。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号。所有的网络ID和节点ID都是一个独一无二的“内部IPX地址”。正是由于网络地址的唯一性,才使IPX/SPX具有较强的路由功能。在IPX/SPX协议中,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,如果接收节点在同一网段内,就直接按该节点的ID将数据传给它;如果接收节点是远程的,数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX 在整个协议中负责对所传输的数据进行无差错处理,IPX/SPX也叫做“Novell的协议集”。③NWLink通信协议。Windows NT中提供了两个IPX/SPX的兼容协议:“NWLink SPX/SPX兼容协议”和“NWLink NetBIOS”,两者统称为“NWLink通信协议”。NWLink协议是Novell公司IPX/SPX协议在微软网络中的实现,它在继承IPX/SPX协议优点的同时,更适应了微软的操作系统和网络环境。Windows NT网络和Windows的用户,可以利用NWLink协议获得NetWare服务器的服务。从Novell环境转向微软平台,或两种平台共存时,NWLink通信协议是最好的选择。 1.3 TCP/IP协议 TCP/IP是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP最早出现在Unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,TCP/IP也是Internet的基础协议。①TCP/IP具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也为它的使用带来了许多不便,在使用NetBEUI和IPX/SPX及其兼容协议时都不需要进行配置,而TCP/IP协议在使用时首先要进行复杂的设置。每个节点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。在Windows NT中提供了一个称为动态主机配置协议(DHCP)的工具,它可自动为客户机分配连入网络时所需的信息,减轻了联网工作上的负担,并避免了出错。同IPX/SPX及其兼容协议一样,TCP/IP也是一种可路由的协议。TCP/IP的地址是分级的,这使得它很容易确定并找到网上的用户,同时也提高了网络带宽的利用率。当需要时,运行TCP/IP协议的服务器(如Windows NT服务器)还可以被配置成TCP/IP路由器。与TCP/IP不同的是,IPX/SPX协议中的IPX使用的是一种广播协议,它经常出现广播包堵塞,所以无法获得最佳的网络带宽。②Windows中的TCP/IP协议。Windows的用户不但可以使用TCP/IP组建对等网,而且可以方便地接入其它的服务器。如果Windows工作站只安装了TCP/IP协议,它是不能直接加入Windows NT域的。虽然该工作站可通过运行在Windows NT服务器上的代理服务器(如Proxy Server)来访问Internet,但却不能通过它登录Windows NT服务器的域。要让只安装TCP/IP协议的Windows用户加入到Windows NT域,还必须在Windows上安装NetBEUI协议。③TCP/IP协议在局域网中的配置。只要掌握了一些有关TCP/IP方面的知识,使用起来也非常方便。④IP地址。TCP/IP协议也是靠自己的IP地址来识别在网上的位置和身份的,IP地址同样由“网络ID”和“节点ID”(或称HOST ID,主机地址)两部分组成。一个完整的IP地址用32位(bit)二进制数组成,每8位(1个字节)为一个段(Segment),共4段(Segment1~Segment4),段与段之间用“,”号隔开。为了便于应用,IP地址在实际使用时并不直接用二进制,而是用大家熟悉的十进制数表示,如19 2.168.0.1等。在选用IP地址时,总的原则是:网络中每个设备的IP地址必须唯一,在不同的设备上不允许出现相同的IP地址。⑤子网掩码。子网掩码是用于对子网的管理,主要是在多网段环境中对IP地址中的“网络ID”进行扩展。例如某个节点的IP地址为192.168.0.1,它是一个C类网。其中前面三段共24位用来表示“网络ID”;而最后一段共8位可以作为“节点ID”自由分配。⑥网关。网关(Gateway)是用来连接异种网络的设置。它充当了一个翻译的身份,负责对不同的通信协议进行翻译,使运行不同协议的两种网络之间可以实现相互通信。如运行TCP/IP协议的Windows NT用户要访问运行IPX/SPX协议的Novell网络资源时,则必须由网关作为中介。如果两个运行TCP/IP协议的网络之间进行互联,则可以使用Windows NT所提供的“默认网关”(Default Gateway)来完成。⑦主机名。网络中唯一能够代表用户或设备身份的只有IP地址。但一般情况下,众多的IP地址不容易记忆,操作起来也不方便。为了改善这种状况,我们可给予每个用户或设备一个有意义的名称,如“HAOYUN”。 2 选择网络通信协议的原则 2.1 所选协议要与网络结构和功能相一致。如你的网络存在多个网段或要通过路由器相连时,就不能使用不具备路由和跨网段操作功能的NetBEUI协议,而必须选择IPX/SPX或TCP/IP等协议。另外,如果你的网络规模较小,同时只是为了简单的文件和设备的共享,这时你最关心的就是网络速度,所以在选择协议时应选择占用内存小和带宽利用率高的协议,如NetBEUI。当你的网络规模较大,且网络结构复杂时,应选择可管理性和可扩充性较好的协议,如TCP/IP。 2.2 除特殊情况外,一个网络尽量只选择一种通信协议。现实中许多人的做法是一次选择多个协议,或选择系统所提供的所有协议,其实这样做是很不可取的。因为每个协议都要占用计算机的内存,选择的协议越多,占用计算机的内存资源就越多。一方面影响了计算机的运行速度,另一方面不利于网络的管理。事实上一个网络中一般一种通信协议就可以满足需要。

网络协议总结版

文章来源: https://www.sodocs.net/doc/a812900304.html,/blog/static/8312073620089634134536/ 这个小结,很难写啊~~~网络的东西太多了~~主要是细节很多~~而且,协议也很多,感觉也没有必要去了解这些细节~~似乎找不到重点~~~也没好的办法 ~~~copy了一大堆资料,整理了几个问题~~~~希望可以勾勒出网络的框架~~有的是概要性质的,也有些是细节方面的,选择性的瞄一眼吧~~~貌似有的写的挺详细,有的就很简略~~~最后一看,有点像大杂烩了,嘿嘿嘿,能看完算你狠(LF) ●电路交换技术、报文交换、分组交换 ●OSI的模型与 TCP/IP(*) ●CSMA/CD ●网桥 ●交换机 ●RIP 与 OSPF(*) ●集线器与交换器比较 ●虚拟局域网VLAN ●什么是三层交换 ●二层交换、三层交换、路由的比较 ●交换机与路由器比较(*) ●IP分片控制 ●TCP为什么要三次握手?(*) ●TCP拥塞控制 ●CS模型与SOCKET编程(*) 其他还有一些很小很小的问题,放到最后了,包括协议三个要素,协议分层优点,NAT,ICMP等等 我觉得网络的重点仍然是对网络的整体性概念,如果不是专门进行协议开发的话,一般不会深入到协议的细节。仍然有重点。协议的重点是TCP和IP,然后概要性需要了解的是UDP,ICMP,ARP,RIP,OSPF等等,其他像NAT、CIDR、DNS、HTTP、FTP、SNMP等有个简单的了解可能更好。 电路交换技术、报文交换、分组交换

OSI的模型与TCP/IP OSI每层功能及特点 物理层为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。物理层的作用:尽可能地屏蔽掉各种媒体的差异。 数据链路层负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。 网络层为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。 传输层传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。 会话层该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。 表示层该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。 应用层该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。 TCP/IP 网络接口层这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接收IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出IP数据报并转交给网际层。 网际网层(IP层)该层包括以下协议:IP(网际协议)、ICMP(Internet Control Message Protocol,因特网控制报文协议)、ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,主要处理数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP 协议在TCP/IP协议组中处于核心地位。 传输层该层提供TCP(传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传等。

课程设计报告-滑动窗口协议仿真

滁州学院 课程设计报告 课程名称:计算机网络 设计题目:滑动窗口协议仿真 系别:计算机与信息工程学院 专业:计算机科学与技术 组别:第五组 起止日期: 2011年11月24日~2011年12月7日指导教师:赵国柱 计算机与信息工程学院二○一一年制

课程设计任务书

一. 引言 二. 基本原理 2.1 窗口机制 2.2 1bit滑动窗口协议 2.3 后退N协议 2.4 选择重传协议 2.5 流量控制 三. 需求分析 3.1 课程设计题目 3.2 开发环境 3.3 运行环境 3.4 课程设计任务及要求 3.5 界面要求 3.6 网络接口要求 四. 详细设计 4.1 结构体的定义 4.2 发送方的主要函数 4.3 接受方的主要函数 五.源代码 5.1 发送方的主要代码 5.2 接收方的主要代码 六. 调试与操作说明 致谢 [参考文献] 课程设计的主要内容

1.引言 早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家 不知道网络拥塞状况,一起发送数据,导致中间结点阻塞掉包,谁也发不了数据。在 数据传输过程中,我们总是希望数据传输的更快一些,但如果发送方把数据发送的过快, 接收方就可能来不及接收,这就造成数据的丢失。因此就有了滑动窗口机制来解决这些 问题。早期我们使用的是1bit滑动窗口协议,一次只发送一个帧,等收到ack确认 才发下一个帧,这样对信道的利用率太低了。因此提出了一种采用累积确认的连续ARQ 协议,接收方不必对收到的帧逐个发送ack确认,而是收到几个帧后,对按序到达的最后一 个帧发送ack确认。同1bit滑动窗口协议相比,大大减少了ack数量,并消除了延迟ack 对传输效率的影响。但是,这会产生一个新的问题,如果发送方发送了5个帧,而中间的第 3个帧丢失了。这时接收方只能对前2个帧发出确认。发送方无法知道后面三个帧的下落, 只好把后面的3个帧再重传一次,这就是回退N协议。为了解决这个问题,又提出了选择重 传协议。当接收方发现某帧出错后,继续接受后面送来的正确的帧,只是不交付它们, 存放在自己的缓冲区中,并且要求发送方重传出错的那一帧。一旦收到重传来的帧后, 就可以将存于缓冲区中的其余帧一并按正确的顺序递交给主机。 2.基本原理 2.1 窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。接受方为其窗口内的每一个序号保留了一个缓冲区。与每个缓冲区相关联的还有一位,用来指明该缓冲区是满的还是空的。 若从滑动窗口的观点来统一看待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不同而已。1比特滑动窗口协议:发送窗口=1,接收窗口=1;后退N协议:发送窗口>1,接收窗口=1;选择重传协议:发送窗口>1,接收窗口>1。 2.2 1bit滑动窗口协议 当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。其发送方和接收方运行的流程图如图所示。

计算机网络技术与应用考试习题

1.1选择题 1、树型拓扑是(B )的一种变体。 A.总线型拓扑 B. 星型拓扑 C. 环型拓扑 D. 以上都不是 2、TCP/IP中的TCP对应于OSI/RM的(C )。 A. 数据链路层 B. 网络层 C. 传输层 D. 会话层 3、在OSI 模型中,第N层和其上的N+1层的关系是(A )。 A. N层为N+1层服务。 B. N+1层在从N层接受的信息前增加了一个头 C. N层利用N+1层提供的服务 D. N层对N+1层没有任何作用 4、具有中心结点的网络拓扑属于(B )。 A. 总线型拓扑 B. 星型拓扑 C. 环型拓扑 D. 以上都不是 5、OSI参考模型按照从上到下的顺序有(C )。 A. 应用层、传输层、网络层、物理层 B. 应用层、表示层、会话层、网络层、传输层、数据链路层、物理层 C. 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 D. 应用层、会话层、传输层、物理层 6、在(C )结构中,一个电缆故障会终止所有的传输。 A. 总线型拓扑 B. 星型拓扑 C. 环型拓扑 D. 以上都不是 7、OSI参考模型是由(D )组织提出的。 A. IEEE B. ANSI C. EIA/TIA D. ISO 8、OSI代表(D )。 A. Organization for Standards Institute B. Organization for Internet Standards C. Open Standards Institute D. Open System Interconnection 9、在不划分子网的情况下,IP地址205.140.36.88的(D )表示主机ID。 A. 205 B. 05.140 C. 88 D. 36.88 10、在不划分子网的情况下,IP地址129.66.51.37的(A )表示网络ID。 A.129.66 B.129 C. 192.66.51 D. 37 11、一个B类IP地址最多可以用()来划分子网。 A.8 B. 14 C. 16 D. 22 12、IP地址和它的子网掩码相与后,所得的是此IP地址的(C )。 A. A类地址 B. 主机ID C. 网络ID D.解析地址 1.2填空题 1、计算机网络就是把分布在不同地理位置的计算机、终端,通过通信设备和线路连接起来,以功能完善的网络软件(网络通信协议、信息交换方式及网络操作系统等),实现互相通信及网络资源共享的系统。 2、计算机网络按照网络的覆盖范围可分为局域网、广域网和城域网。 3、计算机网络由资源子网和通信子网组成。 4、试举例4种主要的网络互连设备:路由器、交换机、集线器、中继器。 5、网络互连设备只实现在物理层之间互连称为中继器和集线器,要在数据链路之间互连称为网桥和交换器,要在网络层之间互连称为路由器,网络以上层次之间的互连称为网关。 6、IP地址是由网络标识和主机标识两部分组成。 7、IP地址190.233.27.13是 B 类地址。 8、B类地址的默认掩码是255.255.0.0 。

计算机网络应用 计算机网络通信协议概述

计算机网络应用计算机网络通信协议概述 计算机网络是一个各种信息交换的场所,所有接入网络的计算机都可以通过彼此之间的物理连接设备进行信息的交换。但是,单纯依靠这些物理设备并不能实现信息的交换,这就好像计算机只有硬件系统是无法使用的,它得需要软件系统来支配。 因此,计算机网络需要通过协议,来支配数据的传输,才能发挥网络通信的作用。协议在计算机网络中,具有以下几个方面的特点: ●协议中的双方都必须了解协议,并且事先要知道所要完成任务的所有步骤; ●协议中的双方都必须同意并遵从它; ●协议必须是清楚的,每一步都要明确定义,保证不会引起误解。 1.什么是通信协议 在计算机网络中用于规定信息的格式以及如何发送和接收信息的一套规则被称为网络协议或通信协议。它是实现计算机与计算机之间实现数据传输、资源共享等功能的基础。例如,一次通信具体做什么,是进行文件传输?还是发送电子邮件?如何建立连接?如何相互识别?在什么时间进行通信等。只有遵从这个约定计算机间才能够实现相互通信和交流。 目前,在Internet上使用的TCP/IP协议就是一个典型的例子,任何计算机在接入Internet 后,只要运行TCP/IP协议才能够访问和使用Internet上的资源,若其不支持TCP/IP协议,那么它将是被孤立的一台计算机,无法实现与其它接入Internet的计算机间的相互通信。 通常,计算机网络通信协议(Protocol)有3个基本要素构成 ●语法(Syntax)即控制信息或数据的结构和格式 ●语义(Semantics)即需要发出何种控制信息,完成何种动作以及作出何种应答 ●时序(Timing)即通信双方信息交互的先后顺序及速率匹配和排序等 2.常见的通信协议 计算机网络通信协议遍及OSI参考模型的各个层次,如大家熟悉的TCP/IP、HTTP、FTP 等协议,到OSPF、IGP等协议,有上千种之多。 目前,在局域网中常见的3个网络通信协议分别是TCP/IP协议、IPX/SPX协议和NetBEUI 协议。除了在局域网外,还有广域网中,如X.25协议、HDLC协议、PPP协议等。 另外,由于网络节点之间关系的复杂性,在制定协议时,通常将其简单化,即将复杂成分分解成一些简单成分,最终复合起来。其层次结构具有如下几方面的特点。 ●结构中的每一层都规定有明确的任务及接口标准; ●将物理通信线路作为最底层,它使用从高层传输的参数,也是为高层提供服务的基 础 ●将用户的应用程序作为最高层 ●除了最高层之外,中间的每一层都要向其上一层提供服务,同时又是下一层的用户

计算机网络各层协议

应用层: ·DHCP(Dynamic Host Configuration Protocol)动态主机分配协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。实现即插即用连网。 ·BOOTP (BOOTstrapProtocol)引导程序协议/自举协议,使用UDP来使一个无盘工作站自动获取配置信息。静态的配置协议 DNS (Domain Name System)域名解析<端口号53> ·FTP(File Transfer Protocol)文件传输协议<端口号21>减少或消除不同操作系统下处理文件的不兼容性。 ·Gopher(The Internet Gopher Protocol)网际Gopher协议 ·HTTP(Hypertext Transfer Protocol)超文本传输协议<端口号80>,面向事务的应用层协议。 ·IMAP4 (Internet Message Access Protocol 4) Internet信息访问协议的第4版本 ·IRC(Internet Relay Chat )网络聊天协议 ·NNTP(Network News Transport Protocol)网络新闻传输协议 ·XMPP可扩展消息处理现场协议 ·POP3 (Post Office Protocol 3)即邮局协议的第3个版本,用于接受邮件。 ·SIP()信令控制协议 ·SMTP(Simple Mail Transfer Protocol)简单邮件传输协议<端口号25>用于发送邮件。 ·SNMP (Simple Network Management Protocol),简单网络管理协议 ·SSH(Secure Shell)安全外壳协议 ·TELNET远程登录协议<端口号23> ·RPC(Remote Procedure Call Protocol)(RFC-1831)远程过程调用协议 ·RTCP(RTP Control Protocol)RTP 控制协议 ·RTSP(Real Time Streaming Protocol)实时流传输协议 ·TLS(Transport Layer Security Protocol)安全传输层协议 ·SDP( Session Description Protocol)会话描述协议 ·SOAP(Simple Object Access Protocol)简单对象访问协议 ·GTP通用数据传输平台

计算机网络技术与应用教学大纲

计算机网络技术与应用》课程教学大纲、课程简介 课程名称:计算机网络技术与应用 英文名称:Technologies & Applications of Computer Network 课程代码0410401 课程类别公共基础课学分3 总学时48 先修课程电路分析基础、计算机基础知识课程概要 《计算机网络技术与应用》课程主要使学生了解和掌握计算机网络发展和原理体系结构、物理层、数据链路层、网络层、运输层、应用层,以及网络安全、因特网上的音频/视频服务、无线网络和下一代因特网等。学习计算机网络的形成与发展、网络定义、分类、拓扑结构、网络体系结构与协议、典型计算机网络、网络研究与发展、局域网基本概论、局域网介质访问控制方法、高速局域网技术、局域网组网设备、组网方法、结构化布线技术、网络互联技术。 二、教学目的及要求 通过教学使学生在学习基本数据通信技术的基础上,对计算机网络原理有全面的理解与掌握。使学生对Internet 体系和相关的常用协议有一定的认识。使学生对计算机网络中涉及的关键技术有一定程度的认识和掌握。要求学生理解计算机网络的通信基础。理解计算机网络体系结构及分层原理。掌握广播通信技术与点-点通信技术。掌握计算机网络的路由技术。掌握作为案例学习的Internet 常用协议。掌握网络管理和网络安全技术。 三、教学内容及学时分配 课程教学内容 第1 章概述讲课4 学时、上机6 学时 内容:计算机网络在信息时代中的作用;因特网的概述、组成、发展、类别、性能;网络体系结构。 要求:了解计算机网络在信息时代中的作用;理解因特网的概述、组成、发展、类别、性能;掌握网络体系结构。 第2 章物理层讲课2 学时 内容:物理层的概念;数据通信;传输媒体;信道复用技术;数字传输系统;宽带接入技术。 要求:了解信道复用技术、数字传输系统;理解数据通信、传输媒体;掌握物理层概念、宽带接入技术。 第3 章数据链路层讲课4 学时 内容:点对点信道的数据链路层;点对点协议PPP;广播信道的数据链路层;广播信道的以太网;扩展的以太网;高速以太网;其他高速局域网或接口。 要求:了解扩展的以太网、高速以太网、其他高速局域网或接口;理解PPP、广播信道的以太网;掌握点对点信道和广播信道的数据链路层。

网络组建 计算机网络中通信协议的概念

网络组建计算机网络中通信协议的概念 网络协议即网络中传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。 但是两个实体间仅发送二进制位数据就指望对方能理解所传输的信息的内容是不可能的。为了进行通信,实体之间一定要达成一个协议(控制数据通信的一组规则)。一个协议定义了通信内容是什么,通信如何进行以及何时进行。协议的关键是语法、语义和时序。 ●语法 语法是指数据的结构或格式,指数据表示的顺序。例如,一个简单的协议可以定义数据的头部(前八个比特)是发送者的地址,中部(第二组八个比特)是接收者地址,而尾部就是消息本身。 ●语义 语义指比特流每一部分的含义。一个特定的比特模式该如何理解?基于这样的理解该采取何种动作?例如,一个地址指的是要经过的路由器还是消息的目的地址?这些都建立在语义的定义之上。 ●时序 时序包括两方面的特征:数据何时发送以及以多快的速率发送。例如,如果发送方以100Mbps(兆位每秒)速率发送数据而接收方仅能处理1Mbps速率的数据,这样的传输会使接收者负载过重,并导致大量数据流失。 一个协议是一整套规则,既可以作为一个整体实施,也可以作为多个结构化实施。协议是复合的,可以比较方便地分成几部分,每个部分分别执行。因此,协议是指作为约束整个通信过程的整套规则,它可以由层次协议构成。 作为一整套规范数据交换的规则,协议都会定义下述一些功能: ●分割将较大的数据单元分成较小的数据包(相反的过程则称为重新组合) ●寻址设备的彼此识别、路径选择 ●封装在数据单元(数据包)的始端增加控制信息 ●排序报文发送与接收顺序 ●信息流控制收、发双方在信息流过大时,采取的一系列措施 ●同步保持收发双方对数据传输单元的一致性认同。 ●干路传输多个用户信息共同干路 ●连接控制通信实体之间建立和终止链路的过程 一台计算机只有在遵守网络协议的前提下,才能在网络上与其他计算机进行正常的通信。网络协议通常被分为几个层次,每层完成自己单独的功能。通信双方只有在共同的层次间才能相互联系。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBIOS协议等等。在互联网上被广泛采用的是TCP/IP协议,在局域网中用得的比较多的是IPX/SPX.。用户如果访问Internet,则必须在网络协议中添加TCP/IP协议。

(完整版)计算机网络协议总结

1.物理层(比特流) 2.数据链路层(帧) PPP(点对点协议):面向连接,不可靠,只支持全双工链路,成帧技术,PPP 帧是面向字节的,所有的PPP帧的长度都是整数字节的。 只检错不纠错,没有流量控制。 CSMA/CD(载波监听多点接入/碰撞检测协议):截断二进制指数退避算法指数 退避算法 网桥的自学习算法 3.网络层(IP数据报或称分组、包) IP协议:无连接、不可靠、尽力而为型 ARP(地址解析协议):IP地址→物理地址(MAC地址) RARP(逆地址解析协议):物理地址(MAC地址)→IP地址 分组转发算法:直接交付、间接交付 ICMP(网际控制报文协议):ICMP允许主机或路由器报告差错情况和提供有关 异常情况的报告。ICMP报文封装在IP包中。 (ICMP报文是IP层数据报的数据) 路由选择协议: ?内部网关协议IGP:RIP,OSPF ?外部网关协议EGP:BGP RIP(路由信息协议):基于距离向量的路由选择算法。 RIP用UDP用户数据报传送。 适合于规模较小的网络,最大跳数不超过15。 缺点:“好消息传播得快,而坏消息传播得慢”。 OSPF(开放最短路径优先):基于链路状态协议LS OSPF 直接用IP数据报传送 BGP(边界网关协议):不同AS之间的路由协议。 用路径向量(path vector)路由协议 BGP用TCP报文传送 力求寻找一条能够到达目的网络且比较好的路由。 并非要寻找一条最佳路由。 IGMP(网际组管理协议):多播协议。IGMP 使用IP 数据报传递其报文BOOTP(引导程序协议):需要人工进行协议配置,使用UDP报文封装,也是 无盘系统用来获取IP地址的方法 DHCP(动态主机配置协议):自动分配主机地址 VPN(虚拟专用网):利用公用的因特网作为本机构各专用网之间的通信载体。NAT(网络地址转换):①在公司内部,每台机器都有一个形如10.X.Y.Z的地址。 三段私有IP地址 a)10.0.0.0 ~10.255.255.255/8 b)172.16.0.0~172.31.255.255/12 c)192.168.0.0~192.168.255.255/16 ②当一个分组离开公司的时候,首先要通过一个NAT盒, 此NAT盒将内部的IP源地址转换成该公司所拥有的真 实IP地址,198.60.42.12.。③通常与防火墙组合。

课程设计报告滑动窗口协议仿真精编

课程设计报告滑动窗口 协议仿真精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

滁州学院 课程设计报告 课程名称:计算机网络 设计题目:滑动窗口协议仿真 系别:计算机与信息工程学院 专业:计算机科学与技术 组别:第五组 起止日期: 2011年11月24日~2011年12月7日指导教师:赵国柱 计算机与信息工程学院二○一一年制

课程设计任务书 一. 引言 二. 基本原理 窗口机制 1bit滑动窗口协议 后退N协议 选择重传协议 流量控制

三. 需求分析 课程设计题目 开发环境 运行环境 课程设计任务及要求 界面要求 网络接口要求 四. 详细设计 结构体的定义 发送方的主要函数 接受方的主要函数五. 源代码 发送方的主要代码 接收方的主要代码六. 调试与操作说明 致谢 [参考文献]

课程设计的主要内容 1.引言 早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,一起发送数据,导致中间结点阻塞掉包,谁也发不了数据。在数据传输过程中,我们总是希望数据传输的更快一些,但如果发送方把数据发送的过快,接收方就可能来不及接收,这就造成数据的丢失。因此就有了滑动窗口机制来解决这些问题。早期我们使用的是1bit滑动窗口协议,一次只发送一个帧,等收到ack确认才发下一个帧,这样对信道的利用率太低了。因此提出了一种采用累积确认的连续ARQ 协议,接收方不必对收到的帧逐个发送ack确认,而是收到几个帧后,对按序到达的最后一个帧发送ack确认。同1bit滑动窗口协议相比,大大减少了ack数量,并消除了延迟ack对传输效率的影响。但是,这会产生一个新的问题,如果发送方发送了5个帧,而中间的第3个帧丢失了。这时接收方只能对前2个帧发出确认。发送方无法知道后面三个帧的下落,只好把后面的3个帧再重传一次,这就是回退N协议。为了解决这个问题,又提出了选择重传协议。当接收方发现某帧出错后,继续接受后面送来的

相关主题