কৃত্রিমভাবে সংযোগের সময়সীমা ত্রুটি তৈরি করুন


291

আমাদের সফ্টওয়্যারটিতে আমি একটি বাগ পেয়েছি যা সংযোগের সময়সীমা শেষ হওয়ার পরে ঘটে। এই ত্রুটিগুলি খুব বিরল (সাধারণত যখন আমার অভ্যন্তরীণ নেটওয়ার্কের মাধ্যমে আমার সংযোগটি বাদ যায়)। আমি কীভাবে এই জাতীয় প্রভাবটি কৃত্রিমভাবে তৈরি করতে পারি যাতে আমি আমাদের সফ্টওয়্যারটি পরীক্ষা করতে পারি?

যদি বিষয়টি বিবেচনা করে তবে অ্যাপ্লিকেশনটি সিএনসিএসকেট ক্লাস ব্যবহার করে সি ++ / এমএফসি লেখা আছে।

সম্পাদনা:

আমি অস্তিত্বহীন হোস্টটি ব্যবহার করার চেষ্টা করেছি এবং আমি সকেটের ত্রুটি পেয়েছি:

WSAEINVAL (10022) অবৈধ যুক্তি

আমার পরবর্তী প্রয়াসটি ছিল আলেকজান্ডারের ভিন্ন পোর্টের সাথে সংযোগ স্থাপনের পরামর্শটি ব্যবহার করা , যেমন 81 (যদিও নিজের সার্ভারে)। এটা দুর্দান্ত কাজ করেছে। অবরুদ্ধ সংযোগের মতো ঠিক একই (60 সেকেন্ড অপেক্ষা, তারপরে ত্রুটি)। ধন্যবাদ!


হাই মার্ক, আমি সমাধানটি চেষ্টা করেছি যা আপনার পক্ষে কাজ করে তবে আমি যা পেয়েছি তা হ'ল # 503 (পরিষেবা অনুপলব্ধ))। এর মধ্যে একটিও হওয়া উচিত নয়, # 504 (গেটওয়ে টাইমআউট), # 599 (নেটওয়ার্ক সংযোগের সময়সীমা ত্রুটি), # 598 (নেটওয়ার্কের পাঠ্য সময়সীমা ত্রুটি)।
CoDe

উত্তর:


297

বিদ্যমান হোস্টের সাথে তবে ফোর্টওয়াল দ্বারা অবরুদ্ধ এমন একটি পোর্টের সাথে সংযোগ করুন যা কেবলমাত্র টিসিপি এসওয়াইএন প্যাকেটগুলি ফেলে দেয়। উদাহরণস্বরূপ, www.google.com:81।


6
এই উত্তরটি সহজ এবং নীচে @ ইমুর উত্তরের মতো কাজ করে। আমি বুঝতে পারি যে এই উত্তরটি google.com:81 ব্যবহারের পরামর্শ দেওয়ার মতো নয় তবে এখানে কথাটি হ'ল অবরুদ্ধ একটি পৃথক বন্দর ব্যবহার করা। সুতরাং আপনি সর্বদা <আপনার-ডাউন-ip>: <ব্লকডপোর্টপোর্ট> ব্যবহার করতে পারেন।
জেমস সেলভাকুমার

6
এটি নিজের সার্ভার না থাকলে আপনার পরীক্ষার জন্য অন্যান্য সার্ভারগুলিতে আঘাত করা অভদ্র। নীচে উল্লিখিত ইমুর মতো একটি সভ্য সমাধান ব্যবহার করুন, 10.255.255.1 এর মতো অ-রাউটেবল আইপি ঠিকানাকে আঘাত করে বা পরীক্ষার উদ্দেশ্যে আপনার নিজের একটি ভার্চুয়াল সার্ভার সেটআপ করুন।
জিশান

2
আমি মনে করি যে গুগল এই বন্দরটিকে অবরুদ্ধ করেছে। আমি যখন এটি ক্রোমের সাথে পরীক্ষা করি তখন আমি কেবল "সার্ভার উপলব্ধ নেই।" আমি নীচে @ ইমুর কৌশলটি যখন ব্যবহার করি, তখন সংযোগটি প্রত্যাশার সাথে স্থগিত হয়ে যায়। আমি কিছু অনুপস্থিত করছি?
এনটনার্ড

ওপি বলছে যে সে তার নিজের সার্ভারে ৮১ বন্দরটির সাথে সংযোগ স্থাপন করেছে এবং সময়সীমা পেয়েছে। সেটা আমার পক্ষেও কাজ করেছিল। ইমুর সমাধান আমাকে অ্যান্ড্রয়েডে একটি অজানাহোস্টএক্সেপশন দিয়েছে।
ব্যারি ফ্রুটম্যান

2
এটি একটি সংযোগ দেবে না সময়সীমা ছাড়াই প্রত্যাখাত।
মেহদী

425

একটি রাউটেবল আইপি ঠিকানার সাথে সংযুক্ত করুন, যেমন 10.255.255.1।


12
আইডেম, এবং আমি অনুমান করি যে এটি google.com:81 এর থেকে আরও ভাল উত্তর হতে পারে যেহেতু একদিন অ্যাক্সেসযোগ্য।
গুই 13

138
... এবং কারণ আপনার ইউনিট পরীক্ষাগুলি থেকে অন্য ব্যক্তির সার্ভারে এলোমেলো প্যাকেটগুলি প্রেরণ করা অভদ্র is
গ্লেন মেইনার্ড

15
এটি সবসময় কাজ করবে না। উদাহরণস্বরূপ, পাইথনের সাথে urllib, এটি 'হোস্টের কোনও রুট নয়' ব্যতিক্রম ফিরিয়ে দেবে। এফওয়াইআই
মাইক শুল্টজ

8
10.0.0.0, 10.255.255.255, 172.16.0.0, 172.31.255.255, 192.168.0.0, 192.168.255.255 এগুলি সমস্ত অ-রাউটেবল।
rajesh_kw

4
@ এফআইএইচ-র দ্বারা উল্লিখিত "হোস্টের কোনও রুট নয়" ত্রুটিটি সাধারণত দুটি শর্তে উপস্থিত হয়: (ক) আপনি যখন নিজের স্থানীয় ল্যানে কোনও অ-পৌঁছনীয় হোস্টের সাথে সংযোগ করার চেষ্টা করেন (অর্থাত্ এটি এআরপি প্রশ্নের উত্তর দেয় না সুতরাং এটি মূলত একটি " এআরপি সময়সীমা ")। এবং (খ) যখন কোনও রাউটার সংশ্লিষ্ট আইসিএমপি ত্রুটি প্রদান করে। আপনি যে বেসরকারী আইপিটি পরীক্ষা করেন সেই একই সাবনেটে থাকলে প্রথম ক্ষেত্রে ঘটে। দ্বিতীয় ক্ষেত্রে যদি কোনও রাউটার আপনার প্যাকেটকে কীভাবে তার গন্তব্যে নিয়ে যেতে জানে না তবে কিছু ক্ষেত্রে তারা কেবল আইএমএমপি ত্রুটি না পাঠিয়ে প্যাকেটটি ফেলে দেয়।
আলে

47

আপনি যদি কোনও ইউনিক্স মেশিনে থাকেন তবে নেটক্যাট ব্যবহার করে একটি পোর্ট শ্রবণ শুরু করতে পারেন:

nc -l 8099

তারপরে, সেই বন্দরে সাধারণত যা কিছু হয় তা কল করার জন্য আপনার পরিষেবাটি সংশোধন করুন যেমন : http: // লোকালহস্ট: 8099 / কিছু / সাজান / এর / শেষপয়েন্ট

তারপরে, আপনার পরিষেবাটি সংযোগটি খুলবে এবং ডেটা লিখবে, তবে কোনও প্রতিক্রিয়া পাবে না এবং তাই আপনাকে পুনর্বার পাঠের সময় দেবে (সংযোগ প্রত্যাখ্যান করার পরিবর্তে)


1
এটি আপনার উপযোগী যেহেতু আপনি দেখতে পাচ্ছেন যে আপনার অ্যাপ্লিকেশনটি যা ডেটা চাপছে তা। আপনার অ্যাপ্লিকেশন কোনও প্রতিক্রিয়া চেয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন।
পল

যেমনটি উল্লেখ করা হয়েছে, কোনও প্রান্তের বিন্দুতে নেভিগেট করার জন্য এটি সত্য, তবে আমি যদি অন্য কোনও উপায়ে সংযোগ দেওয়ার চেষ্টা করি তবে এটি দ্রুত একটি সংযোগ অস্বীকার করে, যা আমি এই মুহূর্তে উপহাস করার চেষ্টা করছি না।
অ্যালানএসই

@ অ্যালানসী - আপনার অন্য কোন উপায়টি কী বোঝাতে চাইছেন? আপনার বন্দর নম্বর পরে কিছু থাকতে পারে; কোনও ইউআরএল হ্যান্ডেল করার মতো কিছু নেই বলে নেটকাট যত্ন নেবে না
টম চেম্বারলাইন

@ টমচাম্বারলাইন ওহ অপেক্ষা করুন, আমি বুঝতে পারি যে আমি কী ভুল করছি। আমি একটি এসএসএস সংযোগের সময়সীমা অনুকরণ করার চেষ্টা করছি। সুতরাং আমি এটিকে লোকালহোস্ট, 8099 পোর্ট দিচ্ছি, তবে এর আগে আমি একটি ব্যবহারকারীর নাম দিইনি, তাই আমি যদি কিছু রাখি ssh alanse@localhost -p 8099তবে মনে হয় এটি এটি করে।
অ্যালানএসই

7
সকেট স্তরে সংযোগের সময়সীমা পরীক্ষা করতে, এনসি প্রক্রিয়াটি একটি kill -STOP <pid>(বা ব্যাকগ্রাউন্ডে না রেখে কেবল সিটিআরএল-জেড) দিয়ে ফ্রিজ করুন । সিস্টেমটি সার্ভারটি চলমান ছিল এমনভাবে কাজ করবে তবে সার্ভারটির সংযোগটি গ্রহণের জন্য অপেক্ষা করুন, যার ফলে সংযোগের সময়সীমা শেষ হবে (110)।
ফিলান্ট

27

নিম্নলিখিত ইউআরএল সর্বদা একটি সময়সীমা দেয় এবং উপরে @ আলেকজান্ডার এবং @ ইমুর উত্তরগুলির সর্বোত্তম একত্রিত করে:

http://example.com:81

ব্যবহার example.com:81করা হয় আলেকজান্ডার এর উত্তরে একটি উন্নতি কারণ example.com ডিএনএস মান দ্বারা সংরক্ষিত হয়, তাই এটা সবসময় অনধিগম্য হবে অসদৃশ google.com:81, যদি গুগল মত আর পরিবর্তন হতে পারে। এছাড়াও, example.comঅ্যাক্সেসযোগ্য হিসাবে সংজ্ঞায়িত করার কারণে , আপনি গুগলের সার্ভারগুলিতে প্লাবিত হবেন না।

আমি বলব এটি @ ইমুর উত্তরের চেয়ে উন্নতি হবে কারণ এটি মনে রাখা অনেক সহজ।


2
বর্তমানে আমি example.com93.184.216.34 এ সমাধান করতে দেখছি এবং আসলে এটি একটি উদাহরণ ডোমেন ব্যাখ্যা করে একটি সংক্ষিপ্ত এইচটিএমএল পরিবেশন করে ... পোর্ট 81 এখনও সাড়া দেয় না।
বেনি চেরনিয়াভস্কি-পাসকিন

উদাহরণস্বরূপ.কমটি সেইভাবে ব্যবহার করার কথা। কেবলমাত্র যদি তারা টেস্ট প্যাকেটগুলির সাথে আনুষ্ঠানিকভাবে প্লাবিত হতে পারে তবে এই ডোমেনটি অন্য কোনও বাণিজ্যিক ডোমেনের চেয়ে ভাল। অনুমতি ব্যতীত এ জাতীয় উদ্দেশ্যে ডোমেনগুলি ব্যবহার করা অনৈতিক, কমপক্ষে, অবৈধ না হলেও বলা, কারণ এই প্যাকেটগুলি পরিচালনা করতে কারও জন্য অর্থ ব্যয় করা হয়। httpstat.us@AndyTheEntity তার উত্তরে নির্দেশিত হিসাবে ব্যবহার বিবেচনা করুন ।
ম্যানুয়েল

@ ম্যানুয়েল আপনি পয়েন্টটি মিস করছেন ... example.comএটি একটি বাণিজ্যিক ডোমেইন নয়, এটি কয়েকটি ডোমেইন নামগুলির মধ্যে একটি যা স্পষ্টভাবে অকেজো হিসাবে চিহ্নিত করা হয়েছে। কারও মালিক হতে পারে না example.comএবং ডিএনএস রাউটারগুলি জানে যে এটি কখনই আসল ঠিকানায় যায় না। সুতরাং এটি কারও সার্ভারের সময় ব্যয় করে না, এটি ব্যবহার করে কোনও ভুল নেই
স্পিড প্লেন

@ স্পিডপ্লেন আইএএনএ প্রবিধান দ্বারা ডোমেনের মালিকানাধীন এবং একটি ওয়েব সার্ভার বজায় রাখে যার উদ্দেশ্য ব্যাখ্যা করে একটি ওয়েব পৃষ্ঠা সরবরাহ করে example.com। ডোমেনের পিছনে অবকাঠামো রয়েছে, তাই প্রতিটি অনুরোধের জন্য এটি আইএএনএ অর্থ ব্যয় করে। জায়েজ ব্যবহারটি আরএফসি ২0০6 এবং আরএফসি in 6761১ তে উল্লেখ করা হয়েছে, আপনি যেমন উল্লেখ করেছেন তেমন কোনও ডোমেনগুলি floddingঅন্য সার্ভারের পরিবর্তে তাদের পছন্দ মতো আপনি ব্যবহার করতে পারবেন না। আপনার দাবিটি যা example.com is defined to be unreachableভুল, এটি পৌঁছনীয়। পোর্ট ৮১ এখন অ্যাক্সেসযোগ্য নয় তবে ভবিষ্যতে গ্যারান্টিযুক্ত হওয়ার সংজ্ঞাটি কোথায় দেওয়া হয়েছে?
ম্যানুয়েল

আপনি যে আরএফসিটি নির্দিষ্ট করেছেন তাতে ডিএনএস পরীক্ষার অনুমতি দেয়। তারা আপনাকে .testপরিবর্তে শীর্ষ স্তরের ডোমেন ব্যবহার করার পরামর্শ দেয় example.comতবে এই উদ্দেশ্যে এই ডোমেনগুলি স্পষ্টভাবে সেটআপ করা হয়েছিল। হ্যাঁ, আইএএনএ এর জন্য কিছুটা অর্থ ব্যয় হতে পারে, তবে এটি তাদের দেওয়া পরিষেবা। আমাদের ডিএনএস ফি এর জন্য পরিশোধ করে।
স্পিড প্লেন

21

প্রচুর ভাল উত্তর কিন্তু পরিষ্কার সমাধানটি এই পরিষেবা বলে মনে হয়

http://httpstat.us/504?sleep=60000

আপনি সময়সীমা (230 সেকেন্ড অবধি) এবং শেষ রিটার্ন কোডটি কনফিগার করতে পারেন।


16

ডেটা পাওয়ার সময় টাইমআউট অনুকরণ করার জন্য আপনি পাইথন আরপিএল ব্যবহার করতে পারেন (যেমন কোনও সংযোগ সফলভাবে প্রতিষ্ঠিত হওয়ার পরে)। একটি স্ট্যান্ডার্ড পাইথন ইনস্টলেশন ছাড়া আর কিছুই দরকার নেই।

Python 2.7.4 (default, Apr  6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)        
>>> s.bind(('localhost', 9000))
>>> s.listen(0)
>>> (clientsocket, address) = s.accept()

এখন এটি আগত সংযোগের জন্য অপেক্ষা করছে। আপনি যা পরীক্ষা করতে চান তা সংযুক্ত করুন localhost:9000। আপনি যখন করবেন, পাইথন সংযোগটি গ্রহণ accept()করবে এবং এটি ফিরিয়ে দেবে। আপনি যদি কোনও মাধ্যমে কোনও ডেটা না প্রেরণ করেন clientsocket, কলারের সকেট পরবর্তী সময়ের মধ্যে শেষ হওয়া উচিত recv()


আমার জন্য কাজ করে না; কিছু একটা নেই. সম্ভবত s.listen(5)আগে s.accept()?
bmaupin

@ বিমাউপিন এটি যুক্তিযুক্ত বলে মনে হয়, আমি অনুমান করি যে আমি এটি ভুলে গেছি। এখনই এটি সম্পাদনা করে (তবে 0 এর ব্যাকলগ সারি সহ), ধন্যবাদ!
হেনরিক হিমবুর্গার

1
আমি একটি while True:লুপে শ্রুতিগুলি গ্রহণ করতে এবং গ্রহণ করতে সক্ষম হয়েছি এবং এটি পরীক্ষার জন্য হিট করার জন্য একটি দুর্দান্ত টেকসই টাইমআউট-আইএন গন্তব্য তৈরি করেছে বলে মনে হচ্ছে।
অ্যালানএসই

2
এটি কাজ করে, তবে এটি "রিড টাইমআউট" ত্রুটি দেয় যা "সংযোগের সময়সীমা" এর মতো নয়
তৈমুর

13
  • 10.0.0.0
  • 10.255.255.255
  • 172.16.0.0
  • 172.31.255.255
  • 192.168.0.0
  • 192.168.255.255

এগুলি সমস্ত অ-রাউটেবল।


2
(যেমন আমি স্বীকৃত উত্তরে মন্তব্য করেছি) যখন আমি নোড.জেজে এক্সএমএলএইচটিপিআরকেস্ট পরীক্ষা করি তখন সময় নির্ধারণের পরিবর্তে কোনও ইসিএসিইএস ত্রুটির সাথে সংযোগ স্থাপন 10.0.0.0এবং 10.255.255.255বরখাস্ত করা হয়। 10.255.255.1, 172.16.0.0, 172.31.255.255, 192.168.0.0, এবং 192.168.255.255সময় সমাপ্ত করেনি, কিন্তু।
জেমি বার্চ

9

আমি সবার মনোযোগ প্যাথোডের দিকে তুলে ধরতে চাই

একটি কনফিগার (তাদের উদাহরণ থেকে নেওয়া) এর সাথে 200:b@100:drআপনি এমন একটি সংযোগ পাবেন যা এলোমেলোভাবে ড্রপ হয়।


1
টাইমআউট হিসাবে একই নয়
দেন্টার্গ

8

একটি সফ্টওয়্যার সমাধান সম্পর্কে:

অ্যাপ্লিকেশন সার্ভারে এসএসএইচ সার্ভার ইনস্টল করুন। তারপরে, অ্যাপ্লিকেশন সার্ভারে আপনার স্থানীয় পোর্ট এবং দূরবর্তী পোর্টের মধ্যে একটি লিঙ্ক তৈরি করতে সকেট টানেলটি ব্যবহার করুন। এটি করার জন্য আপনি ssh ক্লায়েন্ট সরঞ্জামগুলি ব্যবহার করতে পারেন। পরিবর্তে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটিকে আপনার ম্যাপযুক্ত লোকাল পোর্টের সাথে সংযুক্ত করতে দিন। তারপরে, আপনি সংযোগের সময়সীমা অনুকরণ করতে ইচ্ছায় সকেট টানেলটি ভেঙে ফেলতে পারেন।


4

আপনি যদি কোনও সক্রিয় সংযোগ ব্যবহার করতে চান তবে আপনি http://httpbin.org/delay/# ও ব্যবহার করতে পারেন , যেখানে # সময় আপনি যখন চান যে তাদের সার্ভার কোনও প্রতিক্রিয়া প্রেরণের আগে অপেক্ষা করে। যতক্ষণ আপনার সময়সীমা বিলম্বের চেয়ে কম হয় ... তার প্রভাব অনুকরণ করা উচিত। অজগর অনুরোধ প্যাকেজটি আমি এটি সফলভাবে ব্যবহার করেছি।

আপনি যদি সংবেদনশীল কিছু প্রেরণ করেন তবে আপনি আপনার অনুরোধটি সংশোধন করতে চাইতে পারেন - তাদের কাছে প্রেরিত ডেটাটির কী হবে তা ধারণা নেই।


সর্বাধিক 10 সেকেন্ড যদিও (আপনি যদি উচ্চতর সংখ্যায় রাখেন তবে এটি 10 ​​সেকেন্ড পরে প্রতিক্রিয়া জানাবে)
হ্যারি উড

2

এমন পরিষেবাগুলি উপলব্ধ রয়েছে যা আপনাকে একটি API এ ফোন করে কৃত্রিমভাবে উত্সের সময়সীমা তৈরি করতে দেয় যেখানে আপনি উল্লেখ করেছেন যে সার্ভারটি প্রতিক্রিয়া জানাতে কত সময় নেবে। ম্যাকগাইভারে সার্ভারের সময়সীমা এই জাতীয় পরিষেবার উদাহরণ।

উদাহরণস্বরূপ, আপনি যদি এমন একটি অনুরোধ পরীক্ষা করতে চেয়েছিলেন যা প্রতিক্রিয়া জানাতে 15 সেকেন্ড সময় নেয় আপনি কেবল ম্যাকগাইভার এপিআইতে একটি পোস্ট অনুরোধ করবেন।

জেএসএন পেলোড:

{
    "timeout_length": 15000
}

এপিআই প্রতিক্রিয়া (15 সেকেন্ড পরে):

{
    "response": "ok"
}

MacGyver উপর সার্ভার সময়সীমা সমাপ্ত প্রোগ্রাম
https://askmacgyver.com/explore/program/server-timeout/3U4s6g6u


1

আপনি মাইক্রোসফ্ট লুপব্যাক ড্রাইভার ইনস্টল করতে পারেন যা আপনার জন্য একটি পৃথক ইন্টারফেস তৈরি করবে। তারপরে আপনি এটিকে নিজের কোনও পরিষেবার (আপনার নিজস্ব হোস্ট) সাথে সংযুক্ত করতে পারেন। তারপরে নেটওয়ার্ক সংযোগগুলিতে আপনি এই জাতীয় ইন্টারফেস অক্ষম / সক্ষম করতে পারেন ...


1

কোনটি ওপি পরীক্ষা করতে চায় তা পুরোপুরি পরিষ্কার নয়: অস্তিত্বহীন হোস্ট / বন্দরের সাথে সংযোগের চেষ্টা করার এবং ইতিমধ্যে প্রতিষ্ঠিত সংযোগের সময়সীমা নির্ধারণের মধ্যে পার্থক্য রয়েছে। আমি রবের সাথে যেতাম এবং সংযোগটি কাজ না হওয়া পর্যন্ত অপেক্ষা করতাম এবং তারপরে টানতাম। বা - সুবিধার জন্য - ভার্চুয়াল মেশিনটি পরীক্ষার সার্ভার হিসাবে কাজ করবে (ব্রিজড নেটওয়ার্কিং সহ) এবং সংযোগ স্থাপনের পরে কেবল ভার্চুয়াল নেটওয়ার্ক ইন্টারফেসটি নিষ্ক্রিয় করবে।


1

এলোমেলো সংযোগের সময়সীমা অনুকরণের জন্য আমি যে কৌশলটি প্রায়শই ব্যবহার করি তা হ'ল ssh লোকাল পোর্ট ফরওয়ার্ডিং।

ssh -L 12345:realserver.com:80 localhost

এটি লোকালহোস্টে ট্র্যাফিক ফরোয়ার্ড করবে: 12345 রিয়েলসভার ডটকমকে: 808 আপনি নিজের স্থানীয় মেশিনেও এটিকে লুপ করতে পারেন, যদি আপনি চান:

ssh -L 12345:localhost:8080 localhost

সুতরাং আপনি আপনার লোকালহোস্ট এবং কাস্টম পোর্টে আপনার অ্যাপ্লিকেশনটি নির্দেশ করতে পারেন এবং ট্র্যাফিকটি লক্ষ্য হোস্ট: পোর্টে পৌঁছে যাবে। তারপরে আপনি এই শেলটি থেকে বেরিয়ে আসতে পারেন (প্রস্থান করার পরে আপনাকে শেলটিও সিটিআর + সি করতে হতে পারে) এবং এটি ফরোয়ার্ডিংকে মেরে ফেলবে যা আপনার অ্যাপ্লিকেশনটির সাথে সংযোগ হ্রাস পেতে পারে।


0

আপনার নেটওয়ার্কের কেবলটি একটি স্যুইচটিতে প্লাগ করুন যার সাথে অন্য কোনও সংযোগ / কেবল নেই। যে imho কাজ করা উচিত।


0

নেটওয়ার্কিং ইস্যুগুলির অনুকরণের জন্য আমি অতীতে বেশ কয়েকটি কৌশল ব্যবহার করেছি;

  1. নেটওয়ার্ক কেবলটি টানুন
  2. আপনার মেশিন এবং "টার্গেট" মেশিনের মধ্যে স্যুইচটি স্যুইচ করুন (কম্পিউটারটি এখনও চালিত হওয়ার সাথে সাথে কম্পিউটারটি প্লাগ ইন করা হয়েছে তাই মেশিনটি "নেটওয়ার্ক সংযোগ" বজায় রাখে)
  3. লক্ষ্য মেশিনে ফায়ারওয়াল সফটওয়্যার চালান যা নিঃশব্দে প্রাপ্ত ডেটা বাদ দেয়

এই ধারণাগুলির মধ্যে একটি আপনাকে কৃত্রিমভাবে আপনার প্রয়োজন দৃশ্যের উত্পন্ন করার কিছু উপায় দিতে পারে


0

আপনি কোন ফায়ারওয়াল সফ্টওয়্যারটি ইনস্টল / উপলব্ধ করেছেন তার উপর নির্ভর করে আপনার বহির্গামী পোর্টটি ব্লক করতে সক্ষম হওয়া উচিত এবং আপনার ফায়ারওয়াল কীভাবে সেটআপ হয় তার উপর নির্ভর করে এটি কেবল সংযোগের অনুরোধের প্যাকেটটি ফেলে দিতে পারে। কোনও সংযোগের অনুরোধ নেই, কোনও সংযোগ নেই, সময়সীমা শেষ হয়েছে। এটি সম্ভবত আরও ভাল কাজ করবে যদি এটি রাউটার পর্যায়ে প্রয়োগ করা হয় (তারা পুনরায় সেটগুলি প্রেরণের পরিবর্তে প্যাকেটগুলি ফেলে দেয় বা পরিস্থিতিটির সমতুল্য যা কিছু থাকে) তবে এটি এমন একটি সফ্টওয়্যার প্যাকেজ হতে বাধ্য যে এটিও কৌশলটি করতে পারে।


0

সবচেয়ে সহজ জিনিসটি কারআরপোর্টস ব্যবহার করে আপনার সংযোগটি ফেলে দেওয়া হবে ।

তবে, আপনার ব্যতিক্রম হ্যান্ডলিং কোডটি পরীক্ষা করার জন্য সম্ভবত আপনার নেটওয়ার্ক সংযোগ কোডটি বিমূর্ত করার কথা বিবেচনা করা উচিত, এবং স্টাব, মক বা ডেকরেটার লিখুন যা চাহিদা ব্যতিক্রম ছুঁড়ে ফেলে। তারপরে আপনি প্রকৃতপক্ষে নেটওয়ার্কটি ব্যবহার না করেই অ্যাপ্লিকেশন ত্রুটি-পরিচালনা করার লজিকটি পরীক্ষা করতে সক্ষম হবেন।


কারআরপোর্টস সহ, আমি কেবল সংযোগটি বন্ধ করতে সক্ষম হয়েছি বলে মনে হচ্ছে (যার ফলে পরবর্তীগুলি recv()অবিলম্বে ব্যর্থ হয়ে যায়), কিন্তু একটি সময়সীমা নির্ধারণের কোনও উপায় খুঁজে পেল না (অর্থাত্ কোনও ডেটা স্থানান্তরিত হয়নি, তবে সংযোগটি খোলা থাকে)।
হেনরিক হিমবুর্গের

চাহিদার সাথে সংযোগ ব্যতিক্রমকে উপহাস করে এমন একক পরীক্ষার পরামর্শ দেওয়ার জন্য আমি এই উত্তরটির প্রশংসা করেছি।
ড্যানি বুলিস

0

আপনার মত একই লাইনে আমার সমস্যা ছিল। সফ্টওয়্যার আচরণটি পরীক্ষা করার জন্য, আমি উপযুক্ত সময়টিতে কেবল কেবল কেবল প্লাগ লাগিয়েছি। কেবলটি আনপ্লাগ করার আগে আমাকে ঠিক একটি ব্রেক-পয়েন্ট সেট করতে হয়েছিল।

যদি আমি এটি আবার করে রাখি তবে আমি একটি নেটওয়ার্ক তারে একটি সুইচ (সাধারণত বন্ধ হওয়া মুহূর্তের ধাক্কা বোতামের একটি) রেখে দেব।

যদি দৈহিক সংযোগ বিচ্ছিন্ন হওয়ার কারণে কোনও আলাদা আচরণ হয়, আপনি আপনার কম্পিউটারটিকে একটি সস্তা হাবের সাথে সংযুক্ত করতে এবং উপরে উল্লিখিত সুইচটি আপনার হাব এবং প্রধান নেটওয়ার্কের মধ্যে রাখতে পারেন।

- সম্পাদনা - অনেক ক্ষেত্রে আপনার নেটওয়ার্কের সংযোগ কাজ করা দরকার যতক্ষণ না আপনি আপনার প্রোগ্রামের একটি নির্দিষ্ট পয়েন্টে পৌঁছান, তারপরে আপনি প্রস্তাবিত অনেকগুলি পরামর্শের একটিতে সংযোগ বিচ্ছিন্ন করতে চাইবেন।


0

আমার পক্ষে সবচেয়ে সহজ উপায় গন্তব্য নেটওয়ার্কের ভিত্তিতে অফিস রাউটারে স্থির রুট যুক্ত করা হয়েছিল। কিছু প্রতিক্রিয়াহীন হোস্টের (যেমন আপনার কম্পিউটার) ট্র্যাফিকটি কেবলমাত্র রুট করুন এবং আপনি অনুরোধের সময়সীমা পেয়ে যাবেন।

আমার জন্য সবচেয়ে ভাল বিষয় হ'ল স্থিতিশীল রুটটি ওয়েব ইন্টারফেসের মাধ্যমে পরিচালনা করা যায় এবং সহজেই সক্ষম / অক্ষম করা যায়।


-1

উদাহরণস্বরূপ, আপনি কোনও বন্দরের এমন একটি সুপরিচিত ওয়েবসাইটের সাথে সংযোগ স্থাপনের চেষ্টা করতে পারেন যা 200 থেকে বাইরে থেকে পাওয়া যায় না। বেশিরভাগ ফায়ারওয়ালগুলি DROP মোডে কাজ করে এবং এটি আপনার জন্য একটি সময়সীমা অনুকরণ করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.