We are considering uncorrelated packet loss in this
evaluation, even tough packet loss is correlated in reality.
The reasoning behind these figures is that we cannot know
at which time during the handshake the interference that
causes packet loss will start. We therefore use a constant
probability of packet loss, which will cause all following
fragments of the current message flight to be dropped.
Additional, correlated packet loss before the next retransmission
intervall has no adverse impact because the damage
is already done.
The MTU influences the granularity at which handshake
messages can be reassembled by the receiver. A small MTU
splits large handshake messages into many different packets,
allowing the receiver a fine grained reassembly if packets
are lost. Since every new packet has to bear the DTLS
header, the overall amount of traffic increases, which in
turn increases the probability of packet loss. A larger
MTU splits messages into fewer packets which reduces
the probability of packet loss because there is less network
traffic. However, if packet loss does occur, reassembly cannot
be done as fine grained as with a smaller MTU. Fig. 7
shows that a MTU of 512 bytes seems to strike the best balance
between reassembly and network traffic in our
experiments.
5.3. Memory
In order to determine the static memory allocation to
individual components of our implementation we analyzed
the entries in the symbols table of the OPAL binary
after compilation. Memory has been measured for a fully
authenticated handshake with 2048-bit RSA keys. This
type of handshake has the largest memory requirements
since it needs more code and buffer space for the client’s
Certificate and CertificateVerify messages. We
divide the memory consumption into six, respectively seven
categories as illustrated in Table 1. Additionally we
measured the maximum stack size by filling the stack with
a dummy variable directly after boot and analyzing how
much of that continuous memory block had been overwritten
after a successful DTLS handshake. The first subtotal of
Table 1 only considers static memory allocation. Because it
currently contributes a significant portion of overall stack
use, we have implemented two prototypical methods of
initializing the client certificate. The method represented
by ‘‘Stack Minimum’’ directly sets each individual Byte of
the outgoing message buffer to the matching value from
the Certificate. The drawback is a increased ROM use because
the code basically contains hundereds of statements
in the form buffer[x] = 0xff. The ‘‘Stack Maximum’’
method initializes the outgoing message buffer from a
temporary array which is filled from a hardcoded,
anonymous array, e.g. uint8_t[CERT_LEN] = {0xff,
0xff,0xff,. . .}. In production the certificate would usually
be read from the mote’s flash memory which should
fall somewhere in between the figures from these two
approaches.
4.851 ms
20.692 ms
32.678 ms
5.594 ms
20.420 ms
32.019 ms
3,699
20.717 ms
30.496 ms
4,424
19.560 ms
32.897 ms
3,547
16.029 ms
25.931 ms
3,926
19.416 ms
31.284 ms
3,174
17.578 ms
29.262 ms
3,599
20.157 ms
34.760 ms
0 ms
5.000 ms
10.000 ms
15.000 ms
20.000 ms
25.000 ms
30.000 ms
35.000 ms
40.000 ms
1024-bit,
0% loss
1024-bit,
5% loss
1024-bit,
10% loss
2048-bit,
0% loss
2048-bit,
5% loss
2048-bit,
10% loss
Avg. Handshake completion Time (n=25)
128-byte MTU
256-byte MTU
512-byte MTU
1024-byte MTU
Fig. 7. Handshake completion times with various amounts of artificial link layer packet loss and different MTUs.
เรากำลังพิจารณาที่สูญเสียแพคเก็ต uncorrelated ในนี้การประเมิน การสูญเสียแพคเก็ตยากแม้จะมีความสัมพันธ์ในความเป็นจริงเหตุผลตัวเลขเหล่านี้คือ ว่า เราไม่รู้ที่ซึ่งเวลาใน 11i สัญญาณรบกวนที่สาเหตุการสูญเสียแพคเก็ตจะเริ่ม เราใช้ค่าคงดังนั้นน่าสูญเสียแพคเก็ต ซึ่งจะทำให้ทั้งหมดต่อไปนี้ชิ้นส่วนของเที่ยวบินข้อความปัจจุบันลงความสัมพันธ์เพิ่มเติม การสูญเสียแพคเก็ตก่อน retransmission ถัดไปintervall ได้ไม่มีผลกระทบต่อเนื่องจากความเสียหายแล้วเสร็จองค์ประกอบที่จับมือกันซึ่งอิทธิพล MTUข้อความที่สามารถตกได้ โดยตัวรับสัญญาณ MTU ขนาดเล็กแบ่งข้อความขนาดใหญ่จับมือกันเป็นหลายแพ็กเก็ตต่าง ๆช่วยให้ผู้รับนำมารวมกันเป็นเนื้อดีถ้าแพคเก็ตจะสูญหายไป ตั้งแต่ทุกแพ็คเก็ตใหม่แล้ว DTLSหัวข้อ จำนวนการจราจรโดยรวมเพิ่มขึ้น ซึ่งในเปิดเพิ่มน่าเป็นของสูญเสียแพคเก็ต ขนาดใหญ่MTU แยกข้อความออกเป็นแพคเก็ตน้อยลงซึ่งลดความน่าเป็นการสูญเสียแพคเก็ตได้เนื่องจากมีเครือข่ายน้อยลงการจราจร อย่างไรก็ตาม ถ้าสูญเสียแพคเก็ตเกิดขึ้น นำมารวมกันไม่ทำเป็นปรับขึ้นลายเกรน มีขนาด MTU เล็กลง รูป 7แสดงว่า MTU ของ 512 ไบต์น่าจะ สมดุลที่สุดนำมารวมกันและเครือข่ายในของเราการทดลอง5.3 หน่วยความจำเพื่อตรวจสอบการปันส่วนหน่วยความจำแบบคงที่แต่ละองค์ประกอบของการใช้งานของเราที่เราวิเคราะห์รายการในตารางสัญลักษณ์ของไบนารี OPALหลังจากรวบรวม มีการวัดหน่วยความจำสมบูรณ์รับรอง handshake กับคีย์ RSA 2048 บิต นี้ชนิดของการจับมือกันมีความต้องการหน่วยความจำที่ใหญ่ที่สุดเพราะมันต้องเพิ่มเติมรหัส และบัฟเฟอร์พื้นที่สำหรับไคลเอ็นต์ข้อรับรองและ CertificateVerify เราแบ่งหน่วยเป็น 6, 7 ตามลำดับประเภทดังที่แสดงในตารางที่ 1 นอกจากนี้เราโดยบรรจุกองกับวัดขนาดสูงสุดของแถวตัวแปร dummy โดยตรงหลังจากการเริ่มระบบและการวิเคราะห์อย่างไรมากของบล็อกหน่วยความจำต่อเนื่องที่มีการเขียนทับหลังจากจับมือ DTLS ประสบความสำเร็จ ผลรวมย่อยแรกของตารางที่ 1 เท่านั้นพิจารณาการจัดสรรหน่วยความจำสถิต เนื่องจากมันในปัจจุบันจะเป็นส่วนสำคัญของกองซ้อนโดยรวมใช้งาน เราได้ดำเนินการสองวิธีที่แม่ของกำลังเตรียมใช้งานใบรับรองของไคลเอ็นต์ วิธีการแสดงโดย ''กองน้อย '' โดยตรงตั้งค่าแต่ละแต่ละไบต์ของบัฟเฟอร์ข้อความขาออกเป็นค่าที่ตรงกันจากใบรับรอง ข้อเสียเปรียบคือ ใช้ ROM เพิ่มขึ้นเนื่องจากรหัสโดยทั่วไปประกอบด้วย hundereds งบในแบบฟอร์มการบัฟเฟอร์ [x] = 0xff ''สุดกอง ''วิธีเตรียมบัฟเฟอร์ข้อความขาออกจากตัวอาร์เรย์ชั่วคราวซึ่งถูกกรอกจาก hardcodedไม่ระบุชื่อเรย์ เช่น uint8_t [CERT_LEN] = {0xff0xff, 0xff,.} ในการผลิต ใบรับรองมักจะอ่านจากหน่วยความจำแฟลชของมลทินซึ่งควรตกอยู่ที่ใดที่หนึ่งระหว่างตัวเลขจากทั้งสองแนวทางการ4.851 ms20.692 ms32.678 ms5.594 ms20.420 ms32.019 ms3,69920.717 ms30.496 ms4,42419.560 ms32.897 ms3,54716.029 ms25.931 ms3,92619.416 ms31.284 ms3,17417.578 ms29.262 ms3,59920.157 ms34.760 ms0 ms5.000 ms10.000 ms15.000 ms20.000 msms 25,00030.000 ms35.000 ms40.000 ms1024-bitสูญเสีย 0%1024-bitขาดทุน 5%1024-bitขาดทุน 10%2048 บิตสูญเสีย 0%2048 บิตขาดทุน 5%2048 บิตขาดทุน 10%เสร็จสมบูรณ์ Handshake เฉลี่ยเวลา (n = 25)MTU 128 ไบต์MTU 256 ไบต์MTU 512 ไบต์MTU 1024 ไบต์รูป 7 ครั้งเสร็จสมบูรณ์ handshake กับจำนวนต่าง ๆ ของการเชื่อมโยงที่ประดิษฐ์ชั้นสูญเสียแพคเก็ตและ MTUs ที่แตกต่างกัน
การแปล กรุณารอสักครู่..

เรากำลังพิจารณาการสูญเสียต uncorrelated ในเรื่องนี้
การประเมินผลแม้แต่การสูญเสียแพ็คเก็ตที่ยากลำบากมีความสัมพันธ์ในความเป็นจริง.
เหตุผลที่อยู่เบื้องหลังตัวเลขเหล่านี้คือการที่เราไม่สามารถรู้
เวลาที่ในระหว่างการจับมือกันการรบกวนที่
ทำให้เกิดการสูญเสียตจะเริ่มต้น ดังนั้นเราจึงใช้อย่างต่อเนื่อง
น่าจะเป็นของการสูญเสียตซึ่งจะทำให้ต่อไปนี้ทุก
ชิ้นส่วนของเที่ยวบินที่ข้อความในปัจจุบันจะลดลง.
เพิ่มเติมสูญเสียตมีลักษณะร่วมกันก่อนที่จะลามต่อไป
intervall ไม่มีผลกระทบที่ไม่พึงประสงค์เพราะความเสียหายที่
จะทำอยู่แล้ว.
MTU คลื่นที่มีอิทธิพลต่อ เมล็ดที่จับมือกัน
ข้อความที่สามารถประกอบโดยรับ MTU ขนาดเล็ก
แยกข้อความขนาดใหญ่จับมือกันเป็นแพ็กเก็ตที่แตกต่างกันจำนวนมาก
ที่ช่วยให้รับสัญญาณได้ reassembly เนื้อดีถ้าแพ็คเก็ต
จะหายไป เนื่องจากทุกแพ็คเก็ตใหม่จะต้องรับ DTLS
ส่วนหัวของจำนวนเงินโดยรวมของการเพิ่มขึ้นของอัตราการเข้าชมซึ่ง
จะเพิ่มความน่าจะเป็นของการสูญเสียแพ็คเก็ต ขนาดใหญ่
MTU แยกข้อความเป็นแพ็กเก็ตน้อยลงซึ่งจะช่วยลด
ความน่าจะเป็นของการสูญเสียแพ็คเก็ตเพราะมีเครือข่ายน้อย
การจราจร อย่างไรก็ตามหากการสูญเสียตจะเกิดขึ้น reassembly ไม่สามารถ
ทำได้เม็ดเล็กปรับเช่นเดียวกับที่มีขนาดเล็ก MTU มะเดื่อ. 7
แสดงให้เห็นว่า MTU 512 ไบต์ดูเหมือนว่าจะสมดุลที่ดีที่สุด
ระหว่าง reassembly และการจราจรในเครือข่ายของเรา
ทดลอง.
5.3 หน่วยความจำ
ในการสั่งซื้อเพื่อตรวจสอบการจัดสรรหน่วยความจำคงที่
แต่ละองค์ประกอบของการดำเนินงานของเราที่เราวิเคราะห์
รายการในตารางสัญลักษณ์ของไบนารี OPAL
หลังจากรวบรวม หน่วยความจำที่ได้รับการวัดหาอย่างเต็มที่
จับมือกันรับรองความถูกต้องกับคีย์ RSA 2048 บิต นี้
ประเภทของการจับมือกันมีความต้องการหน่วยความจำรายใหญ่ที่สุด
นับตั้งแต่ที่มันต้องการรหัสและบัฟเฟอร์พื้นที่มากขึ้นสำหรับลูกค้า
รับรองและ CertificateVerify ข้อความ เรา
แบ่งใช้หน่วยความจำลงในหกตามลำดับเจ็ด
ประเภทดังแสดงในตารางที่ 1 นอกจากนี้เรา
วัดขนาดสูงสุด stack โดยการกรอกข้อมูลสแต็คที่มี
ตัวแปรหุ่นโดยตรงหลังจากบูตและการวิเคราะห์วิธีการ
มากว่าบล็อกหน่วยความจำอย่างต่อเนื่องได้รับการเขียนทับ
หลังจากที่ประสบความสำเร็จ DTLS จับมือกัน ผลรวมย่อยแรกของ
ตารางที่ 1 จะพิจารณาจัดสรรหน่วยความจำแบบคงที่ เพราะมัน
อยู่ในปัจจุบันมีส่วนช่วยเป็นส่วนสำคัญของสแต็คโดยรวมของ
การใช้งานที่เราได้ดำเนินการสองวิธีแม่บทของ
การเริ่มต้นใบรับรองไคลเอ็นต์ วิธีการแสดง
โดย '' สแต็คขั้นต่ำ '' โดยตรงชุดแต่ละไบต์ของแต่ละ
บัฟเฟอร์ข้อความขาออกกับมูลค่าการจับคู่จาก
ใบรับรอง ข้อเสียเปรียบคือการใช้รอมเพิ่มขึ้นเนื่องจาก
รหัสโดยทั่วไปมี hundereds ของงบ
ในบัฟเฟอร์แบบฟอร์ม [x] = 0xFF ว่า '' 'กองสูงสุด'
วิธีการเริ่มต้นบัฟเฟอร์ข้อความขาออกจาก
อาร์เรย์ชั่วคราวซึ่งเต็มไปจากฮาร์ดโค้ด,
อาร์เรย์ที่ไม่ระบุชื่อเช่น uint8_t [CERT_LEN] = {0xFF,
0xFF, 0xFF ,. . .} ในการผลิตใบรับรองจะมักจะ
ได้รับการอ่านจากหน่วยความจำแฟลชมลทินของที่ควร
ตกบางแห่งในระหว่างตัวเลขจากทั้งสอง
วิธี.
4.851 MS
20.692 MS
32.678 MS
5.594 MS
20.420 MS
32.019 MS
3,699
20.717 MS
30.496 MS
4424
19.560 MS
32.897 MS
3,547
16.029 MS
25.931 MS
3,926
19.416 MS
31.284 MS
3,174
17.578 MS
29.262 MS
3,599
20.157 MS
34.760 MS
0 MS
5.000 MS
10.000 MS
15.000 MS
20.000 MS
25.000 MS
30.000 MS
35.000 MS
40.000 MS
1024 บิต,
0% การสูญเสีย
1024 บิต,
5% การสูญเสีย
1024 บิต,
10% การสูญเสีย
2048 บิต,
0% การสูญเสีย
2048 บิต,
5% การสูญเสีย
2048 บิต,
10% การสูญเสีย
เฉลี่ย เวลาจับมือเสร็จสิ้น (n = 25)
128 ไบต์ MTU
256 ไบต์ MTU
512 ไบต์ MTU
1024 ไบต์ MTU
รูป 7. ครั้งเสร็จสิ้นการจับมือกับปริมาณต่างๆของการสูญเสียการเชื่อมโยงชั้นแพ็คเก็ตเทียมและ MTUs ที่แตกต่างกัน
การแปล กรุณารอสักครู่..
