ns-3 рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред рдЕрдзреНрдпрд╛рдп рей

ns-3 рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред рдЕрдзреНрдпрд╛рдп рей
рдЕрдзреНрдпрд╛рдп 1,2
рдЕрдзреНрдпрд╛рдп 3
рдЕрдзреНрдпрд╛рдп 4

5 рд╕реЗрдЯрд┐рдЩрд╣рд░реВ
5.1 рд▓рдЧрд┐рдЩ рдореЛрдбреНрдпреБрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ
5.1.1 рд▓рдЧрд┐рдЩ рдЕрд╡рд▓реЛрдХрди
5.1.2 рд▓рдЧрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН
5.1.3 рддрдкрд╛рдИрдВрдХреЛ рдХреЛрдбрдорд╛ рд▓рдЧрд┐рдЩ рдердкреНрджреИ
5.2 рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рддрд░реНрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ
5.2.1 рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдирд╣рд░реВ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрджреИ
5.2.2 рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдЖрджреЗрд╢рд╣рд░реВ рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрджреИ
5.3 рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ
5.3.1 ASCII рдЯреНрд░реЗрд╕рд┐рдЩ
ASCII рдЯреНрд░реЗрд╕рд╣рд░реВ рдкрд╛рд░реНрд╕ рдЧрд░реНрджреИ
5.3.2 PCAP рдЯреНрд░реЗрд╕

рдЕрдзреНрдпрд╛рдп 5

рд╕рдорд╛рдпреЛрдЬрди

5.1 рд▓рдЧрд┐рдЩ рдореЛрдбреНрдпреБрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЗрд░реЗрд░ ns-3 рд▓рдЧрд┐рдЩ рдореЛрдбреНрдпреБрд▓рд▓рд╛рдИ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдкрдорд╛ рд╣реЗрд░реЗрдХрд╛ рдЫреМрдВ first.ccред рдпрд╕ рдЕрдзреНрдпрд╛рдпрдорд╛, рд╣рд╛рдореА рд▓рдЧрд┐рдЩ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдореНрднрд╛рд╡рд┐рдд рдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

5.1.1 рд▓рдЧрд┐рдЩ рдЕрд╡рд▓реЛрдХрди

рдзреЗрд░реИ рдареВрд▓рд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓реЗ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдиреНрджреЗрд╢ рд▓рдЧрд┐рдЩ рд╕реБрд╡рд┐рдзрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рд░ ns-3 рдХреБрдиреИ рдЕрдкрд╡рд╛рдж рдЫреИрдиред рдХрддрд┐рдкрдп рдЕрд╡рд╕реНрдерд╛рдорд╛, рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдорд╛рддреНрд░ "рдЕрдкрд░реЗрдЯрд░ рдХрдиреНрд╕реЛрд▓" рдорд╛ рд▓реЗрдЦрд┐рдиреНрдЫрдиреН (рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреБрдирд┐рдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ stderr рд╣реБрдиреНрдЫ)ред рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛, рдЪреЗрддрд╛рд╡рдиреА рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╕рд╛рдереИ рдердк рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реАрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдХреЗрд╣реА рдЕрд╡рд╕реНрдерд╛рдорд╛, рд▓рдЧрд┐рдЩ рдЙрдкрдХрд░рдгрд╣рд░реВ рдбрд┐рдмрдЧ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рдЫрд┐рдЯреЛ рдмреНрд▓рд░ рдЧрд░реНрди рд╕рдХреНрдЫред

ns-3 рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ subHRD рд▓реЗ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдордЧреНрд░реАрдХрд╛ рдпреА рд╕рдмреИ рд╕реНрддрд░рд╣рд░реВ рдЙрдкрдпреЛрдЧреА рдЫрдиреН рднрдиреА рдорд╛рдиреНрджрдЫ, рд░ рд╣рд╛рдореА рд╕рдиреНрджреЗрд╢ рд▓рдЧрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдЪрдпрдирд╛рддреНрдордХ, рд╕реНрддрд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫреМрдВред рд▓рдЧрд┐рдЩ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдкреНрд░рддрд┐-рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рдЖрдзрд╛рд░рдорд╛ рд╡рд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрд╕ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐, рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдордЧреНрд░реАрдХреЛ рд╕рдорд╛рдпреЛрдЬреНрдп рд╕реНрддрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред ns-3 рд▓рдЧрд┐рдЩ рдореЛрдбреНрдпреБрд▓рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рд╕рд┐рдореБрд▓реЗрд╢рдирдмрд╛рдЯ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рддрд░рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдмреБрдЭреНрдиреБрдкрд░реНрдЫ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рддрдкрд╛рдИрдВрдХреЛ рдореЛрдбреЗрд▓рд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдирд┐рдХрд╛рд▓реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╕рдВрдпрдиреНрддреНрд░ - рдЯреНрд░реЗрд╕рд┐рдЩ - рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫреМрдВ, рдЬреБрди рд╕рд┐рдореБрд▓реЗрд╢рдирдХрд╛ рд▓рд╛рдЧрд┐ рд░реБрдЪрд╛рдЗрдПрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд╣реБрдиреБрдкрд░реНрдЫ (рд╣рд╛рдореНрд░реЛ рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдердк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЦрдгреНрдб 5.3 рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН)ред рд▓рдЧрд┐рдЩ рдбрд┐рдмрдЧрд┐рдЩ рдЬрд╛рдирдХрд╛рд░реА, рдЪреЗрддрд╛рд╡рдиреА, рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ, рд╡рд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛ рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛ рдореЛрдбреЗрд▓рд╣рд░реВрдмрд╛рдЯ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫрд┐рдЯреЛ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд░реБрдЪрд╛рдЗрдПрдХреЛ рд╡рд┐рдзрд┐ рд╣реБрдиреБрдкрд░реНрдЫред

рд╣рд╛рд▓, рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╕реВрдЪрдирд╛ рд╕рд╛рдордЧреНрд░реАрдХреЛ рдмрдвреНрджреЛ рдХреНрд░рдордорд╛ рд▓рдЧ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд╕рд╛рдд рд╕реНрддрд░ (рдкреНрд░рдХрд╛рд░) рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред

  • LOG_ERROR - рд▓рдЧрд┐рдЩ рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ (рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛ: NS_LOG_ERROR);
  • LOG_WARN - рд▓рдЧ рдЪреЗрддрд╛рд╡рдиреА рд╕рдиреНрджреЗрд╢рд╣рд░реВ (рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛ: NS_LOG_WARN);
  • LOG_DEBUG - рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рджреБрд░реНрд▓рдн рд╡рд┐рд╢реЗрд╖ рдбрд┐рдмрдЧ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд▓рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛ: NS_LOG_DEBUG);
  • LOG_INFO - рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рдкреНрд░рдЧрддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рджрд░реНрддрд╛ (рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛ: NS_LOG_INFO);
  • LOG_FUNCTION - рд▓рдЧ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рднрдирд┐рдиреНрдЫ (рджреБрдИ рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ: NS_LOG_FUNCTION, рд╕рджрд╕реНрдп рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ NS_LOG_FUNCTION_NOARGS, рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ);
  • LOG_LOGIC - рд▓рдЧрд┐рдЩ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рднрд┐рддреНрд░ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рд╡рд╛рд╣ рд╡рд░реНрдгрди (рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛ: NS_LOG_LOGIC);
  • LOG_ALL - рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╕рдмреИ рдХреБрд░рд╛ рд▓рдЧ рдЧрд░реНрджрдЫ (рдХреБрдиреИ рд╕рдореНрдмрдиреНрдзрд┐рдд рдореНрдпрд╛рдХреНрд░реЛ)ред
    рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ (LOG_TYPE) рдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрд╣рд╛рдБ LOG_LEVEL_TYPE рдкрдирд┐ рдЫ, рдпрджрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛ рднрдиреЗ, рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╕реНрддрд░рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдЧ рдЗрди рдЧрд░реНрди рдорд╛рдерд┐рдХрд╛ рд╕рдмреИ рд╕реНрддрд░рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред (рдкрд░рд┐рдгрд╛рдордХреЛ рд░реВрдкрдорд╛, LOG_ERROR рд░ LOG_LEVEL_ERROR, рд░ LOG_ALL рд░ LOG_LEVEL_ALL рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдмрд░рд╛рдмрд░ рдЫрдиреНред) рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, LOG_INFO рд╕рдХреНрд╖рдо рдЧрд░реНрдирд╛рд▓реЗ NS_LOG_INFO рдореНрдпрд╛рдХреНрд░реЛрджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдорд╛рддреНрд░ рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ, рдЬрдмрдХрд┐ рд╕рдХреНрд╖рдо рдЧрд░реНрджрд╛ LOG_LEVEL_S рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдореНрдпрд╛рдХреНрд░реЛ, LOG_LEVEL_S рдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫред LOG_WARN рд░ NS_LOG_ERRORред

рд╣рд╛рдореА рдмрд┐рдирд╛ рд╢рд░реНрдд рд▓рдЧрд┐рдЩ рдореНрдпрд╛рдХреНрд░реЛ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрдЫреМрдВ рдЬреБрди рд╕рдзреИрдБ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫ, рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рд╡рд╛ рдЪрдпрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдХреЛ рдкрд░реНрд╡рд╛рд╣ рдирдЧрд░реАред

  • NS_LOG_UNCOND - рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдиреНрджреЗрд╢рдХреЛ рдмрд┐рдирд╛ рд╢рд░реНрдд рд▓рдЧрд┐рдЩ (рдХреБрдиреИ рд╕рдореНрдмрдиреНрдзрд┐рдд рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рдЫреИрди)ред

рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд╛ рд╕рдВрдЪрдпреА рд░реВрдкрдорд╛ рд╕реЛрдзреНрди рд╕рдХрд┐рдиреНрдЫред рд▓рдЧрд┐рдЩ sh рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ NS_LOG рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╛ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓ рд▓рдЧ рдЗрди рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкрд╣рд┐рд▓реЗ рджреЗрдЦрд╛рдЗрдП рдЕрдиреБрд╕рд╛рд░, рд▓рдЧрд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрдорд╛ Doxygen рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЫрдиреН рд░ рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдЫреИрди рднрдиреЗ рдпрд╕рд▓рд╛рдИ рд╕рдореАрдХреНрд╖рд╛ рдЧрд░реНрдиреЗ рд░рд╛рдореНрд░реЛ рд╕рдордп рд╣реЛред

рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдЧрдЬрд╛рддрд▓рд╛рдИ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдкрдвреНрдиреБрднрдПрдХреЛ рдЫ, рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдкрд┐рдмрд╛рдЯ рдХреЗрд╣реА рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рддреНрдпреЛ рдЬреНрдЮрд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВред scratch/myfirst.ccрдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫред

5.1.2 рд▓рдЧрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдХреЗрд╣реА рдердк рд▓рдЧрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ NS_LOG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ, рддрд░ рдкрд╣рд┐рд▓реЗ, рдХреЗрд╡рд▓ рдЖрдлреНрдиреЛ рдмрд┐рдпрд░рд┐рдЩрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ рдЕрдиреНрддрд┐рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН,

$ ./waf --run scratch/myfirst

рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЛ ns-3 рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдордмрд╛рдЯ рдкрд░рд┐рдЪрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рд╣реЗрд░реНрдиреБ рдкрд░реНрдЫ

$ Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build' 'build'
finished successfully (0.413s)
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
Received 1024 bytes from 10.1.1.2

рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рдерд┐ рджреЗрдЦреНрдиреБрднрдПрдХрд╛ "рдкрдард╛рдЗрдПрдХреЛ" рд░ "рдкреНрд░рд╛рдкреНрдд" рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдмрд╛рдЯ рд▓рдЧ рдЧрд░рд┐рдПрдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╣реБрдиреН рднрдиреНрдиреЗ рдХреБрд░рд╛ рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛред UdpEchoClientApplication ╨╕ UdpEchoServerApplicationред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ NS_LOG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдорд╛рд░реНрдлрдд рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рд╕реЗрдЯ рдЧрд░реЗрд░ рдердк рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрди рд╕реЛрдзреНрди рд╕рдХреНрдЫреМрдВред

рдЕрдм рджреЗрдЦрд┐, рдо рддрдкрд╛рдИрдВ "variable=value" рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ sh-like рд╢реЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдорд╛рдиреНрди рдЬрд╛рдБрджреИрдЫреБред рдпрджрд┐ рддрдкрд╛рдЗрдБ csh-рдЬрд╕реНрддреЛ рд╢реЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рдореЗрд░реЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрд▓рд╛рдИ рддреА рд╢реЗрд▓рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ "setenv рдЪрд░ рдорд╛рди" рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред

рд╣рд╛рд▓, UDP рдЗрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдХреЛрдбрдХреЛ рдирд┐рдореНрди рд▓рд╛рдЗрдирдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫ scratch/myfirst.cc,

LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);

рдпрд╕рд▓реЗ рд▓рдЧрд┐рдЩ рд╕реНрддрд░ LOG_LEVEL_INFO рд╕рдХреНрд╖рдо рдЧрд░реНрджрдЫред рдЬрдм рд╣рд╛рдореА рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рдЭрдгреНрдбрд╛ рдкрд╛рд╕ рдЧрд░реНрдЫреМрдВ, рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рдорд╛ рддреНрдпреЛ рд╕реНрддрд░ рд░ рд╕рдмреИ рддрд▓реНрд▓реЛ рд╕реНрддрд░ рд╕рдХреНрд╖рдо рдЧрд░реНрджрдЫреМрдВред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореАрд▓реЗ NS_LOG_INFO, NS_LOG_DEBUG, NS_LOG_WARN рд░ NS_LOG_ERROR рд╕рдХреНрд╖рдо рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ NS_LOG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдЧрд░реЗрд░ рд╣рд╛рдореА рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рдмрдврд╛рдЙрди рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рд░ рдкреБрди: рд╕рдВрдХрд▓рди рдмрд┐рдирд╛ рдердк рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

$ export NS_LOG=UdpEchoClientApplication=level_all

рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ sh shell рдЪрд░ NS_LOG рд▓рд╛рдИ рдирд┐рдореНрди рдорд╛рдирдорд╛ рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВ,

UdpEchoClientApplication=level_all

рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯрдХреЛ рдмрд╛рдпрд╛рдБ рдЫреЗрдЙ рд╣рд╛рдореАрд▓реЗ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЪрд╛рд╣реЗрдХреЛ рд▓рдЧ рдЧрд░рд┐рдПрдХреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдХреЛ рдирд╛рдо рд╣реЛ, рд░ рджрд╛рдпрд╛рдБ рдЫреЗрдЙ рд╣рд╛рдореА рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡реЗрджрди рджрд┐рди рдЪрд╛рд╣рдиреЗ рдЭрдгреНрдбрд╛ рд╣реЛред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдбрд┐рдмрдЧрд┐рдЩрдХрд╛ рд╕рдмреИ рд╕реНрддрд░рд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдЬрд╛рдБрджреИрдЫреМрдВред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ NS_LOG рдпрд╕рд░реА рд╕реЗрдЯ рдЧрд░реЗрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрднрдпреЛ рднрдиреЗ, ns-3 рд▓рдЧрд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗрдЫ рд░ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреНрдиреБрдкрд░реНрдЫ:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.404s)
UdpEchoClientApplication:UdpEchoClient()
UdpEchoClientApplication:SetDataSize(1024)
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:Send()
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
UdpEchoClientApplication:HandleRead(0x6241e0, 0x624a20)
Received 1024 bytes from 10.1.1.2
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()

рдПрдкреНрд▓рд┐рдХреЗрд╕рдирджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдбрд┐рдмрдЧрд┐рдЩ рдЬрд╛рдирдХрд╛рд░реА рдЕрдм NS_LOG_FUNCTION рд╕реНрддрд░рдорд╛ рдЫред рдпрд╕рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд╛рдЙрдБрдЫред рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдордХреЛ рд░реВрдкрдорд╛, рд╡рд┐рдзрд┐ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ (рдХрдореНрддреАрдорд╛)NS_LOG_FUNCTION (this)... рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН NS_LOG_FUNCTION_NOARGS ()
рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ред рдпрджреНрдпрдкрд┐, рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ ns-3 рдкреНрд░рдгрд╛рд▓реА рдХреБрдиреИ рдкрдирд┐ рд▓рдЧрд┐рдЩ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдорд░реНрдерди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред рдХрддрд┐ рдЬрд╛рдирдХрд╛рд░реА рд░реЗрдХрд░реНрдб рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдирд┐рд░реНрдгрдп рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЛрдбреЗрд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдорд╛ рдЫреЛрдбрд┐рдиреНрдЫред рдЗрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд▓рдЧрд┐рдЩ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛ рдЙрдкрд▓рдмреНрдз рдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдЕрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВрдХреЛ рд▓рдЧ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рд░реЗрдЦрд╛рдХреЛ рдмреАрдЪрдорд╛ рдХреЛрд▓реЛрди рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ UdpEchoClientApplication рд░ рд╡рд┐рдзрд┐рдХреЛ рдирд╛рдо, рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ C++ рд╕реНрдХреЛрдк рдЕрдкрд░реЗрдЯрд░ (: :) рд╣реЗрд░реНрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рдЬрд╛рдирд╛рдЬрд╛рдиреА рд╣реЛред

рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХрдХреНрд╖рд╛рдХреЛ рдирд╛рдо рд╣реЛрдЗрди, рддрд░ рд▓рдЧрд┐рдЩ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдХреЛ рдирд╛рдо рд╣реЛред рдЬрдм рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓ рд░ рдХреНрд▓рд╛рд╕рдХреЛ рдмреАрдЪрдорд╛ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рд╣реБрдиреНрдЫ, рдпреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреНрд▓рд╛рд╕рдХреЛ рдирд╛рдо рд╣реЛ, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреНрд▓рд╛рд╕рдХреЛ рдирд╛рдо рд╣реЛрдЗрди, рд░ рддреНрдпрд╣рд╛рдБ рдбрдмрд▓ рдХреЛрд▓реЛрдирдХреЛ рд╕рдЯреНрдЯрд╛ рдПрдХрд▓ рдХреЛрд▓реЛрди рд╣реЛ рднрдиреЗрд░ рдмреБрдЭреНрдиреБрдкрд░реНрдЫред рдпреЛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реВрдХреНрд╖реНрдо рддрд░рд┐рдХрд╛рдорд╛ рд╡рд░реНрдЧ рдирд╛рдордмрд╛рдЯ рд▓рдЧрд┐рдЩ рдмреАрди рдирд╛рдорд▓рд╛рдИ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдЕрд▓рдЧ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рд╣реЛред

рдпрджреНрдпрдкрд┐, рдХрддрд┐рдкрдп рдЕрд╡рд╕реНрдерд╛рдорд╛ рдХреБрди рд╡рд┐рдзрд┐рд▓реЗ рд▓рдЧ рд╕рдиреНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджреИрдЫ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рд╣реБрди рд╕рдХреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдорд╛рдерд┐рдХреЛ рдкрд╛рда рд╣реЗрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдЗрдБ рд╕реЛрдЪрд┐рд░рд╣рдиреБ рднрдПрдХреЛ рд╣реБрди рд╕рдХреНрдЫ рдХрд┐ рд▓рд╛рдЗрди "Received 1024 bytes from 10.1.1.2" рддрдкрд╛рдИрдВ рд╕реНрддрд░ рд╕реЗрдЯ рдЧрд░реЗрд░ рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ prefix_func NS_LOG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдорд╛ред рдирд┐рдореНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'

рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЙрджреНрдзрд░рдг рдЪрд┐рдиреНрд╣рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдЫрдиреН рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд▓реЗ OR рдЕрдкрд░реЗрд╢рдирд▓рд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдард╛рдбреЛ рдкрдЯреНрдЯреА рдкрдирд┐ рдПрдХ рдпреБрдирд┐рдХреНрд╕ рдкрд╛рдЗрдк рдХрдиреЗрдХреНрдЯрд░ рд╣реЛред рдЕрдм рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ рдХрд┐ рд▓рдЧрд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рджрд┐рдЗрдПрдХреЛ рд▓рдЧрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдиреНрджреЗрд╢ рдШрдЯрдХ рдирд╛рдордХреЛ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧрдорд╛ рдЫред

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.417s)
UdpEchoClientApplication:UdpEchoClient()
UdpEchoClientApplication:SetDataSize(1024)
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:Send()
UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
UdpEchoClientApplication:HandleRead(0x6241e0, 0x624a20)
UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()

рдЕрдм рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ UDP рдЗрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдмрд╛рдЯ рдЖрдЙрдиреЗ рд╕рдмреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рддреНрдпрд╕реНрддреИ рд░реВрдкрдорд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред рд╕рдиреНрджреЗрд╢"Received 1024 bytes from 10.1.1.2" рдЕрдм рдЗрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рдЖрдЙрдБрджреИ рдЧрд░реЗрдХреЛ рд░реВрдкрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред рдмрд╛рдБрдХреА рд╕рдиреНрджреЗрд╢ UDP рдЗрдХреЛ рд╕рд░реНрднрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рдЖрдЙрдиреИ рдкрд░реНрдЫред рд╣рд╛рдореА NS_LOG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдорд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдХреЛрд▓реЛрди-рдкреГрдердХ рд╕реВрдЪреА рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реЗрд░ рдпреЛ рдШрдЯрдХ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func:
               UdpEchoServerApplication=level_all|prefix_func'

рдЪреЗрддрд╛рд╡рдиреА: рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рдкрд╛рдардорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдХреЛрд▓рди (:) рдкрдЫрд┐ рдирдпрд╛рдБ рд▓рд╛рдЗрди рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╣рдЯрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдпреЛ рдХрд╛рдЧрдЬрд╛рдд рдврд╛рдБрдЪрд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЕрдм рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд░ рд╕рд░реНрднрд░ рдЗрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдмрд╛рдЯ рд╕рдмреИ рд▓рдЧ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫред рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдпреЛ рдбрд┐рдмрдЧ рдЧрд░реНрджрд╛ рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.406s)
UdpEchoServerApplication:UdpEchoServer()
UdpEchoClientApplication:UdpEchoClient()
UdpEchoClientApplication:SetDataSize(1024)
UdpEchoServerApplication:StartApplication()
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:Send()
UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
UdpEchoServerApplication:HandleRead(): Echoing packet
UdpEchoClientApplication:HandleRead(0x624920, 0x625160)
UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
UdpEchoServerApplication:StopApplication()
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

рдпреЛ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд▓рдЧ рд╕рдиреНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рднрдПрдХреЛ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рдордп рд╣реЗрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрди рдкрдирд┐ рдЙрдкрдпреЛрдЧреА рдЫред рддрдкрд╛рдИрдВ OR рдмрд┐рдЯ рдердкреЗрд░ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрдкрд╕рд░реНрдЧ_рд╕рдордп:

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time: UdpEchoServerApplication=level_all|prefix_func|prefix_time'

рдлреЗрд░рд┐, рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рдерд┐рдХреЛ рдирдпрд╛рдБ рд▓рд╛рдЗрди рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╣рдЯрд╛рдЙрдиреБ рдкрд░реНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБ рднрдпреЛ рднрдиреЗ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреНрдиреБрдкрд░реНрдЫ:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.418s)
0s UdpEchoServerApplication:UdpEchoServer()
0s UdpEchoClientApplication:UdpEchoClient()
0s UdpEchoClientApplication:SetDataSize(1024)
1s UdpEchoServerApplication:StartApplication()
2s UdpEchoClientApplication:StartApplication()
2s UdpEchoClientApplication:ScheduleTransmit()
2s UdpEchoClientApplication:Send()
2s UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
2.00369s UdpEchoServerApplication:HandleRead(): Echoing packet
2.00737s UdpEchoClientApplication:HandleRead(0x624290, 0x624ad0)
2.00737s UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
10s UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ UdpEchoServer рд╕рд┐рдореБрд▓реЗрд╢рди реж рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдмреЛрд▓рд╛рдЗрдПрдХреЛ рдерд┐рдпреЛред рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕реБрд░реБ рд╣реБрдиреБ рдЕрдШрд┐ рд╣реБрдиреНрдЫ, рддрд░ рд╕рдордп рд╢реВрдиреНрдп рд╕реЗрдХреЗрдиреНрдбрдХреЛ рд░реВрдкрдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫред рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рдиреНрджреЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рддреНрдпрд╕реНрддреИ рд╣реЛ UdpEchoClient.

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.418s)
0s UdpEchoServerApplication:UdpEchoServer()
0s UdpEchoClientApplication:UdpEchoClient()
0s UdpEchoClientApplication:SetDataSize(1024)
1s UdpEchoServerApplication:StartApplication()
2s UdpEchoClientApplication:StartApplication()
2s UdpEchoClientApplication:ScheduleTransmit()
2s UdpEchoClientApplication:Send()
2s UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
2.00369s UdpEchoServerApplication:HandleRead(): Echoing packet
2.00737s UdpEchoClientApplication:HandleRead(0x624290, 0x624ad0)
2.00737s UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
10s UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

рддреНрдпреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН scratch/first.cc рд╕рд┐рдореБрд▓реЗрд╢рди рд╕реБрд░реБ рд╣реБрдиреБ рднрдиреНрджрд╛ рдПрдХ рд╕реЗрдХреЗрдиреНрдб рдЕрдШрд┐ рдЗрдХреЛ рд╕рд░реНрднрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рднрдпреЛред рдЕрдм рддрдкрд╛рдИрд▓реЗ рддреНрдпреЛ рд╡рд┐рдзрд┐ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╕рд░реНрднрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкрд╣рд┐рд▓реЛ рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдмреЛрд▓рд╛рдЗрдиреНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдкрдирд┐ рдпрд╛рдж рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдЗрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╕рд┐рдореБрд▓реЗрд╢рдирдХреЛ рджреЛрд╕реНрд░реЛ рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдЬрд╕реНрддреИ рд╣рд╛рдореАрд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╕реЛрдзреЗрдХрд╛ рдЫреМрдВред

рддрдкрд╛рдИрдВ рдЕрдм рдХрд▓рдорд╛ рд╕рд┐рдореБрд▓реЗрд╢рди рдкреНрд░рдЧрддрд┐ рдкрдЫреНрдпрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЕрдиреБрд╕реВрдЪреА рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯ рдХреНрд▓рд╛рдЗрдиреНрдЯрдорд╛ рдЬрд╕рд▓реЗ рд╣реНрдпрд╛рдиреНрдбрд▓рд░реАрдб рдХрд▓рдмреНрдпрд╛рдХрд▓рд╛рдИ рдЗрдХреЛ рд╕рд░реНрднрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реНред рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдмрд┐рдиреНрджреБ-рджреЗрдЦрд┐-рдкреЛрдЗрдиреНрдЯ рд▓рд┐рдЩреНрдХрдорд╛ рдкреНрдпрд╛рдХреЗрдЯ рдкрдард╛рдЙрди рдмрд┐рддреЗрдХреЛ рд╕рдордп 3,69 рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб рд╣реЛред рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдЗрдХреЛ рд╕рд░реНрднрд░рд▓реЗ рд╕рдиреНрджреЗрд╢ рд▓рдЧ рдЧрд░реНрджрдЫ рдЬреБрди рдпрд╕рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯрдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдПрдХреЛ рдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐, рдЪреНрдпрд╛рдирд▓ рдврд┐рд▓рд╛рдЗ рдкрдЫрд┐, рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдЗрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рдпрд╕рдХреЛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░реАрдб рд╡рд┐рдзрд┐рдорд╛ рдЗрдХреЛ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред

рдпрд╕ рд╕рд┐рдореБрд▓реЗрд╢рдирдорд╛, рддрдкрд╛рдИрд▓реЗ рдзреНрдпрд╛рди рдирджрд┐рдИ рдзреЗрд░реИ рд╣реБрдиреНрдЫред рддрд░ рддрдкрд╛рдЗрдБ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕рдмреИ рд▓рдЧрд┐рдЩ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реЗрд░ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдирд┐рдореНрди рдорд╛рдирдорд╛ NS_LOG рдЪрд░ рд╕реЗрдЯ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН,

$ export 'NS_LOG=*=level_all|prefix_func|prefix_time'

рдорд╛рдерд┐рдХреЛ рддрд╛рд░рд╛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд┐рдЩ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╣реЛред рдпрд╕рд▓реЗ рд╕рд┐рдореБрд▓реЗрд╢рдирдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдШрдЯрдХрд╣рд░реВрдорд╛ рд╕рдмреИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдо рдпрд╣рд╛рдБ рдЖрдЙрдЯрдкреБрдЯ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрд┐рди (рд▓реЗрдЦреНрдиреЗ рд╕рдордпрдорд╛ рдпрд╕рд▓реЗ рдПрдХрд▓ рдЗрдХреЛ рдкреНрдпрд╛рдХреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдЙрдЯрдкреБрдЯрдХреЛ 1265 рд▓рд╛рдЗрдирд╣рд░реВ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫ), рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдлрд╛рдЗрд▓рдорд╛ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдЖрдлреНрдиреЛ рдордирдкрд░реНрдиреЗ рд╕рдореНрдкрд╛рджрдХрдорд╛ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

$ ./waf --run scratch/myfirst > log.out 2>&1

рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рд▓рдЧрд┐рдЩрдХреЛ рдпреЛ рдЕрддреНрдпрдиреНрдд verbose рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ рдЬрдм рдорд▓рд╛рдИ рд╕рдорд╕реНрдпрд╛ рдЫ рд░ рдорд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдЬрд╣рд╛рдБ рдЪреАрдЬрд╣рд░реВ рдЧрд▓рдд рднрдпреЛред рдореИрд▓реЗ рдмреНрд░реЗрдХрдкреЛрдЗрдиреНрдЯрд╣рд░реВ рд╕реЗрдЯ рдирдЧрд░реА рд░ рдбрд┐рдмрдЧрд░рдорд╛ рдХреЛрдб рдорд╛рд░реНрдлрдд рдХрджрдо рдирдЧрд░реА рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрди рд╕рдХреНрдЫреБред рдо рдХреЗрд╡рд▓ рдореЗрд░реЛ рдордирдкрд░реНрдиреЗ рд╕рдореНрдкрд╛рджрдХрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХреНрдЫреБ рд░ рдореИрд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реЗрдХреЛ рдХреБрд░рд╛ рдЦреЛрдЬреНрди рд╕рдХреНрдЫреБ рд░ рдореИрд▓реЗ рдЖрд╢рд╛ рдирдЧрд░реЗрдХреЛ рдХреБрд░рд╛ рджреЗрдЦреНрди рд╕рдХреНрдЫреБред рдПрдХрдЪреЛрдЯрд┐ рдорд▓рд╛рдИ рдХреЗ рдЧрд▓рдд рднрдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреНрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЫ, рдо рд╕рдорд╕реНрдпрд╛рдорд╛ рдбреНрд░рд┐рд▓ рдЧрд░реНрди рдбрд┐рдмрдЧрд░рдорд╛ рд╣рд╛рдо рдлрд╛рд▓реНрдиреЗрдЫреБред рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫ рдЬрдм рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХрд╛рдо рдЧрд░реНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдбрд┐рдмрдЧрд░ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЯреНрд╡рд┐рд╕реНрдЯ рдЧреБрдорд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рджрд░реНрддрд╛рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдореЛрдбрд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рди рджрд┐рдиреЗ рдмрдирд╛рдЙрдБрдЫред

5.1.3 рддрдкрд╛рдИрдВрдХреЛ рдХреЛрдбрдорд╛ рд▓рдЧрд┐рдЩ рдердкреНрджреИ

рддрдкрд╛рдИрд▓реЗ рдзреЗрд░реИ рдореНрдпрд╛рдХреНрд░реЛрдмрд╛рдЯ рд▓рдЧ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдорд╛ рдХрд▓ рдЧрд░реЗрд░ рдЖрдлреНрдиреЛ рд╕рд┐рдореБрд▓реЗрд╢рдирдорд╛ рдирдпрд╛рдБ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрд╕рд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдЧрд░реМрдВ myfirst.cc, рдЬреБрди рд╣рд╛рдореАрд╕рдБрдЧ "рд╕рдлрд╛" рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЫред рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдпрд╕ рдкрд░рд┐рджреГрд╢реНрдпрдорд╛ рд▓рдЧрд┐рдЩ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдпреМрдВ:

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

рддрдкрд╛рдЗрдБ рд╕рдЪреЗрдд рд╣реБрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рддрдкрд╛рдЗрдБ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░рд╣рд░реВрдорд╛ NS_LOG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдЧрд░реЗрд░ рдпрд╕ рдШрдЯрдХрдмрд╛рдЯ рд╕рдмреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рдЧрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЕрдЧрд╛рдбрд┐ рдмрдвреМрдВ рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдХреЗрд╣реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рдердкреМрдВред рд▓рдЧрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрддрд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдердкреНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдореНрдпрд╛рдХреНрд░реЛ NS_LOG_INFO рд╣реЛред рдПрдЙрдЯрд╛ рд╕рдиреНрджреЗрд╢ рдердкреМрдВ (рд╣рд╛рдореАрд▓реЗ рдиреЛрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рдЕрдШрд┐) рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ "рдЯреЛрдкреЛрд▓реЛрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ" рдЪрд░рдгрдорд╛ рдЫ рднрдиреА рдмрддрд╛рдЙрдБрдЫред рдпреЛ рдирд┐рдореНрди рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдорд╛ рдЧрд░рд┐рдиреНрдЫ,
рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН scratch/myfirst.cc рдЖрдлреНрдиреЛ рдордирдкрд░реНрдиреЗ рд╕рдореНрдкрд╛рджрдХрдорд╛ рд░ рд▓рд╛рдЗрди рдердкреНрдиреБрд╣реЛрд╕реН,
NS_LOG_INFO ("Creating Topology");
рд░реЗрдЦрд╛ рднрдиреНрджрд╛ рдареАрдХ рдЕрдЧрд╛рдбрд┐,

NodeContainer nodes;
nodes.Create (2);

рдЕрдм рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН waf, рд░ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рд╕рдХреНрд╖рдо рдЧрд░реЗрдХреЛ рд▓рдЧрд┐рдЩ рд╕реНрдЯреНрд░рд┐рдо рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди NS_LOG рдЪрд░ рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН:

$ ./waf
$ export NS_LOG=
╨в╨╡╨┐╨╡╤А╤М, ╨╡╤Б╨╗╨╕ ╨▓╤Л ╨╖╨░╨┐╤Г╤Б╤В╨╕╤В╨╡ ╤Б╨║╤А╨╕╨┐╤В,
$ ./waf --run scratch/myfirst

рддрдкрд╛рдИрдВрд▓реЗ рдирдпрд╛рдБ рд╕рдиреНрджреЗрд╢ рджреЗрдЦреНрдиреБрд╣реБрдиреЗ рдЫреИрди рдХрд┐рдирднрдиреЗ рд╕рдореНрдмрдиреНрдзрд┐рдд рд▓рдЧрд┐рдЩ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ (FirstScriptExample) рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдЖрдлреНрдиреЛ рд╕рдиреНрджреЗрд╢ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд▓рдЧрд┐рдЩ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ FirstScriptExample NS_LOG_INFO рднрдиреНрджрд╛ рдХрдо рдирднрдПрдХреЛ рд╕реНрддрд░рдХреЛ рд╕рд╛рдеред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ рдпреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдпреЛ рдЬрд╕реНрддреИ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ,

$ export NS_LOG=FirstScriptExample=info

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЕрд╣рд┐рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ "рдЯреЛрдкреЛрд▓реЛрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ" рдирдпрд╛рдБ рд╕рдиреНрджреЗрд╢ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ,

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.404s)
Creating Topology
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
Received 1024 bytes from 10.1.1.2

5.2 рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рддрд░реНрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

5.2.1 рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдирд╣рд░реВ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрджреИ

рд╕рдореНрдкрд╛рджрди рд╡рд╛ рдирд┐рд░реНрдорд╛рдг рдмрд┐рдирд╛ ns-3 рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдЕрд░реНрдХреЛ рддрд░рд┐рдХрд╛ рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рддрд░реНрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛред рд╣рд╛рдореА рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрд╣рд░реВ рдкрд╛рд░реНрд╕ рдЧрд░реНрдиреЗ рдореЗрдХрд╛рдирд┐рдЬрдо рдкреНрд░рджрд╛рди рдЧрд░реНрдЫреМрдВ рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдерд╛рдиреАрдп рд░ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдЪрд░рд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВред

рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЖрд░реНрдЧреБрдореЗрдиреНрдЯ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкрд╣рд┐рд▓реЛ рдЪрд░рдг рднрдиреЗрдХреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкрд╛рд░реНрд╕рд░ рдШреЛрд╖рдгрд╛ рдЧрд░реНрдиреБ рд╣реЛред рдпреЛ рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫ (рддрдкрд╛рдИрдВрдХреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдордорд╛), рдирд┐рдореНрди рдХреЛрдбрдорд╛ рдЬрд╕реНрддреИ,

int
main (int argc, char *argv[])
{
...
CommandLine cmd;
cmd.Parse (argc, argv);
...
}

рдпреЛ рд╕рд╛рдзрд╛рд░рдг рджреБрдИ-рд▓рд╛рдЗрди рд╕реНрдирд┐рдкреЗрдЯ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЖрдлреНрдиреИ рдЕрдзрд┐рдХрд╛рд░рдорд╛ рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рдЫред рдпрд╕рд▓реЗ ns-3 рдЧреНрд▓реЛрдмрд▓ рдЪрд░ рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдвреЛрдХрд╛ рдЦреЛрд▓реНрдЫред рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд╕реБрд░реБрдорд╛ рдХреЛрдбрдХрд╛ рджреБрдИ рд▓рд╛рдЗрдирд╣рд░реВ рдердкреМрдВ scratch/myfirst.ccред рдЕрдЧрд╛рдбрд┐ рдмрдвреНрджреИ, рд╣рд╛рдореА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрдБрдЫреМрдВ, рдЪрд▓реНрджрд╛ рд╣рд╛рдореА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорджреНрджрдд рдЕрдиреБрд░реЛрдз рдЧрд░реНрдЫреМрдВ,

$ ./waf --run "scratch/myfirst --PrintHelp"

рдпреЛ рдЖрджреЗрд╢ рд╕реЛрдзреНрдиреЗрдЫ Waf рд▓рд┐рдкрд┐ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рд╕реНрдХреНрд░реНрдпрд╛рдЪ / рдореЗрд░реЛ рдкрд╣рд┐рд▓реЛ рд░ рдпрд╕рд▓рд╛рдИ рдЖрджреЗрд╢ рд▓рд╛рдЗрди рддрд░реНрдХ рдкрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН -рдкреНрд░рд┐рдиреНрдЯ рд╣реЗрд▓реНрдкред рддрд░реНрдХ рдХреБрди рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд▓рд╛рдЧрд┐ рд╣реЛ рднрдиреЗрд░ рд╕рдВрдХреЗрдд рдЧрд░реНрди рдЙрджреНрдзрд░рдг рдЪрд┐рдиреНрд╣рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдЫрдиреНред рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рдкрд╛рд░реНрд╕рд░рд▓реЗ рддрд░реНрдХ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫ -рдкреНрд░рд┐рдиреНрдЯ рд╣реЗрд▓реНрдк рд░ рдЬрд╡рд╛рдл рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫ,

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.413s)
TcpL4Protocol:TcpStateMachine()
CommandLine:HandleArgument(): Handle arg name=PrintHelp value=
--PrintHelp: Print this help message.
--PrintGroups: Print the list of groups.
--PrintTypeIds: Print all TypeIds.
--PrintGroup=[group]: Print all TypeIds of group.
--PrintAttributes=[typeid]: Print all attributes of typeid.
--PrintGlobals: Print the list of globals.

рдЕрдм рд╡рд┐рдХрд▓реНрдк рд╣реЗрд░реМрдВ -рдкреНрд░рд┐рдиреНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВред рд╣рд╛рдореАрд▓реЗ first.cc рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдзреНрдпрдпрди рдЧрд░реНрджрд╛ ns-3 рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдгрд╛рд▓реА рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВред рд╣рд╛рдореАрд▓реЗ рдХреЛрдбрдХреЛ рдирд┐рдореНрди рд▓рд╛рдЗрдирд╣рд░реВ рджреЗрдЦреНрдпреМрдВ,

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));

рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рднрдиреЗ рдбрд╛рдЯрд╛ рджрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛ PointToPointNetDeviceред рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╣реЗрд░реНрди рдЖрджреЗрд╢ рд▓рд╛рдЗрди рддрд░реНрдХ рдкрд╛рд░реНрд╕рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ PointToPointNetDeviceред рдорджреНрджрдд рд╕реВрдЪреАрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреБ рдкрд░реНрдиреЗ рдХреБрд░рд╛ рдмрддрд╛рдЙрдБрдЫ рдЯрд╛рдЗрдкрдЖрдИрдбреАред рдпреЛ рд╡рд░реНрдЧрдХреЛ рдирд╛рдо рд╣реЛ рдЬрд╕рдорд╛ рд░реБрдЪрд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдЫрдиреНред рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛ рдорд╛ рдпреЛ рд╣реБрдиреЗрдЫ ns3::PointToPointNetDeviceред рдЕрдЧрд╛рдбрд┐ рдмрдвреМрдВ, рдкреНрд░рд╡реЗрд╢ рдЧрд░реМрдВ,

$ ./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointNetDevice"

рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдпрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рдмреИ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрдиреЗрдЫред рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ рдХрд┐ рд╕реВрдЪреАрдорд╛ рд░рд╣реЗрдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдордзреНрдпреЗ,

--ns3::PointToPointNetDevice::DataRate=[32768bps]:
The default data rate for point to point links

рдпреЛ рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рд╣реЛ PointToPointNetDeviceред рд╣рд╛рдореА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрдиреЗрдЫреМрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ ╨▓ PointToPointHelper рдЙрдЪреНрдЪред рдкреЛрдЗрдиреНрдЯ-рдЯреБ-рдкреЛрдЗрдиреНрдЯ рдпрдиреНрддреНрд░рд╣рд░реВ рд░ рдЪреНрдпрд╛рдирд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдХрд▓рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреЗрдЫреМрдВ рд╕реЗрдЯ рдпрдиреНрддреНрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ ╨╕ ChannelAttribute рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдмрд╛рдЯ myfirst.cc, рдЬреБрди рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдлрд╛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЫред

рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдЕрдм рдорд╛рддреНрд░ рдШреЛрд╖рдгрд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫ PointToPointHelper рд░ рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рджреЗрдЦрд╛рдЗрдП рдЕрдиреБрд╕рд╛рд░ рдХреБрдиреИ рдкрдирд┐ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН,

...
NodeContainer nodes;
nodes.Create (2);
PointToPointHelper pointToPoint;
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
...

рдЕрдЧрд╛рдбрд┐ рдмрдвреНрдиреБрд╣реЛрд╕реН рд░ рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН Waf (./waff) рд░ рдлрд┐рд░реНрддрд╛ рдЬрд╛рдФрдВ рд░ UDP рдЗрдХреЛ рд╕рд░реНрднрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рдХреЗрд╣реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реМрдВ рд░ рд╕рдордп рдЙрдкрд╕рд░реНрдЧ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реМрдВред

$ export 'NS_LOG=UdpEchoServerApplication=level_all|prefix_time'

рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рддрдкрд╛рдЗрдБ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреНрдиреБрдкрд░реНрдЫ:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.405s)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
Sent 1024 bytes to 10.1.1.2
2.25732s Received 1024 bytes from 10.1.1.1
2.25732s Echoing packet
Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЕрдиреНрддрд┐рдо рдкрдЯрдХ рд╣рд╛рдореАрд▓реЗ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рдордп рд╣реЗрд░реЗрдХрд╛ рдерд┐рдпреМрдВ, рдЗрдХреЛ рд╕рд░реНрднрд░рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рдХреНрд╖рдг, рдпреЛ 2,00369 рд╕реЗрдХреЗрдиреНрдб рдерд┐рдпреЛред

2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1

рдЕрдм рдЙрд╕рд▓реЗ 2.25732 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рдпреЛ рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд▓реЗ PointToPointNetDevice рдбрд╛рдЯрд╛ рджрд░рд▓рд╛рдИ рдкрд╛рдБрдЪ рдореЗрдЧрд╛рдмрд┐рдЯ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдбрдмрд╛рдЯ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирдорд╛ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВ, рдЬреБрди 32768 рдмрд┐рдЯ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рд╣реЛред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирдпрд╛рдБ рдбрд╛рдЯрд╛рд░реЗрдЯ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рд╣реЛ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╕рд┐рдореБрд▓реЗрд╢рдирд▓рд╛рдИ рдлреЗрд░рд┐ рдЧрддрд┐ рджрд┐рди рд╕рдХреНрдЫреМрдВред рдорджреНрджрдд рддрддреНрд╡ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╣рд┐рдд рд╕реВрддреНрд░ рдЕрдиреБрд╕рд╛рд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВ:

$ ./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps"

рдпрд╕рд▓реЗ DataRate рд╡рд┐рд╢реЗрд╖рддрд╛рд▓рд╛рдИ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдкрд╛рдБрдЪ рдореЗрдЧрд╛рдмрд┐рдЯрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирдорд╛ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫред рдХреЗ рддрдкрд╛рдИ рдирддрд┐рдЬрд╛ рджреЗрдЦреЗрд░ рдЫрдХреНрдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ? рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореВрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдЧрддрд┐ рдорд┐рд▓рд╛рдЙрди рдЪреНрдпрд╛рдирд▓ рдврд┐рд▓рд╛рдЗ рдкрдирд┐ рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╣рд╛рдореА рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдЪреНрдпрд╛рдирд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрди рд╕реЛрдзреНрди рд╕рдХреНрдЫреМрдВ, рдЬрд╕реНрддреИ рд╣рд╛рдореАрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░реНрдпреМрдВ:

$ ./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointChannel"

рд╣рд╛рдореАрд▓реЗ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗрдЫреМрдВ рдХрд┐ рдЪреНрдпрд╛рдирд▓ рдврд┐рд▓рд╛рдЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рдореНрди рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ:

--ns3::PointToPointChannel::Delay=[0ns]:
Transmission delay through the channel

рд╣рд╛рдореА рддреНрдпрд╕рдкрдЫрд┐, рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рдгрд╛рд▓реА рдорд╛рд░реНрдлрдд, рдпреА рджреБрд╡реИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

$ ./waf --run "scratch/myfirst
--ns3::PointToPointNetDevice::DataRate=5Mbps
--ns3::PointToPointChannel::Delay=2ms"

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╣рд╛рдореАрд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдбреЗрдЯрд╛ рджрд░ рд░ рдврд┐рд▓рд╛рдЗ рд╕реЗрдЯ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд╕рдБрдЧ рднрдПрдХреЛ рд╕рдордп рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреМрдВ:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.417s)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
Sent 1024 bytes to 10.1.1.2
2.00369s Received 1024 bytes from 10.1.1.1
2.00369s Echoing packet
Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯ рд╕рд░реНрднрд░ рджреНрд╡рд╛рд░рд╛ 2,00369 рд╕реЗрдХреЗрдиреНрдб рдкрдЫрд┐ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫред рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рдорд╛ рд▓рд┐рдкрд┐рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рдХреБрдиреИ рдкрдирд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рд╣рд╛рдореАрд▓реЗ MaxPackets рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрд▓рд╛рдИ рдЧреИрд░-рдПрдХ рдорд╛рдирд╣рд░реВрдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ UdpEchoClient.

рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ? рдПрдХ рдкрдЯрдХ рдХреЛрд╢рд┐рд╕ рдЧрд░реНрдиреБрд╣реЛрд▓рд╛ред рд╣рд╛рдореАрд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдорд╛рди рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрдиреЗ рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реЗрдХреЛ рдард╛рдЙрдБрдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЯрд┐рдкреНрдкрдгреА рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реНред MaxPackets рд▓рд┐рдкрд┐рдорд╛ред рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрдкрд░реНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдирдпрд╛рдБ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рд╕реЗрдЯ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдорджреНрджрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдПрдХрдЪреЛрдЯрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдмреБрдЭреНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдЖрджреЗрд╢ рд▓рд╛рдЗрдирдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╣рд╛рдореА рдЕрдзреНрдпрдпрдирд╢реАрд▓ рдорд╛рдирд┐рд╕ рднрдПрдХрд╛рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

$ ./waf --run "scratch/myfirst
--ns3::PointToPointNetDevice::DataRate=5Mbps
--ns3::PointToPointChannel::Delay=2ms
--ns3::UdpEchoClient::MaxPackets=2"

рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛ рдЙрдареНрдиреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкреНрд░рд╢реНрди рдпреЛ рд╣реЛ рдХрд┐ рдпреА рд╕рдмреИ рдЧреБрдгрд╣рд░реВрдХреЛ рдЕрд╕реНрддрд┐рддреНрд╡рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХрд╕рд░реА рдЬрд╛рдиреНрди рд╕рдХрд┐рдиреНрдЫред рдлреЗрд░рд┐, рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рдгрд╛рд▓реАрд╕рдБрдЧ рдпрд╕ рдорд╛рдорд▓рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдорджреНрджрдд рдкреНрд░рдХрд╛рд░реНрдп рдЫред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдорджреНрджрддрдХреЛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╕реЛрдзреНрдиреБрднрдпреЛ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рд╣реЗрд░реНрдиреБрдкрд░реНрдЫ:

$ ./waf --run "scratch/myfirst --PrintHelp"
myfirst [Program Arguments] [General Arguments]
General Arguments:
--PrintGlobals: Print the list of globals.
--PrintGroups: Print the list of groups.
--PrintGroup=[group]: Print all TypeIds of group.
--PrintTypeIds: Print all TypeIds.
--PrintAttributes=[typeid]: Print all attributes of typeid.
--PrintHelp: Print this help message.

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ "рдкреНрд░рд┐рдиреНрдЯрд╕рдореВрд╣рд╣рд░реВ" рддрд░реНрдХ рдЪрдпрди рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рддрдкрд╛рдИрдВрд▓реЗ рд╕рдмреИ рджрд░реНрддрд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рд╕реВрдЪреА рджреЗрдЦреНрдиреБрдкрд░реНрдЫ рдЯрд╛рдЗрдкрдЖрдИрдбреАред рд╕рдореВрд╣рдХрд╛ рдирд╛рдорд╣рд░реВ рд╕реНрд░реЛрдд рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд░рд╣реЗрдХрд╛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдирд╛рдорд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫрдиреН (рдмрд╕ рдкреВрдБрдЬреАрдХреГрдд рднрдП рдкрдирд┐)ред рд╕рдмреИ рдЬрд╛рдирдХрд╛рд░реА рдПрдХреИрдЪреЛрдЯрд┐ рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрджрд╛ рдзреЗрд░реИ рдареВрд▓реЛ рд╣реБрдиреЗрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╕рдореВрд╣рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдирдХрд╛рд░реА рдЫрд╛рдкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд┐рд▓реНрдЯрд░ рдЙрдкрд▓рдмреНрдз рдЫред рддреНрдпрд╕реЛрднрдП, рдлреЗрд░рд┐ рдкреЛрдЗрдиреНрдЯ-рдЯреБ-рдкреЛрдЗрдиреНрдЯ рдореЛрдбреНрдпреБрд▓рдорд╛ рдлреЛрдХрд╕ рдЧрд░реНрджреИ:

./waf --run "scratch/myfirst --PrintGroup=PointToPoint"
TypeIds in group PointToPoint:
ns3::PointToPointChannel
ns3::PointToPointNetDevice
ns3::PointToPointRemoteChannel
ns3::PppHeader

рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓реБрдХрдЕрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЯрд╛рдЗрдкрдЖрдИрдбреА рдирд╛рдорд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐
--PrintAttributes = ns3 :: PointToPointChannelрдорд╛рдерд┐ рджреЗрдЦрд╛рдЗрдПрдХреЛ рд░реВрдкрдорд╛ред

рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдмрд╛рд░реЗ рдЬрд╛рдиреНрди рдЕрд░реНрдХреЛ рддрд░рд┐рдХрд╛ Doxygen ns-3 рдорд╛рд░реНрдлрдд рд╣реЛред рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдкреГрд╖реНрда рдЫ рдЬрд╕рд▓реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░рдорд╛ рджрд░реНрддрд╛ рднрдПрдХрд╛ рд╕рдмреИ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрдЫред

5.2.2 рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдЖрджреЗрд╢рд╣рд░реВ рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрджреИ

рддрдкрд╛рдЗрдБ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рдгрд╛рд▓реА рдорд╛рд░реНрдлрдд рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рд╣реБрдХрд╣рд░реВ рдкрдирд┐ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкрд╛рд░реНрд╕рд░ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдПрдХрджрдо рд╕рд░рд▓ рд░реВрдкрдорд╛ рдЧрд░рд┐рдиреНрдЫ AddValue.
рдкреВрд░реНрдгрддрдпрд╛ рдлрд░рдХ рддрд░рд┐рдХрд╛рдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВред рднрдирд┐рдиреНрдЫ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдердкреМрдВ n рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдорд╛ рдореБрдЦреНрдпред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рдЕрдШрд┐рд▓реНрд▓реЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреЗ рдПрдЙрдЯрд╛рдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рдкрд╛рд░реНрд╕рд░рд▓рд╛рдИ рдпреЛ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рди, рд╣рд╛рдореАрд▓реЗ рдкрд╛рд░реНрд╕рд░рдорд╛ рдпреЛ рдорд╛рди рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╣рд╛рдореА рдпреЛ рдХрд▓ рдердкреЗрд░ рдЧрд░реНрдЫреМрдВ AddValueред рдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН scratch/myfirst.cc рддреНрдпрд╕реИрд▓реЗ рдирд┐рдореНрди рдХреЛрдб рд╕рдВрдЧ рд╕реБрд░реБ рдЧрд░реНрди,

int
main (int argc, char *argv[])
{
uint32_t nPackets = 1;
CommandLine cmd;
cmd.AddValue("nPackets", "Number of packets to echo", nPackets);
cmd.Parse (argc, argv);
...

рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдмрд┐рдиреНрджреБрдорд╛ рддрд▓ рд╕реНрдХреНрд░реЛрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ MaxPackets рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рдпреЛ рд╕реНрдерд┐рд░ 1 рдХреЛ рд╕рдЯреНрдЯрд╛ nPackets рдЪрд░рдорд╛ рд╕реЗрдЯ рд╣реБрдиреНрдЫ, рдЬрд╕реНрддреИ рддрд▓ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫред

echoClient.SetAttribute ("MaxPackets", UintegerValue (nPackets));

рдЕрдм рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рд░ -PrintHelp рддрд░реНрдХ рдЖрдкреВрд░реНрддрд┐ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рддрд░реНрдХ рджреЗрдЦреНрдиреБрдкрд░реНрдЫред рдорджреНрджрдд рдкреНрд░рджрд░реНрд╢рдирдорд╛ рд╕реВрдЪреАрдмрджреНрдзред рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН,

$ ./waf --run "scratch/myfirst --PrintHelp"
Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.403s)
--PrintHelp: Print this help message.
--PrintGroups: Print the list of groups.
--PrintTypeIds: Print all TypeIds.
--PrintGroup=[group]: Print all TypeIds of group.
--PrintAttributes=[typeid]: Print all attributes of typeid.
--PrintGlobals: Print the list of globals.
User Arguments:
--nPackets: Number of packets to echo

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рд╕рд╛рд░рд┐рдд рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рддрд░реНрдХ -тАЙ-nPackets рд╕реЗрдЯ рдЧрд░реЗрд░ рддреНрдпрд╕реЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

$ ./waf --run "scratch/myfirst --nPackets=2"

рдЕрдм рджреЗрдЦреНрдиреБрдкрд░реНрдЫ

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.404s)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
Sent 1024 bytes to 10.1.1.2
2.25732s Received 1024 bytes from 10.1.1.1
2.25732s Echoing packet
Received 1024 bytes from 10.1.1.2
Sent 1024 bytes to 10.1.1.2
3.25732s Received 1024 bytes from 10.1.1.1
3.25732s Echoing packet
Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

рддрдкрд╛рдИрдВрд▓реЗ рдЕрд╣рд┐рд▓реЗ рджреБрдИрд╡рдЯрд╛ рдкреНрдпрд╛рдХреЗрдЬ рдкрдард╛рдЙрдиреБрднрдПрдХреЛ рдЫред рдзреЗрд░реИ рд╕рд░рд▓, рд╣реИрди?
рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ ns-3 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛, рддрдкрд╛рдИрд▓реЗ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдорд╛рди рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрди рдЖрджреЗрд╢ рд▓рд╛рдЗрди рддрд░реНрдХ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдореЛрдбреЗрд▓ рд▓реЗрдЦрдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рдирдпрд╛рдБ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреНрд░рдгрд╛рд▓реА рдорд╛рд░реНрдлрдд рддрдкрд╛рдЗрдБрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫрдиреНред рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦрдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рдирдпрд╛рдБ рдЪрд░рд╣рд░реВ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдкреНрд▓рдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

5.3 рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рдореЛрдбрд▓рд┐рдЩрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдмрд┐рдиреНрджреБ рдердк рдЕрдзреНрдпрдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБ рд╣реЛ, рд░ ns-3 рдЯреНрд░реЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдореБрдЦреНрдп рд╕рдВрдпрдиреНрддреНрд░ рд╣реЛред ns-3 рдПрдХ C++ рдХрд╛рд░реНрдпрдХреНрд░рдо рднрдПрдХреЛрд▓реЗ, C++ рдХрд╛рд░реНрдпрдХреНрд░рдордмрд╛рдЯ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рдорд╛рдирдХ рдорд╛рдзреНрдпрдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

#include <iostream>
...
int main ()
{
...
std::cout << "The value of x is " << x << std::endl;
...
}

рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рд╕рдорд╛рдзрд╛рди рдорд╛ рдПрдХ рд╕рд╛рдиреЛ рд╕рдВрд░рдЪрдирд╛ рдердкреНрди рд▓рдЧрд┐рдЩ рдореЛрдбреНрдпреБрд▓ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рдзреЗрд░реИ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН, рд░ рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛ рдЯреНрд░реЗрд╕рд┐рдЩ рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдЧрд░реЗрдХрд╛ рдЫреМрдВред

рдПрдирдПрд╕-рей рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпрд╣рд░реВ рд╣реБрдиреН:

  • рдЖрдзрд╛рд░рднреВрдд рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ рдЯреНрд░реЗрд╕ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд░ рдЯреНрд░реЗрд╕ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рд╡рд╕реНрддреБрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрдкрд░реНрдЫред

  • рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЙрддреНрдкрдиреНрди рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╡рд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛрд░ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдирдЧрд░реА рдирдпрд╛рдБ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫ;

  • рдЙрдиреНрдирдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдирдпрд╛рдБ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВ рд░ рд╕рд┐рдЩреНрдХрд╣рд░реВ рдердкреНрди рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛрд░ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред ns-3 рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реА рд╕реНрд╡рддрдиреНрддреНрд░ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рд╕реНрд░реЛрддрд╣рд░реВ рд░ рд░рд┐рд╕реАрднрд░рд╣рд░реВрдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕рд╛рдереИ рдЙрдкрднреЛрдХреНрддрд╛рд╣рд░реВрд▓рд╛рдИ рд╕реНрд░реЛрддрд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдПрдХреАрдХреГрдд рд╕рдВрдпрдиреНрддреНрд░ред

ns-3 рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реА рд╕реНрд╡рддрдиреНрддреНрд░ рдЯреНрд░реЗрд╕рд┐рдЩ рд╕реНрд░реЛрддрд╣рд░реВ рд░ рд░рд┐рд╕реАрднрд░рд╣рд░реВрдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕рд╛рдереИ рд╕реНрд░реЛрддрд╣рд░реВрд▓рд╛рдИ рд░рд┐рд╕реАрднрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдПрдХреАрдХреГрдд рд╕рдВрдпрдиреНрддреНрд░ред рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВ рд╡рд╕реНрддреБрд╣рд░реВ рд╣реБрдиреН рдЬрд╕рд▓реЗ рд╕рд┐рдореБрд▓реЗрд╢рдирдорд╛ рд╣реБрдиреЗ рдШрдЯрдирд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдЩреНрдХреЗрдд рдЧрд░реНрди рд╕рдХреНрдЫ рд░ рд░реБрдЪрд┐рдХреЛ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛рдорд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдПрдХ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд▓реЗ рд╕рдВрдХреЗрдд рдЧрд░реНрди рд╕рдХреНрдЫ рдЬрдм рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгрд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреЛ рд░ рдкреНрдпрд╛рдХреЗрдЯрдХреЛ рд╕рд╛рдордЧреНрд░реА рдЗрдЪреНрдЫреБрдХ рдЯреНрд░реЗрд╕ рд░рд┐рд╕реАрднрд░рд╣рд░реВрд▓рд╛рдИ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрди рд╕рдХреНрдЫред

рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВ рдмреЗрдХрд╛рд░ рдЫрдиреН рдЬрдмрд╕рдореНрдо рддрд┐рдиреАрд╣рд░реВ рдХреЛрдбрдХреЛ рдЕрдиреНрдп рднрд╛рдЧрд╣рд░реВрд╕рдБрдЧ "рдЬреЛрдбрд┐рдПрдХрд╛" рдЫреИрдирдиреН рдЬреБрди рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╕рд┐рдВрдХрджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЬрд╛рдирдХрд╛рд░реАрд╕рдБрдЧ рдХреЗрд╣реА рдЙрдкрдпреЛрдЧреА рд╣реБрдиреНрдЫред рдЯреНрд░реЗрд╕рд░рд╣рд░реВ рдШрдЯрдирд╛рд╣рд░реВ рд░ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛рдХрд╛ рдЙрдкрднреЛрдХреНрддрд╛рд╣рд░реВ рд╣реБрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЯреНрд░реЗрд╕ рд╕рд┐рдЩреНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬреБрди (рдЬрдм рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрдорд╛ рдЬрдбрд╛рди рд╣реБрдиреНрдЫ) рдкреНрд░рд╛рдкреНрдд рдкреНрдпрд╛рдХреЗрдЯрдорд╛ рд░реБрдЪрд┐рдХрд╛ рднрд╛рдЧрд╣рд░реВ рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпрд╕ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рднрд╛рдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд░реНрдХ рднрдиреЗрдХреЛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛрд░ рд╕рдореНрдкрд╛рджрди рд░ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓ рдирдЧрд░реАрдХрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдирдпрд╛рдБ рд╕рд┐рдВрдХ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреБ рд╣реЛред рддреНрдпрд╕реИрд▓реЗ рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдЖрдлреНрдиреЛ рд▓рд┐рдкрд┐рдорд╛ рдирдпрд╛рдБ рдЯреНрд░реЗрд╕рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд▓рд┐рдкрд┐ рд╕рдореНрдкрд╛рджрди рдЧрд░реЗрд░ рдорд╛рддреНрд░ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЛрд░рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрд╡рд╕реНрдерд┐рдд рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫред

рдпрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдорд╛, рд╣рд╛рдореА рдХреЗрд╣реА рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрд░реЛрддрд╣рд░реВ рд░ рд╕рд┐рдЩреНрдХрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреЗрдЫреМрдВ рд░ рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдкрдХреНрд╖рдорд╛ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕рдорд╛ рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреЗрдЫреМрдВред рдЯреНрд░реЗрд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреЗ рд░ рдирдпрд╛рдБ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд╕рд╣рд┐рдд рдЙрдиреНрдирдд рдЯреНрд░реЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐ ns-3 рдореНрдпрд╛рдиреБрдЕрд▓ рд╡рд╛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рдЦрдгреНрдбрд╣рд░реВ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред

5.3.1 ASCII рдЯреНрд░реЗрд╕рд┐рдЩ

ns-3 рд▓реЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рд░рд▓ рдкреНрдпрд╛рдХреЗрдЯ рдЯреНрд░реЗрд╕рд╣рд░реВ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджрд╛ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдорд╛ рдорджреНрджрдд рдЧрд░реНрди рдирд┐рдореНрди-рд╕реНрддрд░ рдЯреНрд░реЗрд╕рд┐рдЩ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ ASCII рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫред ns-2 рдЖрдЙрдЯрдкреБрдЯрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рдЯреНрд░реЗрд╕ рд╕рдорд╛рди рдЫ out.tr, рдЬреБрди рдзреЗрд░реИ рд▓рд┐рдкрд┐рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫред

рд╡реНрдпрд╛рдкрд╛рд░рдорд╛ рдЬрд╛рдФрдВ рд░ рд╣рд╛рдореНрд░реЛ scratch/myfirst.cc рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдХреЗрд╣реА ASCII рдЯреНрд░реЗрд╕рд┐рдЩ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдердкреМрдВред рдХрд▓ рднрдиреНрджрд╛ рдареАрдХ рдЕрдШрд┐ Simulator :: Run (), рдХреЛрдбрдХреЛ рдирд┐рдореНрди рд▓рд╛рдЗрдирд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН:
AsciiTraceHelper ascii;

pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr"));

рдзреЗрд░реИ рдЕрдиреНрдп ns-3 idioms рдЬрд╕реНрддреИ, рдпреЛ рдХреЛрдбрд▓реЗ ASCII рдЯреНрд░реЗрд╕рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рджреЛрд╕реНрд░реЛ рд▓рд╛рдЗрдирдорд╛ рджреБрдИ рдиреЗрд╕реНрдЯреЗрдб рд╡рд┐рдзрд┐ рдХрд▓рд╣рд░реВ рдЫрдиреНред "рднрд┐рддреНрд░" рд╡рд┐рдзрд┐ рдлрд╛рдЗрд▓рд╕реНрдЯреНрд░реАрдо () рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╕реНрдЯреНрдпрд╛рдХрдорд╛ рдлрд╛рдЗрд▓ рд╕реНрдЯреНрд░рд┐рдо рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдЬреНрдЮрд╛рдд рд╡рд╕реНрддреБ рдореБрд╣рд╛рд╡рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рд╡рд╕реНрддреБрдХреЛ рдирд╛рдо рдмрд┐рдирд╛) рд░ рдпрд╕рд▓рд╛рдИ рднрдирд┐рдиреНрдЫ рд╡рд┐рдзрд┐рдорд╛ рдкрд╛рд╕ рдЧрд░реНрджрдЫред рд╣рд╛рдореА рднрд╡рд┐рд╖реНрдпрдорд╛ рдпрд╕рдХреЛ рдЧрд╣рд┐рд░рд╛рдЗрдорд╛ рдЬрд╛рдиреЗрдЫреМрдВ, рддрд░ рддрдкрд╛рдИрд▓реЗ рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛ рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рддрдкрд╛рдИрд▓реЗ рдПрдЙрдЯрд╛ рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рдЬреБрди рдлрд╛рдЗрд▓рд▓рд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрджрдЫ myfirst.tr рд░ рдпрд╕рд▓рд╛рдИ ns-3 рдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╣рд╛рдореА ns-3 рд▓рд╛рдИ рдпрд╕рдХреЛ рд╕рдореНрдкреВрд░реНрдг рдЬреАрд╡рдирдХрд╛рд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБрдХреЛ рд╣реЗрд░рдЪрд╛рд╣ рдЧрд░реНрди рд╕реБрдореНрдкрдиреНрдЫреМрдВ, рдЬрд╕рдХреЛ рдЕрд╡рдзрд┐рдорд╛ рдпрд╕рд▓реЗ C++ рд╕реНрдЯреНрд░рд┐рдо рд╡рд╕реНрддреБ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдереЛрд░реИ рдЬреНрдЮрд╛рдд (рдЬрд╛рдиреАрдмреБрдЭреА) рд╕реАрдорд┐рддрддрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫред

рдмрд╛рд╣реНрдп рдХрд▓ рд╕рдХреНрд╖рдоAsciiAll() рддрдкрд╛рдИрдВрд▓реЗ рд╕рдмреИ рдкреЛрдЗрдиреНрдЯ-рдЯреБ-рдкреЛрдЗрдиреНрдЯ рдЙрдкрдХрд░рдг рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреЛ рд╕рд┐рдореБрд▓реЗрд╢рдирдорд╛ ASCII рдЯреНрд░реЗрд╕рд┐рдЩ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рд░ рддрдкрд╛рдИрдВрд▓реЗ ASCII рдврд╛рдБрдЪрд╛рдорд╛ рдкреНрдпрд╛рдХреЗрдЯ рдЖрдиреНрджреЛрд▓рди рдЬрд╛рдирдХрд╛рд░реА рд░реЗрдХрд░реНрдб рдЧрд░реНрди (рдирд┐рд░реНрджрд┐рд╖реНрдЯ) рдЯреНрд░реЗрд╕ рд░рд┐рд╕реАрднрд░рд╣рд░реВ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рд╕рд╣рд╛рдпрдХрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫред

ns-2 рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рддрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдЯреНрд░реНрдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рдШрдЯрдирд╛рд╣рд░реВ "+", "-", "d" рд░ "r" рдШрдЯрдирд╛рд╣рд░реВ рд▓рдЧ рдЧрд░реНрдиреЗ рдЬреНрдЮрд╛рдд рдЯреНрд░реЗрд╕рдкреЛрдЗрдиреНрдЯрд╣рд░реВрд╕рдБрдЧ рдмрд░рд╛рдмрд░ рд╣реБрдиреНрдЫрдиреНред
рдЕрдм рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирдмрд╛рдЯ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

$ ./waf --run scratch/myfirst

рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ рдзреЗрд░реИ рдкрдЯрдХ, рддрдкрд╛рдИрдВрд▓реЗ Waf рдмрд╛рдЯ рдзреЗрд░реИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдордмрд╛рдЯ рдХреЗрд╣реА рд╕рдиреНрджреЗрд╢рд╣рд░реВрд╕рдБрдЧ "'рдирд┐рд░реНрдорд╛рдг' рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдорд╛рдкреНрдд рднрдпреЛ"ред

рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛, рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рдирд╛рдордХреЛ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ myfirst.trред рдХрд╛рдо рдХреЛ рдкреНрд░рдХреГрддрд┐ рдХреЛ рдХрд╛рд░рдг Waf, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдлрд╛рдЗрд▓ рд╕реНрдерд╛рдиреАрдп рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╣реЛрдЗрди, рддрд░ рднрдгреНрдбрд╛рд░рдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЯреНрд░реЗрд╕рд╣рд░реВ рдмрдЪрдд рднрдПрдХреЛ рдмрд╛рдЯреЛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди Waf рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред --cwdред рд╣рд╛рдореАрд▓реЗ рдпреЛ рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВ, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдХреЛ рдордирдкрд░реНрдиреЗ рд╕рдореНрдкрд╛рджрдХрдорд╛ ASCII рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓ myfirst.tr рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рднрдгреНрдбрд╛рд░рдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдиреЗрднрд┐рдЧреЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

ASCII рдЯреНрд░реЗрд╕рд╣рд░реВ рдкрд╛рд░реНрд╕ рдЧрд░реНрджреИ

рддреНрдпрд╣рд╛рдБ рдПрдХрджрдо рдШрдирд╛ рдлрд╛рд░рдордорд╛ рдзреЗрд░реИ рдЬрд╛рдирдХрд╛рд░реА рдЫ, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдзреНрдпрд╛рди рджрд┐рдиреБ рдкрд░реНрдиреЗ рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рдлрд╛рдЗрд▓рдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реЗрдЦрд╛рд╣рд░реВ рд╣реБрдиреНрдЫрдиреНред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╣реЗрд░реНрдиреЗ рд╡рд┐рдиреНрдбреЛ рдлрд░рд╛рдХрд┐рд▓реЛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рдпреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рджреЗрдЦрд┐рдиреЗрдЫред

рдлрд╛рдЗрд▓рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛рд▓реЗ рдЯреНрд░реЗрд╕ рдШрдЯрдирд╛рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рд╕рд┐рдореБрд▓реЗрд╢рдирдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдЗрдиреНрдЯ-рдЯреБ-рдкреЛрдЗрдиреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгрдорд╛ рдЙрдкрд╕реНрдерд┐рдд рдкреНрд░рд╕рд╛рд░рдг рд▓рд╛рдЗрдирдорд╛ рдШрдЯрдирд╛рд╣рд░реВ рдЯреНрд░реЗрд╕ рдЧрд░реНрдЫреМрдВред рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╕рди рдХреНрдпреБ рддреНрдпреЛ рд▓рд╛рдо рд╣реЛ рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдкреНрд░рддреНрдпреЗрдХ рдкреНрдпрд╛рдХреЗрдЯрд▓реЗ рдмрд┐рдиреНрджреБ-рджреЗрдЦрд┐-рдкреЛрдЗрдиреНрдЯ рд▓рд┐рдЩреНрдХрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫред рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛ рдПрдХрд▓ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫ (рд░ рдпрд╕рдХреЛ рдкрдЫрд┐ рдЦрд╛рд▓реА рдард╛рдЙрдБ рд╣реБрдиреНрдЫ)ред рдпреЛ рдкреНрд░рддреАрдХ рдирд┐рдореНрди рдЕрд░реНрде рд╣реБрдиреЗрдЫ:

+: рдЙрдкрдХрд░рдг рд▓рд╛рдордорд╛ рдПрдХ рдХрддрд╛рд░ рд╕рдЮреНрдЪрд╛рд▓рди рднрдпреЛ;
-: рдЙрдкрдХрд░рдг рд▓рд╛рдордорд╛ рдПрдХ рддрддреНрд╡ рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐ рдХрд╛рд░реНрдп рднрдпреЛ;
d: рдкреНрдпрд╛рдХреЗрдЯ рдЫреЛрдбрд┐рдпреЛ, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд▓рд╛рдо рднрд░рд┐рдПрдХреЛ рдХрд╛рд░рдгрд▓реЗ;
r: рдкреНрдпрд╛рдХреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдерд┐рдпреЛред

рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рдорд╛ рдкрд╣рд┐рд▓реЛ рд░реЗрдЦрд╛рд▓рд╛рдИ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реМрдВред рдо рдпрд╕рд▓рд╛рдИ рднрд╛рдЧрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдиреЗрдЫреБ (рд╕реНрдкрд╖реНрдЯрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЗрдиреНрдбреЗрдиреНрдЯреЗрд╕рдирдХреЛ рд╕рд╛рде) рд░ рдмрд╛рдБрдпрд╛рдорд╛ рд░реЗрдЦрд╛ рдирдореНрдмрд░:

0 +
1 2
2 /NodeList/0/DeviceList/0/$ns3::PointToPointNetDevice/TxQueue/Enqueue
3 ns3::PppHeader (
4   Point-to-Point Protocol: IP (0x0021))
6   ns3::Ipv4Header (
7     tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags [none]
8     length: 1052 10.1.1.1 > 10.1.1.2)
9     ns3::UdpHeader (
10      length: 1032 49153 > 9)
11      Payload (size=1024)

рдпрд╕ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЯреНрд░реЗрд╕ рдШрдЯрдирд╛рдХреЛ рдкрд╣рд┐рд▓реЛ рдЦрдгреНрдб (рд▓рд╛рдЗрди 0) рдЕрдкрд░реЗрд╢рди рд╣реЛред рд╣рд╛рдореАрд╕рдБрдЧ рдпрд╣рд╛рдБ + рдкреНрд░рддреАрдХ рдЫ, рдЬреБрди рдкреНрд░рд╕рд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЗрдирдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рджреЛрд╕реНрд░реЛ рдЦрдгреНрдб (рд▓рд╛рдЗрди 1) рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╡реНрдпрдХреНрдд рдЧрд░рд┐рдПрдХреЛ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рдордп рд╣реЛред рд╣рд╛рдореАрд▓реЗ рд╕реЛрдзреЗрдХреЛ рдХреБрд░рд╛ рддрдкрд╛рдИрд▓рд╛рдИ рдпрд╛рдж рд╣реЛрд▓рд╛ UdpEchoClientApplication рджреБрдИ рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкрдард╛рдЙрди рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрд╣рд╛рдБ рд╣рд╛рдореА рдкреБрд╖реНрдЯрд┐ рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рдпреЛ рд╡рд╛рд╕реНрддрд╡рдореИ рднрдЗрд░рд╣реЗрдХреЛ рдЫред

рдЯреНрд░реЗрд╕ рдЙрджрд╛рд╣рд░рдгрдХреЛ рдЕрд░реНрдХреЛ рдЦрдгреНрдб (рдкрдЩреНрдХреНрддрд┐ 2 рдмрд╛рдЯ) рдХреБрди рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрддрд▓реЗ рдпреЛ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реЗрдХреЛ рджреЗрдЦрд╛рдЙрдБрдЫ (рдиреЗрдорд╕реНрдкреЗрд╕ рдЯреНрд░реЗрд╕ рд╕рдВрдХреЗрдд рдЧрд░реНрджреИ)ред рддрдкрд╛рдИрд▓реЗ рдЯреНрд░реЗрд╕ рдиреЗрдорд╕реНрдкреЗрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕реНрддреИ рддрдкрд╛рдИрд▓реЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдиреЗрдорд╕реНрдкреЗрд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рдиреЗрдорд╕реНрдкреЗрд╕рдХреЛ рдореВрд▓ рд╣реЛ рдиреЛрдбрд╕реВрдЪреАред рдпреЛ рдореБрдЦреНрдп ns-3 рдХреЛрдбрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрдиреНрдЯреЗрдирд░рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рдпрд╕рд▓реЗ рд▓рд┐рдкрд┐рдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдиреЛрдбрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдЬрд╕рд░реА рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд░реВрдЯрдорд╛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдиреЛрдбрд╕реВрдЪреА рд╣рд╛рдореАрд╕рдБрдЧ рдзреЗрд░реИ рдиреЛрдбрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫред рддреНрдпрд╕реИрд▓реЗ рд▓рд╛рдЗрди /NodeList/0 рд▓реЗ NodeList рдорд╛ рдирд▓ рдиреЛрдбрд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ, рдЬрд╕рд▓рд╛рдИ рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ "node 0" рдХреЛ рд░реВрдкрдорд╛ рд╕реЛрдЪреНрджрдЫреМрдВред рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдпрдиреНрддреНрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╣реБрдиреНрдЫред рдпреЛ рд╕реВрдЪреА рдирд╛рдо рд╕реНрдерд╛рдирдорд╛ рдЕрд░реНрдХреЛ рд╕реНрдерд┐рдд рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдЯреНрд░реЗрд╕ рдШрдЯрдирд╛ рдмрд╛рдЯ рдЖрдПрдХреЛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрдкрдХрд░рдгрд╕реВрдЪреА/реж, рдЬреБрди рдиреЛрдбрдорд╛ рд╕реНрдерд╛рдкрд┐рдд рдирд▓ рдЙрдкрдХрд░рдг рд╣реЛред

рдЕрд░реНрдХреЛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдЩ, $ ns3 :: PointToPointNetDevice, рдХреБрди рдпрдиреНрддреНрд░ рд╢реВрдиреНрдп рд╕реНрдерд┐рддрд┐рдорд╛ рдЫ рдмрддрд╛рдЙрдБрдЫ: рдиреЛрдб рд╢реВрдиреНрдпрдХреЛ рдпрдиреНрддреНрд░ рд╕реВрдЪреАред рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН рдХрд┐ рд▓рд╛рдЗрди 0 рдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ + рдЕрдкрд░реЗрд╢рдирдХреЛ рдорддрд▓рдм рдЙрдкрдХрд░рдгрдХреЛ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯ рдХрддрд╛рд░рдорд╛ рдПрдХ рддрддреНрд╡ рдердкрд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреЛ "рдЯреНрд░реНрдпрд╛рдХ рдорд╛рд░реНрдЧ" рдХреЛ рдЕрдиреНрддрд┐рдо рдЦрдгреНрдбрд╣рд░реВрдорд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рд╣реБрдиреНрдЫ: TxQueue/Enqueue.

рдЯреНрд░реЗрд╕рдорд╛ рдмрд╛рдБрдХреА рдЦрдгреНрдбрд╣рд░реВ рдПрдХрджрдо рд╕рд╣рдЬ рд╣реБрдиреБрдкрд░реНрдЫред рд░реЗрдЦрд╛рд╣рд░реВ 3-4 рд▓реЗ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫ рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯ рдкреЛрдЗрдиреНрдЯ-рдЯреБ-рдкреЛрдЗрдиреНрдЯ рдкреНрд░реЛрдЯреЛрдХрд▓рдорд╛ рд╕рдореЗрдЯрд┐рдПрдХреЛ рдЫред рд░реЗрдЦрд╛рд╣рд░реВ 5-7 рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯрдорд╛ IP4 рд╕рдВрд╕реНрдХрд░рдг рд╣реЗрдбрд░ рдЫ рд░ IP рдареЗрдЧрд╛рдирд╛рдорд╛ рдЙрддреНрдкрдиреНрди рднрдПрдХреЛ рдЫред 10.1.1.1 рд░ рд▓рд╛рдЧрд┐ рдЕрднрд┐рдкреНрд░реЗрд░рд┐рдд рдЫ 10.1.1.2ред рд░реЗрдЦрд╛рд╣рд░реВ 8-9 рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рдпреЛ рдкреНрдпрд╛рдХреЗрдЯрдорд╛ UDP рд╣реЗрдбрд░ рдЫ рд░ рдЕрдиреНрддрдорд╛ рд░реЗрдЦрд╛ 10 рд▓реЗ рдкреЗрд▓реЛрдб рдЕрдкреЗрдХреНрд╖рд┐рдд 1024 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдБрдЫред

рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рдХреЛ рдЕрд░реНрдХреЛ рд▓рд╛рдЗрдирд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рдПрдЙрдЯреИ рдкреНрдпрд╛рдХреЗрдЯ рдПрдЙрдЯреИ рдиреЛрдбрдорд╛ рдкреНрд░рд╕рд╛рд░рдг рд▓рд╛рдЗрдирдмрд╛рдЯ рддрд╛рдирд┐рдПрдХреЛ рдерд┐рдпреЛред

рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рдорд╛ рддреЗрд╕реНрд░реЛ рд▓рд╛рдЗрдирд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯ рдЗрдХреЛ рд╕рд░реНрднрд░ рд╣реЛрд╕реНрдЯрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгрджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдерд┐рдпреЛред рдореИрд▓реЗ рддрд▓ рдШрдЯрдирд╛ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реЗрдХреЛ рдЫреБред

0 r
1 2.25732
2 /NodeList/1/DeviceList/0/$ns3::PointToPointNetDevice/MacRx
3   ns3::Ipv4Header (
4     tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags [none]
5     length: 1052 10.1.1.1 > 10.1.1.2)
6     ns3::UdpHeader (
7       length: 1032 49153 > 9)
8       Payload (size=1024)

рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЯреНрд░реЗрд╕ рдЕрдкрд░реЗрд╢рди рдЕрдм r рдЫ рд░ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рдордп 2,25732 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдмрдврд╛рдЗрдПрдХреЛ рдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд▓рд╛рдИ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрдЫреНрдпрд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрдВрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдбреЗрдЯрд╛ рджрд░ рд░ рд▓рд┐рдЩреНрдХ рдврд┐рд▓рд╛рдЗрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВрдорд╛ рдЫреЛрдбреНрдиреБрднрдпреЛред рддрдкрд╛рдИрдВрд▓реЗ рдЕрдШрд┐рд▓реНрд▓реЛ рдЦрдгреНрдбрдорд╛ рджреЗрдЦреНрдиреБрднрдПрдХреЛ рд░реВрдкрдорд╛ рдпреЛ рдХрд╛рд▓ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред

рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрдд рдиреЗрдорд╕реНрдкреЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ (рд▓рд╛рдЗрди 2) рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ рдпреЛ рдШрдЯрдирд╛ рдиреЛрдб 1 (/ рдмрд╛рдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ рднрдиреЗрд░ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рдЧрд░реНрди)рдиреЛрдбрд╕реВрдЪреА/1) рд░ рдкреНрдпрд╛рдХреЗрдЯ рдЯреНрд░реЗрд╕ рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫ (/MacRx)ред рдлрд╛рдЗрд▓рдорд╛ рдмрд╛рдБрдХреА рдЯреНрд░реЗрд╕рд╣рд░реВ рд╣реЗрд░реЗрд░ рдЯреЛрдкреЛрд▓реЛрдЬреА рдорд╛рд░реНрдлрдд рдкреНрдпрд╛рдХреЗрдЯрдХреЛ рдЪрд╛рд▓рд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдПрдХрджрдо рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреБрдкрд░реНрдЫред

5.3.2 PCAP рдЯреНрд░реЗрд╕

ns-3 рдЙрдкрдХрд░рдг рд╕рд╣рдпреЛрдЧреАрд╣рд░реВ рдкрдирд┐ .pcap рдврд╛рдБрдЪрд╛рдорд╛ рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдПрдХреНрд░реЛрдирд┐рдо pcap (рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рд╛рдиреЛ рдЕрдХреНрд╖рд░рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ) рдкреНрдпрд╛рдХреЗрдЯ рдХреНрдпрд╛рдкреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЦрдбрд╛ рд╣реБрдиреНрдЫ рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдПрдХ рдПрдкреАрдЖрдИ рд╣реЛ рдЬрд╕рд▓реЗ .pcap рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рдпреЛ рдврд╛рдБрдЪрд╛ рдкрдвреНрди рд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛ Wireshark (рдкрд╣рд┐рд▓реЗ рднрдирд┐рдиреНрдЫ рдЗрдерд┐рдПрдЯрд▓)ред рдпрджреНрдпрдкрд┐, рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЯреНрд░рд╛рдлрд┐рдХ рдЯреНрд░реЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВ рдЫрдиреН рдЬреБрди рдпреЛ рдкреНрдпрд╛рдХреЗрдЯ рдврд╛рдБрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ pcap рдЯреНрд░реЗрд╕рд╣рд░реВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рдЙрдкрд▓рдмреНрдз рдзреЗрд░реИ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдЧрд░реНрдЫреМрдВред рдпрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдорд╛ рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ pcap рдЯреНрд░реЗрд╕рд╣рд░реВ рд╣реЗрд░реНрдирдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдиреЗрдЫреМрдВ tcpdump.

pcap рдЯреНрд░реЗрд╕рд┐рдЩ рд╕рдХреНрд╖рдо рдкрд╛рд░реНрджреИ рдХреЛрдбрдХреЛ рдПрдХ рд▓рд╛рдЗрдирдХреЛ рд╕рд╛рде рдЧрд░рд┐рдиреНрдЫред

pointToPoint.EnablePcapAll ("myfirst");

рд╣рд╛рдореАрд▓реЗ рднрд░реНрдЦрд░реИ рдердкреЗрдХреЛ ASCII рдЯреНрд░реЗрд╕ рдХреЛрдб рдкрдЫрд┐ рдХреЛрдбрдХреЛ рдпреЛ рд▓рд╛рдЗрди рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реН scratch/myfirst.ccред рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдХреЗрд╡рд▓ "myfirst" рд╕реНрдЯреНрд░рд┐рдЩ рдкрд╛рд╕ рдЧрд░реНрдпреМрдВ, "myfirst.pcap" рд╡рд╛ рдпрд╕реНрддреИ рдХреЗрд╣рд┐ рд╣реЛрдЗрдиред рдпреЛ рдХрд┐рдирднрдиреЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдЙрдкрд╕рд░реНрдЧ рд╣реЛ, рдкреВрд░реНрдг рдлрд╛рдЗрд▓рдирд╛рдо рд╣реЛрдЗрдиред рд╕рд┐рдореБрд▓реЗрд╢рдирдХреЛ рдмрдЦрдд, рд╕рд╣рд╛рдпрдХрд▓реЗ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдЗрдиреНрдЯ-рдЯреБ-рдкреЛрдЗрдиреНрдЯ рдЙрдкрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫред рдлрд╛рдЗрд▓ рдирд╛рдорд╣рд░реВ рдЙрдкрд╕рд░реНрдЧ, рдиреЛрдб рдирдореНрдмрд░, рдпрдиреНрддреНрд░ рдирдореНрдмрд░, рд░ рдкреНрд░рддреНрдпрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдиреЗрдЫ "редpcap"ред

рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдкрд┐рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдирд╛рдордХреЛ рдлрд╛рдЗрд▓рд╣рд░реВ рджреЗрдЦреНрдиреЗрдЫреМрдВредmyfirst-0-0.pcap"рд░"myfirst-1-0.pcap", рдЬреБрди рдХреНрд░рдорд╢рдГ рдиреЛрдб реж-рдЙрдкрдХрд░рдг реж рд░ рдиреЛрдб рез-рдЙрдкрдХрд░рдг реж рдХреЛ рд▓рд╛рдЧрд┐ pcap рдЯреНрд░реЗрд╕рд╣рд░реВ рд╣реБрдиреНред рдПрдХрдЪреЛрдЯрд┐ рддрдкрд╛рдИрдВрд▓реЗ pcap рдЯреНрд░реЗрд╕рд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдХреЛрдбрдХреЛ рд▓рд╛рдЗрди рдердкреНрдиреБрднрдПрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

$ ./waf --run scratch/myfirst

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рд╡рд┐рддрд░рдгрдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╣реЗрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рддреАрди рдлрд╛рдЗрд▓рд╣рд░реВ рджреЗрдЦреНрдиреБрдкрд░реНрдЫ: рдПрдЙрдЯрд╛ ASCII рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓ myfirst.tr, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдЕрдзреНрдпрдпрди рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВ, рдлрд╛рдЗрд▓рд╣рд░реВ myfirst-0-0.pcap ╨╕ myfirst-1-0.pcap - рдирдпрд╛рдБ pcap рдлрд╛рдЗрд▓рд╣рд░реВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рднрд░реНрдЦрд░ рдЙрддреНрдкрдиреНрди рдЧрд░реЗрдХрд╛ рдЫреМрдВред

tcpdump рдХреЛ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдкрдвреНрджреИ

рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐, pcap рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реЗрд░реНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ tcpdump рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛред

$ tcpdump -nn -tt -r myfirst-0-0.pcap
reading from file myfirst-0-0.pcap, link-type PPP (PPP)
2.000000 IP 10.1.1.1.49153 > 10.1.1.2.9: UDP, length 1024
2.514648 IP 10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024
tcpdump -nn -tt -r myfirst-1-0.pcap
reading from file myfirst-1-0.pcap, link-type PPP (PPP)
2.257324 IP 10.1.1.1.49153 > 10.1.1.2.9: UDP, length 1024
2.257324 IP 10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024

рдбрдореНрдкрдорд╛ myfirst-0-0.pcap (рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЙрдкрдХрд░рдг) рддрдкрд╛рдИрд▓реЗ рдЗрдХреЛ рдкреНрдпрд╛рдХреЗрдЯ рд╕рд┐рдореБрд▓реЗрд╢рдирдХреЛ реи рд╕реЗрдХреЗрдиреНрдб рдкрдЫрд┐ рдкрдард╛рдЗрдПрдХреЛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рджреЛрд╕реНрд░реЛ рдбрдореНрдк (myfirst-1-0.pcap), рддрдкрд╛рдИрдВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ 2,257324 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫред рддрдкрд╛рдИрдВрд▓реЗ рджреЛрд╕реНрд░реЛ рдбрдореНрдкрдорд╛ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯ 2.257324 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ рдЕрдиреНрддрдорд╛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдкрд╣рд┐рд▓реЛ рдбрдореНрдкрдорд╛ 2.514648 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд░реНрддрд╛ рдЧрд░реЗрдХреЛ рдерд┐рдпреЛред

Wireshark рдХреЛ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдкрдвреНрджреИ

рдпрджрд┐ рддрдкрд╛рдИрдВ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрди рднрдиреЗ Wireshark, рддреНрдпрд╣рд╛рдБ рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЫ рдЬрд╣рд╛рдБрдмрд╛рдЯ рддрдкрд╛рдЗрдБ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рд░ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: http://www.wireshark.org/. Wireshark рдПрдЙрдЯрд╛ GUI рд╣реЛ рдЬреБрди рдпреА рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ Wireshark рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдХреБрдиреИ рдкрдирд┐ рдЯреНрд░реЗрд╕ рдлрд╛рдЗрд▓рд╣рд░реВ рдЦреЛрд▓реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕реНрддреЛ рдХрд┐ рддрдкрд╛рдЗрдБ рдкреНрдпрд╛рдХреЗрдЯ рд╕реНрдирд┐рдлрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдХрдмреНрдЬрд╛ рдЧрд░реНрдиреБрднрдпреЛред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди