国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

代寫ECSE 4670、Python程序語(yǔ)言代做

時(shí)間:2023-11-24  來(lái)源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



ECSE 4670: Computer Communication Networks
Fall 2023
 Programming Assignment
 Due: Mon, Nov 20
In this multi-part assignment, we will ultimately build a simple but reliable file transfer
application over UDP. However, as a buildup towards that, we will first implement a
‘ping’ application over UDP, in Part A of the assignment. This UDP Pinger application
will help you familiarize yourself with UDP sockets and develop a simple requestresponse protocol with timeouts. In Part B of the assignment, we will use this knowledge
to develop and implement a unidirectional stop-and-wait file transfer protocol over
UDP. In Part C, we will build on the client/server implementations in Part B to develop a
unidirectional pipelined (Go-back-N) file transfer protocol over UDP.
We strongly recommend that you attempt to do this assignment in the given
sequence:
Part A ® Part B ® Part C.
NOTE: We strongly prefer that you write your code in either Java or Python.
Accordingly, we have provided some baseline code (PingServer.java and PingServer.py –
more on those later in this document), adopted from textbook (Kurose and Ross).
In the description below, it is assumed that you will be programming in Java. If you
are coding in Python, all the discussion still applies to you – you only have to replace
the commands for compiling and running Java code with the equivalent Python
commands.
Before starting, read the section on “Socket Programming with UDP” from Chapter 2 of
the textbook. The last few editions of the textbook describes socket programming using
Python; the older editions describes socket programming using Java. You should be able
to find many good resources on UDP socket programming in either of these languages on
the web.
Part A: UDP Pinger
In this part, we will do the UDP Pinger Lab assignment (altered slightly) of the textbook
(Kurose and Ross), which is one of the socket programming assignments in Chapter 2 of
the textbook. The lab is accessible on the textbook Companion Website, using the access
code that you will find in the textbook. In this assignment, you will study Java code for a
simplified Internet ping server and write the corresponding client.
The ping application:
The ping application allows a client machine to send a packet of data to a remote
machine, and have the remote machine return the data back to the client unchanged (an
action referred to as echoing). Among other uses, the ping protocol allows hosts to
determine round-trip times to other machines. We will discuss more on ping when we
study ICMP messages (ping uses ICMP ECHO request and ECHO response messages) in
Chapter 4 (network layer). You should try out
ping <server-name>
where <server-name> is the name of out favorite server, say www.google.com. Note that
some servers may not respond to ‘ping’ request. For example, try pinging www.rpi.edu
(from outside RPI) and see what happens.
The simple ping server-client that you will implement provides a functionality that is
similar to the standard ping programs available in modern operating systems, except that
you will use UDP rather than Internet Control Message Protocol (ICMP) to communicate
with each other.
Server code:
The server code is available as PingServer.java (a python version, PingServer.py, is also
provided, in case you prefer to code in python), which provides a full implementation of
the ping server. You need to compile and run this code. You should study this code
carefully, as it will help you write your ping client. As you study the server code, you will
notice that the server sits in an infinite loop listening for incoming UDP packets. When a
packet comes in, the server simply sends the encapsulated data back to the client.
Note that UDP provides applications with an unreliable transport service, because
messages may get lost in the network due to router queue overflows or other reasons.
However, since packet loss is rare or even non-existent in typical campus networks, this
server code injects artificial loss to simulate the effects of network packet loss. The server
has a parameter LOSS_RATE that determines which percentage of packets should be
lost. The server also has another parameter AVERAGE_DELAY that is used to simulate
transmission delay from sending a packet across the Internet. You should set
AVERAGE_DELAY to a positive value when testing your client and server on the same
machine, or when machines are close by on the network. You can set
AVERAGE_DELAY to 0 to find out the true round-trip times of your packets.
Compiling and Running the Server:
To compile the server, do the following:
 javac PingServer.java
To run the server, do the following:
 java PingServer <port-number>
where <port-number> is the port number the server listens on. Remember that you have
to pick a port number greater than 1024, because only processes running with root
(administrator) privilege can bind to ports less than 1024.
Note: if you get a “class not found” error when running the above command, then you
may need to tell Java to look in the current directory in order to resolve class references.
In this case, the command will be as follows:
 java -classpath PingServer <port-number>
What to do:
In part A of the assignment, your job is to write the ping client code, PingClient.java, so
that the client sends 5 ping requests to the server, separated by approximately one second.
Each ping message should consist of 56 bytes of data. As in the actual ping application,
these 56 data bytes can be anything, and can be the same for all ping messages. After
sending each packet, the client starts a timer and waits up to one second to receive a
reply. You will notice in the server code that the ping message (the 56 bytes of data in
each UDP packet) is simply copied into the reply message. Once the reply is received, the
client stops the timer and calculates the round trip time (rtt). If one second goes by
without a reply from the server, then the client assumes that its packet or the server's
reply packet has been lost in the network. For this purpose, you will need to research the
API for DatagramSocket to find out how to set the timeout value on a datagram socket.
Your client should start with the following command:
java PingClient <host-name> <port-number>
where <host-name> is the name of the computer the server is running on, and <portnumber> is the port number it is listening to. Note that you can run the client and server
either on different machines or on the same machine.
When developing your code, you should run the ping server on your machine, and test
your client by sending packets to localhost (or, 127.0.0.1). After you have fully debugged
your code, you should see how your application communicates between two machines
across the network.
Message Formatting:
The ping messages in this part are to be formatted in a simple way. The client prints on
the screen a one-line message corresponding to each ping request. If the client receives a
response for a ping request, it prints the following line:
 ping <server-ip-address> <sequence-number> <rtt-estimate>
where <server-ip-adress> is the IP address of the server in dotted decimal format,
<sequence-number> starts at 0 and progresses to 4 for each successive ping message sent
by the client, <rtt-estimate> is an estimate of the round-trip time between the client and
the server, calculated as the difference between the time a ping response is received and
the time the request was sent (the timestamp in the response packet). The <rtt-estimate>
is expressed in millisecs, showing up to 3 decimal places (microsec accuracy). Note that
this RTT estimate includes the AVERAGE_DELAY value that is introduced artificially,
and in general may not be a good estimate of the actual RTT.
If the client does not receive a response to a ping request within one second of sending it,
it prints the following line:
 ping <server-ip-address> <sequence-number> LOST
Part B: Stop-and-Wait File Transfer
In this part, we will develop a simple unidirectional file transfer application over UDP.
Our goal would be to make it as simple as possible, while ensuring correctness/reliability
of the file transfer. It will be built along the lines of the Stop-and-Wait reliable transfer
protocol (Rdt 3.0) that we studied in Chapter 3. The requirements that the application
(which we will call sftp) must satisfy are described below.
The sftp application requirements:
The data transfer will be unidirectional – from the client to the server, although the
acknowledgements would need to be sent from the server to the client. To transfer a file,
the user (client) should call sftpClient <server_ipaddress> where server_ipaddress is the
IP address of the server in dotted decimal format. The stop-and-wait version of the
protocol that you will implement has some similarities with the Trivial FTP (or TFTP)
protocol, that also runs over UDP.
1 In a way, the sftp application that you will implement
can be viewed as a simpler version of TFTP.
• When called, sftp will read a file called inputfile from the local directory, and
transfer file in packets (each of which should contain 512 bytes of data, except
possibly the last packet) using UDP sockets.
• The server will reassemble the data in the packets into the file and write it as
outputfile in the current working directory (an existing file with the same name
will be rewritten).
• There is no explicit connection setup and closing (unlike TCP). The first packet
containing file data implicitly “sets up the connection”, so to speak. The end of
the file is indicated by the transfer of a packet with less than 512 bytes of data;
this also implicitly “closes the connection”, so to speak. So, no SYN or FIN flags
are needed. (What if the file size is an integral multiple of 512 bytes? Well, then
the client sends an additional packet with just 0 bytes of data to indicate the end of
file!) Note that this is similar to the way TFTP implicitly sets up/closes the
“connection”, and indicates the end of the file.
• Like Rdt3.0, you can use only one-bit (0-1) sequence and acknowledgment
numbers. You can allocate a full byte for it, for convenience, but the value of that
byte can only be 0 or 1. Thus the data part of each UDP packet sent from the
client to the server can be 513 bytes (1 byte header just indicating the 0-1
sequence number, plus the 512 bytes of file data), except possibly for the last
packet. The data part of each UDP packet sent from the server to the client can
just be the 1 byte header just indicating the 0-1 acknowledgment number. You
will assume that no bit errors happen in either forward or backward direction, so
no checksum needs to be included in any packet.
• The client can use any ephemeral port number, but the server must listen on port
number **93. The client’s retransmission timer should be set to 1 sec. The
retransmission limit, of the maximum number of times that the client will attempt
retransmitting a packet on timeout, should be set to 5, i.e., a total of six
transmission attempts per packet.
1 RFC 1350: The TFTP Protocol, https://tools.ietf.org/html/rfc1350. TFTP is meant for
file transfer is systems which are too resource constrained to run TCP. TFTP can
however be inefficient for large file transfers, due to its stop-and-wait nature.
• Note that for sftp, you need to write both client and server (no code will be
provided), sftpClient.java and sftpServer.java. However, feel free to borrow
inspiration and code that you wrote for the ping application in Part A of this
assignment! You server should implement a LOSS_RATE and
AVERAGE_DELAY, as in the ping application in part A.
• You should test your code for different file sizes, but we ask you to report the
results (see “Deliverables” below) for a fixed file size of 50 Kbytes.
• You need to time the file transfer, and provide that in the output. For that the
client can start a timer just before it starts sending the file data, and stop it when
the entire file is transferred. If the file is transferred successfully, the client prints
the following line:
 sFTP: file sent successfully to <server-ip-address> in <time in secs> secs
If the file transfer fails due to retransmission limit being reached for some packet,
the client prints the following line:
 sFTP: file transfer unsuccessful: packet retransmission limit reached
• Make sure you compare inputfile and outputfile (bitwise comparison, not just the
size) to make sure the file is transferred correctly from the client to the server.
Part C: Go-back-N File Transfer
In this part, you will extend your code in part B to develop a Go-back-N (GBN) version
of your file transfer application, gftp, which will be called at the client as
gftp <server_ipaddress> <N>
where N is the sender window size, passed as a command-line-argument. gftp is similar to
sftp, but with the following additional features.
• The client (sender) sends up to N packets at any time (without receiving their
acknowledgement) and slides the window as the acknowledgments are received.
• You will use a **byte sequence and acknowledgment number field, which allows
a value of N up to 28
-1 = 255.
• The server (receiver) does not do any out-of-order buffering, and therefore rejects
a packet whose sequence number is not the next expected sequence number;
nevertheless, the receiver acknowledges the last packet received in order, as in
GBN.
• You will maintain only one timer at the sender at any time, that expires 1 second
from the time when the first packet in the sender’s window was sent out. As the
sender’s window slides and a new packet becomes the first packet in the sender’s
window, this timer is adjusted accordingly. To be able to do this, you may want to
maintain a record of the time when each packet is sent out.
• As in GBN, when a packet times out, all packets in the window are resent by the
sender.
Deliverables:
You are required to upload on LMS the following:
Part A:
• Client code for the ping application, pingClient.java
• A README file (Ascii), pingREADME, that discusses the tests you have
conducted, and some sample outputs to demonstrate that it is working correctly,
both under no packet losses and delays, as well as with packet losses (say 20%)
and delays (say 100 msec).
Parts B and C:
• Client and server codes for the sftp and gftp application,
sftpClient.java/sftpServer.java and gftpClient.java/gftpServer.java.
o Since sftp is a special case of gftp (N=1), you can choose to submit just
gftpClient.java/gftpServer.java, if you are certain that gftp works correctly
for all values of N.
o If sftp works correctly for you, but you are not sure about gftp, then submit
both sftpClient.java/sftpServer.java and gftpClient.java/gftpServer.java.
• A README file (Ascii), ftpREADME, that discusses the tests you have
conducted, and some sample outputs to demonstrate that sftp/gftp are working
correctly. Report any known errors.
• In a single Word or PDF document, provide figures (plots) of the following
experiments (with necessary explanation), as follows:
o For sftp (or gftp with N=1), obtain two plots as follows:
§ Fix the AVERGAGE_DELAY to 100 msec and plot the file
transfer time vs LOSS_RATE, by varying the LOSS_RATE as
0%, 5%, 10%, 15%. Compute each data point (that you will plot)
as the average of 10 runs (random seeds).
§ Fix the LOSS_RATE to 5% and plot the file transfer time vs
AVERAGE_DELAY, by varying the AVERAGE_DELAY as 50
msec, 100 msec, 200 msec, 400 msec. Compute each data point
(that you will plot) as the average of 10 runs (random seeds).
o Now for gftp with N=2, 4, 8, obtain the file transfer time for LOSS_RATE
= 5% and AVERGAGE_DELAY = 100 msec. Compute each data point
(that you will plot) as the average of 10 runs (random seeds). Plot the file
transfer time against N=1, 2, 4, 8, and comment on how the file transfer
time varies as N increases.
Grading:
The assignment will be graded out of 15; there will be 5 points for Part A, 6 points for
Part B, and 4 points for Part C.
Approximately 80% of the points will be on correctness, 10% on compactness of the
code, and 10% on proper commenting.
請(qǐng)加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

掃一掃在手機(jī)打開當(dāng)前頁(yè)
  • 上一篇:GEOG3代寫、代做Python編程設(shè)計(jì)
  • 下一篇:代寫COMP1711、c++編程語(yǔ)言代做
  • 無(wú)相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路流場(chǎng)仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真技術(shù)服務(wù)
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲勞振動(dòng)
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)40個(gè)行業(yè)
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)4
    超全面的拼多多電商運(yùn)營(yíng)技巧,多多開團(tuán)助手,多多出評(píng)軟件徽y1698861
    超全面的拼多多電商運(yùn)營(yíng)技巧,多多開團(tuán)助手
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服務(wù)平臺(tái)
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內(nèi)
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗(yàn)證碼 寵物飼養(yǎng) 十大衛(wèi)浴品牌排行 suno 豆包網(wǎng)頁(yè)版入口 wps 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    久久久久久久久久久国产| 亚洲精品国产精品国自产| 国产精品揄拍一区二区| 国模吧一区二区三区| 加勒比在线一区二区三区观看 | 按摩亚洲人久久| www.日韩系列| 国产精品视频成人| 国产精品啪视频| 国产精品极品尤物在线观看| 国产精品美女999| 欧美成年人在线观看| 欧美精品在线播放| 精品中文字幕在线观看| 亚洲自拍小视频| 日韩av高清在线播放| 日韩精品欧美一区二区三区| 欧美图片激情小说| 黄色片一级视频| 国产日韩欧美91| 69精品丰满人妻无码视频a片| 久久免费视频1| 日韩在线视频线视频免费网站| 国产成人免费91av在线| 国产精品盗摄久久久| 一区国产精品| 日韩精品第一页| 国产日韩欧美综合精品| 91精品国产91久久久久久久久| 久久99影院| 精品麻豆av| 亚洲国产精品影视| 欧洲精品久久久| 国产亚洲第一区| 91久久嫩草影院一区二区| 日韩中文字幕网| 在线观看一区欧美| 青青草视频在线视频| 国产美女视频免费| 久久大片网站| 色综合五月天导航| 欧美日韩精品免费观看 | 91传媒视频免费| 久久精品国产96久久久香蕉| 欧美激情在线观看视频| 日韩精品一区二区免费| av免费观看久久| 日韩在线观看你懂的| 亚洲天堂第一区| 男女猛烈激情xx00免费视频| 97国产在线播放| 久久夜精品香蕉| 热99在线视频| av动漫在线观看| 国产精品免费电影| 欧美一区二区三区在线播放| 蜜桃久久影院| 九色91国产| 亚洲一区二区三区777| 欧美精品久久久| 久久久成人精品一区二区三区| 精品成在人线av无码免费看| 欧美一区二区三区精品电影| 国产精品综合网站| 国产精品日本精品| 欧美在线视频观看| 久久精品美女| 性欧美亚洲xxxx乳在线观看| 国产精品一色哟哟| 欧美成人免费在线观看| 免费在线a视频| 啊v视频在线一区二区三区| 欧美一区二区.| 97干在线视频| 一区二区三区四区免费视频| 黄色片免费在线观看视频| 久久精品ww人人做人人爽| 九九热视频这里只有精品| 国内一区二区三区在线视频 | 久久久精品有限公司| 亚洲精品中字| www.亚洲视频.com| 精品久久久久久亚洲| 蜜桃成人免费视频| 欧美成人午夜剧场免费观看| 国产一区香蕉久久| 美女av一区二区| 国产精品午夜av在线| 亚洲精品一品区二品区三品区| 99国产精品久久久久老师| 一区二区三区视频在线播放| 国产无套内射久久久国产| 国产精品电影在线观看| 麻豆av一区二区| 欧美成人精品一区二区| 国产伦精品一区二区三区四区视频 | 欧美激情一级欧美精品| 国产免费一区二区三区在线能观看 | 91久久精品美女| 春日野结衣av| 国产精品99导航| 欧美一乱一性一交一视频| 久久久久一区二区三区| 日韩精品视频一区二区在线观看 | 最新国产精品久久| 99热国产免费| 日韩av电影在线网| 久久久精品欧美| 国产日韩欧美在线视频观看| 在线观看欧美亚洲| 国产精品1区2区在线观看| 日本免费a视频| 国产成人午夜视频网址| 国内精品一区二区三区| 国产99久久精品一区二区永久免费| 不卡视频一区| 日韩精品第一页| 国产精品美乳在线观看| 国产日韩欧美一二三区| 亚洲精品日产aⅴ| 深夜福利国产精品| 国产日韩亚洲欧美在线| 亚洲 国产 欧美一区| 久久久国产精品免费| 国产精品一区二区久久国产| 日本免费高清一区| 欧美精品制服第一页| 久久久久福利视频| 国产午夜福利视频在线观看| 亚洲 国产 日韩 综合一区| 久久精品在线视频| 91麻豆桃色免费看| 欧美日韩激情视频在线观看| 亚洲最大福利网站| 久久精品国产96久久久香蕉| 成人精品一区二区三区电影黑人| 青青草久久网络| 一本色道久久88亚洲精品综合| 色青青草原桃花久久综合| 国产精品亚洲片夜色在线| 热久久精品国产| 亚洲专区中文字幕| 国产精品美女久久久久久免费| 91精品久久久久久久久久| 免费国产成人看片在线| 日本高清视频一区| 亚洲欧美日产图| 国产精品美乳在线观看| 国产高清av在线播放| 国产视频一区二区不卡| 日韩精品国内| 欧美一级片中文字幕| 一区二区三区日韩视频| 国产精品美腿一区在线看| 九九九九久久久久| 91国内在线视频| 国产精品永久免费| 精品欧美一区免费观看α√| 日本一区二区三区免费看| 亚洲尤物视频网| 精品国产一区二区三区四区vr| 久久久久久久有限公司| 99精品免费在线观看| 国产男女激情视频| 国模吧无码一区二区三区| 欧美尤物一区| 青青草综合在线| 日韩欧美视频一区二区| 日韩av色在线| 午夜老司机精品| 亚洲精品一卡二卡三卡四卡| 欧美激情一区二区三区高清视频| 国产精品久久久久久久久久久不卡| 久久久久久久久久亚洲| 久久精品二区| 久久精品成人一区二区三区蜜臀| 国产极品在线视频| 成人一区二区av| 国产伦精品一区二区三区在线 | 久久天天躁狠狠躁夜夜av| 国产va免费精品高清在线观看| 91精品在线看| 97精品视频在线| 国产精品8888| 国产福利成人在线| 国产超级av在线| 久久久久久久国产精品| 久久久久日韩精品久久久男男| 久久99影院| 久久久久久久久久久久久国产精品| 久久亚裔精品欧美| 国产mv免费观看入口亚洲| 久久久久久久一| 国产精品情侣自拍| 欧美理论电影在线观看| 中文精品一区二区三区| 亚洲v国产v在线观看| 日本中文不卡| 欧美性视频在线播放| 免费国产一区二区|