1-8周
Checksum校验和
请分别按 16 bit一组和 8 bit 一组计算计算以下数据 Checksum,分块儿后不足的请在尾部用0补足。
0xC0A800010ACBD1223
答案:3368
算法
第一步:补零
第二部:4位累加,溢出做0001加
第三步:二进制取反
7-16周
请计算以下数据的校验和(16 bit一组):
1 | { |
答案: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));
}