计网练习题

1-8周

Checksum校验和

请分别按 16 bit一组和 8 bit 一组计算计算以下数据 Checksum,分块儿后不足的请在尾部用0补足。
0xC0A800010ACBD1223
答案:3368

算法

第一步:补零
第二部:4位累加,溢出做0001加
第三步:二进制取反

7-16周

请计算以下数据的校验和(16 bit一组):

1
2
3
4
5
6
{
0XC0A8,
0X0001,
0xACBD,
0X1223
}

答案:8075

TCP定时器所采用的指数加权移动平均算法中,指数的提法从何而来?

TCP TimeoutInterval 算法:
EstimatedRTT = (1−α)⋅EstimatedRTT + α⋅SampleRTT
DevRTT=(1−β)⋅DevRTT+β⋅|SampleRTT−EstimatedRTT|
TimeoutInterval=EstimatedRTT+4⋅DevRTT
α=1/8 β=1/4

参见下图,假设网络初始构建,若PC0 ping PC1,请简述它们之间的完整通信过程。

win64 or linux64内存对齐

#include<stdio.h>
int main(){
struct {char a;int b;char c;}X2;//1+3+4+1+3=12
struct {int a;char b;}X3;//4+1+3=8
struct {char a;short b;}X4;//1+1+2=4
struct {char a;short b;char c;}X5;//1+1+2+1+1=6
struct {char a;long b;}X6;//1+3+4=8 or 1+7+8=16
struct {char a;long b;char c;}X7;//1+3+4+1+3=12 or 1+7+8+1+7=24
struct {char a;long long b;}X8;//1+7+8=16
struct {char a;long long b;char c;}X9;//1+7+8+1+7=24
struct {char a;int b;short c;}X10;//1+3+4+2+2=12
struct {char a;short b;char c;int d;}X11;//1+1+2+1+3+4=12
printf(“%ld\n”,sizeof(X2));
printf(“%ld\n”,sizeof(X3));
printf(“%ld\n”,sizeof(X4));
printf(“%ld\n”,sizeof(X5));
printf(“%ld\n”,sizeof(X6));
printf(“%ld\n”,sizeof(X7));
printf(“%ld\n”,sizeof(X8));
printf(“%ld\n”,sizeof(X9));
printf(“%ld\n”,sizeof(X10));
printf(“%ld\n”,sizeof(X11));

}




---------------THEEND---------------