دانلود - دانشگاه شاهد

Report
‫شبکه هاي کامپيوتري‬
‫مبحث ششم‪ :‬پروتکل ‪TCP/IP‬‬
‫بخش دوم‪ :‬فرمت بسته های ‪IP‬‬
‫وحید حقیقت دوست‬
‫دانشکده فنی و مهندس ی دانشگاه شاهد‬
‫‪1‬‬
‫فرمت بسته ‪IP‬‬
‫‪2‬‬
IP protocol version
Number[4bits]
header length
(4Bytes)[4bits]
“type” of data: Priority [3bits]
Delay[1bit]
Throughput[1bit]
Reliability[1bit]
max number
remaining hops
(decremented at
each router)
how much overhead
with TCP?
 20 bytes of TCP
 20 bytes of IP
 = 40 bytes + app
layer overhead
IP ‫فرمت بسته‬
32 bits
head. “type” of
ver
len service
length
fragment
16-bit identifier flags
offset
upper Checksum: 1’s add of
time to
layer 16bits words in header
live
32 bit source IP address
32 bit destination IP address
Options (if any)
data
(variable length,
typically a TCP
or UDP segment)
A packet is unique in Internet by:
Id + S. IP Add + D. IP Add + Upper L.
total datagram
length (1Byte)
fragmentation/
Reassembly/
DF, MF Flags
upper layer
protocol
to deliver
payload to
(rfc 1700)
1 :ICMP
6 :TCP
17 :UDP
e.g. timestamp,
record route
taken, specify
list of routers
to visit.
3
‫تحلیل فیلدهای سرایند بسته ‪IP‬‬
‫‪‬‬
‫فيلد ‪Version‬‬
‫‪‬‬
‫‪‬‬
‫چهار بيت‬
‫مشخص کننده نسخه پروتکل ‪IP‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فيلد )‪IHL (IP Header Length‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نسخه شماره ‪ 4‬پروتکل ‪Version= 0100 IP‬‬
‫نسخه شماره ‪ 6‬پروتکل ‪IP‬‬
‫چهار بيتي‬
‫مشخص کننده طول کل سرآيند بسته بر مبناي کلمات ‪ 32‬بيتي‬
‫حداقل مقدار فيلد ‪ IHP‬عدد ‪ 5‬است یعنی ‪ 20=4×5‬بایت‬
‫فيلد ‪Type of sevice‬‬
‫‪‬‬
‫‪‬‬
‫فيلد ‪ 8‬بيتي‬
‫مشخص کننده درخواست سرويس ويژهاي توسط ماشين ميزبان از مجموعه زيرشبکه براي ارسال ديتاگرام‬
‫‪-‬‬
‫‪R‬‬
‫‪T‬‬
‫‪-‬‬
‫بالاستفاده‬
‫قابليت‬
‫اطمينان‬
‫توان خروحي‬
‫‪D‬‬
‫تأخير‬
‫‪P1‬‬
‫‪P0‬‬
‫تقدم بسته‬
‫قراردادن عدد ‪ 1‬توسط ماشين ميزبان در اين بيتها جهت‬
‫انتخاب مسير مناسب توسط مسيريابها‬
‫‪P2‬‬
‫‪‬‬
‫فيلد ‪Total Length‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فيلد ‪ 16‬بيتي‬
‫مشخص کننده طول کل بسته ‪( IP‬مجموع اندازه سرآيند و ناحيه داده)‬
‫حداکثر طول کل بسته ‪ 64 kB=65535 ،IP‬بايت میباشد‬
‫فيلد ‪Identification‬‬
‫‪‬‬
‫فيلد ‪ 16‬بيتي‬
‫‪‬‬
‫مشخص کننده شماره يک ديتاگرام واحد‬
‫‪fragmentation‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫با توجه به محدودیت طول بسته ها‪ ،‬ممکن است بسته هنگام ورود به یک شبکه به بسته های کوچکتر شکسته‬
‫شود‪.‬‬
‫بیتهای ‪ MF ،DF‬و فیلد ‪ Fragment offset‬اطالعات مربوط به خرد شدن بسته ها را در خود نگه میدارند‪.‬‬
‫الف) بيت ‪)Don’t Fragment( DF‬‬
‫با يک شدن اين بيت در يک بسته ‪IP‬هيچ مسيريابي اجازه قطعه قطعه نمودن بسته را ندارد‬
‫ب) بيت ‪)More Fragment( MF‬‬
‫‪ :MF=0‬مشخص کننده آخرين قطعه ‪IP‬از يک ديتاگرام‬
‫‪ :MF=1‬قطعات بعدي از يک ديتاگرام همچنان باقی مانده‬
‫ج) فیلد ‪Fragment offset‬‬
‫‪ 13‬بيتي‬
‫نشان دهنده شماره ترتيب هر قطعه ازيک ديتاگرام شکسته شده‬
‫حداکثرتعداد قطعات يک ديتاگرام ‪8192‬‬
‫‪‬‬
‫فيلد ‪Time To Live‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مشخص کننده طول عمر بسته ‪IP‬‬
‫حداکثر طول عمر بسته ‪IP = 255‬‬
‫فيلد پروتکل‬
‫‪‬‬
‫‪‬‬
‫فيلد ‪ 8‬بيتي‬
‫نشان دهنده شماره پروتکل اليه باالتر متقاض ي ارسال ديتاگرام‬
‫فيلد ‪ 8‬بيتي‬
‫فيلد ‪Header Ckecksum‬‬
‫فيلد ‪ 16‬بيتي‬
‫کشف خطاهاي احتمالي در سرآيند هر بسته ‪IP‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫جمع كل سرآيند به صورت دو بايت دو بايت‬
‫حاصل جمع به روش مكمل يك منفي مي گردد‬
‫قرارگرفتن عدد منفي حاصله در فيلد ‪Header Ckecksum‬‬
‫‪‬‬
‫فيلد ‪Source Address‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فيلد ‪ 32‬بيتي‬
‫مشخص کننده آدرس ماشين مبدأ‬
‫فيلد ‪Destination Address‬‬
‫‪‬‬
‫فيلد ‪ 32‬بيتي‬
‫‪‬‬
‫مشخص کننده آدرس ‪IP‬ماشين مقصد‬
‫فيلد اختياري ‪Option‬‬
‫‪‬‬
‫‪‬‬
‫حداکثر ‪ 40‬بايت‬
‫محتوي اطالعات جهت يافتن مسير مناسب توسط مسيريابها‬
‫شکستن و بازسازی یک بسته ‪IP‬‬
‫)‪(IP Fragmentation & Reassembly‬‬
‫‪‬‬
‫یکی از مشخصات شبکه ها پارامتر حداکثر طول‬
‫بسته ها میباشد که با عنوان ‪MTU (max.‬‬
‫)‪ transfer unit size‬معرفی می شود‪.‬‬
‫‪‬‬
‫‪fragmentation:‬‬
‫‪in: one large datagram‬‬
‫‪out: 3 smaller datagrams‬‬
‫‪‬‬
‫بسته ‪ IP‬بزرگ به بسته های کوچکتر خرد‬
‫(‪ )fragment‬میشود‪.‬‬
‫‪‬‬
‫‪reassembly‬‬
‫‪9‬‬
‫شبکه ای با لینکها متفاوت ‪ ‬مقادی متفاوت‬
‫‪MTU‬‬
‫‪‬‬
‫‪‬‬
‫یک دیتاگرام به چندین دیتاگرام تبدیل میشود‬
‫بازسازی بسته ها در مقصد انتهایی انجام میشود‬
‫از بیتهای درنظر گرفته شده در سرایند بسته‬
‫‪ IP‬برای رعایت ترتیب بسته های خرد شده‬
‫استفاده می شود‪.‬‬
IP Fragmentation and Reassembly
data
0……….3979
20 Byte
Example
 4000 byte datagram
 MTU = 1500 bytes
length ID fragflag
=4000 =x
=0
offset
=0
4000 Bytes
0……….1479
length ID fragflag
=1480 =x
=1
‫ دیتاگرام کوچک‬3 ‫یک دیتاگرام بزرگ به‬
‫تبدیل میشود‬
‫ باشد‬8 ‫ باید ضریب‬fragment ‫طول هر‬
offset
=0
1480…2959
length ID fragflag offset
=1480 =x
=1
=1480
length ID fragflag offset
=1040 =x
=0
=2960
1480=185*8
10
‫سرویس ‪1 - IP‬‬
‫‪‬‬
‫‪‬‬
‫سرویس تحویل ‪ ،IP‬ساده است‬
‫سرویس ارائه شده توسط الیه ‪IP‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نتیجه‬
‫‪‬‬
‫‪11‬‬
‫بدون اتصال و غير قابل اطمینان است‬
‫تالش برای بهترین سرویس (‪ )best effort‬میباشد‬
‫غير قابل اطمینان‪ IP :‬تالش ی برای اصالح بسته های با خطا روبرو شده انجام‬
‫نمیدهد‬
‫بدون اتصال‪ :‬هر بسته (دیتاگرام) بصورت مستقل پردازش میشود و ‪ IP‬توجهی به‬
‫اینکه ممکن است بسته های تبادل شده بين دو ميزبان از یک ترتیب منطقی تبعیت‬
‫کنند‪ ،‬ندارد‪.‬‬
‫تالش برای بهترین سرویس‪ IP :‬هیچ تضمینی برای سرویس ارائه شده نمیدهد (پهنای‬
‫باند‪ ،‬تاخير‪ ،‬ترتیب و‪) ...‬‬
‫پروتکلهای الیه های باالتر باید خطای بسته ها را با ارسال مجدد برطرف نمایند‬
2 - IP ‫سرویس‬
‫ سرویس های زیر را ارائه می نماید‬IP ‫پروتکل‬
(unicast)one-to-one :‫ تک پخش ی‬
(broadcast)one-to-all :‫ همه پخش ی‬
(multicast)one-to-several :‫ چندپخش ی‬
12

ICMP ‫پروتکل‬
TCP/IP Protocol Suite
13
ICMP: Internet Control Message Protocol
Type
0
3
3
3
3
3
3
4
8
9
10
11
12
Code description
0
echo reply (ping)
0
dest. network unreachable
1
dest host unreachable
2
dest protocol unreachable
3
dest port unreachable
6
dest network unknown
7
dest host unknown
0
source quench (congestion
control - not used)
0
echo request (ping)
0
route advertisement
0
router discovery
0
TTL expired
0
bad IP header
‫ميزبانها و روترها برای تبادل اطالعات شبکه از‬
.‫آن استفاده میکنند‬
،‫ شبکه‬،‫ در دسترس نبودن ميزبان‬:‫گزارش خطا‬
‫ پروتکل‬،‫پورت‬
ping ‫درخواست های بازگشتی مانند‬
‫ قرار میگيرند‬IP ‫ درون بسته‬ICMP ‫پیامهای‬
‫ به‬Code ،Type ‫ دارای موارد‬ICMP ‫پیامهای‬
‫بایت) میباشند‬8( ‫همراه آدرس مبدا و مقصد‬





14
ICMP ‫فرمت بسته های‬
TCP/IP Protocol Suite
15
‫توجه‬
‫‪ ICMP‬همواره برای گزارش خطا به منبع استفاده میشود‬
‫‪16‬‬
‫‪TCP/IP Protocol Suite‬‬
‫تعقیب مسير (‪ )Traceroute‬با استفاده از ‪ICMP‬‬
‫‪‬‬
‫منبع یک سری سگمنت های ‪ UDP‬به‬
‫سمت مقصد ارسال میکند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫زمانی که ‪ n‬امين دیتاگرام به ‪ n‬امين‬
‫روتر وارد شود‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪17‬‬
‫این سگمنت ها در ابتدا دارای ‪ TTL=1‬هستند‬
‫سپس ‪ TTL=2‬و به همين ترتیب ادامه می یابد‬
‫روتر از دیتاگرام صرفنظر میکند و به سمت مبدا‬
‫یک پیام ‪)type 11, code 0( ICMP‬‬
‫ارسال میکند‬
‫پیام در برگيرنده نام روتر و آدرس ‪ IP‬آن است‪.‬‬
‫‪ ‬هنگامی که پیام ‪ ICMP‬وارد میشود‪ .‬منبع‬
‫‪ RTT‬را محاسبه میکند‪.‬‬
‫‪ Traceroute ‬این اقدام را ‪ 30‬بار انجام‬
‫میدهد‪.‬‬
‫شرط توقف‬
‫‪‬‬
‫سگمنت ‪ UDP‬به ميزبان مقصد وارد شود در‬
‫اینصورت مقصد پیام ‪ ICMP‬با نام‬
‫”‪“host reachable‬را ارسال میکند‬
‫‪‬‬
‫‪‬‬
‫)‪(type 3, code 3‬‬
‫هنگامی که مبدا این پیام را دریافت میکند‬
‫توقف خواهد کرد‪.‬‬
tracert ‫ استفاده از‬:‫مثال‬
C:\Users\vahid>tracert shahed.ac.ir
Tracing route to shahed.ac.ir [217.218.141.33]
over a maximum of 30 hops:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1 ms
1 ms
2 ms 192.168.1.1
*
*
*
Request timed out.
104 ms 78 ms 65 ms 172.23.133.90
82 ms 78 ms 87 ms 10.132.75.249
56 ms 97 ms 79 ms 10.132.92.35
58 ms 87 ms 78 ms 10.132.92.44
94 ms 80 ms 87 ms 10.21.252.202
*
*
*
Request timed out.
64 ms 79 ms 79 ms 10.21.22.97
*
*
*
Request timed out.
108 ms 126 ms 125 ms 10.22.71.98
*
*
*
Request timed out.
1510 ms 1765 ms 1668 ms 10.73.73.130
2040 ms 1569 ms
*
10.201.22.61
1153 ms 1685 ms 1473 ms 10.201.42.10
101 ms 94 ms 135 ms 10.201.42.9
98 ms 87 ms 89 ms 217.218.189.197
91 ms 123 ms 119 ms 217.218.146.222
106 ms 121 ms 89 ms shahed.ac.ir [217.218.141.33]
Trace complete.
18
‫‪DHCP: Dynamic Host Configuration Protocol‬‬
‫هدف‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫به ميزبانها اجازه میدهد تا بصورت داینامیک هنگامی که به شبکه متصل میشوند‪ IP ،‬بگيرند‬
‫ميزبان میتواند آدرس خود را تازه نماید و یک ‪ IP‬جدید از شبکه بگيرد‬
‫به شبکه اجازه داده میشود تا از آدرسها مجدد استفاده شود‬
‫برای اتصال کاربران سیار بسیار مفید است تا بتوانند به شبکه های جدید به راحتی متصل شوند‬
‫مروری بر ‪:DHCP‬‬
‫‪‬‬
‫ميزبان پیام ”‪ “DHCP discover‬را برای یافتن ‪ DHCP Server‬بصورت همه پخش ی ارسال میکند‬
‫‪‬‬
‫‪ DHCP Server‬با پیام ”‪ “DHCP offer‬پاسخ ميزبان را در یک پیام همه پخش ی میدهد‬
‫‪‬‬
‫‪‬‬
‫‪19‬‬
‫ميزبان پیام درخواست ‪ IP‬را بصورت ”‪ “DHCP request‬برای ‪ DHCP Server‬بصورت یک پیام‬
‫همه پخش ی ارسال میکند‬
‫‪ DHCP Server‬در پاسخ آدرس ‪ IP‬را بصورت پیام ”‪ “DHCP ack‬برای ميزبان بصورت پیام همه‬
‫پخش ی می فرستد‬
DHCP client-server scenario
DHCP
server
A 223.1.1.1
223.1.1.2
223.1.1.4
B
223.1.2.1
223.1.2.9
223.1.3.27
223.1.2.2
223.1.1.3
223.1.3.1
223.1.3.2
E
arriving DHCP
client needs
address in this
network
20
DHCP client-server scenario
DHCP server: 223.1.2.5
DHCP discover
arriving
client
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
time
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
Yiaddr: (client) IP address. Server's response to client.
Ciaddr: Client IP address. Filled in by client if it knows it's IP address (from previouse
requests or from manual configurations)
21
‫مروری بر معماری روتر‬
‫دو فرایند کلیدی در روترها‬
‫‪‬‬
‫‪‬‬
‫‪22‬‬
‫اجرای الگوریتم ها و پروتکلهای مسيریابی )‪(RIP, OSPF, BGP‬‬
‫سوئیچ کردن دیتاگرامهای ورودی به لینکهای خروجی‬
‫عملکرد پورت ورودی‬
‫الیه پیوند داده‪:‬‬
‫‪e.g., Ethernet‬‬
‫‪see chapter 5‬‬
‫الیه فيزیکی‪:‬‬
‫‪bit-level reception‬‬
‫فرایند‪ :‬یافتن پورت خروجی با استفاده از جدول مسيریابی‬
‫بافر کردن‪ :‬اگر دیتاگرامی سریعتر از فرایند پردازش و هدایت بسته قبلی وارد شود‪ ،‬باید آنرا بافر نماید‬
‫‪23‬‬
‫پورتهای خروجی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪24‬‬
‫بافر کردن (‪ : )Buffering‬زمانی که دیتاگرامهایی وارد شوند و برای خروج به یک پورت ارسال شوند و سرعت‬
‫هدایت دیتاگرامها سریعتر از سرعت ارسال در پورت خروجی باشد باید بسته ها بافر شوند‬
‫فرایند زمانبندی (‪: )Scheduling discipline‬انتخاب دیتاگرام برای ارسال از بين دیتاگرامهای قرار گرفته در‬
‫بافر خروجی‬
‫تاخير صف بندی و از بين رفتن (‪ : )queuing delay and loss‬باتوجه به پورت خروجی‪ ،‬بافر خروجی سرریز‬
‫رخ خواهد داد‬

similar documents