91精品国产91久久久久久_国产精品二区一区二区aⅴ污介绍_一本久久a久久精品vr综合_亚洲视频一区二区三区

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

代寫CSEN 331、代做 C++程序語言

時間:2024-03-16  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



Programming Assignment CSEN 331 Wireless & Mobile Networks
General Guidelines
➢ Programming projects are individual assignments; each student should write his/her own code.
➢ This assignment should be written only in C programing language.
➢ Each project requires a demo, during which the student should explain how the code
works.
➢ Demos are part of the grade. The student will only receive full credit if the demo has proper results.
➢ In addition to the demo, each student should submit the source code, input/output files, and a README.txt file containing instructions on how to compile and run your source code.
➢ The program should be turned in on or before the deadline; demo must be performed on or before the deadline but after the program files have been turned in.
➢ Here are a couple of useful links to point you to the right direction for an Introduction to Socket Programming
http://beej.us/guide/bgnet/
https://www.youtube.com/watch?v=Emuw71lozdA
1. Client using UDP protocol for sending information to the Access Point (AP)
One client connects to one Access point.
The frame is recognized in UDP payload by two fields which contain identifiers:
Start of frame identifier .... 0XFFFF End of frame identifier ..... 0XFFFF
After the start of frame, the IEEE 802.11 frame is included and then the End of frame identifier will be attached, see Fig.1 in chapter 1.3.
For the FCS (Frame Check Sequence) calculation use the following function which will output FCS result for each frame sent by AP (Access Point) or client, see section 1.2.
     CSEN 331 Programming Assignment
1

 1.1 Operation:
a) Transmit:
For each frame which is transmitted by client or AP (Access Point) the FCS should be calculated
based on the function in chapter 1.2, and then in the FCS field of IEEE 802.11 frame inserted, the whole IEEE 802.11 frame will be included in the UDP payload field.
The client should start an ack_timer at the time the frame is sent to the AP (Access Point)), if the response related to request message (See below the list of expected response messages from AP) for each frame has not been received during ack_timer period by client before expiration of timer, then client should retransmit the frame that was sent before and restart the timer.
The timer can be set at 3 seconds (recommended) and a retry counter should be used for resending the frame. If the response for the frame does not arrive before the timeout, the client will retransmit the frame and restart the ack_timer, and the ack_timer should be reset for a total of 3 times.
If no response was received from the server after resending the same frame 3 times, the client should generate the following message and display on the screen,
“Access Point does not respond”.
b) Receive:
For each frame which is Received by client or AP (Access Point) the FCS should be re-calculated and compared with the FCS received field of IEEE 802.11 frame, if it is correct then the received frame will be accepted and according to the request message the response will be generated and sent to the client, else should AP generate an error message and display on the screen.
Note: For all frame exchanges between mobile client/AP and between AP/mobile client should use Checksum verification for transmitted and received frames (function in chapter 1.2).
List of request/response messages
The table 1 contains the list of messages:
       Client
 Access Point
   Association Request Probe Request
RTS (Request To Send) Data
Association Response Probe Response
CTS (Clear To Send) ACK (Acknowledge)
         Error Message, to be generated when no proper response for each frame after 3 times timer expires.
    Table 1. List of request/response messages
CSEN 331 Programming Assignment
2

1.2. Checksum function for calculation of transmitted and received frames:
The following function for frame checksum calculation will be used, you will include this function in your code.
This FCS calculation function should be added in your code: #include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h> #include <unistd.h>
/*
* Takes in an input string and generates a **-bit checksum hash value of type uint**_t
* This function is internally called by the function getCheckSumValue(); so not to be called directly by
developer
* Input type: String
* Output type: uint**_t */
uint**_t generate**bitChecksum(const char* valueToConvert) { uint**_t checksum = 0;
while (*valueToConvert) {
checksum += *valueToConvert++; checksum += (checksum << 10); checksum ^= (checksum >> 6);
}
checksum += (checksum << 3); checksum ^= (checksum >> 11); checksum += (checksum << 15); return checksum;
}
/*
* This function can be called by the developer to generate a **-bit checksum directly from the pointer to your
frame structure
* The function is independent of the contents/data types used in your frame structure
* It works based on the bits in your structure
* IMPORTANT NOTE & Hint: For accurate results, you must use __attribute__((packed)) while creating your
Frame structure
* to avoid additional padding bytes which occur in C language structures
* Input: Pointer to the frame structure, the size of the frame structure, number of bytes to skip from the start
and end (for crc calculation)
* Providing example input for reference: uint**_t checksum = getCheckSumValue(&yourFrame,
sizeof(yourFrame), bytesToSkipFromStart, bytesToSkipFromEnd)
* Hint: bytesToSkipFromEnd is provided (for instance) since the CRC computation should not include the FCS
field of the payload
* Output: uint ** bit final Check Sum value */
uint**_t getCheckSumValue(const void *ptr, size_t size, ssize_t bytesToSkipFromStart, size_t bytesToSkipFromEnd) {
const unsigned char *byte = (const unsigned char *)ptr;
// binaryString[] is a logical representation of 1 byte. Each character in it represents 1 bit.
// Do not confuse with the size of character in C language (which is 1 byte). This is just a representation. char binaryString[9]; // One additional character for the null terminator
binaryString[8] = '\0'; // Null terminator definition
  CSEN 331 Programming Assignment
3

char *buffer = malloc(1); // Allocates space for an empty string (1 byte for the null terminator) buffer[0] = '\0'; // Initializes an empty string
for (size_t i = 1; i <= size; i++) { for (int j = 7; j >= 0; j--) {
int bit = (byte[i - 1] >> j) & 1;
binaryString[7 - j] = bit + '0'; // Converts bit to character '0' or '1' }
buffer = realloc (buffer, strlen(buffer) + strlen(binaryString) + 1); // Resizes buffer to fit the concatenated result
strcat(buffer, binaryString); }
buffer[strlen(buffer)-(bytesToSkipFromEnd*8)] = '\0';
memmove(buffer, buffer + (bytesToSkipFromStart*8), strlen(buffer) - (bytesToSkipFromStart*8) + 1); //+1 for null terminator
// printf("\nGenerated string: %s\n", buffer);
// printf("\nSize of generated string in bytes: %zu\n", strlen(buffer)/8);
uint**_t checkSumValue = generate**bitChecksum(buffer). free(buffer); // Freeing memory allocated by malloc.
return checkSumValue;
}
CSEN 331 Programming Assignment
4

1.3 Frame Format:
UDP Payload which will contain IEEE 802.11 frame:
Bytes: 2 2346 (Maximum) 2
   Start of Frame ID
 Payload
 End of Frame ID
    Bytes2 2 6 6 6 2 6 0-2312 4
Bit 0 Bit 15
bits2 2 4 1 1 1 1 1 1 1 1
Figure 1: UDP Payload which will contain IEEE 802.11 frame
 Frame Control
 Duration ID
 Address 1
 Address 2
 Address 3
 Sequence Control
 Address 4
 Pay load
 FCS
   Protocol version
 Type
 Sub type
 To DS
 From DS
 More Frags
 Retry
   Power More
WEP ManaIgEemEeEn 80D2a.1ta1 frame.
t
 order
   CSEN 331 Programming Assignment
5

1.4 Procedure:
Initially client and server will set the following fields based on frame type and sub-type:
Set Protocol version: Current protocol version is 0. More Fragment: 0
Retry: Disabled
Power management: Disabled
More Data: 0
WEP: 0
Order: 0
Sequence Control: 0000
Address 4: Bridge address set to 000000000000
To DS and From DS fields: Set these fields for each frame you send properly:
• Data From client to AP
ToDS, To AP (Infrastructure Network) =1
From DS, From AP (Infrastructure Network) =0
• From AP to client:
ToDS, To AP (Infrastructure Network) =0
From DS, From AP (Infrastructure Network) =1
FCS (Frame Check Sequence): use the function mentioned in chapter 1.2. All the above fields should be set properly for each frame type and sub
type.
1. Client sends Association Request:
Set properly the fields for IEEE 802.11 frame in chapter 1.3. AP will fill in the sub type properly.
Set type = 00
Set sub type = 0000
Set Duration ID =0
Address 1 field: Final receiver address MAC address (example: AABBCCDDEEDD)
Address 2: Originator Address, (example:1245CCDDEE88) Address 3: Access point address (example: AABBCCDDEEDD)
Client will calculate FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
    CSEN 331 Programming Assignment
6

2. AP (Access Point) sends Association Response to Client:
Recalculate FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
The received AP compares recalculated and received FCS values, if they are equal then will proceed with the following steps:
AP will set the subtype properly.
Set type = 00
Set sub type = 0001
Set Duration ID =XXXX <<< set any two Bytes Hex value to the user, this will be the association ID
Address 1 field: Final receiver address MAC address (example: 1245CCDDEE88) Address 2: Originator address, is AP (example: AABBCCDDEEDD)
Address 3: Access Point address (example: AABBCCDDEEDD)
All fields should be set properly.
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Calculate for this new frame the FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
3. Client sends Probe Request:
Client will fill in the type and sub type properly. Set type = 00
Set sub type = 0100
Set Duration ID =0
Address 1 field: Final receiver address MAC address (example: AABBCCDDEEDD) Address 2: Originator Address, AP (Access point address)
(example: 1245CCDDEE88)
Address 3: Access point address (example: AABBCCDDEEDD)
The client will fill in the Address 2 field with its own MAC address.
Set properly the fields for IEEE 802.11 frame in chapter 1.4. FCS (Frame Check Sequence): use the FCS function in chapter 1.2.
4. AP (Access Point) Response sends Probe Response to Client:
Prior to sending response the AP will recalculate the FCS of the received Probe Request frame by using the FCS function in chapter 1.2.
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Set Duration ID =XXXX <<< set any two Bytes Hex value to the user, this will be the association ID
The received AP compares recalculated and received FCS values, if they are equal then will proceed with the following steps:
Set properly the fields for IEEE 802.11 frame in chapter 1.3.
Address 1 field: Final receiver address MAC address (example: 1245CCDDEE88) Address 2: Originator Address, AP (Access point address)
   CSEN 331 Programming Assignment
7

(example: AABBCCDDEEDD)
Address 3: Access point address (example: AABBCCDDEEDD)
FCS (Frame Check Sequence): use the FCS function in chapter 1.2.
5. Client sends RTS:
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Address 1 field: Final receiver address MAC address (example: AABBCCDDEEDD) Address 2: Originator Address, (example:1245CCDDEE88)
Address 3: Access point address (example: AABBCCDDEEDD)
Set type =01
Set sub type= 1011
Set Duration ID =4
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Calculate for this new frame the FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
6. AP (Access Point) sends CTS Response to Client:
Recalculate received FCS (Frame Check Sequence) using the FCS function in chapter 1.2. The received AP compares recalculated and received FCS values, if they are equal then will proceed with the following steps to prepare the frame.
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Address 1 field: Final receiver address MAC address (example: 1245CCDDEE88) Address 2: Originator address, is AP (example: AABBCCDDEEDD)
Address 3: Access Point address (example: AABBCCDDEEDD)
Set Type = 01
Set Sub Type = 1100
Set Duration ID =3
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Calculate for this new frame the FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
7. Client sends one Data Frame:
The received client compares recalculated and received FCS values, if they are equal then will proceed with the following steps:
Address 1 field: Final receiver address MAC address (example: AABBCCDDEEDD) Address 2: Originator Address, (example:1245CCDDEE88)
Address 3: Access point address (example: AABBCCDDEEDD) Set Type = 10
Set Sub Type = 0000
Set Duration ID =2
The 802.11 payload can be any hex value the maximum length is 2312 Bytes, if less than this value fills in the rest with 0XFF.
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
      CSEN 331 Programming Assignment
8

Calculate for this new frame the FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
8. AP (Access Point) sends ACK to Client:
Recalculate FCS (Frame Check Sequence) using the FCS function in chapter 1.2. to calculate FCS.
The received AP compares recalculated and received FCS values, if they are equal then will proceed with the following steps to send ACK:
Address 1 field: Final receiver address MAC address (example: 1245CCDDEE88) Address 2: Originator address, is AP (example: AABBCCDDEEDD)
Address 3: Access Point address (example: AABBCCDDEEDD)
Set Type = 01
Set Sub Type = 1101
Set Duration ID =1
Set properly the fields for IEEE 802.11 frame in chapter 1.4.
Calculate for this new frame the FCS (Frame Check Sequence) using the FCS function in chapter 1.2.
++++++++++++++++++++++++++++++++++++++++++++++++ 9. FCS Error handling:
NOTE: After successful transmission of data frame which client sends and receive of ACK (Above items 7 and 8), the client should generate a frame with wrong
checksum, filling FCS field with some data which is not calculated by FCS (Frame Check Sequence) function in chapter 1.2.
The AP (Access Point) should generate an error message for FCS (Frame Check Sequence) error after recalculation of checksum which recognizes this value is not equal to the received FCS (Frame Check Sequence).
AP (Access Point) generates the error message “FCS (Frame Check Sequence) Error” and displays on the screen.
      ***************************************************
10. Sending Multiple Frame Procedure:
Client sends five fragmented frames (Frame 1, 2, 3, 4, 5) which are fragments of a file to the AP.
Prior client sending the 5 frames, send one time the RTS frame with Duration ID =12, AP response CTS with Duration ID =11 (This procedure will allocate time for the 5 frames and ACKs transmissions)
For each DATA frame sent from client Duration ID will be decremented, and for each frame sent from AP Duration ID will be decremented.
The AP acknowledges with ACK frame the correct frame received from client by sending five ACK frames.
Set the parameters in IEEE 802.11 header properly for client and AP (see chapter 7 and 8) in addition you need to set the more fragment bit properly.
          CSEN 331 Programming Assignment
9

The client then sends another five fragmented frames (Frame 1, 2, 3, 4, 5) to the AP, emulating one correct frame and four frames with errors.
The server acknowledges with ACK each correct frame sent from client, and with corresponding error message displayed on the screen “No ACK Received for Frame No.X” for the frames with errors (Total of four error message).
The client will start an ack_timer at the time each frame is sent to AP, if the ACK frmae for each frame has not been received during ack_timer period by client before expiration of timer then client should retransmit again the frame that was sent before.
The timer can be set at 3 seconds (recommended) and a retry_ack_counter should be used for resending the frame. If the ACK for the frame does not arrive before the ack_timer times out, the client will retransmit the frame and restart the ack_timer, and the ack_timer should be reset for a total of 3 times (retry_ack_counter = 3).
If no ACK is received from the AP after resending the same frame 3 times, the client should generate the following message and display on the screen:
“No ACK received from AP”.
Error handling:
NOTE: All four error handling messages should be simulated and displayed on the screen, the error response messages should be included in a (.pdf, .png, .jpg) file and turned in with your source code.
  CSEN 331 Programming Assignment
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 

掃一掃在手機打開當前頁
  • 上一篇:ME1014代做、代寫 Matlab 程序設計
  • 下一篇:CS101 編程代寫、代做 java程序語言
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
  • 短信驗證碼 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    91精品国产91久久久久久_国产精品二区一区二区aⅴ污介绍_一本久久a久久精品vr综合_亚洲视频一区二区三区
    欧美三级黄美女| 蜜臀久久99精品久久久久宅男 | 不卡视频一二三| 激情综合视频| 91精品视频网| 日韩av中文字幕一区二区| 亚洲激情黄色| 国产欧美一区视频| 成人免费的视频| 在线看国产日韩| 国产精品二三区| 日韩在线一二三区| 亚洲激情偷拍| 国产精品看片你懂得 | 亚洲女人****多毛耸耸8| 国产盗摄女厕一区二区三区| 久久本道综合色狠狠五月| 国产精品久久三区| 91在线国产福利| 日韩精品专区在线影院重磅| 欧美日本国产| 欧美无砖专区一中文字| 国产精品福利av| 欧美日韩国产三区| 久久亚洲一区二区三区明星换脸| 精品一区二区三区不卡| 日本精品视频一区二区三区| 亚洲午夜电影网| 亚洲国产一区二区三区在线播| 久久午夜电影网| 日韩一区国产二区欧美三区| 免费日本视频一区| 亚洲图片一区二区| 国产精品美女诱惑| 日韩美女久久久| 激情久久五月| 精品少妇一区二区三区日产乱码| 久久电影国产免费久久电影| 91久久精品一区二区| 视频一区国产视频| 欧美亚洲免费在线一区| 免费人成在线不卡| 欧美日韩电影在线播放| 国产麻豆9l精品三级站| 欧美一区二区三区色| 国产成人免费视频一区| 日韩欧美一区二区不卡| 国产一区二区在线观看免费| 日韩一区二区三免费高清| 国产精品1024久久| 2023国产一二三区日本精品2022| 不卡的电影网站| 久久久国产精品午夜一区ai换脸| 99精品黄色片免费大全| 欧美v亚洲v综合ⅴ国产v| 97se亚洲国产综合在线| 一区在线中文字幕| 国产伦理一区| 久久超碰97人人做人人爱| 欧美电影一区二区| 91亚洲资源网| 亚洲欧美国产三级| 老司机精品视频网站| 国产一区二区三区综合| 久久久久久夜精品精品免费| 激情国产一区| 亚洲黄色免费电影| 欧美性受xxxx| 99精品1区2区| 亚洲精品欧美激情| 欧美少妇性性性| 欧美在线一二三区| 亚洲成人在线网站| 日韩午夜在线影院| bt欧美亚洲午夜电影天堂| 精品国产伦一区二区三区观看方式 | 99国产精品一区| 亚洲老司机在线| 欧美午夜不卡视频| 成人福利视频在线看| 国产精品久久久久久久久免费樱桃| 一区二区三区四区五区在线| 精品制服美女丁香| 国产欧美一区在线| 性伦欧美刺激片在线观看| 日韩黄色小视频| 欧美电影免费观看高清完整版在| 影音先锋久久久| 久久电影网站中文字幕| 欧美经典一区二区| 久久久青草婷婷精品综合日韩| 成人午夜av在线| 亚洲一区二区三区在线播放| 69久久夜色精品国产69蝌蚪网| 国内一区二区在线视频观看| 日产国产欧美视频一区精品| 欧美高清视频一二三区 | 亚洲免费在线看| 欧美一区二区三区视频在线| 亚洲神马久久| 亚洲欧美日韩综合国产aⅴ| 国产美女在线精品| 欧美国产1区2区| 亚洲高清不卡| 国产成人午夜高潮毛片| 午夜精品123| 国产午夜精品福利| 欧美美女一区二区| 国产精品欧美经典| 亚洲欧美一区二区三区国产精品| 国产精品视频第一区| 一区二区成人在线观看| 永久91嫩草亚洲精品人人| 国产高清不卡二三区| 亚洲福中文字幕伊人影院| 久久久久久免费| 欧美日韩国产成人在线91 | 中文一区在线播放| 久久中文精品| 国产欧美精品久久| 欧美日本二区| 成人午夜碰碰视频| 久久精品国产一区二区三区免费看| 国产精品福利一区二区三区| 日韩一区二区三区视频| 国产情侣一区| 欧美午夜免费影院| 99热国产精品| 国产精品一线二线三线精华| 偷拍亚洲欧洲综合| 一区二区成人在线| 中文字幕在线一区| 久久婷婷国产综合精品青草| 欧美一区二区三区在线播放 | 欧美一级片在线看| 国产精品永久入口久久久| 欧美精品一区二区视频| 成人免费观看视频| 国产精品2024| 韩国v欧美v亚洲v日本v| 日韩高清中文字幕一区| 亚洲成a人在线观看| 亚洲乱码中文字幕综合| 亚洲精品中文字幕乱码三区 | 亚洲一区在线观看视频| 亚洲天堂a在线| 国产精品视频一区二区三区不卡| 欧美精品在线视频| 欧美乱妇23p| 欧美精品亚洲二区| 日本高清免费不卡视频| 久久精品国产99精品国产亚洲性色| 国产日产精品一区二区三区四区的观看方式 | 日韩成人一区二区三区在线观看| 中文字幕乱码一区二区免费| 欧美一级电影网站| 777午夜精品视频在线播放| 国产欧美日韩亚洲一区二区三区| 欧美一区二区三区日韩| 久久精品动漫| 7777精品久久久大香线蕉| 日韩一区二区三区电影在线观看 | 久久久久久久国产精品影院| 中文字幕亚洲一区二区va在线| 一区二区日韩电影| 久久精品国产精品亚洲红杏| 国产成人综合在线| 欧美日韩三级| 久久综合伊人| 91精品国产免费| 国产精品毛片无遮挡高清| 午夜精品一区二区三区电影天堂 | 久久99久久久欧美国产| 99精品国产视频| 一本久道久久综合婷婷鲸鱼| 亚洲成人激情社区| 中文字幕一区二区三区乱码在线| 91在线国产福利| 99国产成+人+综合+亚洲欧美| 色哟哟国产精品| www成人在线观看| 亚洲一线二线三线久久久| 精品亚洲成a人| 韩日精品在线| 欧美日韩dvd在线观看| 国产精品伦理一区二区| 蜜臀精品一区二区三区在线观看 | 国产精品久久久久久久久动漫 | 97久久精品人人澡人人爽| 亚洲作爱视频| 日韩欧美一二区| 亚洲精品五月天| 国产a精品视频| 国产精品夜夜夜| 精品国产区一区| 午夜av一区二区| 欧美日韩一区二| 欧美激情一区二区三区蜜桃视频| 欧美精品vⅰdeose4hd| 久久综合狠狠综合|