[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: I can't use LAN broadcast! Help ME~~~~



If you're using unicast addresses, and have multiple receivers, what
are you setting your sender dest. address to?

"��â��" <[email protected]> writes:

> MIME ������ ��Ƽ-��Ʈ �޽����Դϴ�.
> --------------8D44BBFFC65BCF89C09592C9
> Content-Type: multipart/alternative; boundary="------------DBEE14C2FA404A1E77CEF2FC"
> 
> 
> --------------DBEE14C2FA404A1E77CEF2FC
> Content-Type: text/plain; charset=iso-2022-kr
> Content-Transfer-Encoding: 7bit
> 
> Hi everyone~~
> 
> I developed Group communication protocol, in LAN
> and, i successed make lan, connect, and broadcast...
> But receiver nodes couldn't receive messages in message agent..
> ( i just attached message agent to whole lan node.....)
> 
> How can All Node receive receive message in application layer ( message
> agent)????
> please ~~~ it is very immediately job...
> my dead time is
> tomorrow~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> please~~~~~~~~~~~~~~~~~~ experts~~~~~~~
> 
> ps : I attach my simple source... please anyone talk to me
> =============================================================================
> 
> --------------DBEE14C2FA404A1E77CEF2FC
> Content-Type: text/html; charset=iso-2022-kr
> Content-Transfer-Encoding: 7bit
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <HTML>
> Hi everyone~~
> <P>I developed Group communication protocol, in LAN
> <BR>and, i successed make lan, connect, and broadcast...
> <BR>But <B><FONT COLOR="#3333FF">receiver nodes couldn't receive messages
> in message agent..</FONT></B>
> <BR>( i just attached message agent to whole lan node.....)
> <P><B><FONT COLOR="#3333FF">How can All Node receive receive message in
> application layer ( message agent)????</FONT></B>
> <BR>please ~~~ it is very immediately job...
> <BR>my dead time is tomorrow~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> <P>please~~~~~~~~~~~~~~~~~~ experts~~~~~~~
> <P>ps : I attach my simple source... please anyone talk to me
> <BR>=============================================================================</HTML>
> 
> --------------DBEE14C2FA404A1E77CEF2FC--
> 
> --------------8D44BBFFC65BCF89C09592C9
> Content-Type: application/x-tcl; name="RMP.tcl"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline; filename="RMP.tcl"
> 
> #!/bin/sh
> # the next line finds ns \
> nshome=`dirname $0`; [ ! -x $nshome/ns ] && [ -x ../../ns ] && nshome=../..
> # the next line starts ns \
> export nshome; exec $nshome/ns "$0" "$@"
> 
> if [info exists env(nshome)] {
> 	set nshome $env(nshome)
> } elseif [file executable ../../ns] {
> 	set nshome ../..
> } elseif {[file executable ./ns] || [file executable ./ns.exe]} {
> 	set nshome "[pwd]"
> } else {
> 	puts "$argv0 cannot find ns directory"
> 	exit 1
> }
> set env(PATH) "$nshome/bin:$env(PATH)"
> 
> puts "source /disk2/netsim/ns-2.1b/tcl/ex/timer.tcl...."
> source /netsim/ns/ns-2.1b5/tcl/ex/timer.tcl
> 
> set opt(tr)		"RMP.tr"	
> set opt(namtr)	"RMP.nam"
> set opt(seed)	0
> set opt(stop)	20
> set opt(node)	8
> 
> set opt(qsize)	100
> set opt(bw)	10Mb
> set opt(delay)	1ms
> set opt(ll)	LL
> set opt(ifq)	Queue/DropTail
> set opt(mac)	Mac/Csma/Cd
> set opt(chan)	Channel
> set opt(tcp)	TCP/Reno
> set opt(sink)	TCPSink
> 
> 
> proc finish {} {
> 	global env nshome pwd
> 	global ns opt trfd
> 
> 	$ns flush-trace
> 	close $trfd
> 
> 	exec nam RMP.nam &
> 
> 	exit 0
> }
> 
> proc create-trace {} {
> 	global ns opt
> 
> 	if [file exists $opt(tr)] {
> 		catch "exec rm -f $opt(tr) $opt(tr)-bw [glob $opt(tr).*]"
> 	}
> 
> 	set trfd [open $opt(tr) w]
> 	$ns trace-all $trfd
> 	if {$opt(namtr) != ""} {
> 		$ns namtrace-all [open $opt(namtr) w]
> 	}
> 	return $trfd
> }
> 
> proc create-topology {} {
> 	global ns opt
> 	global lan node source node(0)
> 
> 	set num $opt(node)
> 	for {set i 0} {$i < $num } {incr i} {
> 		set node($i) [$ns node]
> 		lappend nodelist $node($i)
> #		puts node($i) = [$node($i) id]
> 	}
> 	
> 	set lan [$ns newLan $nodelist $opt(bw) $opt(delay) \
> 			-llType $opt(ll) -ifqType $opt(ifq) \
> 			-macType $opt(mac) -chanType $opt(chan)]
> 	#[$lan set mcl_] set bcast_ 1
> 
> #	set node0 [$ns node]
> #	$ns duplex-link $node0 $node(0) 2Mb 2ms DropTail
> #	$ns duplex-link-op $node0 $node(0) orient right
> }
> 
> Class Agent/Message/Sender -superclass {Agent/Message Timer}
> Class Agent/Message/Receiver -superclass Agent/Message
> 
> Agent/Message/Sender instproc init {} {
> 	$self next
> 	$self reset
> 	$self set window_ 4
> 	$self set incriment 0
> }
> 
> Agent/Message/Sender instproc reset {} {
> 	$self instvar seqno_ ack_
> 	set seqno_ 0
> 	set ack_ 0
> }
> 
> Agent/Message/Sender instproc start {} {
> 	$self transmit
> }
> 
> Agent/Message/Sender instproc reset_timer {} {
> 	$self cancel
> 	#$self sched 0.05
> }
> 
> Agent/Message/Sender instproc timeout {} {
> 	$self instvar seqno_ ack_
> 	set seqno_ $ack_
> 	$self transmit
> }
>   
> Agent/Message/Sender instproc cansend {} {
> 	$self instvar seqno_ window_ ack_ addr_
> 	#puts "seqno($seqno_) ack($ack_) window($window_) addr($addr_)"
> 	
> 	return [expr $seqno_ < $ack_ + $window_]
> }
> 
> Agent/Message/Sender instproc sendnext {} {
> 	$self instvar seqno_ addr_
> 	lappend MSG  [expr $seqno_] [expr $addr_] 
> 	#puts "seqno($seqno_) addr($addr_)"
> 	$self send $MSG
> 	#$self send $seqno_
> 	incr seqno_
> 	$self reset_timer
> }
> 
> Agent/Message/Sender instproc transmit {} {
> 	while [$self cansend] {
> 		$self sendnext
> 	}
> }
> 
> Agent/Message/Sender instproc recv msg {
> 	#$self instvar incriment
> 	$self instvar ack_
> 	
> 	#if { 2 == [ llength msg ] } {
> 	#	set incriment [incr incriment]
> 	#	puts "$incriment"
> 		set ack_ $msg
> 		$self transmit
> 	#}
> }
> 
> Agent/Message/Sender set packetSize_ 400
> Agent/Message/Receiver set packetSize_ 40
> 
> Agent/Message/Receiver instproc init {} {
> 	$self set mlist { 0 0 0 0 }
> 	$self next
> 	$self reset
> }
>    
> Agent/Message/Receiver instproc reset {} {
> 	$self instvar ack_ 
> 	set ack_ 0
> }
> 
> Agent/Message/Receiver instproc recv msg {
> 	$self instvar ack_ dst_ mlist
> 	set temp1 0
> 	set temp2 0
> 	set temp3 0
> 	set seqno [ lindex $msg 0 ]
> 	#puts "Sequence Numer : $seqno Address : [lindex $msg 1]"
> 	#$self instvar MSGack_
> 	if { [lindex $msg 1] == 0 } {
> 		$self set ack_ [ lindex $mlist 0 ]
> 		set temp1 [ lindex $mlist 1 ]
> 		set temp2 [ lindex $mlist 2 ]
> 		set temp3 [ lindex $mlist 3 ]
> 		if { $seqno == $ack_ } {
> 			#puts "==================" 
> 			#puts "Ack List  : $mlist "
> 			#puts "First Node Receive"
> 			incr ack_
> 			set  mlist [ lreplace mlist 0 3 $ack_ $temp1 $temp2 $temp3]
> 			#puts "ACK NUM : $ack_"
> 			#puts "Ack List  : $mlist "
> 			#puts "==================" 
> 			$self set dst_ [lindex $msg 1]
> 		}
> 		$self send $ack_ 
> 	}
> 	if { [lindex $msg 1] == 256 } {
> 		$self set ack_  [ lindex $mlist 1 ]
> 		set temp1 [ lindex $mlist 0 ]
> 		set temp2 [ lindex $mlist 2 ]
> 		set temp3 [ lindex $mlist 3 ]
> 		if { $seqno == $ack_ } {
> 			#puts "==================" 
> 			#puts "Second Node Receive"
> 			incr ack_
> 			set  mlist [ lreplace mlist 0 3 $temp1 $ack_ $temp2 $temp3]
> 			#puts "ACK NUM : $ack_"
> 			#puts "Ack List  : $mlist "
> 			#puts "==================" 
> 			$self set dst_ [lindex $msg 1]
> 		}
> 		$self send $ack_ 
> 	}
> 	if { [lindex $msg 1] == 512 } {
> 		$self set ack_  [ lindex $mlist 2 ]
> 		set temp1 [ lindex $mlist 0 ]
> 		set temp2 [ lindex $mlist 1 ]
> 		set temp3 [ lindex $mlist 3 ]
> 		if { $seqno == $ack_ } {
> 			#puts "==================" 
> 			#puts "Third Node Receive"
> 			incr ack_
> 			set  mlist [ lreplace mlist 0 3 $temp1 $temp2 $ack_ $temp3]
> 			#puts "ACK NUM : $ack_"
> 			#puts "Ack List  : $mlist "
> 			#puts "==================" 
> 			$self set dst_ [lindex $msg 1]
> 		}
> 		$self send $ack_ 
> 	}
> 	if { [lindex $msg 1] == 768 } {
> 		$self set ack_  [ lindex $mlist 3 ]
> 		set temp1 [ lindex $mlist 0 ]
> 		set temp2 [ lindex $mlist 1 ]
> 		set temp3 [ lindex $mlist 2 ]
> 		if { $seqno == $ack_ } {
> 			#puts "==================" 
> 			#puts "Third Node Receive"
> 			incr ack_
> 			set  mlist [ lreplace mlist 0 3 $temp1 $temp2 $temp3 $ack_ ]
> 			#puts "ACK NUM : $ack_"
> 			#puts "Ack List  : $mlist "
> 			#puts "==================" 
> 			$self set dst_ [lindex $msg 1]
> 		}
> 		$self send $ack_ 
> 	}
> }
> 
> set ns [new Simulator]
> set trfd [create-trace]
> 
> create-topology
> 
> # Sender Setting
> set sndr0 [$ns create-connection Message/Sender $node(0) Message/Receiver $node(7) 0]
> #$ns attach-agent $node0 $sndr0
> $sndr0 set fid_ 0
> $sndr0 set window_ 15
> 
> # start up - stop-and-wait
> $ns at 0.1 "$sndr0 start"
> 
> $ns at 1.$opt(stop) "finish"
> 
> $ns run
> 
> --------------8D44BBFFC65BCF89C09592C9--