اطلاعیه

Collapse
No announcement yet.

برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

    سلام خسته نباشید
    من چند وقت بود داشتم روی بردی که بشه باهاش روی اترنت 7x256 کار کرد , کار میکردم
    به چند تا مشکل خوردم مثل این تاپیک
    http://www.eca.ir/forum2/index.php?topic=42776.0
    که خوشبختانه یا متاسفانه یک نفر هم جواب نداد!!!
    به هر حال مشکلی نبود برد رو زدم در زیر شماتیک و PCB رو مشاهده میکنید (عکس برد مونتاژ شده رو به زودی اضافه میکنم)





    http://www.4shared.com/document/Ov6V...t_adaptor.html
    بعد از اون مثال EasyWEB رو کامپایل کردم و دانلودش کردم روی ارم
    برای اولین بار تو عمرم یه چیزی بدون مشکل کار کرد=> ip رو پینگ کردم جواب داد و روی اینترنت اکسپلورر ای پی رو وارد کردم و وارد وب سروررم شدم
    حالا می خوام این مثال رو با کمک دوستان کامل تحلیل کنیم از اساتیدی هم که تو این زمینه کار کردن خواهش میکنم کمک کنن
    تشکر
    957
    خیر کاملا بیهوده است لازم نیست در این سطح از جزییات اطلاع داشت
    0%
    357
    بیهوده نیست ولی در این سطح اطلاع داشتن از جزییات فقط در موارد اندک مفید است
    0%
    305
    مفید است و باید برای کارکردن در این سطح از جزییات اطلاع داشت
    0%
    144
    حتی باید جزییات بیشتری مورد بررسی قرار گیرد
    0%
    151
    www.tehranelec.com

    #2
    پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

    شما تجربه ات روی شبکه تا چه حده؟ از بابت نوشتن یک protocol stack یا از بابت برنامه نویسی با سوکت ها یا شناختن پروتکل ها؟ چون برای تحلیل این مورد حداقل به اطلاعات مربوط به پروتکل ها و protocol stack احتیاج داری.

    دیدگاه


      #3
      پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

      نوشته اصلی توسط reza_agha
      شما تجربه ات روی شبکه تا چه حده؟ از بابت نوشتن یک protocol stack یا از بابت برنامه نویسی با سوکت ها یا شناختن پروتکل ها؟ چون برای تحلیل این مورد حداقل به اطلاعات مربوط به پروتکل ها و protocol stack احتیاج داری.
      سلام اقا رضا می خواستم دعوت کنم که تو این بحث شرکت کنید
      راستش من تجربه زیادی ندارم ولی هر طور شده می خوام این مثال رو تجزیه تحلیل کنم
      خواهش می کنم اگه در اولین قدم ها بهمون کمک کنید
      www.tehranelec.com

      دیدگاه


        #4
        پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

        من با ARm نه ولی با AVR شبکه را راه انداختم ، یه برنامه هم با دلفی نوشتم ( سوکت پروگرام) که راحت پینها را تحت اینترنت کنترل کنم
        حالا شما برو جلو ، جائیش گیر کردی شاید بتونیم راهنمائی یا کمکی بکنیم.
        آن دم که مرا می زده بر خاک سپارید زیر کفنم خمره ای از باده گذارید
        تا در سفر دوزخ از این باده بنوشم
        آنلحظه که با دوزخیان کنم ملاقات یک خمره شراب ارغوان برم به سوغات
        هرقدر که در خاک ننوشیدم از این باده صافی ، بنشینم و با دوزخیان کنم تلافی

        دیدگاه


          #5
          پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

          اصل برنامه EasyWeb ایده قشنگی داره. اگه تا بحال سیستمی بر مبنای میکروکنترلر راه اندازی کرده باشین که بخواین به صورتی با PC ارتباط داشته باشه عمدتا یک برنامه خاص ولو هر چند ساده روی PC نوشته اید که اطلاعات رو از میکرو بگیره و به میکرو بفرسته. اما اینجا یک مثال عملی از این مسئله هست که شما میتونین کل برنامه مورد نیازتون روی PC رو به صورت یک سری صفحات html داخل میکرو قرار بدین و با استفاده از اکسپلورر به این برنامه و اطلاعاتش و سرویس هایی که میکرو قراره بهتون بده بدون نوشتن حتی یک خط کد روی PC دسترسی پیدا کنین.

          خوب این کار بر اساس یک Web Server پیاده سازی شده.
          میدونیم که سرویس Web یا بهتر بگیم سرویس Http جزء سرویس هایی هست که براساس پروتکل TCP/IP کار میکنه و به صورت پیش فرض روی پورت 80 فعال میشه. خوب پس ما در این برنامه میبینیم که یک همچین سرویسی روی پورت TCP_PORT_HTTP پیاده سازی شده. اما این تیپ پیاده سازی با اونی که معمولا عادت داریم با socket programming باهاش برخورد داشته باشیم فرق میکنه. چون اونجا ما PC داریم با خدا تا حافظه و اینجا یک میکرو با حداکثر 32 کیلو بایت حافظه (البته از 2388 بگذریم).
          از طرف دیگه روی PC ما تمامی لایه های دسترسی به شبکه و سرویس های مورد نیاز رو در اختیار داریم ولی اینجا بجز دسترسی به لایه MAC هیچ چیز دیگه موجود نیست.

          پس ما مهمترین چیزی که میخواییم لایه دسترسی به شبکه به صورتی عام و قابل فهم هست.

          پس میریم سر وقت تیپ پیاده سازی روتین های protocol stack شبکه.

          1- سورس emac.c:
          این سورس شامل روتینهای پایه دسترسی به شبکه میکرو هست. این قسمت بر اساس لایه MAC درون میکرو و آی سی PHY به شماره DP83848 کار میکنه. توجه داشته باشیم که میکرو با این آی سی از طریق یک پورت که بنظر میاد مثل I2C کار میکنه؛ ارتباط داره تا بتونه فرمانهایی رو به لایه PHY ارسال و چیزهایی رو دریافت کنه. اما اطلاعات براحتی با استفاده از اینترفیس MII و RMII بین میکرو و PHY رد و بدل میشه.

          در این سورس بین میکرو و PHY چه اتفاقاتی میفته دقیقا نمیدونم اما با توجه به کامنتهای داخل سورس اصل کارش initialize کردن آی سی PHY برای کار در حالت RMII (که همون فرم MII با تعداد پایه های کمتر هست) و مشخص کردن مشخصاتی مثل حالت 10 یا 100 مگا بیت بودن و غیره هست. علاوه بر این حافظه داخلی لایه MAC رو هم برای ارسال و دریافت آماده میکنه.

          توصیه دوستانه: من خودم از این سورس با حداقل تغییرات روی روتین وقفه اترنت استفاده کردم تا protocol stack خودم رو بنویسم. کاری هم نداشتم که بن PHY چه ارتباطی صورت میگیره. بعضی روالها رو هم حذف کردم. از من میشنوین با توابع قبل از ReadFrame_EMAC کاری نداشته باشین. چون کار اصلی ما با این توابع نیست.
          ....

          دیدگاه


            #6
            پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

            اولین مسئله که در کار با اترنت باید بهش توجه کنیم اینه که اترنت یک پروتکل یک طرفه و اصطلاحا connection-less هست و این به این معنی هست که کلیه اطلاعات روی خط اترنت ارسال میشوند و گیرنده به تشخیص خودش وظیفه پردازش اطلاعات و هماهنگی با فرستنده برای ایجاد یک ارتباط مطمئن رو بر عهده داره. کلیه اطلاعات بر اساس یک سری فریم هایی با حجم به صورت پیش فرض نزدیک به یک و نیم کیلو بایت ردوبدل میشن که با اینکه این حجم رو میشه تغییر داد ولی بهتره از خیر اینکار بگذرین. اولا به خاطر اینکه performance ارتباط بین دستگاهها شدیدا به این حجم بستگی داره و دوما به خاطر اینکه با افزایش این حجم میزان یکنواختی تبادل اطلاعات بین دستگاهها با استفاده از چند ارتباط همزمان کم میشه و هم اینکه (مهمتر از همه) بر اساس اطلاعات ErrataSheet پخش شده توسط کمپانی philips بعضی از آی سی ها برای کار با سایزی متفاوت از 1536 بایت مشکل دارن.

            اگه به user manual آی سی های فیلیپس مراجعه کنین میبینین که دریافت اطلاعات توسط اترنت با استفاده از امکان وقفه به شما اطلاع داده میشه اما بهتره ارسال اطلاعات به بقیه رو به صورت دستی یا manual انجام بدین.

            ضمنا تا یادم نرفته اینو یادتون باشه که شما روی یک پلتفرم 32 بیتی risc کار میکنین و در اینجا کلیه دسترسی های 16 بیتی به اطلاعات بایستی به حافظه ای صورت بگیره که آدرس فیزیکی اش بر 2 قابل تقسیم باشه و همینطور دسترسی 32 بیتی به آدرسی که بر 4 قابل تقسیم باشه. اگر در طی خوندن سورس به تابع memcpy برای ست کردن یک مقدار 32 بیتی رسیدین خیلی تعجب نکنین چون آدرس فیلد مربوطه به 4 قابل تقسیم نبوده.

            از طرف دیگه در ارتباطات اترنت فرض اولیه بر اینه که اطلاعات عددی متعلق به پروتکل های استاندارد (و نه اطلاعاتی که من و شما میفرستیم) بایستی به فرم LittleEndian مبادله بشه و این یعنی مثل ساختار هایی مانند پروسسور های شرکت موتورولا. از آونجایی که آرم های فیلیپس بر اساس فرم BigEndian اطلاعات عددی رو در حافظه ذخیره میکنن با استفاده از توابعی مثل WriteWBE و WriteDWBE فرم این نوع اطلاعات بین حالت شبکه ای و حالت داخلی آرم تغییر میکنه. شاید ذکر این نکته بدرد بخوره که طریقه ذخیره اطلاعات دو یا 4 یا 8 بایتی در سیستمهای متفاوت به دو صورت کلی انجام میشه. به عنوان مثال عدد 0x1234 رو در نظر بگیرین. در پروسسورهای اینتل و AVR و آرم فعلی این مقدار به صورتی ذخیره میشه که اول 0x34 و بعدش 0x12 در حافظه میشینه که به همین خاطر بهش میگیم BigEndian یعنی بایت پرارزش آخر میاد. ولی در 8051 و 68000 و ایضا اترنت این عدد به صورت دو بایت 0x12 و 0x34 در حافظه میشینه که اصطلاحا بهش میگیم LittleEndian یا بایت کم ارزش آخر میشینه.

            .... دیگه نصف شبه... بقیه اش تا فردا طلبتون.

            دیدگاه


              #7
              پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

              ممنون از اقا رضا ی عزیز امیدوارم تا اخر همینطوری ادامه بدن(مشتاق یاد گیری)
              یک سری مطلب در مورد اصول کار stack protocol و سوکت ها اینجا هست هر کی اطلاعات بیشتر می خواد می تونه اینجا رو مطالعه کنه

              http://betterexplained.com/articles/...an-byte-order/
              http://www.tuxgraphics.org/electroni...ip-stack.shtml
              http://www.tuxgraphics.org/electroni...cle06111.shtml
              http://en.wikipedia.org/wiki/TCP_and_UDP_port
              http://en.wikipedia.org/wiki/Internet_socket


              راستش من امروز داشتم برنامه easyweb رو می خوندم یه مشکل بزرگی که داشتم این بود که نمی دونستم تا کجا باید توابع را دنبال کنم
              برای مثل اگه همون اول برنامه برنامه رو نگاه کنید این تابع اجرا شده
              TCPLowLevelInit()
              داخلش یک اینتراپت تایمر برای 262ms رو فعال کرده
              بعد adc رو ok کرده
              بعد تابع
              int_emac() رو اجرا کرده
              که دیگه داخل این تابع مستقیم داره با رجیسترهای mac کار میکنه و خیلی تابع سنگینی بود و احساس کردم خیلی اطلاعات دقیقی از شبکه باید داشته باشی تا از کار این سر در بیاری
              اقا رضا لازمه که از کار این تابع سر در بیاریم؟
              www.tehranelec.com

              دیدگاه


                #8
                پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                فعلا ما مشکلمون اینه که درک درستی از این داشته باشیم که EasyWeb چکار کرده. از لحاظ تکنیکی چطوری با یک آی سی اطلاعات رد و بدل میشه کرد رو بهش کاری نداریم چون کافیه به دیتا شیت آی سی سر بزنین. اما درک درست از چگونگی کارکرد برنامه مهمتره.
                فعلا این تابع برای ما آی سی PHY رو init میکنه تا بشه لایه اترنت رو بطور فیزیکی فعال کرد. همین!

                این روال از وقفه برای اخذ اطلاع از دریافت یک فریم اترنت استفاده نمیکنه به همین خاطر در روتین اصلی مدام تابع DoNetworkStuff رو صدا میکنه تا پردازش اطلاعات احتمالا دریافت شده روی اترنت انجام بشه. در یک حالت بهینه تر میشه توی روال init وقفه دریافت اطلاعات رو فعال کرد و در اونجا از یریق یک مکانیسم کمکی این پردازش هارو انجام داد. این روش مخصوصا موقعی که با RTX کار میکنین بیشتر بکار میاد.

                قبل از هر چیز بایستی اینو یادمون باشه که در اترنت فریم ها ارسال میشند و تمامی گیرنده ها میتونن به این فریم دسترسی پیدا کنن. ولی فقط اونهایی که فریم به اونها مربوطه این فریم رو پردازش میکنن و بقیه اون رو دور میریزند.

                روال اصلی ارتباط شبکه ای تابع DoNetworkStuff هست. در این تابع ابتدا چک میشه که آیا فریمی دریافت شده یا نه. (با استفاده از CheckFrameReceived). بعد از اون چون ممکنه این یک فریم Broadcast باشه پردازش های مربوطه شروع میشه. یک فریم Broadcast فریمی هست که برای بیش از یک ماشین ارسال شده. مثلا مثل فریم های درخواست IP توسط پروتکل ARP.

                این پروتکل چیه؟

                در ارتباطات شبکه ای بر اساس IP بایستی فریم های اترنت بر اساس آدرس سخت افزاری یا همون MAC تبادل بشن اما در سطح IP کامپیوتر ها توسط آدرس IP شناسایی میشن. حالا وقتی قراره با یک IP خاص ارتباط برقرار کنیم چطوری باید MAC مربوطه رو بفهمیم چنده؟ یک راهش اینه که در یک جدول به ازای هر IP یک مقدار ثابت MAC داشته باشیم. اینو بهش میگیم static IP. که اغلب باعث دردسره. یک راه نسبتا پیچیده تر ولی مطمئن تر اینه که در لایه اترنت به همه کامپیوتر ها اطلاع بدیم: کی این IP رو داره؟ و اگه یکی پیدا بشه که این IP رو داشته باشه بتونی از طریق همون لایه MAC به ما خبر بده ما میتونیم بفهمیم که اونی که جواب داده ماشین مقصده. از کجا؟ فریم اترنت با یک 14 بایت شروع میشه که 6 بایت اول آدرس MAC کامپیوتر مقصد و 6 بایت بعدی آدرس کامپیوتر مبدا هست. در هنگام ارسال درخئاست ARP آدرس کامپیوتر مقصد چیه؟ نمیدونیم که! پس همه! یعنی 6 تا 0xFF که به این میگیم آدرس Broadcast!

                از اینجا بع بعد یه کمی مشکل داریم. برای کم کردن میزان حافظه مورد نیاز برای پردازش اطلاعات نباید بافری برای نگهداری فریم دریافتی حروم کنیم. 1.5 کیلو بایت هم خیلیه. پس در هنگام اطلاع از دریافت اطلاعات برای اخذ اطلاعات و پردازش اونها اطلاعات رو مستقیما از بافر اترنت میخونیم نه از حافظه داخلی خودمون. این همون کاریه که تابع ReadFrame_EMAC انجام میده.
                اگر قرار باشه که این خوندن منجر به تغییر وضعیت بایتها باشه از تابع ReadFrameBE_EMAC استفاده میشه. بقیه تابع ها هم که مشخصه. تابع ProcessEthBroadcastFrame چک میکنه اگر این فریم مربوط به درخواست ARP هست و همین میکرو باید جواب بده فریم جواب در PrepareARP_ANSWER ساخته و به شبکه ارسال میشه.

                از اونجایی که فریم های ارسالی به شبکه عمدتا برای دو منظور یکی برای ارتباطات هماهنگی شبکه ای و یک برای رد و بدل کردن اطلاعات استفاده میشه برنامه دو بافر یکی به طول 1536 بایت کامل برای ارتباطات اطلاعاتی و یکی کوچکتر برای هماهنگی ها استفاده کرده. نکته مهم اینه که با اینکه قبلا گفتیم که حجم فریم دریافتی رو نبایستی از 1536 بایت عوض کرد ولی این ماکزیمم حجم فریم هست. بنابراین اطلاعات ارسالی میتونه با حجم کمتری ارسال بشه. ضمنا چون سرعت ارسال اطلاعات در شبکه 100 مگا بیتی به مراتب از میزانی که ما بتونیم تولید کنیم بیشتر هست فرض بر این گرفته میشه که hjvkj همیشه پذیرای اطلاعات دریافت اطلاعات و ارسال اون به شبکه هست. به تابع Rdy4Tx نگاه کنید.

                قسمت عمده کار در ProcessEthIAFrame انجام میشه که فعلا باز هم طلبتون. امشب برای فردا صبح باید یک برد رو طراحی و تست کنم.

                دیدگاه


                  #9
                  پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                  سلام
                  با تشکر از اقا رضا
                  من تو این دو روزه این مثال رو خوندم و کامل متوجه شذم که چی کار کرده زیاد کار سختی نیست باید از پروتکل tcp و نحوه پر شدن استک ها سر در بیارید
                  مثل اینکه سر اقا رضا شلوغه من در غیاب ایشون ادامه می دهم

                  اول از همه می خوام امروز پروتکل tcp رو توضیح بدم مختصر در ادمه استک رو بررسی میکنیم و در ادامه یه سری اطلاعات کلی و بعد میریم سراغ برنامه
                  کل هدر tcp رو با هم مرور میکنیم چیزی نداره بخونید متوجه میشید



                  ببینید برای این که بدونید کجای داستانیم اینو بگم که این ماشین حالت که در بالا است استیت های یک tcp است و برای انتقال دیتا نیاز داریم که طبق این چارت عمل کنیم پس اینو یاد بگیرید فعلا بعدا کلی تر بحث میکنیم چند تا مبحث هستند که جدا جدا باید بدونیم بعد همشو بهم ربط میدیم

                  در مورد tcp چیزهایی که باید بدونید نحوه کنکت شدن و نحوه خروج و یا دیسکنکت شدن است که در چارت بالا مشخص شده است
                  اول از همه دو نوع active-open و passive-open وجود داره
                  در پسیو کافی است خودمان را به استیت listen ببریم و پورت خود را فعال کنیم

                  وبرای اکتیو شدن سه مرحله که باید به صورت توام انجام شوند لازم است
                  در استک tcp که بعدا توضیح میدهم چندین خانه وجود داره که مثلا request number acknumber و در مکانی هم یک بایت دیتای کنترلی قرار دارد عکس زیر استک tcp است

                  البته استک tcp خود بخشی از کل استک اصلی است که کل دیتای اترنت در ان قرار میکیرد بعدا میگم اسیا به نوبت!!

                  نحوه اکتیو شدن
                  1- فرستادن یک syn از اولی به دومی و قرار دادن req num=a به صورت رندم
                  2-دومی جواب اولی را با syn و ack میدهد و a+1 را به عنوان acknum برایش بر میگرداند و reqnum=b را رندم می فرستد
                  3 - با یک ack جواب می دهد و reqnum را همان a+1 و acknum را b+1 می فرستد

                  در شکل ما در استیت لیسن هستیم حال با فرستادن یک syn به استیت syn_sent میرویم و با دریافت یک ack و syn وارسال یک ack به استیت استابلیش می رویم و کنکشن فعال را در اختیار داریم

                  هینطور می شود که یک syn دریافت کنیم (کسی می خوتهد با ما به کنکشن فعال برود) پس با یک syn و ack جواب میدهیم و به استیت syn_rcv می رسیم حال تنها با امدن یک ack کار تمام است و وارد استیت establish شده ایم
                  بقیش باشه برای بعد...
                  www.tehranelec.com

                  دیدگاه


                    #10
                    پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                    یه تحقیق در این مورد کردم :
                    کلیه اطلاعات بر اساس یک سری فریم هایی با حجم به صورت پیش فرض نزدیک به یک و نیم کیلو بایت ردوبدل میشن که با اینکه این حجم رو میشه تغییر داد ولی بهتره از خیر اینکار بگذرین. اولا به خاطر اینکه performance ارتباط بین دستگاهها شدیدا به این حجم بستگی داره و دوما به خاطر اینکه با افزایش این حجم میزان یکنواختی تبادل اطلاعات بین دستگاهها با استفاده از چند ارتباط همزمان کم میشه و هم اینکه (مهمتر از همه) بر اساس اطلاعات ErrataSheet پخش شده توسط کمپانی philips بعضی از آی سی ها برای کار با سایزی متفاوت از 1536 بایت مشکل دارن.
                    در استاندارد IEEE802.3
                    یکی از فیلدهای فریم های ارسال دیتا Length هست که در اگه حجمش کمتر از 1536 دسیمال (0x600 هگز ) باشه نشان دهنده طول Data هست و اگر بیشتر باشه نشان دهنده نوع پروتکل Type هست.
                    آن دم که مرا می زده بر خاک سپارید زیر کفنم خمره ای از باده گذارید
                    تا در سفر دوزخ از این باده بنوشم
                    آنلحظه که با دوزخیان کنم ملاقات یک خمره شراب ارغوان برم به سوغات
                    هرقدر که در خاک ننوشیدم از این باده صافی ، بنشینم و با دوزخیان کنم تلافی

                    دیدگاه


                      #11
                      پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                      خوب در استیت استابلیش قرار داشتیم
                      حالا چند جور می شه ارتباط قطع شه

                      قبل از این یه توضیحی بدم tcp یک پرئتکل ارتباطی با چهار چوب لغزان طول دیتای ارسالی -دارای time-out -و ارسال های تکراری تا گیرنده تایید کند تا دیتا رو دریافت کرده است
                      یعنی دیتا ارسال می شود تا مدت زمان خاصی که در مثال keil حدود 1 ثانیه است منتظر تایید می ماند و سپس دوباره ارسال میکند و تعداد ارسال های تکراری نیز قابل تنظیم می باشد و اگر باز هم تایید نیامد ارتباط قطع شدخ به استیت closed میرود
                      همان طور که مشخص است tcp بر اساس ارسال صحیح کار میکند و زیاد به منظم بودن ارسال ها کار ندارد و در application های ریل تایم می تواند مشکل ساز باشد!!!

                      خوب حالا می خواهیم ارتباط را قطع کنیم اگر بدون هیچ مقدمه ای تمام فلگ ها رو ریست کنیم و استیت خود را closed کنیم ممکن است دیتایی که در راه رسیدن بود از بین برود
                      برای همین باید چند استیت را برای اطمینان از قطع ارتباط کامل طی کنیم و سپی خارج شویم

                      1-می خواهیم ارتباط را قطع کنیم در نتیجه ما چیزی برای ارسال نداریم یک fin ارسال می کنیم و به fin-wait-1 استیت میرویم حال طرف مقابل می داند که ما می خواهیم خارج شویم و اخرین دیتای خود را برایمان ارسال میکند و یک fin & ack می دهد با گرفتن ان به استیت fin-wait-2 می رویم این یعنی دیگر با ما کاری ندارد پس با فرستادن یک ack خداحافظی کرده و به استیت close میرویم

                      2-طرف مقابل می خواهد ارتباط خود را قطع کند ما یک fin دریافت میکنیم برایش یک ack میفرستیم و میگیم که فهمیدیم که میخوای خارج شی و خودمان را به استیت close-wait می بریم حال اخرین دیتا ها راقبل از قطع ارتباط برایش می فرستیم و سپس تایید قطع ارتباط را می دهیم و میگوییم ما هم باهات کاری نداریم و به استیت last -ack میرویم و با امدن یک ack&fin از طرف مقابل ارتباط قطع وبه استیت close میرویم
                      ...
                      www.tehranelec.com

                      دیدگاه


                        #12
                        پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                        اقا یه چیزی بگم ، دوستان الکترونیکی معمولا با مفاهیم شبکه مشکل دارند ، ( کی نداره ؟) بنابراین پیشنهاد میکنم برای شروع کار و سادگی کار به جای پروتکل Tcp که دردسرش بیشتر هست ، مستقیم بیاین از پروتکل UDP استفاده کنید که دردسر خیلی از مسائل موجود در tcp را نداره

                        البته این راحتی یکسری معایب هم داره که به نظر من فعلا برای شروع کار قابل چشم پوشی هستند.
                        آن دم که مرا می زده بر خاک سپارید زیر کفنم خمره ای از باده گذارید
                        تا در سفر دوزخ از این باده بنوشم
                        آنلحظه که با دوزخیان کنم ملاقات یک خمره شراب ارغوان برم به سوغات
                        هرقدر که در خاک ننوشیدم از این باده صافی ، بنشینم و با دوزخیان کنم تلافی

                        دیدگاه


                          #13
                          پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                          joker جان مثل این که جا فقط ما دوتاییم و کسی به این بحث علاقه نداره ولی تا ته این بحث رو ببریم :rolleyes: تا شاید یکی یه روزی تونست از این استفاده ای کنه
                          بعدش حرفت کاملا صحیحه ولی هدف اینه که مثال easyweb را در کوتاهترین زمان بتونیم انالیز کنیم :angry:
                          یه پیشنهاد دارم این بحث رو اینجا همینطور تدامه می دیم یک تاپیک تازه باز میکنیم و اون بحث رو اونجا مطرح میکنیم
                          بعد من یک مشکلی خوردم من کامل می تونم هر پیجی رو که میخوام html اون رو بنویسم بع load کنم تو میکرو و هر متغییر رو در اون پیج تغییر بدم
                          ولی اینا همش در همون حد مثال easyweb هست می خوام یه ذره مثال کامل تر کنم می خوام دیتا از پیجم برای بردم ارسال کنم
                          ولی فرمت دیتایی که میگیرم رو نمیدونم !!!
                          می تونی کمک کنی؟
                          ( راستی اقا رضا کجاییی)
                          ما تنها موندیم :cry:
                          www.tehranelec.com

                          دیدگاه


                            #14
                            پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                            دیتایی که از سمت وب درآدرس url ارسال میشه نوع متنی String هست همیشه
                            هر مقدار با یک نام میاد
                            <p><input type="text" name="TextBox" size="20" value="salam"></p>
                            توی html که کد بالا باشه ، متغییری به اسم textbox به سمت سرور ( اینجا میکرو) ارسال میشه که مقدارش برابر با salam هست. حالا این متن را بخون ، پردازش کن و بعد از تصمیم گیری در موردش روی پایه های میکرو اعمال کن.


                            پیوست : من با easyweb تاحالا کار نکردم
                            آن دم که مرا می زده بر خاک سپارید زیر کفنم خمره ای از باده گذارید
                            تا در سفر دوزخ از این باده بنوشم
                            آنلحظه که با دوزخیان کنم ملاقات یک خمره شراب ارغوان برم به سوغات
                            هرقدر که در خاک ننوشیدم از این باده صافی ، بنشینم و با دوزخیان کنم تلافی

                            دیدگاه


                              #15
                              پاسخ : برد مبدل اترنت کامل شد -بررسی مثال EasyWEB در کیل

                              نوشته اصلی توسط J0KER
                              دیتایی که از سمت وب درآدرس url ارسال میشه نوع متنی String هست همیشه
                              هر مقدار با یک نام میادتوی html که کد بالا باشه ، متغییری به اسم textbox به سمت سرور ( اینجا میکرو) ارسال میشه که مقدارش برابر با salam هست. حالا این متن را بخون ، پردازش کن و بعد از تصمیم گیری در موردش روی پایه های میکرو اعمال کن.


                              پیوست : من با easyweb تاحالا کار نکردم
                              l
                              میشه کامل تر توضیح بدی وقتی مثلا
                              کد html وب سرور این باشه


                              <form>
                              First name: <input type="text" name="firstname" /><br />
                              Last name: <input type="text" name="lastname" />
                              <
                              یعنی یک فیلد user , pass بعد از اینکه کلید submit یا کد

                              <input type="submit" value="Submit" />
                              رو فشار دادیم دقیقا چه چیزی رو بعد از هدر tcp دریافت می کنیم؟؟

                              بعد می خوام بدونم اگه یه لینک بذاریم و اون لینک رو کلیک کنن چی دریافت میکنیم همش بعد از هدر tcp هست
                              خواهشا دقیق با جزییات چون می خوام براش کد بنویسم اگه نمونه چیزی داری که دیگه نور الا نوره

                              و اخرین سوال اینه که اگه بخوام یه عکس رو روی سرورم اپ کنم
                              مثلا
                              <img src="FullSchmatics.jpg" width="150" height="110" />
                              خوب در کامپیوتر خیلی اسونه ولی این چجوری میشه روی میکرو اعمال شه یعنی عکس رو باید چجوری ذخیره کنم و ادرس دهیش چجور میشه؟
                              www.tehranelec.com

                              دیدگاه

                              لطفا صبر کنید...
                              X